设备产能负荷看板数据接口

master
yinq 2 years ago
parent d59e13b2e1
commit 1b325790d5

@ -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<String, Object> capacityLoad(String workCenter) {
List<Map<String, String>> capacityLoadList = reportMapper.capacityLoad(workCenter);
HashMap<String, Object> result = new HashMap<>();
/*Map<String, List<Map<String, String>>> resourceListMap = capacityLoadList.stream().
collect(Collectors.groupingBy(e -> e.get("resourceDescription")));*/
//八个柱状图计划工时list、计划产能、未完成工时、设备描述
/*for (String resource : resourceListMap.keySet()) {
Float planCapacity = 0f;
Float standardCapacity = 0f;
ArrayList<HashMap<String, Object> > eightList = new ArrayList<>();
ArrayList<Float> planHoursList = new ArrayList<>();
ArrayList<Float> planUndoneHoursList = new ArrayList<>();
for (Map<String, String> map : capacityLoadList) {
HashMap<String, Object> resourceMap = new HashMap<>();
//计划工时
ArrayList<String> planList = new ArrayList<>();
List<Map<String, String>> mapList = resourceListMap.get(resource);
mapList.forEach(e -> {
e.
});*/
capacityLoadList.forEach(e -> {
HashMap<String, Object> resourceMap = new HashMap<>();
//计划工时
ArrayList<String> 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<String> 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<Map<String, String>> dutyCauseTypeDescription = reportMapper.dutyCauseTypeDescription();
List<String> descriptionList = dutyCauseTypeDescription.stream().map(e -> e.get("DESCRIPTION")).collect(Collectors.toList());
List<String> numbersList = new LinkedList<>();
List<String> dutyCauseType = reportMapper.dutyCauseType(user);
for (String type : dutyCauseType) {

@ -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 &lt;= TO_DATE(WEEK.WEEK1)
@ -1922,6 +1923,14 @@
WHEN ZSD.PLANNED_COMP_DATE >= TO_DATE(WEEK.WEEK7) AND ZSD.PLANNED_COMP_DATE &lt;= 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 &lt;= 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 &lt;= 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
<if test="workCenter != null and workCenter != ''">

Loading…
Cancel
Save