Merge remote-tracking branch 'origin/master'

# Conflicts:
#	op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java
master
Yangwl 1 year ago
commit f31e349642

@ -2,18 +2,11 @@ package com.op.common.core.utils.poi;
import com.alibaba.fastjson2.JSONObject;
import com.op.common.core.domain.ExcelCol;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@ -35,22 +28,45 @@ public class ExcelMapUtil {
}else{
sheet = workbook.createSheet(sheetName);
}
// //创建主标题行(第一行)
// Row sheetTitleRow = sheet.createRow(0);
// Cell titleCell = sheetTitleRow.createCell(0);//创建第一行第一个单元格
// titleCell.setCellValue(title);//传值
// titleCell.setCellStyle(getHeaderFont(sheet.getWorkbook()));//设置样式
// //主标题行合并单元格
// CellRangeAddress cellAddresses = new CellRangeAddress(0, 0, 0, colSize - 1);
// sheet.addMergedRegion(cellAddresses);
//创建表头行(第二行)
Row sheetHeadRow = sheet.createRow(0);//1
//遍历表头名称,创建表头单元格
for(int i = 0 ; i < colSize ; i++){
sheet.setColumnWidth(i,(excelCol.get(i).getWidth())*256);//宽度单位是字符的256分之一
Cell headCell = sheetHeadRow.createCell(i);
headCell.setCellValue(excelCol.get(i).getTitle());//传值
headCell.setCellStyle(getHeaderFont(sheet.getWorkbook()));//设置样式
if(title != null){//定量分析
String[] title1s = title.split(",");
int rangeVal = colSize/title1s.length;
//创建主标题行(第一行)
Row sheetTitleRow = sheet.createRow(0);
Cell titleCell0 = sheetTitleRow.createCell(0);//创建第一行第一个单元格
titleCell0.setCellValue("");//传值
titleCell0.setCellStyle(getHeaderFont(sheet.getWorkbook()));//设置样式
//遍历表头名称,创建表头单元格
for (int i = 0; i < title1s.length; i++) {
Cell titleCell = sheetTitleRow.createCell(i*rangeVal+1);//创建第一行第一个单元格
titleCell.setCellValue(title1s[i]);//传值
titleCell.setCellStyle(getHeaderFont(sheet.getWorkbook()));//设置样式
//主标题行合并单元格
CellRangeAddress cellAddresses = new CellRangeAddress(0, 0, i*rangeVal+1, (i+1)*rangeVal);
sheet.addMergedRegion(cellAddresses);
}
//创建表头行(第二行)
Row sheetHeadRow = sheet.createRow(1);//1
//遍历表头名称,创建表头单元格
for (int i = 0; i < colSize; i++) {
sheet.setColumnWidth(i, (excelCol.get(i).getWidth()) * 256);//宽度单位是字符的256分之一
Cell headCell = sheetHeadRow.createCell(i);
headCell.setCellValue(excelCol.get(i).getTitle());//传值
headCell.setCellStyle(getHeaderFont(sheet.getWorkbook()));//设置样式
}
}else {
//创建表头行(第二行)
Row sheetHeadRow = sheet.createRow(0);//1
//遍历表头名称,创建表头单元格
for (int i = 0; i < colSize; i++) {
sheet.setColumnWidth(i, (excelCol.get(i).getWidth()) * 256);//宽度单位是字符的256分之一
Cell headCell = sheetHeadRow.createCell(i);
headCell.setCellValue(excelCol.get(i).getTitle());//传值
headCell.setCellStyle(getHeaderFont(sheet.getWorkbook()));//设置样式
}
}
//将data中的值填充到excel
@ -65,12 +81,15 @@ public class ExcelMapUtil {
for (int i = 0 ; i < colSize ; i++ ){
Cell dataCell = dataRow.createCell(i);
dataCell.setCellStyle(getDataFont(workbook));
if(i>=2){
dataCell.setCellValue(getValueNum(jsonObject.get(excelCol.get(i).getField())));
}else{
if(title!=null){//定量分析
dataCell.setCellValue(getValue(jsonObject.get(excelCol.get(i).getField())));
}else{
if(i>=2){
dataCell.setCellValue(getValueNum(jsonObject.get(excelCol.get(i).getField())));
}else{
dataCell.setCellValue(getValue(jsonObject.get(excelCol.get(i).getField())));
}
}
}
iterator.remove();
rowNum++;
@ -110,6 +129,7 @@ public class ExcelMapUtil {
cellStyle.setFont(font);
cellStyle.setAlignment(HorizontalAlignment.CENTER_SELECTION);//设置水平居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//设置垂直居中
cellStyle.setWrapText(true);//设置单元格内容自动换行
return cellStyle;
}

@ -153,4 +153,11 @@ public class MesReportWorkConsumeController extends BaseController {
public AjaxResult submitReportInfo(@RequestBody MesReportWork mesReportWork) {
return toAjax(mesReportWorkConsumeService.submitReportInfo(mesReportWork));
}
/**获取母子BOM**/
@GetMapping("/getBomList")
public List getBomList(MesReportWorkConsume mesReportWorkConsume) {
List<MesReportWorkConsume> rlist = mesReportWorkConsumeService.getBomList(mesReportWorkConsume);
return rlist;
}
}

@ -346,7 +346,7 @@ public class MesReportWorkController extends BaseController {
response.setContentType("application/octet-stream;charset=UTF-8");
ServletOutputStream outputStream = response.getOutputStream();
//调用工具类
workbook = ExcelMapUtil.initWorkbook(titleName, titleName, excelCols, list);
workbook = ExcelMapUtil.initWorkbook(titleName, null, excelCols, list);
workbook.write(outputStream);
} catch (Exception e) {
e.printStackTrace();

@ -72,6 +72,79 @@ public class MesReportWorkConsume extends BaseEntity {
private String parentOrder;
private String batch;
private String recoil;
private String standardDosage;
private String lossRate;
private String lossAmount;
private String cilosses;
private String sanka;
private String productGroup;
private String productGroupName;
//上级物料
private String pMaterialCode;
public String getpMaterialCode() {
return pMaterialCode;
}
public void setpMaterialCode(String pMaterialCode) {
this.pMaterialCode = pMaterialCode;
}
public String getProductGroup() {
return productGroup;
}
public void setProductGroup(String productGroup) {
this.productGroup = productGroup;
}
public String getProductGroupName() {
return productGroupName;
}
public void setProductGroupName(String productGroupName) {
this.productGroupName = productGroupName;
}
public String getStandardDosage() {
return standardDosage;
}
public void setStandardDosage(String standardDosage) {
this.standardDosage = standardDosage;
}
public String getLossRate() {
return lossRate;
}
public void setLossRate(String lossRate) {
this.lossRate = lossRate;
}
public String getLossAmount() {
return lossAmount;
}
public void setLossAmount(String lossAmount) {
this.lossAmount = lossAmount;
}
public String getCilosses() {
return cilosses;
}
public void setCilosses(String cilosses) {
this.cilosses = cilosses;
}
public String getSanka() {
return sanka;
}
public void setSanka(String sanka) {
this.sanka = sanka;
}
public String getRecoil() {
return recoil;

@ -77,4 +77,6 @@ public interface MesReportWorkConsumeMapper {
int addConsumePS(@Param("list")List<MesReportWorkConsume> rconsumes);
List<MesReportWorkConsume> getSonConsumeList(MesReportWorkConsume mesReportWorkConsume);
List<MesReportWorkConsume> getBomList(MesReportWorkConsume mesReportWorkConsume);
}

@ -82,4 +82,6 @@ public interface IMesReportWorkConsumeService {
int submitConsumePS(List<MesReportWorkConsume> mesReportWorkConsume);
int submitReportInfo(MesReportWork mesReportWork);
List<MesReportWorkConsume> getBomList(MesReportWorkConsume mesReportWorkConsume);
}

@ -380,6 +380,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
List<SapRFW.lt_hw> lt_hwList =new ArrayList<>();
MesReportWorkConsume consumeqo = new MesReportWorkConsume();
consumeqo.setWorkorderCode(workOrder.getWorkorderCode());
consumeqo.setRecoil("X");
List<MesReportWorkConsume> consumes = mesReportWorkConsumeMapper.selectMesReportWorkConsumeList(consumeqo);
if(!CollectionUtils.isEmpty(consumes)){
for(MesReportWorkConsume consume:consumes){

@ -252,4 +252,11 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer
}
return rconsumes;
}
@Override
@DS("#header.poolName")
public List<MesReportWorkConsume> getBomList(MesReportWorkConsume mesReportWorkConsume) {
List<MesReportWorkConsume> dtos = mesReportWorkConsumeMapper.getBomList(mesReportWorkConsume);
return dtos;
}
}

@ -47,6 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="attr3 != null and attr3 != ''"> and attr3 = #{attr3}</if>
<if test="attr4 != null and attr4 != ''"> and attr4 = #{attr4}</if>
<if test="factoryCode != null and factoryCode != ''"> and factory_code = #{factoryCode}</if>
<if test="recoil != null and recoil != ''"> and recoil = #{recoil}</if>
and del_flag = '0'
</where>
</select>
@ -109,6 +110,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where mrwc.del_flag = '0' and pow.del_flag = '0'
and pow.parent_order = #{workorderCode}
</select>
<select id="getBomList" resultType="com.op.mes.domain.MesReportWorkConsume">
select bbc.component materialCode,
bbc.standard_dosage standardDosage,
bbc.loss_rate lossRate,
bbc.loss_amount lossAmount,
bbc.cilosses,
bbc.component_unit,
bbc.sanka,
bbc.cumc pMaterialCode,
bp.product_desc_zh materialName,
bp.product_group productGroup,
bp.product_group_name productGroupName
from base_bom_component bbc
left join base_product bp on SUBSTRING(bp.product_code, 8, 12) = bbc.component
left join mes_report_work mrw on SUBSTRING(mrw.product_code, 8, 12) = bbc.product_code
where <if test= 'parentOrder=="0"'>mrw.workorder_code = #{workorderCode}</if>
<if test= 'parentOrder!="0"'>mrw.parent_order = #{workorderCode}</if>
</select>
<insert id="insertMesReportWorkConsume" parameterType="MesReportWorkConsume">
insert into mes_report_work_consume

@ -824,7 +824,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
upload_time = null,
upload_status = '0',
upload_msg = null
where workorder_code = #{workorderCode}
where workorder_code = #{workorderCode} or parent_order = #{workorderCode}
</update>
<delete id="deleteMesReportWorkById" parameterType="String">

@ -472,7 +472,7 @@ public class OpenServiceImpl implements OpenService {
try {
StringBuilder postDataBuilder = new StringBuilder();
postDataBuilder.append("createTime=").append("dateTime");
String result = HttpUtils.sendPost(url_user,postDataBuilder.toString());
String result = HttpUtils.sendPost("http://lj.lanju.cn:8801/outside/api/mes/getUserList.do",postDataBuilder.toString());
return success(result);
} catch (Exception e) {
e.printStackTrace();

@ -105,7 +105,7 @@ public class ProOrderController extends BaseController {
response.setContentType("application/octet-stream;charset=UTF-8");
ServletOutputStream outputStream = response.getOutputStream();
//调用工具类
workbook = ExcelMapUtil.initWorkbook(titleName, titleName, excelCols, null);
workbook = ExcelMapUtil.initWorkbook(titleName, null, excelCols, null);
workbook.write(outputStream);
} catch (Exception e) {
e.printStackTrace();

@ -179,9 +179,11 @@ public class ProOrderWorkorder extends TreeEntity {
private Integer materialId;
// 物料编码(湿料计划模块使用)
@Excel(name = "投料编码")
private String materialCode;
// 物料名称(湿料计划模块使用)
@Excel(name = "投料名称")
private String materialName;
// 供湿料计划使用
private String materialName1;

@ -2,6 +2,7 @@ package com.op.plan.mapper;
import com.op.plan.domain.ProOrder;
import com.op.plan.domain.ProOrderWorkorder;
import com.op.plan.domain.ProWetMaterialPlanDetail;
import com.op.system.api.domain.dto.BaseBomComponentDTO;
import com.op.system.api.domain.dto.MesPrepareDTO;
import com.op.system.api.domain.dto.MesPrepareDetailDTO;
@ -168,5 +169,7 @@ public interface ProOrderWorkorderMapper {
ProOrderWorkorder getPWorkOrder(ProOrderWorkorder whiteOrder);
List<ProOrderWorkorder> selectProOrderWorkorderList999(ProOrderWorkorder proOrderWorkorder);
ProWetMaterialPlanDetail getWetMaterial(String workorderId);
}

@ -99,6 +99,11 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
String factoryCode = request.getHeader(key.substring(8)).replace("ds_","");
if("999".equals(factoryCode)){
workorderList = proOrderWorkorderMapper.selectProOrderWorkorderList999(proOrderWorkorder);
for(ProOrderWorkorder owork:workorderList){
ProWetMaterialPlanDetail material = proOrderWorkorderMapper.getWetMaterial(owork.getWorkorderId());
owork.setMaterialCode(material.getMaterialCode());
owork.setMaterialName(material.getMaterialName());
}
}else{
workorderList = proOrderWorkorderMapper.selectProOrderWorkorderList(proOrderWorkorder);
}

@ -42,6 +42,9 @@
<result property="pproductCode" column="pproductCode" />
<result property="pproductName" column="pproductName" />
<result property="pworkorderCodeSap" column="pworkorderCodeSap" />
<result property="materialCode" column="material_code" />
<result property="materialName" column="material_name" />
</resultMap>
@ -68,8 +71,8 @@
<if test="workorderName != null and workorderName != ''"> and pow.workorder_name like concat('%', #{workorderName}, '%')</if>
<if test="orderId != null and orderId != ''"> and pow.order_id = #{orderId}</if>
<if test="orderCode != null and orderCode != ''"> and pow.order_code like concat('%', #{orderCode}, '%')</if>
<if test="productCode != null and productCode != ''"> and pow.product_code like concat('%', #{productCode}, '%')</if>
<if test="productName != null and productName != ''"> and pow.product_name like concat('%', #{productName}, '%')</if>
<if test="productCode != null and productCode != ''"> and ppow.product_code like concat('%', #{productCode}, '%')</if>
<if test="productName != null and productName != ''"> and ppow.product_name like concat('%', #{productName}, '%')</if>
<if test="productDate != null "> and pow.product_date = #{productDate}</if>
<if test="shiftId != null and shiftId != ''"> and pow.shift_id = #{shiftId}</if>
<if test="parentOrder != null and parentOrder != ''"> and pow.parent_order = #{parentOrder}</if>
@ -84,37 +87,43 @@
</where>
</select>
<select id="selectProOrderWorkorderList999" resultMap="ProOrderWorkorderResult">
<include refid="selectProOrderWorkorderVo"/>
select pow.workorder_id, pow.workorder_code, pow.workorder_name, pow.order_id, pow.order_code, pow.product_id,
pow.product_code, pow.product_name,pow.product_spc, pow.unit, pow.quantity_produced, pow.quantity_split,
pow.route_code, pow.prod_line_code, pow.product_date,pow.shift_id, pow.parent_order, pow.ancestors, pow.status,
pow.remark, pow.attr1, pow.attr2, pow.attr3, pow.attr4, pow.create_by, pow.create_time,
pow.update_by, pow.update_time, pow.prod_type, pow.factory_code , pow.end_flag , pow.car_num,pow.sort_no,
pow.workorder_code_sap
from pro_order_workorder pow
<where>
<if test="workorderCode != null and workorderCode != ''"> and workorder_code like concat('%', #{workorderCode}, '%')</if>
<if test="workorderName != null and workorderName != ''"> and workorder_name like concat('%', #{workorderName}, '%')</if>
<if test="orderId != null and orderId != ''"> and order_id = #{orderId}</if>
<if test="orderCode != null and orderCode != ''"> and order_code like concat('%', #{orderCode}, '%')</if>
<if test="productId != null and productId != ''"> and product_id = #{productId}</if>
<if test="productCode != null and productCode != ''"> and product_code like concat('%', #{productCode}, '%')</if>
<if test="productName != null and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
<if test="productSpc != null and productSpc != ''"> and product_spc = #{productSpc}</if>
<if test="unit != null and unit != ''"> and unit = #{unit}</if>
<if test="quantityProduced != null "> and quantity_produced = #{quantityProduced}</if>
<if test="quantitySplit != null "> and quantity_split = #{quantitySplit}</if>
<if test="routeCode != null and routeCode != ''"> and route_code = #{routeCode}</if>
<if test="prodLineCode != null and prodLineCode != ''"> and prod_line_code = #{prodLineCode}</if>
<if test="productDate != null "> and product_date = #{productDate}</if>
<if test="shiftId != null and shiftId != ''"> and shift_id = #{shiftId}</if>
<if test="parentOrder != null and parentOrder != ''"> and parent_order = #{parentOrder}</if>
<if test="ancestors != null and ancestors != ''"> and ancestors = #{ancestors}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
<if test="statusArray != null and statusArray != ''"> and status in (${statusArray})</if>
<if test="attr1 != null and attr1 != ''"> and attr1 = #{attr1}</if>
<if test="attr2 != null and attr2 != ''"> and attr2 = #{attr2}</if>
<if test="attr3 != null and attr3 != ''"> and attr3 = #{attr3}</if>
<if test="attr4 != null and attr4 != ''"> and attr4 = #{attr4}</if>
<if test="prodType != null and prodType != ''"> and prod_type = #{prodType}</if>
<if test="factoryCode != null and factoryCode != ''"> and factory_code = #{factoryCode}</if>
<if test="endFlag != null and endFlag != ''"> and end_flag = #{endFlag}</if>
<if test="productDateStart != null "> and CONVERT(varchar(10),product_date, 120) >= '${productDateStart}'</if>
<if test="productDateEnd != null "> and '${productDateEnd}%' >= CONVERT(varchar(10),product_date, 120)</if>
and del_flag = '0'
<if test="workorderCode != null and workorderCode != ''"> and pow.workorder_code like concat('%', #{workorderCode}, '%')</if>
<if test="workorderName != null and workorderName != ''"> and pow.workorder_name like concat('%', #{workorderName}, '%')</if>
<if test="orderId != null and orderId != ''"> and pow.order_id = #{orderId}</if>
<if test="orderCode != null and orderCode != ''"> and pow.order_code like concat('%', #{orderCode}, '%')</if>
<if test="productId != null and productId != ''"> and pow.product_id = #{productId}</if>
<if test="productCode != null and productCode != ''"> and pow.product_code like concat('%', #{productCode}, '%')</if>
<if test="productName != null and productName != ''"> and pow.product_name like concat('%', #{productName}, '%')</if>
<if test="productSpc != null and productSpc != ''"> and pow.product_spc = #{productSpc}</if>
<if test="unit != null and unit != ''"> and pow.unit = #{unit}</if>
<if test="quantityProduced != null "> and pow.quantity_produced = #{quantityProduced}</if>
<if test="quantitySplit != null "> and pow.quantity_split = #{quantitySplit}</if>
<if test="routeCode != null and routeCode != ''"> and pow.route_code = #{routeCode}</if>
<if test="prodLineCode != null and prodLineCode != ''"> and pow.prod_line_code = #{prodLineCode}</if>
<if test="productDate != null "> and pow.product_date = #{productDate}</if>
<if test="shiftId != null and shiftId != ''"> and pow.shift_id = #{shiftId}</if>
<if test="parentOrder != null and parentOrder != ''"> and pow.parent_order = #{parentOrder}</if>
<if test="ancestors != null and ancestors != ''"> and pow.ancestors = #{ancestors}</if>
<if test="status != null and status != ''"> and pow.status = #{status}</if>
<if test="statusArray != null and statusArray != ''"> and pow.status in (${statusArray})</if>
<if test="attr1 != null and attr1 != ''"> and pow.attr1 = #{attr1}</if>
<if test="attr2 != null and attr2 != ''"> and pow.attr2 = #{attr2}</if>
<if test="attr3 != null and attr3 != ''"> and pow.attr3 = #{attr3}</if>
<if test="attr4 != null and attr4 != ''"> and pow.attr4 = #{attr4}</if>
<if test="prodType != null and prodType != ''"> and pow.prod_type = #{prodType}</if>
<if test="factoryCode != null and factoryCode != ''"> and pow.factory_code = #{factoryCode}</if>
<if test="endFlag != null and endFlag != ''"> and pow.end_flag = #{endFlag}</if>
<if test="productDateStart != null "> and CONVERT(varchar(10),pow.product_date, 120) >= '${productDateStart}'</if>
<if test="productDateEnd != null "> and '${productDateEnd}%' >= CONVERT(varchar(10),pow.product_date, 120)</if>
and pow.del_flag = '0'
</where>
</select>
<select id="selectProOrderWorkorderByWorkorderId" parameterType="String" resultMap="ProOrderWorkorderResult">
@ -404,6 +413,12 @@
where workorder_code = #{workorderCode}
and del_flag = '0'
</select>
<select id="getWetMaterial" resultType="com.op.plan.domain.ProWetMaterialPlanDetail">
select top 1 material_code materialCode,
material_name materialName
from pro_wet_material_plan_detail
where workorder_id = #{workorderId} and del_flag = '0'
</select>
<insert id="createPrepareDetails">
insert into mes_prepare_detail

@ -1,14 +1,18 @@
package com.op.quality.controller;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.domain.R;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.bean.BeanUtils;
@ -20,6 +24,7 @@ import com.op.system.api.domain.SysUser;
import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
@ -262,10 +267,43 @@ public class QcCheckTaskIncomeController extends BaseController {
}
/**检测结果提交**/
@PutMapping("/commitCheckResult")
@DS("#header.poolName")
public AjaxResult commitCheckResult(@RequestBody QcCheckTaskIncome qcCheckTaskIncome) {
qcCheckTaskIncome.setUpdateBy(SecurityUtils.getUsername());
qcCheckTaskIncome.setUpdateTime(DateUtils.getNowDate());
return toAjax(qcCheckTaskIncomeService.commitCheckResult(qcCheckTaskIncome));
qcCheckTaskIncome.setUpdateByName(SecurityUtils.getLoginUser().getSysUser().getNickName());
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
qcCheckTaskIncome.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_",""));
//获取defectList
List<QcCheckTaskDetail> details = qcCheckTaskIncome.getQcCheckTaskDetails();
if (CollectionUtils.isEmpty(qcCheckTaskIncome.getDefects())) {
List<QcCheckTaskDefect> defectList = new ArrayList<>();
Map<String, List<QcCheckTaskDetail>> groupedByDefectCode = details.stream()
.filter(detail -> detail.getDefectCode() != null) // 过滤掉defectCode为null的数据
.collect(Collectors.groupingBy(QcCheckTaskDetail::getDefectCode));
defectList = groupedByDefectCode.entrySet().stream()
.map(entry -> {
String defectCode = entry.getKey();
List<QcCheckTaskDetail> detailsWithSameCode = entry.getValue();
BigDecimal sum = detailsWithSameCode.stream()
.map(QcCheckTaskDetail::getDefectQuality)
.reduce(BigDecimal::add) // 使用summingBigDecimal()方法来求和该方法内部实际上使用reduce()来实现
.orElse(BigDecimal.ZERO);
String defectSubclass = detailsWithSameCode.stream()
.map(QcCheckTaskDetail::getDefectSubclass)
.findFirst()
.orElse("");
QcCheckTaskDefect taskDefect = new QcCheckTaskDefect();
taskDefect.setDefectCode(defectCode);
taskDefect.setDefectSubclass(defectSubclass);
taskDefect.setNoOkQuality(sum);
return taskDefect;
})
.collect(Collectors.toList());
qcCheckTaskIncome.setDefects(defectList);
}
return toAjax(qcCheckTaskIncomeService.commitCheckResults(qcCheckTaskIncome));
}
/**不良类型**/

@ -8,15 +8,19 @@ import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import com.op.common.core.domain.ExcelCol;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.poi.ExcelMapUtil;
import com.op.quality.domain.QcCheckProject;
import com.op.quality.domain.QcCheckType;
import com.op.system.api.domain.quality.ChartDTO;
import com.op.system.api.domain.quality.ChartSeriesDTO;
import com.op.system.api.domain.quality.FactoryDto;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -240,6 +244,11 @@ public class QcStaticTableController extends BaseController {
return qcStaticTableService.getSupplierList(typeCode);
}
@GetMapping("/getProjectOptionList/{checkType}")
public List<QcStaticTable> getProjectList(@PathVariable("checkType") String checkType) {
return qcStaticTableService.getProjectList(checkType);
}
/**
*
*/
@ -313,4 +322,68 @@ public class QcStaticTableController extends BaseController {
util.exportExcel(response, list, "质检不良统计");
}
/**定量值分析--表头--产品名称**/
@GetMapping("/getDLTableAvgInfo")
public QcStaticTable getDLTableAvgInfo(QcStaticTable qcStaticTable) {
return qcStaticTableService.getDLTableAvgInfo(qcStaticTable);
}
@PostMapping("/exportDLTable")
public void exportDLTable(HttpServletResponse response, QcStaticTable qcStaticTable) {
QcStaticTable resultInfo = qcStaticTableService.getDLTableAvgInfo(qcStaticTable);
//第一行标题
List<String> title1Cols = resultInfo.getTitleCol1();
//第二行标题
List<String> title2Cols = resultInfo.getTitleCol2();
String titleRow1 = String.join(",", title1Cols);
//表格结构数据
ArrayList<ExcelCol> excelCols = new ArrayList<>();
excelCols.add(new ExcelCol("日期","ymdms",30));
List<String> titleKeys = new ArrayList<>();
for(int m = 0; m<title1Cols.size(); m++){
for(int n=0; n< title2Cols.size(); n++){
excelCols.add(new ExcelCol(title2Cols.get(n),"mcode"+m+"Pcode"+n,20));
titleKeys.add("mcode"+m+"Pcode"+n);
}
}
//第三行开始数据
List<HashMap> list = new ArrayList<>();
//具体数据
List<HashMap> dxData = resultInfo.getDxData();
for(HashMap mapdto:dxData){
list.add(mapdto);
List<HashMap> detailMap0 = (List<HashMap>) mapdto.get("details");
HashMap detailMap1 = new HashMap();
for(String titleKey:titleKeys){
detailMap1.put(titleKey,detailMap0.get(0).get(titleKey+"Detail"));
}
if(StringUtils.isNotBlank((String)detailMap1.get(titleKeys.get(0)))){
list.add(detailMap1);
}
}
String titleName = "定量检测项测量值";
SXSSFWorkbook workbook = null;
try {
//设置响应头
response.setHeader("Content-disposition",
"attachment; filename="+ titleName);
response.setContentType("application/octet-stream;charset=UTF-8");
ServletOutputStream outputStream = response.getOutputStream();
//调用工具类
workbook = ExcelMapUtil.initWorkbook(titleName, titleRow1, excelCols, list);
workbook.write(outputStream);
} catch (Exception e) {
e.printStackTrace();
}finally {
if (workbook!=null){
workbook.dispose();
}
}
}
}

@ -238,6 +238,14 @@ public class QuaController extends BaseController {
List<QcCheckTaskIncome> list = qcCheckTaskIncomeService.getLLWorkOrder(qcCheckTaskIncome);
return getDataTable(list);
}
/**不良类型**/
@PutMapping("/getDefectListPDA")
public List<QcDefectType> getDefectListPDA(@RequestBody QcDefectType qcDefectType) {
DynamicDataSourceContextHolder.push(qcDefectType.getFactoryCode());
return qcCheckTaskIncomeService.getDefectList(qcDefectType);
}
/**获取生产工单列表**/
@GetMapping("/getWorkOrder")
public TableDataInfo getWorkOrder(QcCheckTaskIncome qcCheckTaskIncome) {

@ -95,6 +95,8 @@ public class QcCheckTaskDetail extends BaseEntity {
private List<String> actualValues;
private String typeProjectId;
private String defectCode;
private BigDecimal defectQuality;
private String defectSubclass;
private String checkType;
private String fileListStr;
private List<BaseFile> files;
@ -360,6 +362,22 @@ public class QcCheckTaskDetail extends BaseEntity {
return delFlag;
}
public BigDecimal getDefectQuality() {
return defectQuality;
}
public void setDefectQuality(BigDecimal defectQuality) {
this.defectQuality = defectQuality;
}
public String getDefectSubclass() {
return defectSubclass;
}
public void setDefectSubclass(String defectSubclass) {
this.defectSubclass = defectSubclass;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -154,6 +154,33 @@ public class QcCheckTaskProduce extends BaseEntity {
private String productType;
private String confirmManCode;
private String confirmManName;
private String confirm;
private String confirmRemark;
private String confirmTime;
public String getConfirm() {
return confirm;
}
public void setConfirm(String confirm) {
this.confirm = confirm;
}
public String getConfirmRemark() {
return confirmRemark;
}
public void setConfirmRemark(String confirmRemark) {
this.confirmRemark = confirmRemark;
}
public String getConfirmTime() {
return confirmTime;
}
public void setConfirmTime(String confirmTime) {
this.confirmTime = confirmTime;
}
public String getConfirmManCode() {
return confirmManCode;

@ -8,6 +8,7 @@ import com.op.system.api.domain.quality.ChartSeriesDTO;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/**
@ -99,6 +100,51 @@ public class QcStaticTable extends BaseEntity {
private String startDateStr;
private String endDateStr;
private String checkType;
private List<String> titleCol1;
private List<String> titleCol2;
private List<HashMap> dxData;
private List<HashMap> details;
private String[] projectNoArray;
public String[] getProjectNoArray() {
return projectNoArray;
}
public void setProjectNoArray(String[] projectNoArray) {
this.projectNoArray = projectNoArray;
}
public List<HashMap> getDetails() {
return details;
}
public void setDetails(List<HashMap> details) {
this.details = details;
}
public List<String> getTitleCol1() {
return titleCol1;
}
public void setTitleCol1(List<String> titleCol1) {
this.titleCol1 = titleCol1;
}
public List<String> getTitleCol2() {
return titleCol2;
}
public void setTitleCol2(List<String> titleCol2) {
this.titleCol2 = titleCol2;
}
public List<HashMap> getDxData() {
return dxData;
}
public void setDxData(List<HashMap> dxData) {
this.dxData = dxData;
}
public String getCheckType() {
return checkType;

@ -81,4 +81,5 @@ public interface QcCheckReportIncomeMapper {
QcCheckReportIncome getXJTaskInfo(QcCheckReportIncome qcCheckReportIncome);
QcCheckReportIncome getLastXJTaskInfo(QcCheckReportIncome qcCheckReportIncome);
QcCheckTaskProduce getLastProductTypeInfo(QcCheckTaskProduce qcCheckTaskProduce);
}

@ -62,4 +62,10 @@ public interface QcStaticTableMapper {
List<QcStaticTable> getLocList();
List<QcStaticTable> getWorkcenter();
@MapKey("recordId")
Map<String, QcStaticTable> picsMap(QcStaticTable qcStaticTable);
List<QcStaticTable> getDLTableTitle(QcStaticTable qcStaticTable);
List<QcStaticTable> getProjectList(String checkType);
}

@ -43,4 +43,8 @@ public interface IQcStaticTableService {
List<QcCheckType> getCheckTypeList(String typeCode);
List<QcStaticTable> getSupplierList(String typeCode);
QcStaticTable getDLTableAvgInfo(QcStaticTable qcStaticTable);
List<QcStaticTable> getProjectList(String checkType);
}

@ -209,6 +209,14 @@ public class QcCheckReportProduceServiceImpl implements IQcCheckReportProduceSer
qcStaticTable.setOrderNo(qcCheckTaskProduce.getOrderNo());
List<QcStaticTable> checkInfos = qcStaticTableService.getXJCheckTableDetail(qcStaticTable);
produce.setCheckInfos(checkInfos);
QcCheckTaskProduce lastProduce = qcCheckReportIncomeMapper.getLastProductTypeInfo(qcCheckTaskProduce);
if(lastProduce != null ){
produce.setProductType(lastProduce.getProductType());
produce.setCheckManCode(lastProduce.getCheckManCode());
produce.setCheckManName(lastProduce.getCheckManName());
produce.setConfirmManCode(lastProduce.getConfirmManCode());
produce.setConfirmManName(lastProduce.getConfirmManName());
}
return produce;
}
@ -224,6 +232,7 @@ public class QcCheckReportProduceServiceImpl implements IQcCheckReportProduceSer
//最后一条巡检记录得确认人当最终确认人
QcCheckReportIncome lastData = qcCheckReportIncomeMapper.getLastXJTaskInfo(qcCheckReportIncome);
if(lastData!=null ){
taskInfo.setProductType(lastData.getProductType());
taskInfo.setConfirmManCode(lastData.getConfirmManCode());
taskInfo.setConfirmManName(lastData.getConfirmManName());
taskInfo.setConfirm(lastData.getConfirm());

@ -649,27 +649,30 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService {
qcCheckTaskIncome.setCheckResult(result.equals("Y")?"1":"2");
qcCheckUnqualifiedMapper.updateQualityStatus(qcCheckTaskIncome);
}else if("produce".equals(qcCheckTaskIncome.getTypeCode())){
/**pro_order_workorder_batch-->status->w5**/
qcCheckTaskIncome.setStatus("2");
qcCheckUnqualifiedMapper.updateWorkOrderBatchStatus(qcCheckTaskIncome);
if("checkTypeSC".equals(qcCheckTaskIncome.getCheckType())){
/**pro_order_workorder_batch-->qc_status->2**/
qcCheckTaskIncome.setStatus("2");
qcCheckUnqualifiedMapper.updateWorkOrderBatchStatus(qcCheckTaskIncome);
}
if("checkTypeSC".equals(qcCheckTaskIncome.getCheckType())&&"N".equals(result)){
QcCheckTaskIncome recheck = new QcCheckTaskIncome();
recheck.setOldBelongTo(belongId);
recheck.setBelongTo(recheck.getRecordId());
recheck.setCreateBy(updateBy);
recheck.setCreateTime(nowTime);
//首件不合格触发复检
recheck.setRecordId(IdUtils.fastSimpleUUID());
recheck.setBelongTo(recheck.getRecordId());
n = qcCheckUnqualifiedMapper.repeatCheckTask(recheck);
logger.info("复检表qc_check_task:" + n);
recheck.setRecordId(IdUtils.fastSimpleUUID());
n = qcCheckUnqualifiedMapper.repeatCheckTaskDefect(recheck);
logger.info("复检表qc_check_task_defect:" + n);
recheck.setRecordId(IdUtils.fastSimpleUUID());
n = qcCheckUnqualifiedMapper.repeatCheckTaskDetail(recheck);
logger.info("复检表qc_check_task_detail:" + n);
recheck.setRecordId(IdUtils.fastSimpleUUID());
n = qcCheckUnqualifiedMapper.repeatCheckTaskUser(recheck);
logger.info("复检表qc_check_task_user:" + n);

@ -166,202 +166,202 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
public List<QcStaticTable> getXJCheckTableDetail(QcStaticTable qcStaticTable) {
List<QcStaticTable> projects = qcStaticTableMapper.getXJProjects(qcStaticTable);
Map<String,QcStaticTable> detailMap = qcStaticTableMapper.getProjectDetail(qcStaticTable);
Map<String,QcStaticTable> picsMap = qcStaticTableMapper.picsMap(qcStaticTable);
for(QcStaticTable project:projects){
this.getDataFromMap(detailMap,project);
this.getDataFromMap(detailMap,project,picsMap);
}
return projects;
}
private void getDataFromMap(Map<String,QcStaticTable> detailMap,QcStaticTable project){
private void getDataFromMap(Map<String,QcStaticTable> detailMap,QcStaticTable project,Map<String,QcStaticTable> picsMap){
String keystr = project.getProjectId()+"08";
QcStaticTable detail = detailMap.get(keystr);
if(detail!=null&&StringUtils.isNotBlank(detail.getRemark())){
project.setColumn080090(detail.getRemark());
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(detail.getRecordId());
if (!CollectionUtils.isEmpty(files)) {
List<String> pics = files.stream().map(BaseFile::getFileAddress).collect(Collectors.toList());
String picurls = pics.stream().collect(Collectors.joining(","));
project.setColumn080090(project.getColumn080090()+","+picurls);
}
}else if(detail!=null&&StringUtils.isNotBlank(detail.getStatus())){
project.setColumn080090(detail.getStatus().equals("Y")?"✓":"✘");
if(detail!=null) {
if (StringUtils.isNotBlank(detail.getRemark())) {
project.setColumn080090(detail.getRemark());
} else if (detail != null && StringUtils.isNotBlank(detail.getStatus())) {
project.setColumn080090(detail.getStatus().equals("Y") ? "✓" : "✘");
}
QcStaticTable urlDTO = picsMap.get(detail.getRecordId());
if(urlDTO!=null){
project.setColumn080090(project.getColumn080090()+","+urlDTO.getProjectId().replace("&amp;","&"));//projectId存的照片路径
}
}else{
project.setColumn080090("-");
}
keystr = project.getProjectId()+"09";
detail = detailMap.get(keystr);
if(detail!=null && StringUtils.isNotBlank(detail.getRemark())){
project.setColumn090100(detail.getRemark());
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(detail.getRecordId());
if (!CollectionUtils.isEmpty(files)) {
List<String> pics = files.stream().map(BaseFile::getFileAddress).collect(Collectors.toList());
String picurls = pics.stream().collect(Collectors.joining(","));
project.setColumn090100(project.getColumn090100()+","+picurls);
}
}else if(detail!=null&&StringUtils.isNotBlank(detail.getStatus())){
project.setColumn090100(detail.getStatus().equals("Y")?"✓":"✘");
if(detail!=null){
if(StringUtils.isNotBlank(detail.getRemark())){
project.setColumn090100(detail.getRemark());
}else if(detail!=null&&StringUtils.isNotBlank(detail.getStatus())){
project.setColumn090100(detail.getStatus().equals("Y")?"✓":"✘");
}
QcStaticTable urlDTO = picsMap.get(detail.getRecordId());
if(urlDTO!=null){
project.setColumn090100(project.getColumn090100()+","+urlDTO.getProjectId().replace("&amp;","&"));//projectId存的照片路径
}
}else{
project.setColumn090100("-");
}
keystr = project.getProjectId()+"10";
detail = detailMap.get(keystr);
if(detail!=null && StringUtils.isNotBlank(detail.getRemark())){
project.setColumn100110(detail.getRemark());
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(detail.getRecordId());
if (!CollectionUtils.isEmpty(files)) {
List<String> pics = files.stream().map(BaseFile::getFileAddress).collect(Collectors.toList());
String picurls = pics.stream().collect(Collectors.joining(","));
project.setColumn100110(project.getColumn100110()+","+picurls);
}
}else if(detail!=null&&StringUtils.isNotBlank(detail.getStatus())){
project.setColumn100110(detail.getStatus().equals("Y")?"✓":"✘");
if(detail!=null){
if(StringUtils.isNotBlank(detail.getRemark())){
project.setColumn100110(detail.getRemark());
}else if(detail!=null&&StringUtils.isNotBlank(detail.getStatus())){
project.setColumn100110(detail.getStatus().equals("Y")?"✓":"✘");
}
QcStaticTable urlDTO = picsMap.get(detail.getRecordId());
if(urlDTO!=null){
project.setColumn100110(project.getColumn100110()+","+urlDTO.getProjectId().replace("&amp;","&"));//projectId存的照片路径
}
}else{
project.setColumn100110("-");
}
keystr = project.getProjectId()+"11";
detail = detailMap.get(keystr);
if(detail!=null && StringUtils.isNotBlank(detail.getRemark())){
project.setColumn110120(detail.getRemark());
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(detail.getRecordId());
if (!CollectionUtils.isEmpty(files)) {
List<String> pics = files.stream().map(BaseFile::getFileAddress).collect(Collectors.toList());
String picurls = pics.stream().collect(Collectors.joining(","));
project.setColumn110120(project.getColumn110120()+","+picurls);
}
}else if(detail!=null&&detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn110120(detail.getStatus().equals("Y")?"✓":"✘");
if(detail!=null){
if(StringUtils.isNotBlank(detail.getRemark())){
project.setColumn110120(detail.getRemark());
}else if(detail!=null&&detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn110120(detail.getStatus().equals("Y")?"✓":"✘");
}
QcStaticTable urlDTO = picsMap.get(detail.getRecordId());
if(urlDTO!=null){
project.setColumn110120(project.getColumn110120()+","+urlDTO.getProjectId().replace("&amp;","&"));//projectId存的照片路径
}
}else{
project.setColumn110120("-");
}
keystr = project.getProjectId()+"12";
detail = detailMap.get(keystr);
if(detail!=null && StringUtils.isNotBlank(detail.getRemark())){
project.setColumn123133(detail.getRemark());
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(detail.getRecordId());
if (!CollectionUtils.isEmpty(files)) {
List<String> pics = files.stream().map(BaseFile::getFileAddress).collect(Collectors.toList());
String picurls = pics.stream().collect(Collectors.joining(","));
project.setColumn123133(project.getColumn123133()+","+picurls);
}
}else if(detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn123133(detail.getStatus().equals("Y")?"✓":"✘");
if(detail!=null) {
if (StringUtils.isNotBlank(detail.getRemark())) {
project.setColumn123133(detail.getRemark());
} else if (detail != null && StringUtils.isNotBlank(detail.getStatus())) {
project.setColumn123133(detail.getStatus().equals("Y") ? "✓" : "✘");
}
QcStaticTable urlDTO = picsMap.get(detail.getRecordId());
if(urlDTO!=null){
project.setColumn123133(project.getColumn123133()+","+urlDTO.getProjectId().replace("&amp;","&"));//projectId存的照片路径
}
}else{
project.setColumn123133("-");
}
keystr = project.getProjectId()+"13";
detail = detailMap.get(keystr);
if(detail!=null && StringUtils.isNotBlank(detail.getRemark())){
project.setColumn133143(detail.getRemark());
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(detail.getRecordId());
if (!CollectionUtils.isEmpty(files)) {
List<String> pics = files.stream().map(BaseFile::getFileAddress).collect(Collectors.toList());
String picurls = pics.stream().collect(Collectors.joining(","));
project.setColumn133143(project.getColumn133143()+","+picurls);
}
}else if(detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn133143(detail.getStatus().equals("Y")?"✓":"✘");
if(detail!=null){
if(StringUtils.isNotBlank(detail.getRemark())){
project.setColumn133143(detail.getRemark());
}else if(detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn133143(detail.getStatus().equals("Y")?"✓":"✘");
}
QcStaticTable urlDTO = picsMap.get(detail.getRecordId());
if(urlDTO!=null){
project.setColumn133143(project.getColumn133143()+","+urlDTO.getProjectId().replace("&amp;","&"));//projectId存的照片路径
}
}else{
project.setColumn133143("-");
}
keystr = project.getProjectId()+"14";
detail = detailMap.get(keystr);
if(detail!=null && StringUtils.isNotBlank(detail.getRemark())){
project.setColumn143153(detail.getRemark());
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(detail.getRecordId());
if (!CollectionUtils.isEmpty(files)) {
List<String> pics = files.stream().map(BaseFile::getFileAddress).collect(Collectors.toList());
String picurls = pics.stream().collect(Collectors.joining(","));
project.setColumn143153(project.getColumn143153()+","+picurls);
}
}else if(detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn143153(detail.getStatus().equals("Y")?"✓":"✘");
if(detail!=null) {
if (StringUtils.isNotBlank(detail.getRemark())) {
project.setColumn143153(detail.getRemark());
} else if (detail != null && StringUtils.isNotBlank(detail.getStatus())) {
project.setColumn143153(detail.getStatus().equals("Y") ? "✓" : "✘");
}
QcStaticTable urlDTO = picsMap.get(detail.getRecordId());
if(urlDTO!=null){
project.setColumn143153(project.getColumn143153()+","+urlDTO.getProjectId().replace("&amp;","&"));//projectId存的照片路径
}
}else{
project.setColumn143153("-");
}
keystr = project.getProjectId()+"15";
detail = detailMap.get(keystr);
if(detail!=null && StringUtils.isNotBlank(detail.getRemark())){
project.setColumn153163(detail.getRemark());
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(detail.getRecordId());
if (!CollectionUtils.isEmpty(files)) {
List<String> pics = files.stream().map(BaseFile::getFileAddress).collect(Collectors.toList());
String picurls = pics.stream().collect(Collectors.joining(","));
project.setColumn153163(project.getColumn153163()+","+picurls);
}
}else if(detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn153163(detail.getStatus().equals("Y")?"✓":"✘");
if(detail!=null) {
if (StringUtils.isNotBlank(detail.getRemark())) {
project.setColumn153163(detail.getRemark());
} else if (detail != null && StringUtils.isNotBlank(detail.getStatus())) {
project.setColumn153163(detail.getStatus().equals("Y") ? "✓" : "✘");
}
QcStaticTable urlDTO = picsMap.get(detail.getRecordId());
if(urlDTO!=null){
project.setColumn153163(project.getColumn153163()+","+urlDTO.getProjectId().replace("&amp;","&"));//projectId存的照片路径
}
}else{
project.setColumn153163("-");
}
keystr = project.getProjectId()+"16";
detail = detailMap.get(keystr);
if(detail!=null && StringUtils.isNotBlank(detail.getRemark())){
project.setColumn163173(detail.getRemark());
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(detail.getRecordId());
if (!CollectionUtils.isEmpty(files)) {
List<String> pics = files.stream().map(BaseFile::getFileAddress).collect(Collectors.toList());
String picurls = pics.stream().collect(Collectors.joining(","));
project.setColumn163173(project.getColumn163173()+","+picurls);
}
}else if(detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn163173(detail.getStatus().equals("Y")?"✓":"✘");
if(detail!=null) {
if(StringUtils.isNotBlank(detail.getRemark())){
project.setColumn163173(detail.getRemark());
}else if(detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn163173(detail.getStatus().equals("Y")?"✓":"✘");
}
QcStaticTable urlDTO = picsMap.get(detail.getRecordId());
if(urlDTO!=null){
project.setColumn163173(project.getColumn163173()+","+urlDTO.getProjectId().replace("&amp;","&"));//projectId存的照片路径
}
}else{
project.setColumn163173("-");
}
keystr = project.getProjectId()+"18";
detail = detailMap.get(keystr);
if(detail!=null && StringUtils.isNotBlank(detail.getRemark())){
project.setColumn180190(detail.getRemark());
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(detail.getRecordId());
if (!CollectionUtils.isEmpty(files)) {
List<String> pics = files.stream().map(BaseFile::getFileAddress).collect(Collectors.toList());
String picurls = pics.stream().collect(Collectors.joining(","));
project.setColumn180190(project.getColumn180190()+","+picurls);
}
}else if(detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn180190(detail.getStatus().equals("Y")?"✓":"✘");
if(detail!=null) {
if(StringUtils.isNotBlank(detail.getRemark())){
project.setColumn180190(detail.getRemark());
}else if(detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn180190(detail.getStatus().equals("Y")?"✓":"✘");
}
QcStaticTable urlDTO = picsMap.get(detail.getRecordId());
if(urlDTO!=null){
project.setColumn180190(project.getColumn180190()+","+urlDTO.getProjectId().replace("&amp;","&"));//projectId存的照片路径
}
}else{
project.setColumn180190("-");
}
keystr = project.getProjectId()+"19";
detail = detailMap.get(keystr);
if(detail!=null && StringUtils.isNotBlank(detail.getRemark())){
project.setColumn190200(detail.getRemark());
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(detail.getRecordId());
if (!CollectionUtils.isEmpty(files)) {
List<String> pics = files.stream().map(BaseFile::getFileAddress).collect(Collectors.toList());
String picurls = pics.stream().collect(Collectors.joining(","));
project.setColumn190200(project.getColumn190200()+","+picurls);
}
}else if(detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn190200(detail.getStatus().equals("Y")?"✓":"✘");
if(detail!=null) {
if(StringUtils.isNotBlank(detail.getRemark())){
project.setColumn190200(detail.getRemark());
}else if(detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn190200(detail.getStatus().equals("Y")?"✓":"✘");
}
QcStaticTable urlDTO = picsMap.get(detail.getRecordId());
if(urlDTO!=null){
project.setColumn190200(project.getColumn190200()+","+urlDTO.getProjectId().replace("&amp;","&"));//projectId存的照片路径
}
}else{
project.setColumn190200("-");
}
keystr = project.getProjectId()+"20";
detail = detailMap.get(keystr);
if(detail!=null && StringUtils.isNotBlank(detail.getRemark())){
project.setColumn200210(detail.getRemark());
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(detail.getRecordId());
if (!CollectionUtils.isEmpty(files)) {
List<String> pics = files.stream().map(BaseFile::getFileAddress).collect(Collectors.toList());
String picurls = pics.stream().collect(Collectors.joining(","));
project.setColumn200210(project.getColumn200210()+","+picurls);
}
}else if(detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn200210(detail.getStatus().equals("Y")?"✓":"✘");
if(detail!=null) {
if(StringUtils.isNotBlank(detail.getRemark())){
project.setColumn200210(detail.getRemark());
}else if(detail!=null && StringUtils.isNotBlank(detail.getStatus())){
project.setColumn200210(detail.getStatus().equals("Y")?"✓":"✘");
}
QcStaticTable urlDTO = picsMap.get(detail.getRecordId());
if(urlDTO!=null){
project.setColumn200210(project.getColumn200210()+","+urlDTO.getProjectId().replace("&amp;","&"));//projectId存的照片路径
}
}else{
project.setColumn200210("-");
}
@ -471,6 +471,70 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
return dtos;
}
@Override
@DS("#header.poolName")
public QcStaticTable getDLTableAvgInfo(QcStaticTable qcStaticTable) {
QcStaticTable dto = new QcStaticTable();
//第一列日期
List<String> days = this.getDays(qcStaticTable.getYmArrayStart(),
qcStaticTable.getYmArrayEnd(),"ymd");
qcStaticTable.setDataType("ymd");
List<QcStaticTable> titleList = qcStaticTableMapper.getDLTableTitle(qcStaticTable);
Map<String, QcStaticTable> titleMap = titleList.stream().collect(Collectors.toMap(QcStaticTable::getYearMonth, (a) -> a));
//表头:第一行
List<String> colName1 = titleList.stream().map(QcStaticTable::getMaterialName).distinct().collect(Collectors.toList());
List<String> colCode1 = titleList.stream().map(QcStaticTable::getMaterialCode).distinct().collect(Collectors.toList());
dto.setTitleCol1(colName1);
//表头:第二行
List<String> colName2 = titleList.stream().map(QcStaticTable::getRuleName).distinct().collect(Collectors.toList());
List<String> colCode2 = titleList.stream().map(QcStaticTable::getProjectNo).distinct().collect(Collectors.toList());
dto.setTitleCol2(colName2);
//均值列表
List<HashMap> dxData = new ArrayList<>();
for(String day:days){
HashMap result = new HashMap();
List<HashMap> detailsData = new ArrayList<>();
HashMap detailResult = new HashMap();
result.put("ymdms",day+" AVG");
int i=0,j=0;
for(int m=0;m<colCode1.size();m++){
for(int n=0;n<colCode2.size();n++){
String key = colCode1.get(m)+"-"+colCode2.get(n)+"-"+day;
QcStaticTable avgdto = titleMap.get(key);
if(avgdto!=null){
String avgArrayStr = avgdto.getQuality().replace("[","")
.replace("]","")
.replace("\"","");
List<String> avgArray = Arrays.asList(avgArrayStr.split(","));
BigDecimal addVal = new BigDecimal("0.00");
for(String avgVal:avgArray){
addVal = addVal.add(new BigDecimal(avgVal));
}
BigDecimal avg = addVal.divide(new BigDecimal(avgArray.size()),2,BigDecimal.ROUND_HALF_UP);
result.put("mcode"+m+"Pcode"+n,avg);
detailResult.put("mcode"+m+"Pcode"+n+"Detail",avgArrayStr.replace(",","\n"));
}else{
result.put("mcode"+m+"Pcode"+n,"0.00");
detailResult.put("mcode"+m+"Pcode"+n+"Detail","");
}
}
}
detailsData.add(detailResult);
result.put("details",detailsData);
dxData.add(result);
}
dto.setDxData(dxData);
return dto;
}
@Override
@DS("#header.poolName")
public List<QcStaticTable> getProjectList(String checkType) {
return qcStaticTableMapper.getProjectList(checkType);
}
private List<String> getHourProductionTitle(QcStaticTable qcStaticTable) {
// 返回的日期集合
@ -501,6 +565,50 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
return dayHours;
}
public List<String> getDays(String startMonth,String endMonth,String type){
// 返回的日期集合
List<String> days = new ArrayList<String>();
DateFormat dateFormat = null;
try {
Calendar tempStart = null;
Calendar tempEnd = null;
if("ymd".equals(type)){
dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date start = dateFormat.parse(startMonth);//开始
Date end = dateFormat.parse(endMonth);//结束
tempStart = Calendar.getInstance();
tempStart.setTime(start);
tempEnd = Calendar.getInstance();
tempEnd.setTime(end);
tempEnd.add(Calendar.DAY_OF_MONTH, 1);
}else{
dateFormat = new SimpleDateFormat("yyyy-MM");
Date start = dateFormat.parse(startMonth);//开始
Date end = dateFormat.parse(endMonth);//结束
tempStart = Calendar.getInstance();
tempStart.setTime(start);
tempEnd = Calendar.getInstance();
tempEnd.setTime(end);
tempEnd.add(Calendar.MONTH, 1);
}
while (tempStart.before(tempEnd)) {
days.add(dateFormat.format(tempStart.getTime()));
if("ymd".equals(type)) {
tempStart.add(Calendar.DAY_OF_MONTH, 1);
}else{
tempStart.add(Calendar.MONTH, 1);
}
}
} catch (ParseException e) {
e.printStackTrace();
}
return days;
}
}

@ -137,6 +137,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
td.create_time createTime,
td.update_by updateBy,
td.update_time updateTime,
td.defect_code defectCode,
td.defect_quality defectQuality,
qctp.upper_diff upperDiff,
qctp.down_diff downDiff,
qctp.sample,
@ -208,6 +210,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT
top 1
c.confirm,
c.product_type productType,
c.confirm_man_code confirmManCode,
c.confirm_man_name confirmManName,
c.confirm_remark confirmRemark,
@ -217,6 +220,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where c.check_type='checkTypeSCXJ' and c.order_no = #{orderNo}
order by c.create_time desc
</select>
<select id="getLastProductTypeInfo" resultType="com.op.quality.domain.QcCheckTaskProduce">
SELECT
top 1
c.product_type productType,
c.check_man_code checkManCode,
c.check_man_name checkManName,
c.confirm_man_code confirmManCode,
c.confirm_man_name confirmManName
FROM
qc_check_task c
where c.check_type='checkTypeSCXJ' and c.order_no = #{orderNo}
order by c.create_time desc
</select>
<insert id="insertQcCheckReportIncome" parameterType="QcCheckReportIncome">
insert into qc_check_task
<trim prefix="(" suffix=")" suffixOverrides=",">

@ -168,6 +168,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="factoryCode != null and factoryCode != ''">factory_code = #{factoryCode},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="defectCode != null">defect_code = #{defectCode},</if>
<if test="defectQuality != null">defect_quality = #{defectQuality},</if>
</trim>
where record_id = #{recordId}
</update>

@ -78,6 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="checkType != null "> and qct.check_type = #{checkType} </if>
<if test="typeCode != null "> and qct.type_code = #{typeCode} </if>
</where>
order by qct.create_time DESC
</select>
<select id="selectQcCheckTaskIncomeByRecordId" parameterType="String" resultMap="QcCheckTaskIncomeResult">
@ -132,6 +133,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
td.update_by updateBy,
td.update_time updateTime,
td.belong_to belongTo,
td.defect_code defectCode,
td.defect_quality defectQuality,
qctp.upper_diff upperDiff,
qctp.down_diff downDiff,
qctp.sample
@ -295,7 +298,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
status = #{item.status},
update_by = #{item.updateBy},
update_time = #{item.updateTime},
remark = #{item.remark}
remark = #{item.remark},
defect_code = #{item.defectCode},
defect_quality = #{item.defectQuality}
where
record_id = #{item.recordId}
</foreach>

@ -39,6 +39,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="noOkQuality" column="noOk_quality"/>
<result property="reason" column="reason" />
<result property="productType" column="product_type" />
<result property="confirm" column="confirm" />
<result property="confirmManCode" column="confirm_man_code" />
<result property="confirmManName" column="confirm_man_name" />
<result property="confirmRemark" column="confirm_remark" />
<result property="confirmTime" column="confirm_time" />
</resultMap>
<resultMap type="QcCheckReportIncome" id="QcCheckReportIncomeResult">
@ -86,7 +91,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
check_man_code, check_man_name, check_time, check_result, status, attr1,
attr2, attr3, attr4, create_by, create_time, update_by, update_time,
factory_code, del_flag , check_type,sample_quality,noOk_quality,
aNoOkquality,bNoOkquality,cNoOkquality,reason,product_type
aNoOkquality,bNoOkquality,cNoOkquality,reason,product_type,
confirm,confirm_man_code,confirm_man_name,confirm_remark ,confirm_time
from qc_check_task
</sql>
@ -124,6 +130,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="checkType != null "> and qct.check_type = #{checkType} </if>
<if test="typeCode != null "> and q.type_code = #{typeCode} </if>
</where>
order by qct.create_time desc
</select>
<select id="selectQcCheckTaskProduceByRecordId" parameterType="String" resultMap="QcCheckTaskProduceResult">
@ -160,16 +167,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
qct.supplier_name supplierName,
qct.income_time incomeTime,
max(qct.create_time) createTime,
qct.check_loc checkLoc
qct.check_loc checkLoc,
qct.product_type productType,
qct.confirm_man_code confirmManCode,
qct.confirm_man_name confirmManName
from qc_check_task qct
left join pro_order_workorder pow on qct.order_no = pow.workorder_code
where check_type = 'checkTypeSCXJ'
where check_type = 'checkTypeSCXJ' and qct.del_flag = '0' and pow.del_flag = '0'
and CONVERT(varchar(10),income_time, 120) = CONVERT(varchar(10),GETDATE(), 120)
and pow.status = 'w2' and pow.parent_order = '0'
group by qct.factory_code,
qct.order_no,qct.material_code,qct.material_name,
qct.quality,qct.unit,qct.supplier_code,qct.supplier_name,
qct.income_time,qct.check_loc
qct.income_time,qct.check_loc,
qct.product_type,qct.confirm_man_code,qct.confirm_man_name
</select>
<insert id="insertQcCheckTaskProduce" parameterType="QcCheckTaskProduce">

@ -75,6 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
defect_subclass defectSubclass
from qc_defect_type
where defect_type = #{defectType} and del_flag='0'
order by create_time
</select>
<select id="getUnqualifiedList" resultType="com.op.quality.domain.QcCheckUnqualified">
select qcu.id,qcu.task_id taskId,qcu.status,qcu.next_node_code nextNodeCode,qcu.next_node_name nextNodeName,qcu.remark,

@ -82,23 +82,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="getProduceChartDataYM" resultType="com.op.quality.domain.QcStaticTable">
select
concat(qct.material_code,CONVERT(varchar(7),qct.income_time, 120)) materailDate,
<if test='dataType=="ymd" '>
concat(qct.material_code,CONVERT(varchar(10),qct.income_time, 120)) materailDate,
</if>
<if test='dataType=="ym" '>
concat(qct.material_code,CONVERT(varchar(7),qct.income_time, 120)) materailDate,
</if>
qct.material_code materialCode,
qct.material_name materialName,
sum(qct.sample_quality) sampleQuality,
sum(qct.aNoOkquality) aNoOkquality,
sum(qct.bNoOkquality) bNoOkquality,
sum(qct.cNoOkquality) cNoOkquality,
CONVERT(varchar(7),qct.income_time, 120) incomeTime
CONVERT(varchar(7),qct.income_time, 120)
from qc_check_task qct
where qct.del_flag = '0' and qct.type_code = 'produce'
<if test="materialCode != null "> and qct.material_code in (${materialCode})</if>
<if test="workCenter != null "> and qct.supplier_code = #{workCenter}</if>
<if test="ymArrayStart != null "> and CONVERT(varchar(10),qct.income_time, 120) >= #{ymArrayStart}</if>
<if test="ymArrayEnd != null "> and #{ymArrayEnd}>= CONVERT(varchar(10),qct.income_time, 120)</if>
<if test='ymArrayStart != null and dataType=="ym" '> and CONVERT(varchar(7),qct.income_time, 120) >= #{ymArrayStart}</if>
<if test='ymArrayEnd != null and dataType=="ym"'> and #{ymArrayEnd}>= CONVERT(varchar(7),qct.income_time, 120)</if>
<if test='ymArrayStart != null and dataType=="ymd" '> and CONVERT(varchar(10),qct.income_time, 120) >= #{ymArrayStart}</if>
<if test='ymArrayEnd != null and dataType=="ymd"'> and #{ymArrayEnd}>= CONVERT(varchar(10),qct.income_time, 120)</if>
group by qct.material_code ,
qct.material_name ,
CONVERT(varchar(7),qct.income_time, 120)
qct.material_name
<if test='dataType=="ymd" '>
,CONVERT(varchar(10),qct.income_time, 120)
</if>
<if test='dataType=="ym" '>
,CONVERT(varchar(7),qct.income_time, 120)
</if>
</select>
<select id="getWorkcenterList" resultType="com.op.system.api.domain.quality.FactoryDto">
select factory_name factoryName,
@ -230,4 +242,104 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
factory_code supplierCode
from sys_factory where f_type = 'c'
</select>
<select id="picsMap" resultType="com.op.quality.domain.QcStaticTable">
SELECT
t.source_id recordId,
STUFF(
(SELECT ',' + file_address
FROM (
select file_address,source_id from base_file where source_id in(
select record_id from qc_check_task_detail where beLong_to in (
select record_id from qc_check_task
where order_no = #{orderNo} and check_type = 'checkTypeSCXJ')
)
) t0
WHERE t.source_id = t0.source_id
FOR xml path('')
),1,1,''
) projectId
FROM (
select file_address,source_id from base_file where source_id in(
select record_id from qc_check_task_detail where beLong_to in (
select record_id from qc_check_task
where order_no = #{orderNo} and check_type = 'checkTypeSCXJ')
)
) t
GROUP by t.source_id
</select>
<select id="getDLTableTitle" resultType="com.op.quality.domain.QcStaticTable">
SELECT
concat(q.material_code,'-',q.project_no,'-',CONVERT(varchar(10),q.ymdms, 120)) yearMonth,
material_code materialCode,
material_name materialName,
ymdms,rule_name ruleName,
project_no projectNo,
STUFF(
(SELECT ',' + t.actual_value
FROM (select
qct.material_code,qct.material_name,
CONVERT(varchar(10),qct.income_time, 120) ymdms,
qctd.rule_name, qctd.project_no,qctd.actual_value
from qc_check_task qct
left join qc_check_task_detail qctd on qct.record_id = qctd.belong_to
where qct.check_type = #{checkType} and qctd.property_code = '1' and qct.check_time is not null
<if test="ymArrayStart != null "> and CONVERT(varchar(10),qct.income_time, 120) >= CONVERT(varchar(10),#{ymArrayStart}, 120)</if>
<if test="ymArrayEnd != null "> and CONVERT(varchar(10),#{ymArrayEnd}, 120)>=CONVERT(varchar(10),qct.income_time, 120)</if>
<if test="projectNoArray != null "> and qctd.project_id in(
<foreach collection="projectNoArray" separator="," item="projectId">
#{projectId}
</foreach>
)
</if>
<if test="orderNo != null ">
and qct.order_no = #{orderNo}
</if>
<if test="materialCode != null ">
and qct.material_code = #{materialCode}
</if>
<if test="supplierCode != null ">
and qct.supplier_code = #{supplierCode}
</if>
) t
WHERE t.material_code = q.material_code and t.project_no = q.project_no and t.ymdms=q.ymdms
FOR xml path('')
),1,1,''
) quality
FROM (
select
qct.material_code,qct.material_name,
CONVERT(varchar(10),qct.income_time, 120) ymdms,
qctd.rule_name,qctd.project_no,qctd.actual_value
from qc_check_task qct
left join qc_check_task_detail qctd on qct.record_id = qctd.belong_to
where qct.check_type = #{checkType} and qctd.property_code = '1' and qct.check_time is not null
<if test="ymArrayStart != null "> and CONVERT(varchar(10),qct.income_time, 120) >= CONVERT(varchar(10),#{ymArrayStart}, 120)</if>
<if test="ymArrayEnd != null "> and CONVERT(varchar(10),#{ymArrayEnd}, 120)>=CONVERT(varchar(10),qct.income_time, 120)</if>
<if test="projectNoArray != null "> and qctd.project_id in(
<foreach collection="projectNoArray" separator="," item="projectId">
#{projectId}
</foreach>
)
</if>
<if test="orderNo != null ">
and qct.order_no = #{orderNo}
</if>
<if test="materialCode != null ">
and qct.material_code = #{materialCode}
</if>
<if test="supplierCode != null ">
and qct.supplier_code = #{supplierCode}
</if>
) q
GROUP BY q.material_code,q.material_name, q.ymdms,q.rule_name,q.project_no
</select>
<select id="getProjectList" resultType="com.op.quality.domain.QcStaticTable">
select qcp.id recordId,
qcp.rule_name ruleName
from qc_check_type_project qctp
left join qc_check_project qcp on qctp.project_id = qcp.id
where qctp.type_id = #{checkType} and qctp.property_code = '1'
and qctp.material_code is null
</select>
</mapper>

@ -76,7 +76,7 @@ public class SapController extends BaseController {
if(!"ds_999".equals(dateSource.get("poolName"))){
logger.info("++++++++++++" + dateSource.get("poolName") + "++++product同步开始++++++++++");
DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key
/**base_product**/
Date maxTime0 = sapBomMapper.getProductMaxTime();
if(maxTime0 != null){
Calendar calendar = Calendar.getInstance();
@ -115,7 +115,7 @@ public class SapController extends BaseController {
logger.info("++++++++++++" + dateSource.get("poolName") + "++++bom同步开始++++++++++");
DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key
Date maxTime0 = sapBomMapper.getProductMaxTime();
Date maxTime0 = sapBomMapper.getBomMaxTime();
if (maxTime0 != null) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(maxTime0);

@ -47,4 +47,6 @@ public interface SapBomMapper {
Date getProductMaxTime();
Date getRouteMaxTime();
Date getBomMaxTime();
}

@ -78,7 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select factory_id from sys_factory where factory_code = #{factoryCode}
</select>
<select id="getProductMaxTime" resultType="java.util.Date">
select max(create_time) from sys_factory where create_by = 'job'
select max(create_time) from base_product where create_by = 'job'
</select>
<insert id="insertBaseBom" parameterType="com.op.system.api.domain.sap.SapBom">
@ -288,6 +288,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="getRouteMaxTime" resultType="java.util.Date">
select max(create_time) from pro_route where attr1 = 'job'
</select>
<select id="getBomMaxTime" resultType="java.util.Date">
select max(create_time) from base_bom
</select>
<!--批量更新供应商建模表-->
<update id="updateSupplierBatchs">

@ -34,7 +34,7 @@ import org.springframework.web.multipart.MultipartFile;
/**
* Controller
*
*
* @author Open Platform
* @date 2023-07-20
*/
@ -199,7 +199,7 @@ public class BaseEquipmentController extends BaseController {
response.setContentType("application/octet-stream;charset=UTF-8");
ServletOutputStream outputStream = response.getOutputStream();
//调用工具类
workbook = ExcelMapUtil.initWorkbook(titleName, titleName, excelCols, null);
workbook = ExcelMapUtil.initWorkbook(titleName, null, excelCols, null);
workbook.write(outputStream);
} catch (Exception e) {
e.printStackTrace();

@ -102,11 +102,8 @@ public class SysFactoryController extends BaseController {
}
// 查询工作中心
// @RequiresPermissions("wms:factory:getWorkCenterList")
@GetMapping("/getWorkCenterList")
public TableDataInfo getWorkCenterList(SysFactory sysFactory) {
startPage();
List<SysFactory> list = sysFactoryService.getWorkCenterList(sysFactory);
return getDataTable(list);
public AjaxResult getWorkCenterList(SysFactory sysFactory) {
return sysFactoryService.getWorkCenterList(sysFactory);
}
}

@ -1,6 +1,8 @@
package com.op.wms.service;
import java.util.List;
import com.op.common.core.web.domain.AjaxResult;
import com.op.wms.domain.SysFactory;
/**
@ -58,8 +60,8 @@ public interface ISysFactoryService {
*/
public int deleteSysFactoryByFactoryId(Long factoryId);
//
List<SysFactory> getWorkCenterList(SysFactory sysFactory);
//查询工作中心
AjaxResult getWorkCenterList(SysFactory sysFactory);
//新增 判断逻辑
boolean checkFactoryCodeUnique(SysFactory sysFactory);

@ -4,12 +4,14 @@ import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.web.domain.AjaxResult;
import com.op.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.wms.mapper.SysFactoryMapper;
import com.op.wms.domain.SysFactory;
import com.op.wms.service.ISysFactoryService;
import static com.op.common.core.web.domain.AjaxResult.success;
/**
* Service
@ -99,15 +101,16 @@ public class SysFactoryServiceImpl implements ISysFactoryService {
}
/**
*
*
*
* @param sysFactory
* @return
*/
@Override
@DS("#header.poolName")
public List<SysFactory> getWorkCenterList(SysFactory sysFactory) {
return sysFactoryMapper.getWorkCenterList(sysFactory);
public AjaxResult getWorkCenterList(SysFactory sysFactory) {
List<SysFactory> list= sysFactoryMapper.getWorkCenterList(sysFactory);
return success(list);
}
/**

@ -54,7 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ods_procure_out_order
where
Active='1'
<if test="produceCode != null and produceCode != ''"> and Produce_Code = #{produceCode}</if>
<if test="produceCode != null and produceCode != ''"> and Produce_Code like concat('%', #{produceCode}, '%') </if>
<if test="userDefined1 != null and userDefined1 != ''"> and User_Defined1 = #{userDefined1}</if>
GROUP BY Produce_Code,User_Defined1
</select>
@ -83,7 +83,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectOdsProcureOutOrderListZUT" parameterType="OdsProcureOutOrder" resultMap="OdsProcureOutOrderResult">
<include refid="selectOdsProcureOutOrderVo"/>
<where>
<if test="produceCode != null and produceCode != ''"> and Produce_Code = #{produceCode}</if>
<if test="produceCode != null and produceCode != ''"> and Produce_Code like concat('%', #{produceCode}, '%')</if>
<if test="userDefined1 != null and userDefined1 != ''"> and User_Defined1 = #{userDefined1}</if>
<if test="Active != null and Active != ''"> and Active = #{Active}</if>
</where>

Loading…
Cancel
Save