From 18c043f11b876ef4d7a8d95e785449ac70ef1824 Mon Sep 17 00:00:00 2001 From: yangwl <1726150332@qq.com> Date: Sun, 24 Apr 2022 17:11:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AF=8F=E6=97=A5=E7=94=9F=E4=BA=A7=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=8A=A5=E8=A1=A8=E5=A2=9E=E5=8A=A0=E4=B8=8A=E5=B7=A5?= =?UTF-8?q?=E5=BA=8F=E6=93=8D=E4=BD=9C=E5=91=98=E3=80=81=E4=B8=8B=E6=96=99?= =?UTF-8?q?=E5=B0=BA=E5=AF=B8=E3=80=81=E6=9D=90=E6=96=99=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E3=80=81=E6=89=B9=E9=87=8F=E4=BF=AE=E6=94=B9=E5=B7=A5=E8=89=BA?= =?UTF-8?q?=E8=B7=AF=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/common.iml | 233 ++++++++++++++++++ .../controller/ReportDataController.java | 5 + .../resources/mapper/ReportDataMapper.xml | 29 ++- .../ShopOrderReleaseController.java | 17 +- .../service/ShopOrderReleaseService.java | 2 +- .../impl/ShopOrderReleaseServiceImpl.java | 100 ++++---- 6 files changed, 337 insertions(+), 49 deletions(-) create mode 100644 common/common.iml diff --git a/common/common.iml b/common/common.iml new file mode 100644 index 00000000..07c82ac7 --- /dev/null +++ b/common/common.iml @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/controller/ReportDataController.java b/common/src/main/java/com/foreverwin/mesnac/common/controller/ReportDataController.java index cec06d68..475a7d21 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/controller/ReportDataController.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/controller/ReportDataController.java @@ -6,6 +6,8 @@ package com.foreverwin.mesnac.common.controller; * @Since 2021-08-23 */ +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import com.foreverwin.mesnac.common.mapper.ReportDataMapper; import com.foreverwin.mesnac.common.service.ReportDataService; import com.foreverwin.modular.core.util.CommonMethods; @@ -13,6 +15,8 @@ import com.foreverwin.modular.core.util.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; import java.util.Map; @@ -108,6 +112,7 @@ public class ReportDataController { return R.failed(e.getMessage()); } } + /** * 每日生产状态报表 * diff --git a/common/src/main/resources/mapper/ReportDataMapper.xml b/common/src/main/resources/mapper/ReportDataMapper.xml index 51d5e34d..f821e9a1 100644 --- a/common/src/main/resources/mapper/ReportDataMapper.xml +++ b/common/src/main/resources/mapper/ReportDataMapper.xml @@ -350,8 +350,18 @@ ZSD.SFC , ZSD.WORK_CENTER , WCT.DESCRIPTION WORK_CENTER_DESCRIPTION , RU.ROUTER_TYPE , ZSD.STEP_ID , ZSD.OPERATION ,CF.VALUE CHECK_USR, OT.DESCRIPTION OPERATION_DESCRIPTION, ZSD.RESRCE , R.DESCRIPTION RESOURCE_DESCRIPTION , ZSD.DISPATCH_STATUS OPERATION_STATUS , ZSD.PROD_HOURS ,ZSD.ACTUAL_PROD_HOURS , ZSD.PLANNED_START_DATE , ZSD.PLANNED_COMP_DATE , ZSD.ACTUAL_START_DATE , ZSD.ACTUAL_COMPLETE_DATE, - ROUND(TO_NUMBER(ZSD.ACTUAL_COMPLETE_DATE- ZSD.PLANNED_COMP_DATE)) TARDINESS_TIME + CASE WHEN ZSD.ACTUAL_COMPLETE_DATE IS NOT NULL THEN ROUND(TO_NUMBER(ZSD.ACTUAL_COMPLETE_DATE -ZSD.PLANNED_COMP_DATE)) + ELSE ROUND(TO_NUMBER(sysdate -ZSD.PLANNED_COMP_DATE)) END TARDINESS_TIME,CASE WHEN TO_NUMBER(zsd.DISPATCH_SEQ)=1 THEN NULL + WHEN SS.STEP_SEQUENCE>TO_NUMBER(zsd.DISPATCH_SEQ)-1 THEN '已完成' + ELSE '未完成' END LAST_OPERATION_STATUS,PREZSD.EMPLOYEE_DESCRIPTION,CT.DESCRIPTION COMPONENT_DESCRIPTION,ZSD.BLANKING_SIZE FROM Z_SFC_DISPATCH ZSD + INNER JOIN SFC SC ON SC.SITE = ZSD.SITE AND SC.SFC = ZSD.SFC + INNER JOIN SFC_BOM SB ON SB.SFC_BO = SC.HANDLE + INNER JOIN BOM_COMPONENT BC ON BC.BOM_BO = SB.BOM_BO + LEFT JOIN ITEM CP ON CP.HANDLE = BC.COMPONENT_GBO + LEFT JOIN ITEM_T CT ON CT.ITEM_BO = CP.HANDLE AND CT.LOCALE = 'zh' + LEFT JOIN Z_SFC_DISPATCH PREZSD + ON zsd.SFC=PREZSD.SFC AND PREZSD.DISPATCH_SEQ=TO_NUMBER(zsd.DISPATCH_SEQ)-1 AND zsd.ROUTER_BO=PREZSD.ROUTER_BO LEFT JOIN SHOP_ORDER SO ON SO.SHOP_ORDER = ZSD.SHOP_ORDER LEFT JOIN CUSTOM_FIELDS CFA ON CFA.HANDLE = SO.HANDLE AND CFA."ATTRIBUTE" = 'WORK_ORDER' LEFT JOIN CUSTOM_FIELDS CFB ON CFB.HANDLE = SO.HANDLE AND CFB."ATTRIBUTE" = 'ITEM_NUMBER' @@ -366,6 +376,10 @@ LEFT JOIN ROUTER RU ON RU.HANDLE = ZSD.ROUTER_BO LEFT JOIN RESRCE R ON R.RESRCE = ZSD.RESRCE AND R.SITE = ZSD.SITE LEFT JOIN CUSTOM_FIELDS CF ON CF.HANDLE = R.HANDLE AND CF."ATTRIBUTE" = 'CHECK_USR' + JOIN SFC S ON S.SFC=ZSD.SFC AND S.SITE=ZSD.SITE + JOIN SFC_ROUTING SR ON SR.SFC_BO=S.HANDLE + JOIN SFC_ROUTER SR2 ON SR.HANDLE =SR2.SFC_ROUTING_BO AND SR2.IN_USE = 'true' + LEFT JOIN SFC_STEP SS ON SR2.HANDLE =SS.SFC_ROUTER_BO AND (SS.QTY_IN_QUEUE>0 or SS.QTY_IN_WORK>0) WHERE ZSD.SITE = #{site} AND CFB.VALUE LIKE '%'||#{itemNumber}||'%' @@ -388,6 +402,9 @@ AND ZSD.OPERATION = #{operation} + + AND OT.DESCRIPTION = #{operationDescription} + AND I.ITEM = #{item} @@ -404,6 +421,16 @@ + + + + AND zsd.DISPATCH_SEQ = SS.STEP_SEQUENCE + + + AND zsd.DISPATCH_SEQ != SS.STEP_SEQUENCE + + + diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/ShopOrderReleaseController.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/ShopOrderReleaseController.java index 8eefbdd0..2f65260b 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/ShopOrderReleaseController.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/ShopOrderReleaseController.java @@ -199,13 +199,20 @@ public class ShopOrderReleaseController { @ResponseBody @PostMapping("/UpdateWorkmanship") public R updateWorkmanship(@RequestBody UpdateWKSBparam updateWKSBparam){ + Boolean flag = true; + StringBuffer message = new StringBuffer(); try{ - for (ShopOrderRelease shopOrderRelease:updateWKSBparam.getShopOrderList()){ - shopOrderReleaseService.changerouterRevision(shopOrderRelease,updateWKSBparam.getType()); - } + flag = shopOrderReleaseService.changerouterRevision(updateWKSBparam.getShopOrderList(),message,updateWKSBparam.getType()); }catch (Exception e){ - return R.failed(e.getMessage()); + flag = false; + message.append(e.getMessage()); + } + if (flag){ + message.insert(0, "更新成功"); + return R.ok(message.toString()); + }else { + message.insert(0, "已是最新版本:"); + return R.failed(message.toString()); } - return R.ok("更改成功!"); } } diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/ShopOrderReleaseService.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/ShopOrderReleaseService.java index f32c6bd3..49d7c79e 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/ShopOrderReleaseService.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/ShopOrderReleaseService.java @@ -99,7 +99,7 @@ public interface ShopOrderReleaseService { */ void sfcDispatch(String site, String user, ShopOrder shopOrderModel, Sfc sfcModel, List routerList) throws IOException; - void changerouterRevision(ShopOrderRelease shopOrderRelease,String type); + Boolean changerouterRevision(List shopOrderRelease,StringBuffer message,String type); // void changeBomRevision(ShopOrderRelease shopOrderRelease) ; } diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java index 264cf76a..f24bef10 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java @@ -370,55 +370,71 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService { } @Override - public void changerouterRevision(ShopOrderRelease shopOrderRelease,String type) { + public Boolean changerouterRevision(List shopOrderReleaseList,StringBuffer message,String type) { ChangeProductionServiceInterface changeProductionService = null; ChangeProductionContext changeProductionContext = new ChangeProductionContext(); ChangeProductionRequest changeProductionRequest = new ChangeProductionRequest(); List sfcList = new ArrayList<>(); - String shopOrderBo = shopOrderRelease.getShopOrderBo(); - ShopOrder shopOrderModel = shopOrderService.getById(shopOrderBo); - /** - * 通过工单号找SFC - */ - List stringList = shopOrderReleaseMapper.findSfc(shopOrderModel.getShopOrder()); - if (!stringList.isEmpty()){ - for (int j = 0; j < stringList.size(); j++) { - sfcList.add(stringList.get(j)); + Boolean flag = true; + for (ShopOrderRelease shopOrderRelease:shopOrderReleaseList){ + String shopOrderBo = shopOrderRelease.getShopOrderBo(); + ShopOrder shopOrderModel = shopOrderService.getById(shopOrderBo); + /** + * 通过工单号找SFC + */ + List stringList = shopOrderReleaseMapper.findSfc(shopOrderModel.getShopOrder()); + if (!stringList.isEmpty()){ + for (int j = 0; j < stringList.size(); j++) { + sfcList.add(stringList.get(j)); + } + } + /** + * 通过工单号找目前最新的工艺路线、版本号 + */ + RouterDTO routerDTO=shopOrderReleaseMapper.findNewRouter(shopOrderModel.getShopOrder()); + + if (routerDTO.getRevision().equals(shopOrderRelease.getRevision())){ + flag = false; + message.append("工单[" + shopOrderRelease.getShopOrder() + "]工艺路线是最新的,无需更新!"); + continue; + } + if (routerDTO!=null&&type.equals("A")){ + changeProductionContext.setNewRouter(routerDTO.getRouter()); + changeProductionContext.setNewRouterRevision(routerDTO.getRevision()); + changeProductionRequest.setOperationPlacementType(OperationPlacementTypeEnum.CURRENT_OPERATION); + } + /** + * 通过工单号找目前最新的BOM号、版本 + */ + Bom bom=shopOrderReleaseMapper.findNewBom(shopOrderModel.getShopOrder()); + if (bom.getRevision().equals(shopOrderRelease.getBomrevision())){ + flag = false; + message.append("工单[" + shopOrderRelease.getShopOrder() + "]BOM版本是最新的,无需更新!"); + continue; + } + if (bom!=null&&type.equals("B")){ + changeProductionContext.setNewBom(bom.getBom()); + changeProductionContext.setNewBomRevision(bom.getRevision()); } - } - /** - * 通过工单号找目前最新的工艺路线、版本号 - */ - RouterDTO routerDTO=shopOrderReleaseMapper.findNewRouter(shopOrderModel.getShopOrder()); - if (routerDTO!=null&&type.equals("A")){ - changeProductionContext.setNewRouter(routerDTO.getRouter()); - changeProductionContext.setNewRouterRevision(routerDTO.getRevision()); - changeProductionRequest.setOperationPlacementType(OperationPlacementTypeEnum.CURRENT_OPERATION); - } - /** - * 通过工单号找目前最新的BOM号、版本 - */ - Bom bom=shopOrderReleaseMapper.findNewBom(shopOrderModel.getShopOrder()); - if (bom!=null&&type.equals("B")){ - changeProductionContext.setNewBom(bom.getBom()); - changeProductionContext.setNewBomRevision(bom.getRevision()); - } - try { - changeProductionService = MEServices.create("com.sap.me.production", "ChangeProductionService", CommonMethods.getSite()); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } - changeProductionRequest.setAllowDoneSfcs(true); - changeProductionRequest.setSfcList(sfcList); - changeProductionRequest.setChangeProductionContextType(changeProductionContext); - try { - changeProductionService.changeProduction(changeProductionRequest); - } catch (com.sap.me.frame.domain.BusinessException e) { - throw com.foreverwin.modular.core.exception.BusinessException.build(Exceptions.convert(e).toString()); - } catch (Exception e) { - throw com.foreverwin.modular.core.exception.BusinessException.build(Exceptions.getRootCauseException(e).getMessage()); + try { + changeProductionService = MEServices.create("com.sap.me.production", "ChangeProductionService", CommonMethods.getSite()); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + changeProductionRequest.setAllowDoneSfcs(true); + changeProductionRequest.setSfcList(sfcList); + changeProductionRequest.setChangeProductionContextType(changeProductionContext); + + try { + changeProductionService.changeProduction(changeProductionRequest); + } catch (com.sap.me.frame.domain.BusinessException e) { + throw com.foreverwin.modular.core.exception.BusinessException.build(Exceptions.convert(e).toString()); + } catch (Exception e) { + throw com.foreverwin.modular.core.exception.BusinessException.build(Exceptions.getRootCauseException(e).getMessage()); + } } + return flag; }