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 b3ec5c639..748a65ad4 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 @@ -155,4 +155,15 @@ public class QcInterfaceController { return qcInterfaceService.getLineQcData(qcInterface); } + /** + * 白坯每月不合格数量 + * + * @param queryDate 查询日期 + * @return + */ + @GetMapping("/getBpMonthNoOk") + public Map> getBpMonthNoOk(String queryDate) { + return qcInterfaceService.getBpMonthNoOk(queryDate); + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java index b69feb899..eacc2c8af 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java @@ -968,16 +968,16 @@ public class QcStaticTableController extends BaseController { @Log(title = "白坯缺陷排列报表导出", businessType = BusinessType.EXPORT) @PostMapping("/getMonthOfDataDefectExport") public void getMonthOfDataDefectExport(HttpServletResponse response, QcStaticTable qcStaticTable) { - List> list = qcStaticTableService.getMonthOfDataDefect(qcStaticTable); + List> list = qcStaticTableService.getMonthOfDataDefectV2(qcStaticTable); //表格结构数据 List titils = qcStaticTableService.getDaysOfMonth(qcStaticTable); ArrayList excelCols = new ArrayList<>(); - excelCols.add(new ExcelCol("不良项目", "dataType", 30)); + excelCols.add(new ExcelCol("不良项目", "defect", 30)); for(int m=0;m> list = qcStaticTableService.getDefectItemData(qcStaticTable); + List> list = qcStaticTableService.getDefectItemDataV2(qcStaticTable); //表格结构数据 List titils = qcStaticTableService.getDefectItemTitle(qcStaticTable); @@ -1060,10 +1060,11 @@ public class QcStaticTableController extends BaseController { @Log(title = "白坯性能报表导出", businessType = BusinessType.EXPORT) @PostMapping("/getDefectItemDataPCExport") public void getDefectItemDataPCExport(HttpServletResponse response, QcStaticTable qcStaticTable) { - List> list = qcStaticTableService.getDefectItemDataPC(qcStaticTable); + List> list = qcStaticTableService.getDefectItemDataPCV2(qcStaticTable); //表格结构数据 List titils = qcStaticTableService.getDefectItemTitle(qcStaticTable); + titils.add("其他"); ArrayList excelCols = new ArrayList<>(); excelCols.add(new ExcelCol("项目", "dataType", 30)); for(int m=0;m getProduceNoOkList1(QcInterface qcInterface); List getCheckProjectsPie1(QcInterface qcInterface); + + @MapKey("ymd") + Map getBpMonthNoOk(String queryDate); } 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 7059b0ef0..1de1ec87f 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 @@ -39,4 +39,6 @@ public interface IQcInterfaceService { QcLineChartDto getLineQcData(QcInterface qcInterface); List getCheckProjectsPieLL(QcInterface qcInterface); + + Map> getBpMonthNoOk(String queryDate); } 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 a79ee5484..5daf95d1b 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 @@ -495,4 +495,33 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { } + @Override + @DS("#header.poolName") + public Map> getBpMonthNoOk(String queryDate) { + Map> dtoMap = new HashMap<>(); + + String nowYMD = DateUtils.getDate(); + String[] nowYMDs = nowYMD.split("-"); + int nowMonth = Integer.parseInt(nowYMDs[1]); + List monthNames = new ArrayList<>(); + + Map noOkHzs = qcInterfaceMapper.getBpMonthNoOk(queryDate); + List monthData = new ArrayList<>(); + + for (int mh = 1; mh <= nowMonth; mh++) { + String yyyymm = nowYMDs[0] + "-" + String.format("%02d", mh); + monthNames.add(yyyymm); + if (!CollectionUtils.isEmpty(noOkHzs)&&noOkHzs.get(yyyymm)!=null) { + monthData.add(noOkHzs.get(yyyymm).getNoOkQuality()); + } else { + monthData.add("0"); + } + } + + dtoMap.put("month", monthNames); + dtoMap.put("monthData", monthData); + return dtoMap; + } + + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java index 5d90b8128..d78bc4cfc 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java @@ -1787,6 +1787,8 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { if (StringUtils.isNotBlank(data.getAttr2())){ count = count + Integer.parseInt(data.getAttr2()); } + }else { + map.put(data.getAttr1(), "0"); } } map.put("count", Integer.toString(count)); @@ -1800,7 +1802,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { map2.put("defect","抽样数"); for (QcCheckTaskDefect data : list){ if ("合计".equals(data.getDefectSubclass())){ - map1.put(data.getAttr1(),data.getAttr2()); + map1.put(data.getAttr1(),StringUtils.isEmpty(data.getAttr2()) ? "0" : data.getAttr2()); map2.put(data.getAttr1(),data.getAttr3()); if (StringUtils.isNotBlank(data.getAttr2())){ count1 = count1 + Integer.parseInt(data.getAttr2()); @@ -2081,6 +2083,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { List> dtos = new ArrayList<>(); //获取不良种类 List bpDefects = qcStaticTableMapper.getBpDefects(qcStaticTable); + bpDefects.add("其他"); List monthList = qcStaticTableMapper.getBPDefectMothPCMapV2(qcStaticTable); qcStaticTable.setYearMonth(null); List totalList = qcStaticTableMapper.getBPDefectMothPCMapV2(qcStaticTable); @@ -2099,21 +2102,16 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { for (String defect : bpDefects) { for (QcCheckTaskDefect item : list){ if (defect.equals(item.getDefectSubclass())){ - if (StringUtils.isNotBlank(item.getAttr1())){ - if ("rate".equals(type)){ - result.put("item"+i, item.getAttr1()); - }else { - if (StringUtils.isNotBlank(item.getAttr2())){ - result.put("item"+i,new BigDecimal(item.getAttr1()).divide(new BigDecimal(item.getAttr2()),2,RoundingMode.HALF_UP).toString()); - }else { - result.put("item"+i,"100"); - } - } - + if (StringUtils.isNotBlank(item.getAttr2()) && StringUtils.isNotBlank(item.getAttr3())){ + BigDecimal itemNoOkRate = new BigDecimal(0); + itemNoOkRate = new BigDecimal(item.getAttr2()).divide(new BigDecimal(item.getAttr3()),4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)); + result.put("item"+i,itemNoOkRate.toString()); }else { result.put("item"+i,"0"); } break; + }else { + result.put("item"+i,"0"); } } i++; @@ -2197,6 +2195,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { //获取不良种类 List bpDefects = qcStaticTableMapper.getBpDefects(qcStaticTable); + bpDefects.add("其他"); result.put("xData",bpDefects); //当前查询月份的不良率 @@ -2231,7 +2230,14 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { boolean flag = true; for (QcCheckTaskDefect item : monthList){ if (defect.equals(item.getDefectSubclass())){ - yDataLeft.add(item.getAttr1()); + if (StringUtils.isNotBlank(item.getAttr2()) && StringUtils.isNotBlank(item.getAttr3())){ + //不良率 + BigDecimal itemNoOkRate = new BigDecimal(0); + itemNoOkRate = new BigDecimal(item.getAttr2()).divide(new BigDecimal(item.getAttr3()),4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)); + yDataLeft.add(itemNoOkRate.toString()); + }else { + yDataLeft.add("0"); + } flag = false; break; } @@ -2251,7 +2257,14 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { boolean flag = true; for (QcCheckTaskDefect item : totalList){ if (defect.equals(item.getDefectSubclass())){ - yDataRight.add(item.getAttr1()); + if (StringUtils.isNotBlank(item.getAttr2()) && StringUtils.isNotBlank(item.getAttr3())){ + //不良率 + BigDecimal itemNoOkRate = new BigDecimal(0); + itemNoOkRate = new BigDecimal(item.getAttr2()).divide(new BigDecimal(item.getAttr3()),4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)); + yDataRight.add(itemNoOkRate.toString()); + }else { + yDataRight.add("0"); + } flag = false; break; } 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 89f08dedc..5dfe0cc98 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 @@ -360,4 +360,20 @@ order by qctd.update_time desc + + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml index 43a18fbae..611ce0d0f 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml @@ -1422,7 +1422,6 @@ LEFT JOIN qc_check_task_defect td ON qct.record_id = td.belong_to LEFT JOIN qc_defect_type_class tc ON td.class_id = tc.id WHERE qct.del_flag = '0' - AND tc.class_name IS NOT NULL AND FORMAT ( qct.create_time, 'yyyy-MM' ) = #{yearMonth} AND qct.order_type = 'bp' GROUP BY tc.class_name, FORMAT ( qct.create_time, 'yyyy-MM-dd' ) @@ -1436,7 +1435,6 @@ LEFT JOIN qc_check_task_defect td ON qct.record_id = td.belong_to LEFT JOIN qc_defect_type_class tc ON td.class_id = tc.id WHERE qct.del_flag = '0' - AND tc.class_name IS NOT NULL AND FORMAT ( qct.create_time, 'yyyy-MM' ) = #{yearMonth} AND qct.order_type = 'bp' GROUP BY FORMAT ( qct.create_time, 'yyyy-MM-dd' ) @@ -1452,7 +1450,6 @@ LEFT JOIN qc_check_task_defect td ON qct.record_id = td.belong_to LEFT JOIN qc_defect_type_class tc ON td.class_id = tc.id WHERE qct.del_flag = '0' - AND tc.class_name IS NOT NULL AND qct.order_type = 'bp' AND FORMAT ( qct.create_time, 'yyyy-MM' ) = #{yearMonth} @@ -1468,15 +1465,14 @@ FROM ( SELECT - tc.class_name defectSubclass, - SUM (CASE WHEN qct.check_status = 'N' THEN 1 ELSE 0 END) attr2, + ISNULL(tc.class_name,'其他') defectSubclass, + SUM (CASE WHEN qct.check_result = 'N' THEN 1 ELSE 0 END) attr2, COUNT ( 0 ) attr3, qct.income_batch_no FROM qc_check_task qct LEFT JOIN qc_check_task_defect td ON qct.record_id = td.belong_to LEFT JOIN qc_defect_type_class tc ON td.class_id = tc.id WHERE qct.del_flag = '0' - AND tc.class_name IS NOT NULL AND qct.order_type = 'bp' AND FORMAT ( qct.create_time, 'yyyy-MM' ) = #{yearMonth}