add项目加工周期报表

master
yinq 2 years ago
parent 70a2b59793
commit f3fa548f1d

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

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

@ -194,4 +194,11 @@ public interface ReportService {
* @return
*/
List<Map<String, Object>> projectIdleTimeStatisticsReport(Map paramMap);
/**
*
* @param paramMap
* @return
*/
List<Map<String, Object>> projectProcessingCycleReport(Map paramMap);
}

@ -1013,6 +1013,19 @@ public class ReportServiceImpl implements ReportService {
return reportMapper.projectIdleTimeStatisticsReport(paramMap);
}
/**
*
* @param paramMap
* @return
*/
@Override
public List<Map<String, Object>> projectProcessingCycleReport(Map paramMap) {
String site = CommonMethods.getSite();
paramMap.put("site", site);
paramMap.put("locale", LocaleContextHolder.getLocale().getLanguage());
return reportMapper.projectProcessingCycleReport(paramMap);
}
/**
*
* @param user

@ -2154,10 +2154,10 @@
WIP.ITEM,
WIP.ITEM_DESCRIPTION,
MAX(WIP.QTY) QTY,
TO_CHAR(DECODE(SUM(WIP.ACTUAL_PROCESS_TIME), null, 0, SUM(WIP.ACTUAL_PROCESS_TIME)),
TO_CHAR(DECODE(SUM(WIP.ACTUAL_PROCESS_TIME), 0, 0, SUM(WIP.ACTUAL_PROCESS_TIME)),
'99990.99') ACTUAL_PROCESS_TIME,
TO_CHAR(DECODE(SUM(WIP.WAIT_TIME), null, 0, SUM(WIP.WAIT_TIME)), '99990.99') WAIT_TIME,
TO_CHAR(DECODE((SUM(WIP.WAIT_TIME) + SUM(WIP.ACTUAL_PROCESS_TIME)), null, 0,
TO_CHAR(DECODE(SUM(WIP.WAIT_TIME), 0, 0, SUM(WIP.WAIT_TIME)), '99990.99') WAIT_TIME,
TO_CHAR(DECODE((SUM(WIP.WAIT_TIME) + SUM(WIP.ACTUAL_PROCESS_TIME)), 0, 0,
(SUM(WIP.ACTUAL_PROCESS_TIME) / (SUM(WIP.WAIT_TIME) +
SUM(WIP.ACTUAL_PROCESS_TIME))) * 100),
'99990.99') || '%' ACTUAL_TATE
@ -2169,9 +2169,10 @@
i.ITEM ITEM,
it.DESCRIPTION ITEM_DESCRIPTION,
zsd.DISPATCH_QTY QTY,
(zsd.ACTUAL_COMPLETE_DATE - zsd.ACTUAL_START_DATE) * 24 ACTUAL_PROCESS_TIME,
zsd.DISPATCH_SEQ,
DECODE(LAG(zsd.ACTUAL_COMPLETE_DATE, 1)
DECODE(zsd.ACTUAL_COMPLETE_DATE - zsd.ACTUAL_START_DATE, null, 0,
(zsd.ACTUAL_COMPLETE_DATE - zsd.ACTUAL_START_DATE) * 24) ACTUAL_PROCESS_TIME,
DECODE(zsd.ACTUAL_COMPLETE_DATE - LAG(zsd.ACTUAL_COMPLETE_DATE, 1)
OVER (partition by cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC ORDER BY cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC,zsd.ACTUAL_START_DATE),
NULL, 0,
(zsd.ACTUAL_COMPLETE_DATE - LAG(zsd.ACTUAL_COMPLETE_DATE, 1)
@ -2211,5 +2212,47 @@
WIP.ITEM_DESCRIPTION
ORDER BY WIP.WORK_CENTER_DESCRIPTION, WIP.ITEM_NUMBER, WIP.WORK_ORDER, WIP.SHOP_ORDER, WIP.SFC
</select>
<select id="projectProcessingCycleReport" resultType="java.util.Map" parameterType="java.util.HashMap">
--项目加工周期报表
SELECT wct.DESCRIPTION WORK_CENTER_DESCRIPTION,
rs.RESRCE RESRCE,
o.OPERATION "operation",
ot.DESCRIPTION OPERATION_DESCRIPTION,
rs.DESCRIPTION RESRCE_DESCRIPTION,
SUM(CASE
WHEN zsd.DISPATCH_STATUS != 'COMPLETE' AND zsd.DISPATCH_STATUS != 'CANCEL' THEN
zsd.PROD_HOURS * zsd.DISPATCH_QTY
ELSE 0 END) UN_OPERATION_HOURS,
cf2.VALUE WORK_ORDER,
SUM(zsd.PROD_HOURS * zsd.DISPATCH_QTY) WORK_ORDER_HOURS,
CF.VALUE "dayCapacity",
TO_CHAR(MAX(zsd.ACTUAL_COMPLETE_DATE) - MIN(zsd.ACTUAL_START_DATE), '99990.99') PRODUCTION_DAY
FROM Z_SFC_DISPATCH zsd
INNER JOIN WORK_CENTER wc ON wc.WORK_CENTER = zsd.WORK_CENTER AND wc.SITE = zsd.SITE
LEFT JOIN WORK_CENTER_T wct ON wct.WORK_CENTER_BO = wc.HANDLE AND wct.LOCALE = 'zh'
LEFT JOIN SFC s ON s.SFC = zsd.SFC AND s.SITE = zsd.SITE
LEFT JOIN RESRCE rs ON zsd.SITE = rs.SITE AND zsd.RESRCE = rs.RESRCE
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 OPERATION o ON o.OPERATION = zsd.OPERATION AND o.SITE = zsd.SITE
LEFT JOIN OPERATION_T ot ON ot.OPERATION_BO = o.HANDLE AND ot.LOCALE = 'zh'
LEFT JOIN CUSTOM_FIELDS CF ON CF.ATTRIBUTE = 'DAY_CAPACITY' AND CF.HANDLE = o.HANDLE
--WHERE cf2.VALUE = '2021102000001-工作令/半钢/部套'
WHERE 1=1
<if test="workOrder != null and workOrder != ''">
AND cf2.VALUE = #{workOrder}
</if>
<if test="resrce != null and resrce != ''">
AND rs.RESRCE = #{resrce}
</if>
<if test="operationCode != null and operationCode != ''">
AND o.OPERATION = #{operationCode}
</if>
<if test="operationDescription != null and operationDescription != ''">
AND ot.DESCRIPTION = #{operationDescription}
</if>
GROUP BY wct.DESCRIPTION, rs.RESRCE, ot.DESCRIPTION, rs.DESCRIPTION, o.OPERATION, cf2.VALUE, CF.VALUE
ORDER BY wct.DESCRIPTION, ot.DESCRIPTION, rs.DESCRIPTION
</select>
</mapper>
Loading…
Cancel
Save