master
philip 4 years ago
parent 7efc800e46
commit 8cf9d57efe

@ -132,4 +132,15 @@ public class ReportDataController {
}
}
@GetMapping("/userPassRate")
public R findUserPassRate(@RequestParam(required = false) Map paramMap) {
try {
paramMap.put("site", CommonMethods.getSite());
List<Map<String, Object>> result = reportDataService.findUserPassRate(paramMap);
return R.ok(result);
} catch (Exception e) {
return R.failed(e.getMessage());
}
}
}

@ -27,4 +27,6 @@ public interface ReportDataMapper {
List<Map<String, Object>> findCheckUserPassRate(Map paramMap);
List<Map<String, Object>> findUserPassRate(Map paramMap);
}

@ -47,4 +47,6 @@ public interface ReportDataService {
List<Map<String, Object>> findCheckUserPassRate(Map paramMap);
List<Map<String, Object>> findUserPassRate(Map paramMap);
}

@ -72,4 +72,9 @@ public class ReportDataServiceImpl implements ReportDataService{
public List<Map<String, Object>> findCheckUserPassRate(Map paramMap) {
return reportDataMapper.findCheckUserPassRate(paramMap);
}
@Override
public List<Map<String, Object>> findUserPassRate(Map paramMap) {
return reportDataMapper.findUserPassRate(paramMap);
}
}

@ -262,6 +262,8 @@
</if>
GROUP BY zit."RESULT",zit.sfc ,zit.OPERATION,zit.STEP_ID, zit.CREATED_DATE_TIME,zit.RESRCE,zab.NC_QTY, WT.DESCRIPTION,ZSD.DISPATCH_QTY
) GROUP BY DESCRIPTION, "MONTH"
ORDER BY DESCRIPTION,"MONTH"
</select>
<select id="findCheckUserPassRate" resultType="java.util.HashMap" parameterType="java.util.HashMap">
@ -278,7 +280,7 @@
JOIN WORK_CENTER WC ON WC.SITE = zit.SITE AND WC.WORK_CENTER = zit.WORK_CENTER
LEFT JOIN WORK_CENTER_T WT ON WT.WORK_CENTER_BO = WC.HANDLE AND WT.LOCALE = 'zh'
LEFT JOIN Z_ABNORMAL_BILL ZAB ON zit.SFC=ZAB.SFC AND zit.SITE=ZAB.SITE AND zit.STEP_ID=ZAB.STEP_ID AND zab."TYPE"='Z'
LEFT JOIN Z_NWA_USER ZNU ON ZNU.SITE = ZIT.SITE AND ZNU.USER_NAME = ZIT.MODIFY_USER
LEFT JOIN Z_NWA_USER ZNU ON ZNU.USER_NAME = ZIT.MODIFY_USER
WHERE zit.SITE= #{site} AND zit.CATEGORY='P' AND zit.STATUS='COMPLETE'
<if test="workCenter != null and workCenter != ''" >
AND zit.WORK_CENTER = #{workCenter}
@ -289,7 +291,54 @@
<if test="startToDate != null and startToDate != ''" >
AND TO_CHAR(zit.CREATED_DATE_TIME,'YYYY-MM') &lt;= #{startToDate}
</if>
<if test="userId != null and userId != ''" >
AND ZIT.MODIFY_USER = #{userId}
</if>
GROUP BY zit."RESULT",zit.sfc ,zit.OPERATION,zit.STEP_ID, zit.CREATED_DATE_TIME,zit.RESRCE,zab.NC_QTY, ZNU.FULL_NAME,WT.DESCRIPTION
) GROUP BY DESCRIPTION, "MONTH",FULL_NAME
ORDER BY DESCRIPTION,"MONTH"
</select>
<select id="findUserPassRate" resultType="java.util.HashMap" parameterType="java.util.HashMap">
SELECT ZNU.FULL_NAME,DESCRIPTION WORK_CENTER_DESCRIPTION, "MONTH",sum(NG_QTY) NC_QTY, sum(OK_QTY) OK_QTY,sum(CHECK_QTY) CHECK_QTY,round(sum(OK_QTY)*100/sum(DISPATCH_QTY),2)||'% ' OK_RATE FROM
(
SELECT CASE WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='OK' THEN 0
WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='NG' THEN TO_NUMBER(zab.NC_QTY)
ELSE 0 END NG_QTY , TO_CHAR(zit.CREATED_DATE_TIME,'YYYY-MM') "MONTH",
CASE WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='OK' THEN zsd.DISPATCH_QTY
WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC)=1 AND zit."RESULT"='NG' THEN 0
ELSE 0 END OK_QTY,E.EMPLOYEE
,ZSD.DISPATCH_QTY, WT.DESCRIPTION,
ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME DESC) seq,
zit."RESULT",COUNT(ZIT.HANDLE) check_qty, zit.sfc ,zit.OPERATION,zit.STEP_ID FROM Z_INSPECTION_TASK zit
JOIN sfc S ON S.SFC=zit.SFC AND s.SITE=zit.SITE
JOIN Z_SFC_DISPATCH ZSD ON ZSD.SFC=zit.SFC AND ZSD.SITE=zit.SITE AND zit.STEP_ID=ZSD.STEP_ID
JOIN WORK_CENTER WC ON WC.SITE = zit.SITE AND WC.WORK_CENTER = zit.WORK_CENTER
JOIN (
SELECT HANDLE,
REGEXP_SUBSTR(EMPLOYEE, '[^,]+', 1, l) AS EMPLOYEE
FROM Z_SFC_DISPATCH c,
(SELECT LEVEL l FROM DUAL CONNECT BY LEVEL &lt;= 5)
WHERE l &lt;= LENGTH(EMPLOYEE) - LENGTH(REPLACE(EMPLOYEE, ',')) + 1) E ON ZSD.HANDLE=E.HANDLE
LEFT JOIN WORK_CENTER_T WT ON WT.WORK_CENTER_BO = WC.HANDLE AND WT.LOCALE = 'zh'
LEFT JOIN Z_ABNORMAL_BILL ZAB ON zit.SFC=ZAB.SFC AND zit.SITE=ZAB.SITE AND zit.STEP_ID=ZAB.STEP_ID AND zab."TYPE"='Z'
WHERE zit.SITE= '1000' AND zit.CATEGORY='P' AND zit.STATUS='COMPLETE'
<if test="workCenter != null and workCenter != ''" >
AND zit.WORK_CENTER = #{workCenter}
</if>
<if test="startFromDate != null and startFromDate != ''" >
AND TO_CHAR(zit.CREATED_DATE_TIME,'YYYY-MM') >=#{startFromDate}
</if>
<if test="startToDate != null and startToDate != ''" >
AND TO_CHAR(zit.CREATED_DATE_TIME,'YYYY-MM') &lt;= #{startToDate}
</if>
<if test="userId != null and userId != ''" >
AND E.EMPLOYEE = #{userId}
</if>
GROUP BY zit."RESULT",zit.sfc ,zit.OPERATION,zit.STEP_ID, zit.CREATED_DATE_TIME,zit.RESRCE,zab.NC_QTY, WT.DESCRIPTION,ZSD.DISPATCH_QTY,E.EMPLOYEE
) D
LEFT JOIN Z_NWA_USER ZNU ON ZNU.USER_NAME = D.EMPLOYEE
GROUP BY DESCRIPTION, "MONTH",ZNU.FULL_NAME
ORDER BY DESCRIPTION,"MONTH"
</select>
</mapper>
Loading…
Cancel
Save