From 313e3cf3fad5c555f42577c7ee8590a9bd8aba9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=98=89=E4=BC=9F?= <1724121454@qq.com> Date: Thu, 21 Oct 2021 16:41:04 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=B6=E4=BB=B6=E5=8A=A0=E5=B7=A5=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E9=97=AE=E9=A2=98=E6=B8=85=E5=8D=95304?= =?UTF-8?q?=EF=BC=8C305=EF=BC=8C306?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mesnac/anomaly/mapper/ReportMapper.java | 2 +- .../service/impl/ReportServiceImpl.java | 19 +- .../main/resources/mapper/ReportMapper.xml | 192 ++++++++++-------- 3 files changed, 125 insertions(+), 88 deletions(-) diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java index e0e0d84b..2302d22a 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java @@ -17,7 +17,7 @@ public interface ReportMapper { List findIntegrationLog(@Param("site")String site, @Param("param") Map map); - List> partsManufacturing(@Param("site")String site,@Param("locale")String locale, @Param("param") Map map); + List> partsManufacturing(@Param("param") Map map); List> surplusReturnTable(@Param("site")String site, @Param("locale")String locale, @Param("item")String item, @Param("itemDescription")String itemDescription); diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java index e43d71a0..9d3e027e 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java @@ -66,13 +66,20 @@ public class ReportServiceImpl implements ReportService { public List> partsManufacturing(Map map) { String site = CommonMethods.getSite(); String locale = LocaleContextHolder.getLocale().getLanguage(); - String shopOrder = (String)map.get("shopOrder"); - if(StringUtils.notBlank(shopOrder)){ - //查询这个物料下面的所有组件 - List bomCommentByShopOrder = shopOrderMapper.findBomCommentByShopOrder(site, shopOrder); - map.put("bomComponentShopOrder",bomCommentByShopOrder); + map.put("site",site); + map.put("locale",locale); + List> maps = reportMapper.partsManufacturing(map); + for(Map m: maps){ + //判断子件是否全部已经完工,如果有一个没有完工,则全部都没有完工,设置为否 + String isComplete = (String)m.get("ZI_JIAN"); + if("否".equals(isComplete)){ + for(Map m2: maps){ + map.put("ZI_JIAN","否"); + } + break; + } } - return reportMapper.partsManufacturing(site,locale,map); + return maps; } /** diff --git a/anomaly/src/main/resources/mapper/ReportMapper.xml b/anomaly/src/main/resources/mapper/ReportMapper.xml index 8f6e2cec..03500387 100644 --- a/anomaly/src/main/resources/mapper/ReportMapper.xml +++ b/anomaly/src/main/resources/mapper/ReportMapper.xml @@ -39,97 +39,127 @@ ORDER BY REQUEST_DATE_TIME DESC - + 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 '发布' WHEN zsd.DISPATCH_STATUS = 'PAUSE' THEN '暂挂' - WHEN zsd.DISPATCH_STATUS = 'START' ThEN '已开始' + WHEN zsd.DISPATCH_STATUS = 'START'THEN '已开始' WHEN zsd.DISPATCH_STATUS = 'COMPLETE' THEN '已完成' WHEN zsd.DISPATCH_STATUS = 'CANCEL' THEN '已取消' - ELSE '' - END OPERATION_STATUS - FROM SFC S - LEFT JOIN SFC_ROUTING SR ON SR.SFC_BO = S.HANDLE - LEFT JOIN SFC_ROUTER ST ON ST.SFC_ROUTING_BO = SR.HANDLE AND ST.IN_USE = 'true' - 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 SHOP_ORDER SO ON SO.HANDLE = S.SHOP_ORDER_BO - INNER JOIN ITEM I ON I.HANDLE = SO.ITEM_BO - LEFT JOIN ITEM_T IT ON IT.ITEM_BO = I.HANDLE AND IT.LOCALE = #{locale} - INNER JOIN Z_SFC_DISPATCH ZSD ON S.SFC = ZSD.SFC AND S.SITE = ZSD.SITE - LEFT JOIN OPERATION O ON O.OPERATION = ZSD.OPERATION AND O.SITE = S.SITE AND O.CURRENT_REVISION = 'true' - LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = O.HANDLE AND OT.LOCALE = #{locale} - LEFT JOIN OPERATION O2 ON O2.OPERATION = SUBSTR(SS.OPERATION_BO,INSTR(SS.OPERATION_BO,',',1,1)+1,INSTR(SS.OPERATION_BO,',',1,2) - INSTR(SS.OPERATION_BO,',') -1) - AND O2.SITE = S.SITE AND O2.CURRENT_REVISION = 'true' - LEFT JOIN OPERATION_T OT2 ON OT2.OPERATION_BO = O2.HANDLE AND OT2.LOCALE = #{locale} - LEFT JOIN Z_NWA_USER ZNU ON ZNU.USER_NAME = ZSD.EMPLOYEE AND ZSD.DISPATCH_SEQ = ( - SELECT MAX(ZSD2.DISPATCH_SEQ) FROM Z_SFC_DISPATCH ZSD2 WHERE S.SFC = ZSD2.SFC AND S.SITE = ZSD2.SITE + 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, + so2.QTY_TO_BUILD SHOP_ORDER_QTY,s2.SFC,o2.OPERATION,ot2.DESCRIPTION OPERATION_DESCRIPTION,zsd3.STEP_ID STEP_ID, + CASE WHEN zsd3.DISPATCH_STATUS = 'NEW'THEN '新建' + WHEN zsd3.DISPATCH_STATUS = 'RELEASE' THEN '发布' + WHEN zsd3.DISPATCH_STATUS = 'PAUSE' THEN '暂挂' + WHEN zsd3.DISPATCH_STATUS = 'START'THEN '已开始' + WHEN zsd3.DISPATCH_STATUS = 'COMPLETE' THEN '已完成' + 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, + 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 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') + 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 + 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 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 ) - LEFT JOIN CUSTOM_FIELDS CF ON CF.HANDLE = S.SHOP_ORDER_BO AND CF."ATTRIBUTE" = 'ITEM_NUMBER' - LEFT JOIN CUSTOM_FIELDS CF2 ON CF2.HANDLE = S.SHOP_ORDER_BO AND CF2."ATTRIBUTE" = 'WORK_ORDER' - INNER JOIN STATUS S2 ON S2.HANDLE = S.STATUS_BO + INNER JOIN SHOP_ORDER so2 ON so2.SHOP_ORDER = zsd3.SHOP_ORDER AND so2.SITE = zsd.SITE + INNER JOIN ITEM i2 ON i2.HANDLE = so2.ITEM_BO + LEFT JOIN ITEM_T it2 ON it2.ITEM_BO = i2.HANDLE AND it2.LOCALE = 'zh' + INNER JOIN SFC s2 ON s2.SFC = zsd3.SFC AND s2.SITE = zsd.SITE + LEFT JOIN SFC_ROUTING sr ON sr.SFC_BO = s2.HANDLE + LEFT JOIN SFC_ROUTER st ON st.SFC_ROUTING_BO = sr.HANDLE AND st.IN_USE = 'true' + 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_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) + FROM Z_SFC_DISPATCH zsd4 + WHERE zsd4.SFC = zsd3.SFC AND zsd.SITE = zsd4.SITE ) + LEFT JOIN CUSTOM_FIELDS cf3 + ON so2.HANDLE = cf3.HANDLE AND cf3."ATTRIBUTE" = 'ITEM_NUMBER' + LEFT JOIN CUSTOM_FIELDS cf4 + 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' + + + + + - S.SITE = #{site} - - - AND CF.VALUE LIKE '%${param.itemNumber}%' - - - AND (ZSD.SHOP_ORDER = #{param.shopOrder} - - OR ZSD.SHOP_ORDER IN - - #{item.shopOrder} - - ) - - - AND (I.ITEM = #{param.item} OR IT.DESCRIPTION = #{param.item}) - - - AND (OT2.DESCRIPTION LIKE '%${param.currentOperation}%' OR - O2.OPERATION LIKE '%${param.currentOperation}%') - - - - - - AND (O.OPERATION LIKE '%${param.operation}%' - OR OT.DESCRIPTION LIKE '%${param.operation}%') - - - AND CF2.VALUE = #{param.workOrder} - - - - AND S2.STATUS = '405' - - - AND S2.STATUS != '405' - - - - AND ZSD.ACTUAL_START_DATE >= TO_DATE(#{param.startDateTime}, 'YYYY-MM-DD') - 8/24 - - - AND ZSD.ACTUAL_START_DATE <= TO_DATE(#{param.endDateTime}|| '15:59:59', 'YYYY-MM-DD HH24:MI:SS') - - - AND ZSD.ACTUAL_COMPLETE_DATE >= TO_DATE(#{param.completeStartDateTime}, 'YYYY-MM-DD') - 8/24 + zsd.SITE = #{param.site} AND cf.VALUE = #{param.workOrder} + + AND CF3.VALUE LIKE '%${param.itemNumber}%' + + + AND (zsd.SHOP_ORDER = #{param.shopOrder} OR zsd3.SHOP_ORDER = #{param.shopOrder}) + + + AND (i.ITEM = #{param.item} OR it.DESCRIPTION = #{param.item} OR i2.ITEM = #{param.item} OR it2.DESCRIPTION = #{param.item}) + + + AND (ot3.DESCRIPTION LIKE '%${param.currentOperation}%' OR + o3.OPERATION LIKE '%${param.currentOperation}%') + + + AND (O.OPERATION LIKE '%${param.operation}%' + OR OT.DESCRIPTION LIKE '%${param.operation}%' + OR o2.OPERATION LIKE '%${param.operation}' + OR ot2.DESCRIPTION LIKE '%${param.operation}' + ) + + + + AND st2.STATUS = '405' - - AND ZSD.ACTUAL_COMPLETE_DATE <= TO_DATE(#{param.completeEndDateTime}|| '15:59:59', 'YYYY-MM-DD HH24:MI:SS') + + AND st2.STATUS != '405' + + AND ZSD3.ACTUAL_START_DATE >= TO_DATE(#{param.startDateTime}, 'YYYY-MM-DD') - 8/24 + + + AND ZSD3.ACTUAL_START_DATE <= TO_DATE(#{param.endDateTime}|| '15:59:59', 'YYYY-MM-DD HH24:MI:SS') + + + AND ZSD3.ACTUAL_COMPLETE_DATE >= TO_DATE(#{param.completeStartDateTime}, 'YYYY-MM-DD') - 8/24 + + + AND ZSD3.ACTUAL_COMPLETE_DATE <= TO_DATE(#{param.completeEndDateTime}|| '15:59:59', 'YYYY-MM-DD HH24:MI:SS') + + + AND zsd.DISPATCH_STATUS = #{param.finishedStatus} + + + AND zsd3.DISPATCH_STATUS = #{param.partsStatus} + - order by S.SFC DESC + ORDER BY zsd.SFC,zsd.OPERATION,zsd3.SFC,zsd3.OPERATION