add机台已完工工时报表

master
yinq 2 years ago
parent 10a6dbef09
commit c67c0cf5b5

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

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

@ -243,4 +243,12 @@ public interface ReportService {
* @return * @return
*/ */
List<Map<String, Object>> workOrderEffectiveProductionReport(Map paramMap); List<Map<String, Object>> workOrderEffectiveProductionReport(Map paramMap);
/**
*
* @param paramMap
* @return
*/
List<Map<String, String>> machineFinishedTimeReport(Map paramMap);
} }

@ -1282,6 +1282,72 @@ public class ReportServiceImpl implements ReportService {
return reportMapper.workOrderEffectiveProductionReport(paramMap); return reportMapper.workOrderEffectiveProductionReport(paramMap);
} }
/**
*
* @param paramMap
* @return
*/
@Override
public List<Map<String, String>> machineFinishedTimeReport(Map paramMap) {
String site = CommonMethods.getSite();
paramMap.put("site", site);
paramMap.put("locale", LocaleContextHolder.getLocale().getLanguage());
List<Map<String, String>> result = reportMapper.machineFinishedTimeReport(paramMap);
HashMap<String, String> 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 totalWorkingHours = 0.00f;
for (Map<String, String> map : result) {
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")));
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("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("totalWorkingHours",String.format("%.2f",totalWorkingHours));
result.add(countMap);
return result;
}
/** /**
* *
* @param paramMap * @param paramMap

@ -2357,7 +2357,7 @@
GROUP BY wct.DESCRIPTION, WIP.USER_NAME GROUP BY wct.DESCRIPTION, WIP.USER_NAME
ORDER BY wct.DESCRIPTION, WIP.USER_NAME ORDER BY wct.DESCRIPTION, WIP.USER_NAME
</select> </select>
<select id="qualityProblemsInfoReport" resultType="java.util.Map"> <select id="qualityProblemsInfoReport" resultType="java.util.Map" parameterType="java.util.HashMap">
--质量问题统计表 --质量问题统计表
SELECT zab.CREATED_DATE_TIME, SELECT zab.CREATED_DATE_TIME,
zab.ABNORMAL_NO ABNORMAL_NO, zab.ABNORMAL_NO ABNORMAL_NO,
@ -2454,7 +2454,7 @@ SELECT zab.CREATED_DATE_TIME,
znu2.FULL_NAME, dflt2.DATA_TAG, zabd.ROUTER_BO znu2.FULL_NAME, dflt2.DATA_TAG, zabd.ROUTER_BO
ORDER BY zab.CREATED_DATE_TIME DESC ORDER BY zab.CREATED_DATE_TIME DESC
</select> </select>
<select id="workOrderEffectiveProductionReport" resultType="java.util.Map"> <select id="workOrderEffectiveProductionReport" resultType="java.util.Map" parameterType="java.util.HashMap">
--工作令有效生产报表 --工作令有效生产报表
SELECT * FROM WORKORDER_EFFECTIVE_PRODUCTION_REPORT WIP SELECT * FROM WORKORDER_EFFECTIVE_PRODUCTION_REPORT WIP
WHERE 1=1 WHERE 1=1
@ -2471,5 +2471,139 @@ SELECT zab.CREATED_DATE_TIME,
AND WIP.ITEM_DESCRIPTION like '%${itemDescription}%' AND WIP.ITEM_DESCRIPTION like '%${itemDescription}%'
</if> </if>
</select> </select>
<select id="machineFinishedTimeReport" resultType="java.util.Map" parameterType="java.util.HashMap">
--机台已完工工时报表
SELECT WIP.WORK_CENTER_DESCRIPTION "workCenterDescription",
WIP.RESOURCE_TYPE_DESCRIPTION "DESCRIPTION",
WIP.*,
CF.VALUE "monthCapacity",
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"
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 O.OPERATION "operation",
OT.DESCRIPTION "operationDescription",
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",
WCT.DESCRIPTION WORK_CENTER_DESCRIPTION,
RT.DESCRIPTION RESOURCE_TYPE_DESCRIPTION
FROM Z_SFC_DISPATCH ZSD
LEFT JOIN OPERATION O
ON O.OPERATION = ZSD.OPERATION AND O.SITE = ZSD.SITE AND CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T OT ON O.HANDLE = OT.OPERATION_BO
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
LEFT JOIN RESOURCE_TYPE RT ON ZSD.RESOURCE_TYPE = RT.RESOURCE_TYPE
CROSS JOIN MONTH
WHERE 1=1
<if test="workCenter != null and workCenter != ''">
AND ZSD.WORK_CENTER = #{workCenter}
</if>
GROUP BY O.OPERATION, OT.DESCRIPTION, WCT.DESCRIPTION, RT.DESCRIPTION
ORDER BY O.OPERATION ASC) WIP
LEFT JOIN OPERATION OP ON OP.OPERATION = WIP."operation" AND CURRENT_REVISION = 'true'
LEFT JOIN CUSTOM_FIELDS CF ON CF.ATTRIBUTE = 'MONTH_CAPACITY' AND CF.HANDLE = OP.HANDLE
<where>
WIP."operation" IS NOT NULL
<if test="operation != null and operation != ''">
AND WIP."operation" = #{operation}
</if>
<if test="operationDescription != null and operationDescription != ''">
AND WIP."operationDescription" = #{operationDescription}
</if>
</where>
ORDER BY WIP.WORK_CENTER_DESCRIPTION,WIP."operation"
</select>
</mapper> </mapper>
Loading…
Cancel
Save