add客户维度已完工工时报表

master
yinq 2 years ago
parent c67c0cf5b5
commit 091584d992

@ -498,6 +498,21 @@ public class ReportController {
}
}
/**
*
*
* @param
* @return
*/
@GetMapping("/customerDimensionFinishedTimeReport")
public R customerDimensionFinishedTimeReport(@RequestParam(required = false) Map paramMap){
try {
return R.ok(reportService.customerDimensionFinishedTimeReport(paramMap));
} catch (Exception e) {
return R.failed(e.getMessage());
}
}
/**
*
* @param

@ -239,4 +239,11 @@ public interface ReportMapper {
* @return
*/
List<Map<String, String>> machineFinishedTimeReport(Map paramMap);
/**
*
* @param paramMap
* @return
*/
List<Map<String, String>> customerDimensionFinishedTimeReport(Map paramMap);
}

@ -251,4 +251,11 @@ public interface ReportService {
*/
List<Map<String, String>> machineFinishedTimeReport(Map paramMap);
/**
*
* @param paramMap
* @return
*/
List<Map<String, String>> customerDimensionFinishedTimeReport(Map paramMap);
}

@ -1348,6 +1348,67 @@ public class ReportServiceImpl implements ReportService {
return result;
}
/**
*
* @param paramMap
* @return
*/
@Override
public List<Map<String, String>> customerDimensionFinishedTimeReport(Map paramMap) {
String site = CommonMethods.getSite();
paramMap.put("site", site);
paramMap.put("locale", LocaleContextHolder.getLocale().getLanguage());
List<Map<String, String>> result = reportMapper.customerDimensionFinishedTimeReport(paramMap);
HashMap<String, String> countMap = new HashMap<>();
countMap.put("workCenterDescription","总计:");
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 totalWorkingHours = 0.00f;
for (Map<String, String> map : result) {
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")));
tardinessWork += Float.valueOf(String.valueOf(map.get("tardinessWork")));
totalWorkingHours += Float.valueOf(String.valueOf(map.get("totalWorkingHours")));
}
countMap.put("tardinessWork",String.format("%.2f",tardinessWork));
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("totalWorkingHours",String.format("%.2f",totalWorkingHours));
result.add(countMap);
return result;
}
/**
*
* @param paramMap

@ -2605,5 +2605,151 @@ SELECT zab.CREATED_DATE_TIME,
</where>
ORDER BY WIP.WORK_CENTER_DESCRIPTION,WIP."operation"
</select>
<select id="customerDimensionFinishedTimeReport" resultType="java.util.Map" parameterType="java.util.HashMap">
--客户维度已完工工时报表
SELECT KHW."workCenterDescription",--车间
KHW."shortHandWorkOrder",--客户
SUM(KHW."tardinessWork") "tardinessWork", --未完工工时
SUM(KHW."workHours1") "workHours1",
SUM(KHW."workHours2") "workHours2",
SUM(KHW."workHours3") "workHours3",
SUM(KHW."workHours4") "workHours4",
SUM(KHW."workHours5") "workHours5",
SUM(KHW."workHours6") "workHours6",
SUM(KHW."workHours7") "workHours7",
SUM(KHW."workHours8") "workHours8",
SUM(KHW."workHours9") "workHours9",
SUM(KHW."workHours10") "workHours10",
SUM(KHW."workHours11") "workHours11",
SUM(KHW."workHours12") "workHours12",
SUM(KHW."totalWorkingHours") "totalWorkingHours"
FROM (
SELECT CASE
WHEN INSTR(WIP."workOrder", '硫化') > 0 THEN '硫化'
WHEN INSTR(WIP."workOrder", '全钢') > 0 THEN '全钢'
WHEN INSTR(WIP."workOrder", '半钢') > 0 THEN '半钢'
WHEN INSTR(WIP."workOrder", '鼓') > 0 THEN '鼓'
WHEN INSTR(WIP."workOrder", '裁断') > 0 THEN '裁断'
WHEN INSTR(WIP."workOrder", '检测') > 0 THEN '检测'
WHEN INSTR(WIP."workOrder", '橡塑') > 0 THEN '橡塑'
WHEN INSTR(WIP."workOrder", '非公路') > 0 THEN '非公路'
WHEN INSTR(WIP."workOrder", '研究院') > 0 THEN '研究院'
ELSE '其他' END "shortHandWorkOrder",
WIP."workHours1" + WIP."workHours2" + WIP."workHours3" + WIP."workHours4" + WIP."workHours5" +
WIP."workHours6" +
WIP."workHours7" + WIP."workHours8" + WIP."workHours9" + WIP."workHours10" + WIP."workHours11" +
WIP."workHours12" "totalWorkingHours",
WIP.*
FROM (
WITH MONTH AS (
SELECT ADD_MONTHS(TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM'), 'yyyy-MM'), 'yyyy'), 0 - #{month}) month0,
ADD_MONTHS(TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM'), 'yyyy-MM'), 'yyyy'), 1- #{month}) month1,
ADD_MONTHS(TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM'), 'yyyy-MM'), 'yyyy'), 2- #{month}) month2,
ADD_MONTHS(TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM'), 'yyyy-MM'), 'yyyy'), 3- #{month}) month3,
ADD_MONTHS(TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM'), 'yyyy-MM'), 'yyyy'), 4- #{month}) month4,
ADD_MONTHS(TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM'), 'yyyy-MM'), 'yyyy'), 5- #{month}) month5,
ADD_MONTHS(TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM'), 'yyyy-MM'), 'yyyy'), 6- #{month}) month6,
ADD_MONTHS(TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM'), 'yyyy-MM'), 'yyyy'), 7- #{month}) month7,
ADD_MONTHS(TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM'), 'yyyy-MM'), 'yyyy'), 8- #{month}) month8,
ADD_MONTHS(TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM'), 'yyyy-MM'), 'yyyy'), 9- #{month}) month9,
ADD_MONTHS(TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM'), 'yyyy-MM'), 'yyyy'), 10- #{month}) month10,
ADD_MONTHS(TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM'), 'yyyy-MM'), 'yyyy'), 11- #{month}) month11,
ADD_MONTHS(TRUNC(TO_DATE(TO_CHAR(sysdate, 'yyyy-MM'), 'yyyy-MM'), 'yyyy'), 12- #{month}) month12
FROM DUAL)
SELECT WCT.DESCRIPTION "workCenterDescription",
cf2.VALUE "workOrder",
SUM(CASE
WHEN ZSD.DISPATCH_STATUS != 'CANCEL' AND ZSD.DISPATCH_STATUS != 'PAUSE' AND
ZSD.DISPATCH_STATUS != 'COMPLETE'
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END) "tardinessWork",
SUM(CASE
WHEN ZSD.DISPATCH_STATUS = 'COMPLETE' AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) >= TO_DATE(MONTH.month0) AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) &lt;
TO_DATE(MONTH.month1)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END) "workHours1",
SUM(CASE
WHEN ZSD.DISPATCH_STATUS = 'COMPLETE' AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) >= TO_DATE(MONTH.month1) AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) &lt; TO_DATE(MONTH.month2)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END) "workHours2",
SUM(CASE
WHEN ZSD.DISPATCH_STATUS = 'COMPLETE' AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) >= TO_DATE(MONTH.month2) AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) &lt; TO_DATE(MONTH.month3)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END) "workHours3",
SUM(CASE
WHEN ZSD.DISPATCH_STATUS = 'COMPLETE' AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) >= TO_DATE(MONTH.month3) AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) &lt; TO_DATE(MONTH.month4)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END) "workHours4",
SUM(CASE
WHEN ZSD.DISPATCH_STATUS = 'COMPLETE' AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) >= TO_DATE(MONTH.month4) AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) &lt; TO_DATE(MONTH.month5)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END) "workHours5",
SUM(CASE
WHEN ZSD.DISPATCH_STATUS = 'COMPLETE' AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) >= TO_DATE(MONTH.month5) AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) &lt; TO_DATE(MONTH.month6)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END) "workHours6",
SUM(CASE
WHEN ZSD.DISPATCH_STATUS = 'COMPLETE' AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) >= TO_DATE(MONTH.month6) AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) &lt; TO_DATE(MONTH.month7)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END) "workHours7",
SUM(CASE
WHEN ZSD.DISPATCH_STATUS = 'COMPLETE' AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) >= TO_DATE(MONTH.month7) AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) &lt; TO_DATE(MONTH.month8)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END) "workHours8",
SUM(CASE
WHEN ZSD.DISPATCH_STATUS = 'COMPLETE' AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) >= TO_DATE(MONTH.month8) AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) &lt; TO_DATE(MONTH.month9)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END) "workHours9",
SUM(CASE
WHEN ZSD.DISPATCH_STATUS = 'COMPLETE' AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) >= TO_DATE(MONTH.month9) AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) &lt; TO_DATE(MONTH.month10)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END) "workHours10",
SUM(CASE
WHEN ZSD.DISPATCH_STATUS = 'COMPLETE' AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) >= TO_DATE(MONTH.month10) AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) &lt; TO_DATE(MONTH.month11)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END) "workHours11",
SUM(CASE
WHEN ZSD.DISPATCH_STATUS = 'COMPLETE' AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) >= TO_DATE(MONTH.month11) AND
(ZSD.ACTUAL_COMPLETE_DATE + 8 / 24) &lt; TO_DATE(MONTH.month12)
THEN ZSD.DISPATCH_QTY * ZSD.PROD_HOURS
ELSE 0 END) "workHours12"
FROM Z_SFC_DISPATCH ZSD
LEFT JOIN SHOP_ORDER so ON so.SHOP_ORDER = zsd.SHOP_ORDER AND so.SITE = zsd.SITE
LEFT JOIN CUSTOM_FIELDS cf2 ON cf2.HANDLE = so.HANDLE AND cf2."ATTRIBUTE" = 'WORK_ORDER'
LEFT JOIN WORK_CENTER WC ON WC.WORK_CENTER = ZSD.WORK_CENTER
LEFT JOIN WORK_CENTER_T WCT ON WCT.WORK_CENTER_BO = WC.HANDLE AND WCT.LOCALE = 'zh'
CROSS JOIN MONTH
WHERE cf2.VALUE IS NOT NULL
<if test="workCenter != null and workCenter != ''">
AND ZSD.WORK_CENTER = #{workCenter}
</if>
GROUP BY WCT.DESCRIPTION, cf2.VALUE) WIP
) KHW
GROUP BY KHW."workCenterDescription", KHW."shortHandWorkOrder"
ORDER BY KHW."workCenterDescription" DESC, KHW."shortHandWorkOrder"
</select>
</mapper>
Loading…
Cancel
Save