零件加工报表

master
赵嘉伟 3 years ago
parent 25a7d3ea80
commit 44a5be18c2

@ -69,16 +69,16 @@ public class ReportServiceImpl implements ReportService {
map.put("site",site);
map.put("locale",locale);
List<Map<String, Object>> maps = reportMapper.partsManufacturing(map);
for(Map<String,Object> m: maps){
//判断子件是否全部已经完工,如果有一个没有完工,则全部都没有完工,设置为否
String isComplete = (String)m.get("ZI_JIAN");
if("否".equals(isComplete)){
for(Map<String,Object> m2: maps){
map.put("ZI_JIAN","否");
}
break;
}
}
// for(Map<String,Object> m: maps){
// //判断子件是否全部已经完工,如果有一个没有完工,则全部都没有完工,设置为否
// String isComplete = (String)m.get("ZI_JIAN");
// if("否".equals(isComplete)){
// for(Map<String,Object> m2: maps){
// m2.put("ZI_JIAN","否");
// }
// break;
// }
// }
return maps;
}

@ -40,7 +40,9 @@
</select>
<select id="partsManufacturing" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT cf.VALUE WORK_ORDER,zsd.SHOP_ORDER FINISHED_SHOP_ORDER,i.ITEM FINISHED_ITEM,it.DESCRIPTION FINISHED_ITEM_DESCRIPTION,zsd.SFC FINISHED_SFC,
SELECT * FROM (
SELECT cf.VALUE WORK_ORDER,zsd.SHOP_ORDER FINISHED_SHOP_ORDER,i.ITEM FINISHED_ITEM,it.DESCRIPTION
FINISHED_ITEM_DESCRIPTION,zsd.SFC FINISHED_SFC,
CASE WHEN o.OPERATION IS NOT NULL THEN
CASE WHEN zsd.DISPATCH_STATUS = 'NEW'THEN '新建'
WHEN zsd.DISPATCH_STATUS = 'RELEASE' THEN '发布'
@ -48,7 +50,7 @@
WHEN zsd.DISPATCH_STATUS = 'START'THEN '已开始'
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' THEN '已完成'
WHEN zsd.DISPATCH_STATUS = 'CANCEL' THEN '已取消'
ELSE '' END ELSE '' END FINISHED_OPERATION_STATUS,
ELSE '' END ELSE '' END FINISHED_OPERATION_STATUS,
o.OPERATION FINISHED_OPERATION,
CASE WHEN zsd4.HANDLE IS NOT NULL THEN '否' ELSE '是' END ZI_JIAN,
cf3.VALUE ITEM_NUMBER,so2.SHOP_ORDER,i2.ITEM,it2.DESCRIPTION ITEM_DESCRIPTION,
@ -61,25 +63,29 @@
WHEN zsd3.DISPATCH_STATUS = 'CANCEL' THEN '已取消'
ELSE '' END OPERATION_STATUS,o3.OPERATION CURRENT_OPERATION,ot3.DESCRIPTION CURRENT_OPERATION_DESCRIPTION,
CASE WHEN st2.STATUS = '405' THEN '是' ELSE '否' END DISPATCH_STATUS,
znu2.FULL_NAME OPERATION_USER,zsd3.PLANNED_START_DATE,zsd3.PLANNED_COMP_DATE,zsd3.ACTUAL_START_DATE,zsd3.ACTUAL_COMPLETE_DATE,
znu2.FULL_NAME
OPERATION_USER,zsd3.PLANNED_START_DATE,zsd3.PLANNED_COMP_DATE,zsd3.ACTUAL_START_DATE,zsd3.ACTUAL_COMPLETE_DATE,
zsd3.BLANKING_SIZE
FROM Z_SFC_DISPATCH zsd
-- INNER JOIN (
-- SELECT zsd.SFC,min(zsd.STEP_ID) STEP_ID,SITE FROM Z_SFC_DISPATCH zsd GROUP BY zsd.sfc,SITE
-- ) zsd2 ON zsd2.SFC = zsd.sfc AND zsd2.STEP_ID = zsd.STEP_ID AND zsd2.SITE = zsd.SITE /*因为不根据stepID选所以选最小的一个stepID*/
-- INNER JOIN (
-- SELECT zsd.SFC,min(zsd.STEP_ID) STEP_ID,SITE FROM Z_SFC_DISPATCH zsd GROUP BY zsd.sfc,SITE
-- ) zsd2 ON zsd2.SFC = zsd.sfc AND zsd2.STEP_ID = zsd.STEP_ID AND zsd2.SITE = zsd.SITE
/*因为不根据stepID选所以选最小的一个stepID*/
INNER JOIN SHOP_ORDER so ON so.SHOP_ORDER = zsd.SHOP_ORDER AND so.SITE = zsd.SITE
INNER JOIN ITEM i ON i.HANDLE = so.ITEM_BO
LEFT JOIN ITEM_T it ON it.ITEM_BO = i.HANDLE AND it.LOCALE = 'zh'
INNER JOIN OPERATION o ON o.OPERATION = zsd.OPERATION AND o.SITE = zsd.SITE AND o.CURRENT_REVISION = 'true' AND o.OPERATION IN ('HJ_6106HJH1','HJ_6106HJH2','HJ_6106HJH3')
INNER JOIN OPERATION o ON o.OPERATION = zsd.OPERATION AND o.SITE = zsd.SITE AND o.CURRENT_REVISION = 'true' AND
o.OPERATION IN ('HJ_6106HJH1','HJ_6106HJH2','HJ_6106HJH3')
LEFT JOIN OPERATION_T ot ON ot.OPERATION_BO = o.HANDLE
LEFT JOIN CUSTOM_FIELDS cf ON cf.HANDLE = so.HANDLE AND cf."ATTRIBUTE" = 'WORK_ORDER'
/*从上面往下边开始查找子件*/
LEFT JOIN Z_SFC_DISPATCH zsd3 ON zsd3.HANDLE IN (
SELECT zsd2.HANDLE FROM
SELECT zsd2.HANDLE FROM
BOM_COMPONENT bc
INNER JOIN ITEM i ON i.HANDLE = bc.COMPONENT_GBO
INNER JOIN SHOP_ORDER so2 ON so2.ITEM_BO = i.HANDLE
INNER JOIN CUSTOM_FIELDS cf2 ON cf2.HANDLE = so2.HANDLE AND cf2."ATTRIBUTE" = 'WORK_ORDER' AND cf2.VALUE = cf.VALUE
INNER JOIN CUSTOM_FIELDS cf2 ON cf2.HANDLE = so2.HANDLE AND cf2."ATTRIBUTE" = 'WORK_ORDER' AND cf2.VALUE =
cf.VALUE
INNER JOIN Z_SFC_DISPATCH zsd2 ON zsd2.SHOP_ORDER = so2.SHOP_ORDER AND zsd2.SITE = zsd.SITE
WHERE cf2.VALUE IS NOT NULL AND bc.BOM_BO = so.BOM_BO
)
@ -92,7 +98,9 @@
LEFT JOIN SFC_STEP ss ON ss.SFC_ROUTER_BO = st.HANDLE AND (ss.QTY_IN_QUEUE > 0 OR ss.QTY_IN_WORK > 0)
INNER JOIN OPERATION o2 ON o2.OPERATION = zsd3.OPERATION AND o2.SITE = zsd.SITE AND o2.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T ot2 ON ot2.OPERATION_BO = o2.HANDLE AND ot2.LOCALE = 'zh'
LEFT JOIN OPERATION o3 ON o3.OPERATION = SUBSTR(SS.OPERATION_BO,INSTR(SS.OPERATION_BO,',',1,1)+1,INSTR(SS.OPERATION_BO,',',1,2) - INSTR(SS.OPERATION_BO,',') -1) AND o3.SITE = zsd.SITE AND o3.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION o3 ON o3.OPERATION =
SUBSTR(SS.OPERATION_BO,INSTR(SS.OPERATION_BO,',',1,1)+1,INSTR(SS.OPERATION_BO,',',1,2) -
INSTR(SS.OPERATION_BO,',') -1) AND o3.SITE = zsd.SITE AND o3.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T ot3 ON ot3.OPERATION_BO = o3.HANDLE AND ot3.LOCALE = 'zh'
LEFT JOIN Z_NWA_USER znu2 ON znu2.USER_NAME = zsd3.EMPLOYEE AND zsd3.DISPATCH_SEQ = (
SELECT MAX(zsd4.DISPATCH_SEQ)
@ -104,8 +112,9 @@
ON so2.HANDLE = cf4.HANDLE AND cf4."ATTRIBUTE" = 'WORK_ORDER'
INNER JOIN STATUS st2
ON st2.HANDLE = s2.STATUS_BO
LEFT JOIN Z_SFC_DISPATCH zsd4 ON zsd4.HANDLE = zsd3.HANDLE AND zsd4.DISPATCH_STATUS != 'COMPLETE' AND zsd4.DISPATCH_STATUS != 'CANCEL'
<!-- LEFT JOIN Z_SFC_DISPATCH zsd4 ON zsd4.HANDLE-->
LEFT JOIN Z_SFC_DISPATCH zsd4 ON zsd4.HANDLE = zsd3.HANDLE AND zsd4.DISPATCH_STATUS != 'COMPLETE' AND
zsd4.DISPATCH_STATUS != 'CANCEL'
<!-- LEFT JOIN Z_SFC_DISPATCH zsd4 ON zsd4.HANDLE-->
<!-- = (-->
<!-- SELECT zsd2.HANDLE FROM Z_SFC_DISPATCH zsd2-->
<!-- WHERE zsd2.DISPATCH_STATUS != 'COMPLETE' AND zsd4.DISPATCH_STATUS != 'CANCEL' AND zsd2.HANDLE = zsd3.HANDLE AND ROWNUM < 2-->
@ -119,7 +128,8 @@
AND (zsd.SHOP_ORDER = #{param.shopOrder} OR zsd3.SHOP_ORDER = #{param.shopOrder})
</if>
<if test="param.item != null and param.item != ''">
AND (i.ITEM = #{param.item} OR it.DESCRIPTION = #{param.item} OR i2.ITEM = #{param.item} OR it2.DESCRIPTION = #{param.item})
AND (i.ITEM = #{param.item} OR it.DESCRIPTION = #{param.item} OR i2.ITEM = #{param.item} OR
it2.DESCRIPTION = #{param.item})
</if>
<if test="param.currentOperation != null and param.currentOperation != ''">
AND (ot3.DESCRIPTION LIKE '%${param.currentOperation}%' OR
@ -127,10 +137,10 @@
</if>
<if test="param.operation != null and param.operation != ''">
AND (O.OPERATION LIKE '%${param.operation}%'
OR OT.DESCRIPTION LIKE '%${param.operation}%'
OR o2.OPERATION LIKE '%${param.operation}'
OR ot2.DESCRIPTION LIKE '%${param.operation}'
)
OR OT.DESCRIPTION LIKE '%${param.operation}%'
OR o2.OPERATION LIKE '%${param.operation}'
OR ot2.DESCRIPTION LIKE '%${param.operation}'
)
</if>
<if test="param.status != null and param.status != ''">
<if test="param.status == 'Y'.toString()">
@ -150,7 +160,8 @@
AND ZSD3.ACTUAL_COMPLETE_DATE &gt;= TO_DATE(#{param.completeStartDateTime}, 'YYYY-MM-DD') - 8/24
</if>
<if test="param.completeEndDateTime != null and param.completeEndDateTime != ''">
AND ZSD3.ACTUAL_COMPLETE_DATE &lt;= TO_DATE(#{param.completeEndDateTime}|| '15:59:59', 'YYYY-MM-DD HH24:MI:SS')
AND ZSD3.ACTUAL_COMPLETE_DATE &lt;= TO_DATE(#{param.completeEndDateTime}|| '15:59:59',
'YYYY-MM-DD HH24:MI:SS')
</if>
<if test="param.finishedStatus != null and param.finishedStatus != ''">
AND zsd.DISPATCH_STATUS = #{param.finishedStatus}
@ -159,7 +170,7 @@
AND zsd3.DISPATCH_STATUS = #{param.partsStatus}
</if>
</where>
ORDER BY zsd.SFC,zsd.OPERATION,zsd3.SFC,zsd3.OPERATION
) ORDER BY FINISHED_OPERATION,FINISHED_SHOP_ORDER,SFC,STEP_ID
</select>
<select id="surplusReturnTable" resultType="java.util.HashMap">

Loading…
Cancel
Save