质量返修报表数据接口

master
yinq 3 years ago
parent 47de44163a
commit 1d9238e745

@ -110,5 +110,5 @@ public interface ReportMapper {
* @param paramMap
* @return
*/
Map<String, Object> qualityRepairReport(Map paramMap);
List<Map<String,Object>> qualityRepairReport(Map paramMap);
}

@ -116,5 +116,5 @@ public interface ReportService {
* @param paramMap
* @return
*/
Map<String, Object> qualityRepairReport(Map paramMap);
List<Map<String, Object>> qualityRepairReport(Map paramMap);
}

@ -497,7 +497,7 @@ public class ReportServiceImpl implements ReportService {
* @return
*/
@Override
public Map<String, Object> qualityRepairReport(Map paramMap) {
public List<Map<String, Object>> qualityRepairReport(Map paramMap) {
String site = CommonMethods.getSite();
paramMap.put("site", site);
paramMap.put("locale", LocaleContextHolder.getLocale().getLanguage());

@ -1167,7 +1167,8 @@
CASE
WHEN WIP.nextOperationNum > 0 AND SYSDATE > zsd2.PLANNED_COMP_DATE AND zsd2.DISPATCH_STATUS != 'COMPLETE'
THEN 'true'
WHEN WIP.nextOperationNum = 0 AND WIP.rate !=100.00 AND SYSDATE > zsd2.PLANNED_COMP_DATE AND zsd2.DISPATCH_STATUS != 'COMPLETE'
WHEN WIP.nextOperationNum = 0 AND WIP.rate !=100.00 AND SYSDATE > zsd2.PLANNED_COMP_DATE AND
zsd2.DISPATCH_STATUS != 'COMPLETE'
THEN 'true'
ELSE 'false' END "isOverTime" --当前工序是否超时
FROM (SELECT cf.VALUE item,--项目号
@ -1396,7 +1397,100 @@
ORDER BY"rate" DESC
</select>
<select id="qualityRepairReport" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT * FROM
(SELECT zab.WORK_ORDER "workOrder",
i.ITEM "item",
"MAP".VALUE "mapNo",
zab.PB_DESCRIPTION "problemDescription",
CASE
WHEN zabd.ABNORMAL_METHOD = 'F' THEN '返修'
WHEN zabd.ABNORMAL_METHOD = 'FW' THEN '返修(外协)'
WHEN zabd.ABNORMAL_METHOD = 'FB' THEN '返修(不返回原工艺)'
ELSE ''
END "abnormalMethod",
zab.CREATED_DATE_TIME "submissionTime",
zabd.RESOLVE_DATE_TIME "resolveDateTime",
ZSDD.SFC_RELEASED_DATE "dispatchingTime",
ZSDD.PLANNED_COMP_DATE "estimatedCompletionTime",
ZSDD.ACTUAL_COMPLETE_DATE "actualCompletionTime",
OT.DESCRIPTION "operationDescription",
ZSDD.repairTotalNumber "repairTotalNumber",
ZSDD.surplusRepairNumber "surplusRepairNumber",
ZSDD.RATE "rate",
zab.SFC "SFC"
FROM Z_ABNORMAL_BILL zab
LEFT JOIN Z_ABNORMAL_BILL_DISPOSE zabd ON zabd.ABNORMAL_BILL_BO = zab.HANDLE
LEFT JOIN ITEM i ON i.HANDLE = zab.ITEM_BO
LEFT JOIN CUSTOM_FIELDS "MAP" ON "MAP".HANDLE = i.HANDLE AND "MAP"."ATTRIBUTE" = 'DWG_NO'
LEFT JOIN (SELECT WIP.SFC_RELEASED_DATE,
WIP.PLANNED_COMP_DATE,
WIP.ACTUAL_COMPLETE_DATE,
WIP.STEP_ID,
zsd2.OPERATION,
WIP.repairTotalNumber,
WIP.surplusRepairNumber,
WIP.RATE,
WIP.SFC
FROM (
SELECT zsd.SFC SFC,
MIN(zsd.SFC_RELEASED_DATE) SFC_RELEASED_DATE,
MAX(zsd.PLANNED_COMP_DATE) PLANNED_COMP_DATE,
MAX(zsd.ACTUAL_COMPLETE_DATE) ACTUAL_COMPLETE_DATE,
MAX(CASE
WHEN zsd.DISPATCH_STATUS != 'COMPLETE'
THEN zsd.STEP_ID
ELSE zsd.STEP_ID END
) STEP_ID,
COUNT(STEP_ID) repairTotalNumber,
SUM(CASE
WHEN zsd.DISPATCH_STATUS != 'COMPLETE'
THEN 1
ELSE 0 END
) surplusRepairNumber,
TO_CHAR(
DECODE(SUM(CASE
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' THEN
zsd.PROD_HOURS
ELSE 0 END), 0, 0, SUM(CASE
WHEN zsd.DISPATCH_STATUS = 'COMPLETE'
THEN
zsd.PROD_HOURS
ELSE 0 END) /
SUM(zsd.PROD_HOURS))
* 100, '99990.99') || '%' RATE --进度百分比
FROM Z_SFC_DISPATCH zsd
WHERE zsd.STEP_ID LIKE '9%'
GROUP BY zsd.SFC) WIP
LEFT JOIN Z_SFC_DISPATCH zsd2 ON zsd2.SFC = WIP.SFC AND WIP.STEP_ID = zsd2.STEP_ID
) ZSDD
ON ZSDD.SFC = zab.SFC
LEFT JOIN OPERATION O ON O.OPERATION = ZSDD.OPERATION AND O.SITE = ZAB.SITE AND O.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T OT ON O.HANDLE = OT.OPERATION_BO
WHERE zabd.ABNORMAL_METHOD = 'F'
OR zabd.ABNORMAL_METHOD = 'FW'
OR zabd.ABNORMAL_METHOD = 'FB'
AND zab.SFC IS NOT NULL
ORDER BY "submissionTime" DESC) FJ
<where>
1=1
<if test="item != null and item != ''">
AND FJ."item" = #{item}
</if>
<if test="careerKey != null and careerKey != ''">
AND FJ."workOrder" like '%${careerKey}%'
</if>
<if test="startDateTime != null and startDateTime != ''">
AND FJ."resolveDateTime" &gt;= TO_DATE(#{startDateTime}, 'YYYY-MM-DD')
</if>
<if test="endDateTime != null and endDateTime != ''">
AND FJ."resolveDateTime" &lt;= TO_DATE(#{endDateTime}, 'YYYY-MM-DD')
</if>
<if test='isCompleted != null and isCompleted != "" and isCompleted == "0" '>
AND FJ."surplusRepairNumber" = #{isCompleted}
</if>
<if test='isCompleted != null and isCompleted != "" and isCompleted =="1" '>
AND FJ."surplusRepairNumber" > 0
</if>
</where>
</select>
</mapper>
Loading…
Cancel
Save