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 079b9a5b..cbc69c3f 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 @@ -4,6 +4,7 @@ import com.foreverwin.mesnac.anomaly.dto.IntegrationLogDto; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -159,7 +160,7 @@ public interface ReportMapper { List> capacityLoad(String workCenter); - Map sixShopOrderQTY(String workCenter); + LinkedHashMap sixShopOrderQTY(String workCenter); List> nearFifteenDayRate(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 7f0fb777..2e9f5897 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 @@ -1,5 +1,6 @@ package com.foreverwin.mesnac.anomaly.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.foreverwin.mesnac.anomaly.dto.IntegrationLogDto; import com.foreverwin.mesnac.anomaly.mapper.ReportMapper; @@ -547,7 +548,19 @@ public class ReportServiceImpl implements ReportService { if (!StringUtils.isBlank(String.valueOf(paramMap.get("month")))){ paramMap.put("month",Integer.valueOf(String.valueOf(paramMap.get("month")))); } - return reportMapper.monthLoadRateReport(paramMap); + int month = Calendar.getInstance().get(Calendar.MONTH) + 1; + 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"))){ + map.put("monthRate" + month, String.format("%.2f",(number / Float.valueOf(String.valueOf(map.get("monthCapacity")))) * 100) + "%" ); + }else { + map.put("monthRate" + month, "0.00%"); + } + } + + return result; } /** @@ -769,21 +782,21 @@ public class ReportServiceImpl implements ReportService { capacityLoadList = reportMapper.capacityLoad(workCenter); Float planCapacity = 0f; Float standardCapacity = 0f; - ArrayList > eightList = new ArrayList<>(); + 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"))); + ArrayList planList = new ArrayList<>(); + planList.add(Float.valueOf(String.valueOf(map.get("planCapacity1")))); + planList.add(Float.valueOf(String.valueOf(map.get("planCapacity2")))); + planList.add(Float.valueOf(String.valueOf(map.get("planCapacity3")))); + planList.add(Float.valueOf(String.valueOf(map.get("planCapacity4")))); + planList.add(Float.valueOf(String.valueOf(map.get("planCapacity5")))); + planList.add(Float.valueOf(String.valueOf(map.get("planCapacity6")))); + planList.add(Float.valueOf(String.valueOf(map.get("planCapacity7")))); + planList.add(Float.valueOf(String.valueOf(map.get("planCapacity8")))); resourceMap.put("planCapacityList",planList); //标准产能 resourceMap.put("standardWeekCapacity",map.get("standardWeekCapacity")); @@ -792,20 +805,20 @@ public class ReportServiceImpl implements ReportService { //设备描述 resourceMap.put("resourceDescription",map.get("resourceDescription")); //总标准产能、总计划产能 - for (String et : planList) { - planCapacity += Float.parseFloat(et); + for (Float et : planList) { + planCapacity += Float.parseFloat(String.valueOf(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)); + rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity1"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity2"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity3"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity4"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity5"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity6"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.format("%.2f", Float.valueOf(String.valueOf(map.get("planCapacity7"))) / Float.valueOf(String.valueOf(Float.valueOf(map.get("standardWeekCapacity")))) * 100)); + rateList.add(String.format("%.2f", 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")))); @@ -833,7 +846,7 @@ public class ReportServiceImpl implements ReportService { @Override public Map manufacturingPlanning(String workCenter) { HashMap result = new HashMap<>(); - Map sixMap = reportMapper.sixShopOrderQTY(workCenter); + LinkedHashMap sixMap = reportMapper.sixShopOrderQTY(workCenter); ArrayList sixList = new ArrayList<>(); for (String key : sixMap.keySet()) { sixList.add(Integer.valueOf(String.valueOf(sixMap.get(key)))); @@ -1011,9 +1024,9 @@ public class ReportServiceImpl implements ReportService { HashMap result = new HashMap<>(); result.put("userGroup", userGroup); List> abnormalQualityList = reportMapper.projectScheduleShow(userGroup); - if (abnormalQualityList.size() > 20){ + /* if (abnormalQualityList.size() > 20){ abnormalQualityList = abnormalQualityList.subList(0, 20); - } + }*/ result.put("originalData",abnormalQualityList); //项目进度圆圈circle ArrayList> projectCircleList = new ArrayList<>(); @@ -1051,9 +1064,9 @@ public class ReportServiceImpl implements ReportService { result.put("firstThreeList",firstThreeList); // rate2 计划进度(浅绿色)/ rate1 计划完成(深蓝色) 为百分比 rate3深黄色() 实际工时进度。start开始时间 0 -- 70 - ArrayList> projectGanttChartList = new ArrayList<>(); + ArrayList> projectGanttChartList = new ArrayList<>(); for (Map abnormalQualityMap : abnormalQualityList) { - HashMap projectGanttChartHashMap = new HashMap<>(); + /*HashMap projectGanttChartHashMap = new HashMap<>(); String startDate = dateConvert(String.valueOf(abnormalQualityMap.get("startDate"))); projectGanttChartHashMap.put("start",startDate); // rate1 计划完成(深蓝色) @@ -1081,9 +1094,19 @@ public class ReportServiceImpl implements ReportService { } //String now = dateConvert(DateUtil.formatDate(new Date())); projectGanttChartHashMap.put("rate2",String.valueOf(Float.valueOf(abnormalQualityMap.get("planRate")) * 0.7 - Float.valueOf(startDate))); - projectGanttChartList.add(projectGanttChartHashMap); + projectGanttChartList.add(projectGanttChartHashMap);*/ + HashMap projectGanttChartHashMap = new HashMap<>(); + Date startDate = DateReportUtils.stringToDate(String.valueOf(abnormalQualityMap.get("startDate")), "yyyy-MM-dd HH:mm:ss"); + Date endPlanDate = DateReportUtils.stringToDate(String.valueOf(abnormalQualityMap.get("endPlanDate")), "yyyy-MM-dd HH:mm:ss"); + projectGanttChartHashMap.put("start",startDate.getTime()); + projectGanttChartHashMap.put("end",endPlanDate.getTime()); + projectGanttChartHashMap.put("rate", Float.valueOf(String.format("%.2f", Float.valueOf(String.valueOf(abnormalQualityMap.get("rate")))))); + projectGanttChartHashMap.put("rate1",Float.valueOf(String.format("%.2f", Float.valueOf(String.valueOf(abnormalQualityMap.get("planRate")))))); + projectGanttChartHashMap.put("rate2",Float.valueOf(String.format("%.2f", Float.valueOf(String.valueOf(abnormalQualityMap.get("rate")))))); + projectGanttChartList.add(projectGanttChartHashMap); } result.put("projectGanttChartList",projectGanttChartList); + //System.out.println(JSON.toJSONString(projectGanttChartList)); return result; } diff --git a/anomaly/src/main/resources/mapper/ReportMapper.xml b/anomaly/src/main/resources/mapper/ReportMapper.xml index 8ef42e32..0f4f9a27 100644 --- a/anomaly/src/main/resources/mapper/ReportMapper.xml +++ b/anomaly/src/main/resources/mapper/ReportMapper.xml @@ -1216,6 +1216,12 @@ INNER JOIN OPERATION O ON O.SITE = WIP.SITE AND O.OPERATION = zsd2.OPERATION AND O.CURRENT_REVISION = 'true' LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = O.HANDLE AND OT.LOCALE = 'zh' + + WIP.rate = 100.00 + + + WIP.rate != 100.00 + AND WIP.workOrder like '%${workOrder}%' @@ -1389,8 +1395,8 @@ GROUP BY OWIP.item, OWIP.workOrder ) WIP - WIP."rate" > 0.00 - AND WIP."startDate" >= (SYSDATE - 5 * 7) + WIP."rate" 100.00 AND WIP."rate" > 0.00 + --AND WIP."startDate" >= (SYSDATE - 5 * 7) AND WIP."workOrder" like '%${user}%' @@ -1528,7 +1534,18 @@ - SELECT COUNT(WIP.SHOP_ORDER) "shopOrderQTY", DECODE(SUM(WIP.SHOP_QTY),NULL,0,SUM(WIP.SHOP_QTY)) "sumQTY", DECODE(SUM(WIP.ITEM_QTY),NULL,0,SUM(WIP.ITEM_QTY)) "sumItemQTY", @@ -1964,9 +2002,9 @@ SELECT ZT.SHOP_ORDER SHOP_ORDER, SUM(S.QTY) SHOP_QTY, COUNT(ROWNUM) ITEM_QTY, - SUM(CASE WHEN ZT.STATUS = 'NEW' THEN 1 ELSE 0 END ) WAIT_SHOP_QTY, + MAX(CASE WHEN ZT.STATUS = 'NEW' THEN 1 ELSE 0 END ) WAIT_SHOP_QTY, SUM(CASE WHEN ZT.STATUS = 'NEW' THEN S.QTY ELSE 0 END ) WAIT_QTY, - MAX(CASE WHEN ZT.STATUS = 'COMPLETE' THEN 1 ELSE 0 END ) IS_DONE_SHOP + MIN(CASE WHEN ZT.STATUS = 'COMPLETE' THEN 1 ELSE 0 END ) IS_DONE_SHOP FROM Z_INSPECTION_TASK ZT INNER JOIN SFC S ON S.SFC = ZT.SFC AND S.SITE = ZT.SITE WHERE TO_CHAR(SYSDATE, 'yyyy-MM-dd') = TO_CHAR(ZT.CREATED_DATE_TIME, 'yyyy-MM-dd')