diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java index 01c5dba5..0a7b37f1 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java @@ -33,7 +33,7 @@ public class ProOrderWorkorder extends TreeEntity { private String orderId; /** 订单编码 */ - @Excel(name = "子订单编码") + @Excel(name = "子订单旧编码") private String orderCode; /** 产品ID */ @@ -211,7 +211,7 @@ public class ProOrderWorkorder extends TreeEntity { } private String prepareId; - + @Excel(name = "子订单新编号") private String workorderCodeSap; /** 批次号 */ @@ -219,9 +219,39 @@ public class ProOrderWorkorder extends TreeEntity { private List batchNumList; private List batchInfo; + private String pproductCode; + @Excel(name = "母产品名称") + private String pproductName; + @Excel(name = "母订单新编号") + private String pworkorderCodeSap; + /** $column.columnComment */ private String factoryCode; + public String getPproductCode() { + return pproductCode; + } + + public void setPproductCode(String pproductCode) { + this.pproductCode = pproductCode; + } + + public String getPproductName() { + return pproductName; + } + + public void setPproductName(String pproductName) { + this.pproductName = pproductName; + } + + public String getPworkorderCodeSap() { + return pworkorderCodeSap; + } + + public void setPworkorderCodeSap(String pworkorderCodeSap) { + this.pworkorderCodeSap = pworkorderCodeSap; + } + public List getBatchInfo() { return batchInfo; } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java index 16a3d725..421ad7ff 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java @@ -166,5 +166,6 @@ public interface ProOrderWorkorderMapper { int updateWhiteWorkOrder(ProOrderWorkorder whiteOrder); ProOrderWorkorder getPWorkOrder(ProOrderWorkorder whiteOrder); + } diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 88fe27ae..853fc9ab 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -38,6 +38,11 @@ + + + + + @@ -49,37 +54,33 @@ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcInterfaceController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcInterfaceController.java index b7629199..0619f7b0 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcInterfaceController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcInterfaceController.java @@ -3,6 +3,7 @@ package com.op.quality.controller; import com.op.common.core.utils.StringUtils; import com.op.quality.domain.QcCheckType; import com.op.quality.domain.QcInterface; +import com.op.quality.domain.QcLineChartDto; import com.op.quality.service.IQcInterfaceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -126,4 +127,10 @@ public class QcInterfaceController { public List getMonthOfYearContrast(@RequestBody QcInterface qcInterface) { return qcInterfaceService.getMonthOfYearContrast(qcInterface); } + + @GetMapping("/getLineQcData") + public QcLineChartDto getLineQcData(QcInterface qcInterface) { + return qcInterfaceService.getLineQcData(qcInterface); + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcInterface.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcInterface.java index f10f74a7..b68ed1a5 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcInterface.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcInterface.java @@ -47,6 +47,33 @@ public class QcInterface extends BaseEntity { private List data; private String reasons; private String typeCode; + private String productDateStart; + private String ProductDateEnd; + private String nameDate; + + public String getNameDate() { + return nameDate; + } + + public void setNameDate(String nameDate) { + this.nameDate = nameDate; + } + + public String getProductDateStart() { + return productDateStart; + } + + public void setProductDateStart(String productDateStart) { + this.productDateStart = productDateStart; + } + + public String getProductDateEnd() { + return ProductDateEnd; + } + + public void setProductDateEnd(String productDateEnd) { + ProductDateEnd = productDateEnd; + } public String getTypeCode() { return typeCode; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartDto.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartDto.java new file mode 100644 index 00000000..554b4226 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartDto.java @@ -0,0 +1,39 @@ +package com.op.quality.domain; + +import java.util.List; + +/** + * echart图返回数据 + * + * @author Open Platform + * @date 2023-07-03 + */ +public class QcLineChartDto { + private List seriesNames; + private List xAxisDatas; + private List seriesDatas; + + public List getSeriesNames() { + return seriesNames; + } + + public void setSeriesNames(List seriesNames) { + this.seriesNames = seriesNames; + } + + public List getxAxisDatas() { + return xAxisDatas; + } + + public void setxAxisDatas(List xAxisDatas) { + this.xAxisDatas = xAxisDatas; + } + + public List getSeriesDatas() { + return seriesDatas; + } + + public void setSeriesDatas(List seriesDatas) { + this.seriesDatas = seriesDatas; + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartSeriesDto.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartSeriesDto.java new file mode 100644 index 00000000..2dce8f24 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartSeriesDto.java @@ -0,0 +1,48 @@ +package com.op.quality.domain; + +import java.util.List; + +/** + * echart图返回数据 + * + * @author Open Platform + * @date 2023-07-03 + */ +public class QcLineChartSeriesDto { + private String name; + private String type; + private String stack; + private List data; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getStack() { + return stack; + } + + public void setStack(String stack) { + this.stack = stack; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java index d00c0ad8..8c7d9d92 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java @@ -41,4 +41,8 @@ public interface QcInterfaceMapper { Map getMothNoOkNum(QcInterface qcInterface); List getReasons(QcInterface dto); + + List getLineChartsNames(QcInterface qcInterface); + @MapKey("nameDate") + Map getLineChartsDatas(QcInterface qcInterface); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcInterfaceService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcInterfaceService.java index 6676f007..d50e1c97 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcInterfaceService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcInterfaceService.java @@ -3,6 +3,7 @@ package com.op.quality.service; import com.op.quality.domain.QcCheckType; import com.op.quality.domain.QcInterface; +import com.op.quality.domain.QcLineChartDto; import java.util.List; import java.util.Map; @@ -35,4 +36,6 @@ public interface IQcInterfaceService { QcInterface getLineDayNoOk(QcInterface qcInterface); List getMonthOfYearContrast(QcInterface qcInterface); + + QcLineChartDto getLineQcData(QcInterface qcInterface); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 216c7d43..767fffdf 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -386,13 +386,16 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格 BigDecimal noOkQquality = new BigDecimal("0"); if(qcCheckTaskIncome.getaNoOkquality()!=null){ - noOkQquality.add(qcCheckTaskIncome.getaNoOkquality()); + noOkQquality = noOkQquality.add(qcCheckTaskIncome.getaNoOkquality()); + qcCheckTask.setaNoOkquality(qcCheckTaskIncome.getaNoOkquality()); } if(qcCheckTaskIncome.getbNoOkquality()!=null){ - noOkQquality.add(qcCheckTaskIncome.getbNoOkquality()); + noOkQquality = noOkQquality.add(qcCheckTaskIncome.getbNoOkquality()); + qcCheckTask.setbNoOkquality(qcCheckTaskIncome.getbNoOkquality()); } if(qcCheckTaskIncome.getcNoOkquality()!=null){ - noOkQquality.add(qcCheckTaskIncome.getcNoOkquality()); + noOkQquality = noOkQquality.add(qcCheckTaskIncome.getcNoOkquality()); + qcCheckTask.setcNoOkquality(qcCheckTaskIncome.getcNoOkquality()); } if(qcCheckTask.getNoOkQuality()==null){ qcCheckTask.setNoOkQuality(noOkQquality); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java index 554e0805..5971c5c5 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java @@ -1,10 +1,9 @@ package com.op.quality.service.impl; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; -import com.op.quality.domain.QcCheckTaskDetail; -import com.op.quality.domain.QcInterface; -import com.op.quality.domain.QcProCheck; +import com.op.quality.domain.*; import com.op.quality.mapper.QcInterfaceMapper; import com.op.quality.service.IQcInterfaceService; import org.apache.commons.lang.StringUtils; @@ -319,6 +318,53 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { return dtos; } + @Override + @DS("#header.poolName") + public QcLineChartDto getLineQcData(QcInterface qcInterface) { + QcLineChartDto lineChartDto = new QcLineChartDto(); + + Calendar calendar = Calendar.getInstance(); + Date now = calendar.getTime(); + calendar.set(Calendar.DAY_OF_MONTH, 1); + Date firstDayOfMonth = calendar.getTime(); + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String startTime = dateFormat.format(firstDayOfMonth); + String endTime = dateFormat.format(now); + qcInterface.setProductDateStart(startTime); + qcInterface.setProductDateEnd(endTime); + //图例名称 + List seriesNames = qcInterfaceMapper.getLineChartsNames(qcInterface); + lineChartDto.setSeriesNames(seriesNames); + //日期名称数组 + List xAxisDatas = getDays(startTime,endTime); + lineChartDto.setxAxisDatas(xAxisDatas); + Map productdatas = qcInterfaceMapper.getLineChartsDatas(qcInterface); + //值 + List seriesDatas = new ArrayList<>(); + QcLineChartSeriesDto lineChartSeriesDto = null; + for(String productName:seriesNames){ + lineChartSeriesDto = new QcLineChartSeriesDto(); + lineChartSeriesDto.setName(productName); + lineChartSeriesDto.setType("line"); + List datas = new ArrayList<>(); + for(String dayStr:xAxisDatas) { + QcInterface data0 = productdatas.get(productName + dayStr); + if (data0 != null) { + BigDecimal rate = new BigDecimal(data0.getNoOkQuality()) + .multiply(new BigDecimal(100)) + .divide(new BigDecimal(data0.getQuality()),2,BigDecimal.ROUND_HALF_UP); + datas.add(rate.toString()); + } else { + datas.add("0"); + } + } + lineChartSeriesDto.setData(datas); + seriesDatas.add(lineChartSeriesDto); + } + lineChartDto.setSeriesDatas(seriesDatas); + return lineChartDto; + } + /**两个日期之间的所有日期**/ public static List getDays(String startTime,String endTime) { diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml index ac85dcb5..298e7dfc 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml @@ -48,8 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" '检验任务' attr1 from qc_check_task qct left join qc_check_type qc on qct.check_type = qc.order_code - left join qc_user_material qum on qum.material_code = qct.material_code - where qct.check_status = '0' and qum.user_code = #{checkManCode} + where qct.check_status = '0' and qct.check_man_code = #{checkManCode} group by qct.check_type,qc.check_name union all select '','', @@ -57,8 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" '不合格处理' attr1 from qc_check_unqualified qcu left join qc_check_task qct on qcu.task_id = qct.record_id - left join qc_user_material qum on qum.material_code = qct.material_code - where qcu.status != '2' and qum.user_code = #{checkManCode} + where qcu.status != '2' and qct.check_man_code = #{checkManCode} insert into qc_check_type diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml index 6f0b51af..edad5b1b 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml @@ -241,4 +241,23 @@ where belong_to = #{recordId} and status = 'N' and del_flag='0' + +