工时看板调整

master
yinq 2 years ago
parent 548e1671bb
commit 7df0f16c8c

@ -166,12 +166,16 @@ public interface ReportMapper {
LinkedHashMap<String, String> sixShopOrderQTY(String workCenter);
LinkedHashMap<String, String> sixWorkCenterHoursQTY(String workCenter);
List<Map<String, String>> nearFifteenDayRate(String workCenter);
List<Map<String, String>> departmentForNonconformity(String workCenter);
List<Map<String, String>> workingHoursEachWorkshop(String workCenter);
List<Map<String, String>> workingHoursYearContrast(String workCenter);
List<Map<String, String>> workshopDeliveryRateList(String workCenter);
List<Map<String, String>> NCTop5RateList(String workCenter);
@ -315,4 +319,7 @@ public interface ReportMapper {
* @return
*/
List<Map<String, String>> projectScheduleReportBoard(Map paramMap);
List<Map<String, String>> totalWorkingHoursCompletedThisYear(String workCenter);
}

@ -1465,6 +1465,23 @@ public class ReportServiceImpl implements ReportService {
public Map<String, Object> workHoursBoard(String workCenter) {
HashMap<String, Object> result = new HashMap<>();
LinkedHashMap<String, String> sixMap = reportMapper.sixWorkCenterHoursQTY(workCenter);
ArrayList<Float> sixList = new ArrayList<>();
for (String key : sixMap.keySet()) {
sixList.add(Float.valueOf(String.valueOf(sixMap.get(key))));
}
result.put("sixList",sixList);
List<Map<String, String>> thisYearMapList = reportMapper.totalWorkingHoursCompletedThisYear(workCenter);
ArrayList<String> monthYearList = new ArrayList<>();
ArrayList<Float> workHorsList = new ArrayList<>();
for (Map<String, String> map : thisYearMapList) {
monthYearList.add(map.get("MONTH_MONTH"));
workHorsList.add(Float.valueOf(String.valueOf(map.get("QTY"))));
}
result.put("monthYearList",monthYearList);
result.put("workHorsList",workHorsList);
//各车间总工时完成情况(单轴多折线图)
List<Map<String, String>> WorkshopList = reportMapper.workingHoursEachWorkshop(workCenter);
List<String> monthOldList = WorkshopList.stream().map(e -> { return e.get("MONTH"); })
@ -1504,6 +1521,30 @@ public class ReportServiceImpl implements ReportService {
dutyCauseMap.put("causeTypeDescription",nameList);
dutyCauseMap.put("distributionMapList",nameAndValueList);
result.put("dutyCause",dutyCauseMap);
//年度对比图(单轴多折线图)
List<Map<String, String>> contrastList = reportMapper.workingHoursYearContrast(workCenter);
List<String> yearOldList = contrastList.stream().map(e -> { return e.get("M_MONTH"); })
.distinct().sorted().collect(Collectors.toList());
ArrayList<String> yearList = new ArrayList<>();
yearList.addAll(yearOldList);
Map<String, List<Map<String, String>>> contrastMap = contrastList.stream().
collect(Collectors.groupingBy(e -> e.get("CON_YEAR")));
ArrayList<HashMap<String, Object>> contrastMapValueList = new ArrayList<>();
for (String description : contrastMap.keySet()) {
List<Map<String, String>> maps = contrastMap.get(description);
HashMap<String, Object> map = new HashMap<>();
ArrayList<Float> QTYList = new ArrayList<>();
maps.forEach(e -> {
QTYList.add(Float.valueOf(String.valueOf(e.get("QTY"))));
});
map.put("name",description);
map.put("value",QTYList);
contrastMapValueList.add(map);
}
result.put("yearList",yearList);
result.put("contrastMapValueList",contrastMapValueList);
return result;
}
@ -1929,7 +1970,7 @@ public class ReportServiceImpl implements ReportService {
List<String> dateList = new ArrayList<>();
//获取近半年月份
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH,calendar.get(Calendar.MONTH) - 5);
calendar.set(Calendar.MONTH,calendar.get(Calendar.MONTH) - 6);
for (int i = 6 ; i > 0; i--) {
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) + 1);
dateList.add(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) == 0 ? 12 : calendar.get(Calendar.MONTH) < 10 ? "0" + calendar.get(Calendar.MONTH) : calendar.get(Calendar.MONTH)));

@ -3226,6 +3226,67 @@ SELECT zab.CREATED_DATE_TIME,
AND V."workOrder" like '%${user}%'
</if>
</select>
<select id="workingHoursYearContrast" resultType="java.util.Map">
WITH M_MONTH AS (
SELECT TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE), + ROWNUM - 24), 'yyyy-MM') MONTH
FROM DUAL
CONNECT BY 24 >= ROWNUM)
SELECT SUBSTR(M_MONTH.MONTH,0,4) CON_YEAR,
SUBSTR(M_MONTH.MONTH,6) || '月' M_MONTH,
SUM(ROUND(CASE
WHEN M_MONTH.MONTH = TO_CHAR(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24, 'yyyy-mm') THEN
ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END, 2)) QTY
FROM Z_SFC_DISPATCH ZSD
CROSS JOIN M_MONTH
GROUP BY M_MONTH.MONTH
ORDER BY M_MONTH.MONTH
</select>
<select id="sixWorkCenterHoursQTY" resultType="java.util.LinkedHashMap">
SELECT SUM(CASE
WHEN ZSD.WORK_CENTER = 'JJ' AND (ZSD.DISPATCH_STATUS = 'COMPLETE' OR ZSD.DISPATCH_STATUS != 'CANCEL')
THEN ZSD.PROD_HOURS * ZSD.DISPATCH_QTY
ELSE 0 END) JJ_DONE,
SUM(CASE
WHEN ZSD.WORK_CENTER = 'HJ' AND (ZSD.DISPATCH_STATUS = 'COMPLETE' OR ZSD.DISPATCH_STATUS != 'CANCEL')
THEN ZSD.PROD_HOURS * ZSD.DISPATCH_QTY
ELSE 0 END) HJ_DONE,
SUM(CASE
WHEN ZSD.WORK_CENTER = 'RC' AND (ZSD.DISPATCH_STATUS = 'COMPLETE' OR ZSD.DISPATCH_STATUS != 'CANCEL')
THEN ZSD.PROD_HOURS * ZSD.DISPATCH_QTY
ELSE 0 END) RC_DONE,
SUM(CASE
WHEN ZSD.WORK_CENTER = 'JJ' AND (ZSD.DISPATCH_STATUS != 'CANCEL' AND ZSD.DISPATCH_STATUS != 'PAUSE' AND
ZSD.DISPATCH_STATUS != 'COMPLETE')
THEN ZSD.PROD_HOURS * ZSD.DISPATCH_QTY
ELSE 0 END) JJ_UNFINISD,
SUM(CASE
WHEN ZSD.WORK_CENTER = 'HJ' AND (ZSD.DISPATCH_STATUS != 'CANCEL' AND ZSD.DISPATCH_STATUS != 'PAUSE' AND
ZSD.DISPATCH_STATUS != 'COMPLETE')
THEN ZSD.PROD_HOURS * ZSD.DISPATCH_QTY
ELSE 0 END) HJ_UNFINISD,
SUM(CASE
WHEN ZSD.WORK_CENTER = 'RC' AND (ZSD.DISPATCH_STATUS != 'CANCEL' AND ZSD.DISPATCH_STATUS != 'PAUSE' AND
ZSD.DISPATCH_STATUS != 'COMPLETE')
THEN ZSD.PROD_HOURS * ZSD.DISPATCH_QTY
ELSE 0 END) RC_UNFINISD
FROM Z_SFC_DISPATCH ZSD
</select>
<select id="totalWorkingHoursCompletedThisYear" resultType="java.util.Map">
WITH M_MONTH AS (
SELECT TO_CHAR(ADD_MONTHS(TRUNC(last_day(add_months(trunc(SYSDATE, 'y'), 11))), + ROWNUM - 12), 'yyyy-MM') MONTH
FROM DUAL
CONNECT BY 12 >= ROWNUM)
SELECT SUBSTR(M_MONTH.MONTH, 6) || '月' MONTH_MONTH,
SUM(ROUND(CASE
WHEN M_MONTH.MONTH = TO_CHAR(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24, 'yyyy-mm') THEN
ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END, 2)) QTY
FROM Z_SFC_DISPATCH ZSD
CROSS JOIN M_MONTH
GROUP BY M_MONTH.MONTH
ORDER BY MONTH_MONTH
</select>
</mapper>
Loading…
Cancel
Save