From 1b325790d5cf38c5f7668b5547600967bf90e51e Mon Sep 17 00:00:00 2001 From: yinq <1345442242@qq.com> Date: Thu, 1 Sep 2022 10:48:40 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E4=BA=A7=E8=83=BD?= =?UTF-8?q?=E8=B4=9F=E8=8D=B7=E7=9C=8B=E6=9D=BF=E6=95=B0=E6=8D=AE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ReportServiceImpl.java | 83 ++++++++++++------- .../main/resources/mapper/ReportMapper.xml | 26 ++++-- 2 files changed, 69 insertions(+), 40 deletions(-) diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java index 70c0a6ee..ec22ed3c 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java @@ -720,7 +720,9 @@ public class ReportServiceImpl implements ReportService { return "橡塑"; } else if (career.indexOf("非公路") != -1) { return "非公路"; - } else if (career.indexOf("塞班") != -1) { + }else if (career.indexOf("研究院") != -1) { + return "研究院"; + }else if (career.indexOf("塞班") != -1) { return "塞班"; } else { return "外部"; @@ -762,41 +764,61 @@ public class ReportServiceImpl implements ReportService { public Map capacityLoad(String workCenter) { List> capacityLoadList = reportMapper.capacityLoad(workCenter); HashMap result = new HashMap<>(); - /*Map>> resourceListMap = capacityLoadList.stream(). - collect(Collectors.groupingBy(e -> e.get("resourceDescription")));*/ - //八个柱状图:计划工时list、计划产能、未完成工时、设备描述 - /*for (String resource : resourceListMap.keySet()) { + Float planCapacity = 0f; + Float standardCapacity = 0f; + ArrayList > eightList = new ArrayList<>(); + ArrayList planHoursList = new ArrayList<>(); + ArrayList planUndoneHoursList = new ArrayList<>(); + for (Map map : capacityLoadList) { HashMap resourceMap = new HashMap<>(); //计划工时 ArrayList planList = new ArrayList<>(); - List> mapList = resourceListMap.get(resource); - mapList.forEach(e -> { - e. - });*/ - capacityLoadList.forEach(e -> { - HashMap resourceMap = new HashMap<>(); - //计划工时 - ArrayList planList = new ArrayList<>(); - planList.add(e.get("planCapacity1")); - planList.add(e.get("planCapacity2")); - planList.add(e.get("planCapacity3")); - planList.add(e.get("planCapacity4")); - planList.add(e.get("planCapacity5")); - planList.add(e.get("planCapacity6")); - planList.add(e.get("planCapacity7")); - planList.add(e.get("planCapacity8")); - resourceMap.put("planCapacity",planList); - //计划产能 - resourceMap.put("standardWeekCapacity",e.get("standardWeekCapacity")); + planList.add(String.valueOf(map.get("planCapacity1"))); + planList.add(String.valueOf(map.get("planCapacity2"))); + planList.add(String.valueOf(map.get("planCapacity3"))); + planList.add(String.valueOf(map.get("planCapacity4"))); + planList.add(String.valueOf(map.get("planCapacity5"))); + planList.add(String.valueOf(map.get("planCapacity6"))); + planList.add(String.valueOf(map.get("planCapacity7"))); + planList.add(String.valueOf(map.get("planCapacity8"))); + resourceMap.put("planCapacityList",planList); + //标准产能 + resourceMap.put("standardWeekCapacity",map.get("standardWeekCapacity")); //未完成工时 - resourceMap.put("tardinessWork",e.get("tardinessWork")); - // - }); - - + //resourceMap.put("tardinessWork",map.get("tardinessWork")); + //设备描述 + resourceMap.put("resourceDescription",map.get("resourceDescription")); + //总标准产能、总计划产能 + for (String et : planList) { + planCapacity += Float.parseFloat(et); + } + standardCapacity += Float.valueOf(String.valueOf(map.get("standardWeekCapacity"))); + //比率 计划工时 / 标准产能 * 100 + ArrayList rateList = new ArrayList<>(); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity1"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity2"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity3"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity4"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity5"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity6"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity7"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity8"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + resourceMap.put("planCapacityRateList",rateList); + + planHoursList.add(Float.valueOf(String.valueOf(map.get("planHours")))); + planUndoneHoursList.add(Float.valueOf(String.valueOf(map.get("planUndoneHours")))); + eightList.add(resourceMap); + } + result.put("planCapacity",String.format("%.2f", planCapacity)); + result.put("standardCapacity",String.format("%.2f", standardCapacity)); + //八个柱状图 + result.put("eightList",eightList); + //中心 计划工时、未完成工时List + result.put("planHoursList",planHoursList); + result.put("planUndoneHoursList",planUndoneHoursList); - return null; + return result; } /** @@ -834,7 +856,6 @@ public class ReportServiceImpl implements ReportService { List> dutyCauseTypeDescription = reportMapper.dutyCauseTypeDescription(); List descriptionList = dutyCauseTypeDescription.stream().map(e -> e.get("DESCRIPTION")).collect(Collectors.toList()); - List numbersList = new LinkedList<>(); List dutyCauseType = reportMapper.dutyCauseType(user); for (String type : dutyCauseType) { diff --git a/anomaly/src/main/resources/mapper/ReportMapper.xml b/anomaly/src/main/resources/mapper/ReportMapper.xml index e4e32c15..3a1a0723 100644 --- a/anomaly/src/main/resources/mapper/ReportMapper.xml +++ b/anomaly/src/main/resources/mapper/ReportMapper.xml @@ -1750,11 +1750,11 @@ r.DESCRIPTION RESRCE_DESCRIPTION, SUM(zsd.DISPATCH_QTY) SUM_QTY, SUM(CASE - WHEN zsd.DISPATCH_STATUS = 'COMPLETE' AND SYSDATE > zsd.ACTUAL_COMPLETE_DATE THEN zsd.DISPATCH_QTY + WHEN zsd.DISPATCH_STATUS = 'COMPLETE' AND zsd.PLANNED_COMP_DATE > zsd.ACTUAL_COMPLETE_DATE THEN zsd.DISPATCH_QTY ELSE 0 END) SUM_DONE_QTY, SUM(zsd.PROD_HOURS) SUM_HOURS, SUM(CASE - WHEN zsd.DISPATCH_STATUS = 'COMPLETE' AND SYSDATE > zsd.ACTUAL_COMPLETE_DATE THEN zsd.PROD_HOURS + WHEN zsd.DISPATCH_STATUS = 'COMPLETE' AND zsd.PLANNED_COMP_DATE > zsd.ACTUAL_COMPLETE_DATE THEN zsd.PROD_HOURS ELSE 0 END) SUM_DONE_HOURS FROM Z_SFC_DISPATCH zsd LEFT JOIN WORK_CENTER wc ON zsd.WORK_CENTER = wc.WORK_CENTER @@ -1794,7 +1794,7 @@ it.DESCRIPTION "itemDescription",--物料描述 MIN(zsd.ACTUAL_START_DATE) "actualStartDate",--最小实际开始时间 MAX(zsd.ACTUAL_COMPLETE_DATE) "actualCompeteDate",--最大实际完成时间 - TO_CHAR(MAX(zsd.ACTUAL_COMPLETE_DATE) - MIN(zsd.ACTUAL_START_DATE), '99990.99') "productProgress" + TO_CHAR(MAX(zsd.ACTUAL_COMPLETE_DATE) - MIN(zsd.ACTUAL_START_DATE), '99990.99') "productPmonthDeliveryRateReportrogress" FROM Z_SFC_DISPATCH zsd LEFT JOIN SFC s ON s.SFC = zsd.SFC AND s.SITE = zsd.SITE LEFT JOIN SHOP_ORDER so ON so.SHOP_ORDER = zsd.SHOP_ORDER AND so.SITE = zsd.SITE @@ -1882,13 +1882,14 @@ TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM-dd'), 'yyyy-MM-dd'), 'IW') + 7 * 5 WEEK5, TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM-dd'), 'yyyy-MM-dd'), 'IW') + 7 * 6 WEEK6, TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM-dd'), 'yyyy-MM-dd'), 'IW') + 7 * 7 WEEK7, - TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM-dd'), 'yyyy-MM-dd'), 'IW') + 7 * 8 WEEK8 + TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM-dd'), 'yyyy-MM-dd'), 'IW') + 7 * 8 WEEK8, + TO_DATE(TO_CHAR(sysdate - 30, 'yyyy-MM-dd'), 'yyyy-MM-dd') MONTH_AGO FROM DUAL) - SELECT wct.DESCRIPTION "descripion", - rt.RESOURCE_TYPE "resourceType", - rt.DESCRIPTION "resourceDescription", + SELECT wct.DESCRIPTION "descripion", + rt.RESOURCE_TYPE "resourceType", + rt.DESCRIPTION "resourceDescription", SUM(CASE - WHEN SYSDATE > ZSD.PLANNED_COMP_DATE THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS + WHEN SYSDATE > ZSD.PLANNED_COMP_DATE AND zsd.DISPATCH_STATUS != 'COMPLETE' THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "tardinessWork", SUM(CASE WHEN ZSD.PLANNED_COMP_DATE >= TO_DATE(WEEK.WEEK0) AND ZSD.PLANNED_COMP_DATE <= TO_DATE(WEEK.WEEK1) @@ -1922,6 +1923,14 @@ WHEN ZSD.PLANNED_COMP_DATE >= TO_DATE(WEEK.WEEK7) AND ZSD.PLANNED_COMP_DATE <= TO_DATE(WEEK.WEEK8) THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS ELSE 0 END) "planCapacity8", + SUM(CASE + WHEN ZSD.PLANNED_COMP_DATE >= TO_DATE(MONTH_AGO) AND ZSD.PLANNED_COMP_DATE <= TO_DATE(sysdate) + THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS + ELSE 0 END) "planHours", + SUM(CASE + WHEN ZSD.PLANNED_COMP_DATE >= TO_DATE(MONTH_AGO) AND ZSD.PLANNED_COMP_DATE <= TO_DATE(sysdate) + AND zsd.DISPATCH_STATUS != 'COMPLETE' THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS + ELSE 0 END) "planUndoneHours", MAX(CF.VALUE) "standardWeekCapacity", MAX(CF2.VALUE) "standardMonthCapacity" FROM Z_SFC_DISPATCH ZSD @@ -1935,7 +1944,6 @@ LEFT JOIN CUSTOM_FIELDS CF2 ON CF2.ATTRIBUTE = 'MONTH_CAPACITY' AND CF2.HANDLE = 'OperationBO:1000,' || o.OPERATION || ',1.0' WHERE zsd.DISPATCH_STATUS != 'CANCEL' - AND zsd.DISPATCH_STATUS != 'COMPLETE' AND CF.VALUE IS NOT NULL AND CF2.VALUE IS NOT NULL From 82318ad20115d8c6648bd149d26a03e9ea3568e2 Mon Sep 17 00:00:00 2001 From: yinq <1345442242@qq.com> Date: Fri, 2 Sep 2022 16:54:03 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=88=B6=E9=80=A0=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E6=A3=80=E9=AA=8C=E7=9C=8B=E6=9D=BF=E6=95=B0=E6=8D=AE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anomaly/controller/ReportController.java | 13 ++ .../mesnac/anomaly/mapper/ReportMapper.java | 10 + .../mesnac/anomaly/service/ReportService.java | 8 + .../service/impl/ReportServiceImpl.java | 180 +++++++++++++----- .../main/resources/mapper/ReportMapper.xml | 95 +++++++++ 5 files changed, 254 insertions(+), 52 deletions(-) diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java index 9494dcfc..d4376af8 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java @@ -384,4 +384,17 @@ public class ReportController { } } + /** + * 制造中心检验看板 + * @param + * @return + */ + @GetMapping("/manufacturingPlanning") + public R manufacturingPlanning(String workCenter){ + try { + return R.ok(reportService.manufacturingPlanning(workCenter)); + } catch (Exception e) { + return R.failed(e.getMessage()); + } + } } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java index 328e769f..079b9a5b 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java @@ -158,4 +158,14 @@ public interface ReportMapper { */ List> capacityLoad(String workCenter); + + Map sixShopOrderQTY(String workCenter); + + List> nearFifteenDayRate(String workCenter); + + List> departmentForNonconformity(String workCenter); + + List> workshopDeliveryRateList(String workCenter); + + List> NCTop5RateList(String workCenter); } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java index b3665852..6de5337b 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java @@ -173,4 +173,12 @@ public interface ReportService { * @return */ Map capacityLoad(String workCenter); + + /** + * 制造中心检验看板 + * @param workCenter + * @return + */ + Map manufacturingPlanning(String workCenter); + } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java index ec22ed3c..a2b23585 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java @@ -762,62 +762,138 @@ public class ReportServiceImpl implements ReportService { */ @Override public Map capacityLoad(String workCenter) { - List> capacityLoadList = reportMapper.capacityLoad(workCenter); HashMap result = new HashMap<>(); - Float planCapacity = 0f; - Float standardCapacity = 0f; - ArrayList > eightList = new ArrayList<>(); - ArrayList planHoursList = new ArrayList<>(); - ArrayList planUndoneHoursList = new ArrayList<>(); - for (Map map : capacityLoadList) { - HashMap resourceMap = new HashMap<>(); - //计划工时 - ArrayList planList = new ArrayList<>(); - planList.add(String.valueOf(map.get("planCapacity1"))); - planList.add(String.valueOf(map.get("planCapacity2"))); - planList.add(String.valueOf(map.get("planCapacity3"))); - planList.add(String.valueOf(map.get("planCapacity4"))); - planList.add(String.valueOf(map.get("planCapacity5"))); - planList.add(String.valueOf(map.get("planCapacity6"))); - planList.add(String.valueOf(map.get("planCapacity7"))); - planList.add(String.valueOf(map.get("planCapacity8"))); - resourceMap.put("planCapacityList",planList); - //标准产能 - resourceMap.put("standardWeekCapacity",map.get("standardWeekCapacity")); - //未完成工时 - //resourceMap.put("tardinessWork",map.get("tardinessWork")); - //设备描述 - resourceMap.put("resourceDescription",map.get("resourceDescription")); - //总标准产能、总计划产能 - for (String et : planList) { - planCapacity += Float.parseFloat(et); + + List> capacityLoadList = null; + try { + capacityLoadList = reportMapper.capacityLoad(workCenter); + Float planCapacity = 0f; + Float standardCapacity = 0f; + ArrayList > eightList = new ArrayList<>(); + ArrayList planHoursList = new ArrayList<>(); + ArrayList planUndoneHoursList = new ArrayList<>(); + for (Map map : capacityLoadList) { + HashMap resourceMap = new HashMap<>(); + //计划工时 + ArrayList planList = new ArrayList<>(); + planList.add(String.valueOf(map.get("planCapacity1"))); + planList.add(String.valueOf(map.get("planCapacity2"))); + planList.add(String.valueOf(map.get("planCapacity3"))); + planList.add(String.valueOf(map.get("planCapacity4"))); + planList.add(String.valueOf(map.get("planCapacity5"))); + planList.add(String.valueOf(map.get("planCapacity6"))); + planList.add(String.valueOf(map.get("planCapacity7"))); + planList.add(String.valueOf(map.get("planCapacity8"))); + resourceMap.put("planCapacityList",planList); + //标准产能 + resourceMap.put("standardWeekCapacity",map.get("standardWeekCapacity")); + //未完成工时 + //resourceMap.put("tardinessWork",map.get("tardinessWork")); + //设备描述 + resourceMap.put("resourceDescription",map.get("resourceDescription")); + //总标准产能、总计划产能 + for (String et : planList) { + planCapacity += Float.parseFloat(et); + } + standardCapacity += Float.valueOf(String.valueOf(map.get("standardWeekCapacity"))); + //比率 计划工时 / 标准产能 * 100 + ArrayList rateList = new ArrayList<>(); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity1"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity2"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity3"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity4"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity5"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity6"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity7"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity8"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + resourceMap.put("planCapacityRateList",rateList); + + planHoursList.add(Float.valueOf(String.valueOf(map.get("planHours")))); + planUndoneHoursList.add(Float.valueOf(String.valueOf(map.get("planUndoneHours")))); + eightList.add(resourceMap); } - standardCapacity += Float.valueOf(String.valueOf(map.get("standardWeekCapacity"))); - //比率 计划工时 / 标准产能 * 100 - ArrayList rateList = new ArrayList<>(); - rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity1"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); - rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity2"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); - rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity3"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); - rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity4"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); - rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity5"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); - rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity6"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); - rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity7"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); - rateList.add(String.valueOf(Float.valueOf(String.valueOf(map.get("planCapacity8"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); - resourceMap.put("planCapacityRateList",rateList); - - planHoursList.add(Float.valueOf(String.valueOf(map.get("planHours")))); - planUndoneHoursList.add(Float.valueOf(String.valueOf(map.get("planUndoneHours")))); - eightList.add(resourceMap); + result.put("planCapacity",String.format("%.2f", planCapacity)); + result.put("standardCapacity",String.format("%.2f", standardCapacity)); + //八个柱状图 + result.put("eightList",eightList); + //中心 计划工时、未完成工时List + result.put("planHoursList",planHoursList); + result.put("planUndoneHoursList",planUndoneHoursList); + } catch (Exception e) { + e.printStackTrace(); } + return result; + } - result.put("planCapacity",String.format("%.2f", planCapacity)); - result.put("standardCapacity",String.format("%.2f", standardCapacity)); - //八个柱状图 - result.put("eightList",eightList); - //中心 计划工时、未完成工时List - result.put("planHoursList",planHoursList); - result.put("planUndoneHoursList",planUndoneHoursList); - + /** + * 制造中心检验看板 + * @param workCenter + * @return + */ + @Override + public Map manufacturingPlanning(String workCenter) { + HashMap result = new HashMap<>(); + Map sixMap = reportMapper.sixShopOrderQTY(workCenter); + ArrayList sixList = new ArrayList<>(); + for (String key : sixMap.keySet()) { + sixList.add(Integer.valueOf(String.valueOf(sixMap.get(key)))); + } + result.put("sixList",sixList); + List> nearRateList = reportMapper.nearFifteenDayRate(workCenter); + ArrayList rateList = new ArrayList<>(); + ArrayList itemsList = new ArrayList<>(); + for (Map nearRateMap : nearRateList) { + rateList.add(Float.parseFloat(String.valueOf(nearRateMap.get("qualifiedRate")))); + itemsList.add(Float.parseFloat(String.valueOf(nearRateMap.get("ItemsQTY")))); + } + result.put("rateList",rateList); + result.put("itemsList",itemsList); + //不合格责任部门分布 + List> departmentList = reportMapper.departmentForNonconformity(workCenter); + List monthOldList = departmentList.stream().map(e -> { return e.get("month"); }) + .distinct().sorted().collect(Collectors.toList()); + ArrayList monthList = new ArrayList<>(); + monthList.addAll(monthOldList); + Map>> descriptionMap = departmentList.stream(). + collect(Collectors.groupingBy(e -> e.get("description"))); + ArrayList> descriptionValueList = new ArrayList<>(); + for (String description : descriptionMap.keySet()) { + + List> maps = descriptionMap.get(description); + HashMap map = new HashMap<>(); + ArrayList QTYList = new ArrayList<>(); + maps.forEach(e -> { + QTYList.add(String.valueOf(e.get("QTY"))); + }); + map.put("name",description); + map.put("value",QTYList); + descriptionValueList.add(map); + } + result.put("monthList",monthList); + result.put("descriptionValueList",descriptionValueList); + //一次性交付合格率 + List> deliveryRateList = reportMapper.workshopDeliveryRateList(workCenter); + HashMap> deliveryRateMap = new HashMap<>(); + ArrayList xDataNameList = new ArrayList<>(); + ArrayList yDataList = new ArrayList<>(); + for (Map map : deliveryRateList) { + xDataNameList.add(String.valueOf(map.get("month"))); + yDataList.add(String.valueOf(map.get("rate"))); + } + deliveryRateMap.put("xDataName",xDataNameList); + deliveryRateMap.put("yData",yDataList); + result.put("deliveryRate",deliveryRateMap); + //不合格TOP5比例图 + List> ncTop5RateOldList = reportMapper.NCTop5RateList(workCenter).subList(0,5); + ArrayList> ncTop5RateList = new ArrayList<>(); + ncTop5RateOldList.forEach(e -> { + HashMap ncMap = new HashMap<>(); + ncMap.put("name",String.valueOf(e.get("description"))); + ncMap.put("y",Integer.valueOf(String.valueOf(e.get("QTY")))); + ncMap.put("h",Integer.valueOf(String.valueOf(e.get("QTY")))); + ncTop5RateList.add(ncMap); + }); + result.put("ncTop5Rate",ncTop5RateList); return result; } diff --git a/anomaly/src/main/resources/mapper/ReportMapper.xml b/anomaly/src/main/resources/mapper/ReportMapper.xml index 3a1a0723..1c9c7d8a 100644 --- a/anomaly/src/main/resources/mapper/ReportMapper.xml +++ b/anomaly/src/main/resources/mapper/ReportMapper.xml @@ -1953,4 +1953,99 @@ ORDER BY "planCapacity1" DESC ) WIP WHERE 8 >= ROWNUM + + + + + + \ No newline at end of file From eff5d2083b5a96947aef634944b91657e1bc183c Mon Sep 17 00:00:00 2001 From: yinq <1345442242@qq.com> Date: Mon, 5 Sep 2022 10:02:57 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=B5=84=E6=BA=90=E8=B4=9F=E8=8D=B7?= =?UTF-8?q?=E7=8E=87=E6=8A=A5=E8=A1=A8=E4=BF=AE=E6=94=B9v2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anomaly/service/impl/ReportServiceImpl.java | 2 +- anomaly/src/main/resources/mapper/ReportMapper.xml | 4 ++-- .../mesnac/meapi/controller/ResrceController.java | 12 ++++++++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java index a2b23585..7f0fb777 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java @@ -519,7 +519,7 @@ public class ReportServiceImpl implements ReportService { String site = CommonMethods.getSite(); paramMap.put("site", site); paramMap.put("locale", LocaleContextHolder.getLocale().getLanguage()); - if (!StringUtils.isBlank(String.valueOf(paramMap.get("week")))){ + if (String.valueOf(paramMap.get("week")).equals("true")){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); LocalDateTime now = LocalDateTime.now(); DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd"); diff --git a/anomaly/src/main/resources/mapper/ReportMapper.xml b/anomaly/src/main/resources/mapper/ReportMapper.xml index 1c9c7d8a..8ef42e32 100644 --- a/anomaly/src/main/resources/mapper/ReportMapper.xml +++ b/anomaly/src/main/resources/mapper/ReportMapper.xml @@ -1296,9 +1296,9 @@ AND ZSD.CREATED_DATE_TIME >= add_months(SYSDATE, -6) GROUP BY ZSD.SFC)) - SELECT COUNT(zab.NC_QTY) "abnormalQualityNumber", + SELECT SUM(zab.NC_QTY) "abnormalQualityNumber", DECODE(MAX(acc.QTY), NULL, 0, MAX(acc.QTY)) "orderedTotalNumber", - DECODE(MAX(acc.QTY), NULL, 0.00, TO_CHAR(100 - COUNT(zab.NC_QTY) / MAX(acc.QTY) * 100, '99990.99')) || '%' "rate" + DECODE(MAX(acc.QTY), NULL, 0.00, TO_CHAR(100 - SUM(zab.NC_QTY) / MAX(acc.QTY) * 100, '99990.99')) || '%' "rate" FROM Z_ABNORMAL_BILL zab CROSS JOIN acc WHERE zab.STATUS != 'Q' diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/controller/ResrceController.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/controller/ResrceController.java index 4f3b86ac..764f8eae 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/controller/ResrceController.java +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/controller/ResrceController.java @@ -229,7 +229,7 @@ public class ResrceController { /** * 资源负荷率报表 - * 存入 周产能、月产能 + * 存入 周产能、月产能、日产能 * @param paramMap * @return */ @@ -246,7 +246,7 @@ public class ResrceController { customFields.setValue(hashMap.get("weekCapacity")); CustomFieldsList.add(customFields); } - } else { + } else if (paramMap.get("capacity").equals("monthCapacity")){ for (HashMap hashMap : resultList) { CustomFields customFields = new CustomFields(); customFields.setHandle(HandleEnum.OPERATION.getHandle(CommonMethods.getSite(), hashMap.get("operation"),"1.0")); @@ -254,6 +254,14 @@ public class ResrceController { customFields.setValue(hashMap.get("monthCapacity")); CustomFieldsList.add(customFields); } + }else if (paramMap.get("capacity").equals("dayCapacity")){ + for (HashMap hashMap : resultList) { + CustomFields customFields = new CustomFields(); + customFields.setHandle(HandleEnum.OPERATION.getHandle(CommonMethods.getSite(), hashMap.get("operation"),"1.0")); + customFields.setAttribute("DAY_CAPACITY"); + customFields.setValue(hashMap.get("dayCapacity")); + CustomFieldsList.add(customFields); + } } customFieldsService.saveOrUpdateCustomFields(CustomFieldsList); return R.ok("保存成功");