From 1e1d67569a3dfe8b286e877e35b4fcc14a7c3561 Mon Sep 17 00:00:00 2001 From: yinq <1345442242@qq.com> Date: Fri, 14 Oct 2022 10:00:20 +0800 Subject: [PATCH] =?UTF-8?q?add=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anomaly/controller/ReportController.java | 14 ++ .../mesnac/anomaly/mapper/ReportMapper.java | 9 +- .../mesnac/anomaly/service/ReportService.java | 11 +- .../service/impl/ReportServiceImpl.java | 233 +++++++++++++++++- .../main/resources/mapper/ReportMapper.xml | 84 ++++++- 5 files changed, 334 insertions(+), 17 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 4a024211..2cfc894c 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 @@ -414,6 +414,20 @@ public class ReportController { } } + /** + * 订单查询报表 + * @param paramMap + * @return + */ + @GetMapping("/orderQueryReportReport") + public R orderQueryReportReport(@RequestParam(required = false) Map paramMap){ + try{ + return R.ok(reportService.orderQueryReportReport(paramMap)); + }catch (Exception e){ + return R.failed(e.getMessage()); + } + } + /** * 项目生产加工周期看板 * @param 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 c7e305fe..cb82de59 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 @@ -127,7 +127,7 @@ public interface ReportMapper { * @param paramMap * @return */ - List> monthLoadRateReport(Map paramMap); + List> monthLoadRateReport(Map paramMap); /** * 交付及时率报表(周维度) @@ -197,4 +197,11 @@ public interface ReportMapper { * @return */ List> lastOperationCompletedReport(Map paramMap); + + /** + * + * @param paramMap + * @return + */ + List> orderQueryReportReport(Map paramMap); } 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 a403a215..33ac2431 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 @@ -126,11 +126,11 @@ public interface ReportService { List> weekLoadRateReport(Map paramMap); /** - * 资源负荷率报表(周维度) + * 资源负荷率报表(月维度) * @param paramMap * @return */ - List> monthLoadRateReport(Map paramMap); + List> monthLoadRateReport(Map paramMap); /** * 交付及时率报表(周维度) @@ -209,4 +209,11 @@ public interface ReportService { */ List> lastOperationCompletedReport(Map paramMap); + /** + * 订单查询报表 + * @param paramMap + * @return + */ + List> orderQueryReportReport(Map paramMap); + } 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 7728658c..94fb4610 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 @@ -594,18 +594,79 @@ public class ReportServiceImpl implements ReportService { paramMap.put("site", site); paramMap.put("locale", LocaleContextHolder.getLocale().getLanguage()); 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"); int dayOfWeek = now.getDayOfWeek().getValue(); LocalDateTime weekStart = now.minusDays(dayOfWeek - 1).with(LocalTime.MIN); LocalDateTime weekEnd = now.plusDays(7 * 8 - dayOfWeek).with(LocalTime.MAX); - System.out.println("当前周的开始时间:" + weekStart.format(fmt)); - System.out.println("当前周的结束时间:" + weekEnd.format(fmt)); List> weekOfDate = DateReportUtils.getWeekOfDate3(weekStart.format(fmt), weekEnd.format(fmt)); return weekOfDate; } - return reportMapper.weekLoadRateReport(paramMap); + List> resultList = reportMapper.weekLoadRateReport(paramMap); + HashMap countMap = new HashMap<>(); + countMap.put("workCenterDescription","总计:"); + Float tardinessWork = 0.00f; + Float weekCapacity = 0.00f; + Float unWorkHours1 = 0.00f; + Float unWorkHours2 = 0.00f; + Float unWorkHours3 = 0.00f; + Float unWorkHours4 = 0.00f; + Float unWorkHours5 = 0.00f; + Float unWorkHours6 = 0.00f; + Float unWorkHours7 = 0.00f; + Float unWorkHours8 = 0.00f; + Float weekRate1 = 0.00f; + Float weekRate2 = 0.00f; + Float weekRate3 = 0.00f; + Float weekRate4 = 0.00f; + Float weekRate5 = 0.00f; + Float weekRate6 = 0.00f; + Float weekRate7 = 0.00f; + Float weekRate8 = 0.00f; + for (Map map : resultList) { + tardinessWork += Float.valueOf(String.valueOf(map.get("tardinessWork"))); + if (!StringUtils.isBlank(map.get("weekCapacity"))){ + weekCapacity += Float.valueOf(String.valueOf(map.get("weekCapacity"))); + } + unWorkHours1 += Float.valueOf(String.valueOf(map.get("unWorkHours1"))); + unWorkHours2 += Float.valueOf(String.valueOf(map.get("unWorkHours2"))); + unWorkHours3 += Float.valueOf(String.valueOf(map.get("unWorkHours3"))); + unWorkHours4 += Float.valueOf(String.valueOf(map.get("unWorkHours4"))); + unWorkHours5 += Float.valueOf(String.valueOf(map.get("unWorkHours5"))); + unWorkHours6 += Float.valueOf(String.valueOf(map.get("unWorkHours6"))); + unWorkHours7 += Float.valueOf(String.valueOf(map.get("unWorkHours7"))); + unWorkHours8 += Float.valueOf(String.valueOf(map.get("unWorkHours8"))); + weekRate1 += Float.valueOf(String.valueOf(map.get("weekRate1")).replace("%","")); + weekRate2 += Float.valueOf(String.valueOf(map.get("weekRate2")).replace("%","")); + weekRate3 += Float.valueOf(String.valueOf(map.get("weekRate3")).replace("%","")); + weekRate4 += Float.valueOf(String.valueOf(map.get("weekRate4")).replace("%","")); + weekRate5 += Float.valueOf(String.valueOf(map.get("weekRate5")).replace("%","")); + weekRate6 += Float.valueOf(String.valueOf(map.get("weekRate6")).replace("%","")); + weekRate7 += Float.valueOf(String.valueOf(map.get("weekRate7")).replace("%","")); + weekRate8 += Float.valueOf(String.valueOf(map.get("weekRate8")).replace("%","")); + } + countMap.put("tardinessWork",String.format("%.2f",tardinessWork)); + countMap.put("weekCapacity",String.format("%.2f",weekCapacity)); + countMap.put("unWorkHours1",String.format("%.2f",unWorkHours1)); + countMap.put("unWorkHours2",String.format("%.2f",unWorkHours2)); + countMap.put("unWorkHours3",String.format("%.2f",unWorkHours3)); + countMap.put("unWorkHours4",String.format("%.2f",unWorkHours4)); + countMap.put("unWorkHours5",String.format("%.2f",unWorkHours5)); + countMap.put("unWorkHours6",String.format("%.2f",unWorkHours6)); + countMap.put("unWorkHours7",String.format("%.2f",unWorkHours7)); + countMap.put("unWorkHours8",String.format("%.2f",unWorkHours8)); + countMap.put("weekRate1",String.format("%.2f",weekRate1 / resultList.size()) + "%"); + countMap.put("weekRate2",String.format("%.2f",weekRate2 / resultList.size()) + "%"); + countMap.put("weekRate3",String.format("%.2f",weekRate3 / resultList.size()) + "%"); + countMap.put("weekRate4",String.format("%.2f",weekRate4 / resultList.size()) + "%"); + countMap.put("weekRate5",String.format("%.2f",weekRate5 / resultList.size()) + "%"); + countMap.put("weekRate6",String.format("%.2f",weekRate6 / resultList.size()) + "%"); + countMap.put("weekRate7",String.format("%.2f",weekRate7 / resultList.size()) + "%"); + countMap.put("weekRate8",String.format("%.2f",weekRate8 / resultList.size()) + "%"); + resultList.add(countMap); + + return resultList; + } /** @@ -614,7 +675,7 @@ public class ReportServiceImpl implements ReportService { * @return */ @Override - public List> monthLoadRateReport(Map paramMap) { + public List> monthLoadRateReport(Map paramMap) { String site = CommonMethods.getSite(); paramMap.put("site", site); paramMap.put("locale", LocaleContextHolder.getLocale().getLanguage()); @@ -622,8 +683,8 @@ public class ReportServiceImpl implements ReportService { paramMap.put("month",Integer.valueOf(String.valueOf(paramMap.get("month")))); } int month = Calendar.getInstance().get(Calendar.MONTH) + 1; - List> result = reportMapper.monthLoadRateReport(paramMap); - for (Map map : result) { + List> result = reportMapper.monthLoadRateReport(paramMap); + for (Map map : result) { Float number = Float.valueOf(String.valueOf(map.get("workHours" + month))) + Float.valueOf(String.valueOf(map.get("tardinessWork"))); map.put("workHours" + month, String.format("%.2f",number)); if ((map.containsKey("monthCapacity"))){ @@ -632,7 +693,91 @@ public class ReportServiceImpl implements ReportService { map.put("monthRate" + month, "0.00%"); } } - + HashMap countMap = new HashMap<>(); + countMap.put("workCenterDescription","总计:"); + Float monthCapacity = 0.00f; + Float tardinessWork = 0.00f; + Float workHours1 = 0.00f; + Float workHours2 = 0.00f; + Float workHours3 = 0.00f; + Float workHours4 = 0.00f; + Float workHours5 = 0.00f; + Float workHours6 = 0.00f; + Float workHours7 = 0.00f; + Float workHours8 = 0.00f; + Float workHours9 = 0.00f; + Float workHours10 = 0.00f; + Float workHours11= 0.00f; + Float workHours12 = 0.00f; + Float monthRate1 = 0.00f; + Float monthRate2 = 0.00f; + Float monthRate3 = 0.00f; + Float monthRate4 = 0.00f; + Float monthRate5 = 0.00f; + Float monthRate6 = 0.00f; + Float monthRate7 = 0.00f; + Float monthRate8 = 0.00f; + Float monthRate9 = 0.00f; + Float monthRate10 = 0.00f; + Float monthRate11 = 0.00f; + Float monthRate12 = 0.00f; + for (Map map : result) { + tardinessWork += Float.valueOf(String.valueOf(map.get("tardinessWork"))); + if (!StringUtils.isBlank(map.get("monthCapacity"))){ + monthCapacity += Float.valueOf(String.valueOf(map.get("monthCapacity"))); + } + workHours1 += Float.valueOf(String.valueOf(map.get("workHours1"))); + workHours2 += Float.valueOf(String.valueOf(map.get("workHours2"))); + workHours3 += Float.valueOf(String.valueOf(map.get("workHours3"))); + workHours4 += Float.valueOf(String.valueOf(map.get("workHours4"))); + workHours5 += Float.valueOf(String.valueOf(map.get("workHours5"))); + workHours6 += Float.valueOf(String.valueOf(map.get("workHours6"))); + workHours7 += Float.valueOf(String.valueOf(map.get("workHours7"))); + workHours8 += Float.valueOf(String.valueOf(map.get("workHours8"))); + workHours9 += Float.valueOf(String.valueOf(map.get("workHours9"))); + workHours10 += Float.valueOf(String.valueOf(map.get("workHours10"))); + workHours11 += Float.valueOf(String.valueOf(map.get("workHours11"))); + workHours12 += Float.valueOf(String.valueOf(map.get("workHours12"))); + monthRate1 += Float.valueOf(String.valueOf(map.get("monthRate1")).replace("%","")); + monthRate2 += Float.valueOf(String.valueOf(map.get("monthRate2")).replace("%","")); + monthRate3 += Float.valueOf(String.valueOf(map.get("monthRate3")).replace("%","")); + monthRate4 += Float.valueOf(String.valueOf(map.get("monthRate4")).replace("%","")); + monthRate5 += Float.valueOf(String.valueOf(map.get("monthRate5")).replace("%","")); + monthRate6 += Float.valueOf(String.valueOf(map.get("monthRate6")).replace("%","")); + monthRate7 += Float.valueOf(String.valueOf(map.get("monthRate7")).replace("%","")); + monthRate8 += Float.valueOf(String.valueOf(map.get("monthRate8")).replace("%","")); + monthRate9 += Float.valueOf(String.valueOf(map.get("monthRate9")).replace("%","")); + monthRate10 += Float.valueOf(String.valueOf(map.get("monthRate10")).replace("%","")); + monthRate11 += Float.valueOf(String.valueOf(map.get("monthRate11")).replace("%","")); + monthRate12 += Float.valueOf(String.valueOf(map.get("monthRate12")).replace("%","")); + } + countMap.put("tardinessWork",String.format("%.2f",tardinessWork)); + countMap.put("monthCapacity",String.format("%.2f",monthCapacity)); + countMap.put("workHours1",String.format("%.2f",workHours1)); + countMap.put("workHours2",String.format("%.2f",workHours2)); + countMap.put("workHours3",String.format("%.2f",workHours3)); + countMap.put("workHours4",String.format("%.2f",workHours4)); + countMap.put("workHours5",String.format("%.2f",workHours5)); + countMap.put("workHours6",String.format("%.2f",workHours6)); + countMap.put("workHours7",String.format("%.2f",workHours7)); + countMap.put("workHours8",String.format("%.2f",workHours8)); + countMap.put("workHours9",String.format("%.2f",workHours9)); + countMap.put("workHours10",String.format("%.2f",workHours10)); + countMap.put("workHours11",String.format("%.2f",workHours11)); + countMap.put("workHours12",String.format("%.2f",workHours12)); + countMap.put("monthRate1",String.format("%.2f",monthRate1 / result.size()) + "%"); + countMap.put("monthRate2",String.format("%.2f",monthRate2 / result.size()) + "%"); + countMap.put("monthRate3",String.format("%.2f",monthRate3 / result.size()) + "%"); + countMap.put("monthRate4",String.format("%.2f",monthRate4 / result.size()) + "%"); + countMap.put("monthRate5",String.format("%.2f",monthRate5 / result.size()) + "%"); + countMap.put("monthRate6",String.format("%.2f",monthRate6 / result.size()) + "%"); + countMap.put("monthRate7",String.format("%.2f",monthRate7 / result.size()) + "%"); + countMap.put("monthRate8",String.format("%.2f",monthRate8 / result.size()) + "%"); + countMap.put("monthRate9",String.format("%.2f",monthRate9 / result.size()) + "%"); + countMap.put("monthRate10",String.format("%.2f",monthRate10 / result.size()) + "%"); + countMap.put("monthRate11",String.format("%.2f",monthRate11 / result.size()) + "%"); + countMap.put("monthRate12",String.format("%.2f",monthRate12 / result.size()) + "%"); + result.add(countMap); return result; } @@ -721,7 +866,34 @@ public class ReportServiceImpl implements ReportService { result.put("columnData",columnDataList); result.put("rowData",rowDataList);*/ - return reportMapper.weekDeliveryRateReport(paramMap); + List> resultList = reportMapper.weekDeliveryRateReport(paramMap); + HashMap countMap = new HashMap<>(); + countMap.put("workCenter","总计:"); + Float sumQTY = 0.00f; + Float sumDoneQTY = 0.00f; + Float QTYrate = 0.00f; + Float sumHours = 0.00f; + Float sumDoneHours = 0.00f; + Float HOURSrate = 0.00f; + for (Map map : resultList) { + sumQTY += Float.valueOf(String.valueOf(map.get("sumQTY"))); + sumDoneQTY += Float.valueOf(String.valueOf(map.get("sumDoneQTY"))); + QTYrate += Float.valueOf(String.valueOf(map.get("QTYrate")).replace("%","")); + sumHours += Float.valueOf(String.valueOf(map.get("sumHours"))); + sumDoneHours += Float.valueOf(String.valueOf(map.get("sumDoneHours"))); + HOURSrate += Float.valueOf(String.valueOf(map.get("HOURSrate")).replace("%","")); + + } + countMap.put("sumQTY",String.format("%.2f",sumQTY)); + countMap.put("sumDoneQTY",String.format("%.2f",sumDoneQTY)); + countMap.put("QTYrate",String.format("%.2f",QTYrate / resultList.size()) + "%"); + countMap.put("sumHours",String.format("%.2f",sumHours)); + countMap.put("sumDoneHours",String.format("%.2f",sumDoneHours)); + countMap.put("HOURSrate",String.format("%.2f",HOURSrate / resultList.size()) + "%"); + + resultList.add(countMap); + + return resultList; } /** @@ -734,7 +906,34 @@ public class ReportServiceImpl implements ReportService { String site = CommonMethods.getSite(); paramMap.put("site", site); paramMap.put("locale", LocaleContextHolder.getLocale().getLanguage()); - return reportMapper.monthDeliveryRateReport(paramMap); + + List> resultList = reportMapper.monthDeliveryRateReport(paramMap); + HashMap countMap = new HashMap<>(); + countMap.put("workCenter","总计:"); + Float sumQTY = 0.00f; + Float sumDoneQTY = 0.00f; + Float QTYrate = 0.00f; + Float sumHours = 0.00f; + Float sumDoneHours = 0.00f; + Float HOURSrate = 0.00f; + for (Map map : resultList) { + sumQTY += Float.valueOf(String.valueOf(map.get("sumQTY"))); + sumDoneQTY += Float.valueOf(String.valueOf(map.get("sumDoneQTY"))); + QTYrate += Float.valueOf(String.valueOf(map.get("QTYrate")).replace("%","")); + sumHours += Float.valueOf(String.valueOf(map.get("sumHours"))); + sumDoneHours += Float.valueOf(String.valueOf(map.get("sumDoneHours"))); + HOURSrate += Float.valueOf(String.valueOf(map.get("HOURSrate")).replace("%","")); + + } + countMap.put("sumQTY",String.format("%.2f",sumQTY)); + countMap.put("sumDoneQTY",String.format("%.2f",sumDoneQTY)); + countMap.put("QTYrate",String.format("%.2f",QTYrate / resultList.size()) + "%"); + countMap.put("sumHours",String.format("%.2f",sumHours)); + countMap.put("sumDoneHours",String.format("%.2f",sumDoneHours)); + countMap.put("HOURSrate",String.format("%.2f",HOURSrate / resultList.size()) + "%"); + + resultList.add(countMap); + return resultList; } /** @@ -857,6 +1056,7 @@ public class ReportServiceImpl implements ReportService { List> capacityLoadList = null; try { capacityLoadList = reportMapper.capacityLoad(workCenter); + result.put("capacityLoadList",capacityLoadList); Float planCapacity = 0f; Float standardCapacity = 0f; ArrayList> eightList = new ArrayList<>(); @@ -1039,6 +1239,19 @@ public class ReportServiceImpl implements ReportService { return reportMapper.lastOperationCompletedReport(paramMap); } + /** + * 订单查询报表 + * @param paramMap + * @return + */ + @Override + public List> orderQueryReportReport(Map paramMap) { + String site = CommonMethods.getSite(); + paramMap.put("site", site); + paramMap.put("locale", LocaleContextHolder.getLocale().getLanguage()); + return reportMapper.orderQueryReportReport(paramMap); + } + /** * 事业部质量看板数据接口 * @param user diff --git a/anomaly/src/main/resources/mapper/ReportMapper.xml b/anomaly/src/main/resources/mapper/ReportMapper.xml index d5816281..8d053eb9 100644 --- a/anomaly/src/main/resources/mapper/ReportMapper.xml +++ b/anomaly/src/main/resources/mapper/ReportMapper.xml @@ -1154,7 +1154,11 @@ WIP.itemDescription "itemDescription", WIP.shopOrderQTY "shopOrderQTY", WIP.doneQTY "doneQTY",--已完成数量 - WIP.rate || '%' "rate", + CASE + WHEN WIP.shopOrderQTY = WIP.doneQTY THEN '100.00' + ELSE WIP.rate + END + || '%' "rate", zsd2.CURRENT_OPERATION "currentOperation", WIP.nextOperationNum "nextOperationNum", zsd3.PLANNED_COMP_DATE "currentPlanTime", @@ -1920,6 +1924,18 @@ AND IM.ITEM = #{item} + + AND TO_CHAR(ZT.CREATED_DATE_TIME + 8/24,'YYYY-mm-dd') >= #{startReportDate} + + + AND TO_CHAR(ZT.CREATED_DATE_TIME + 8/24,'YYYY-mm-dd') <= #{endReportDate} + + + AND TO_CHAR(ZT.MODIFIED_DATE_TIME + 8/24,'YYYY-mm-dd') >= #{startInspectionDate} + + + AND TO_CHAR(ZT.MODIFIED_DATE_TIME + 8/24,'YYYY-mm-dd') <= #{endInspectionDate} + ORDER BY ZT.MODIFIED_DATE_TIME DESC - SELECT WIP.*, CASE WHEN WIP.BEFORE_SEQ = 0 @@ -2342,5 +2370,53 @@ AND WIP.WORK_CENTER_DESCRIPTION = #{workCenter} + \ No newline at end of file