From 0b84c873a11130ecd3a1ad2ac5eb11c3ea8e8baa Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Wed, 20 Sep 2023 16:33:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BD=E5=9D=AF=E4=B8=8B=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=EF=BC=8C=E7=94=9F=E6=88=90=E9=9B=B6=E9=A2=86=E6=96=99=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ProOrderWorkorderServiceImpl.java | 90 +++++++++++-------- .../impl/ProWetMaterialPlanServiceImpl.java | 1 + .../mapper/plan/ProOrderWorkorderMapper.xml | 6 +- .../plan/ProWetMaterialPlanDetailMapper.xml | 9 +- 4 files changed, 62 insertions(+), 44 deletions(-) diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index ea0fa7c8..80804f90 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -203,58 +203,47 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { @DS("#header.poolName") @Transactional(rollbackFor = Exception.class) public int downProOrderWorkorderByWorkorderIds(String[] workorderIds) { + List ids = new ArrayList<>(); - List workorders = proOrderWorkorderMapper.getWorkOrderByIds(workorderIds); - for (ProOrderWorkorder workorder : workorders) { - //关联工艺 - if (StringUtils.isNotBlank(workorder.getRouteCode())) { - List workDetails = proWorkorderProcessDetailMapper.getWorkOrderDetailsByRouteCode(workorder); - if (!CollectionUtils.isEmpty(workDetails)) { - workDetails.forEach(str -> { - str.setRecordId(IdUtils.fastSimpleUUID()); - str.setWorkorderId(workorder.getWorkorderId()); - str.setStatus("s0");//未执行 - str.setCreateBy(SecurityContextHolder.getUserName()); - str.setCreateTime(DateUtils.getNowDate()); - str.setFactoryCode(workorder.getFactoryCode()); - }); - proWorkorderProcessDetailMapper.addWorkOrderDetails(workDetails); - } - } - } List sapList = null;//回传给sap的工单 //如果是白坯生成备料单 for (String workorderId : workorderIds) { ProOrderWorkorder whiteOrder = proOrderWorkorderMapper.selectProOrderWorkorderByWorkorderId(workorderId); + if (whiteOrder != null && "white".equals(whiteOrder.getProdType())) {//是白坯订单,自主生成领料单; - //备(领)料主单 - MesPrepareDTO mesPrepare = new MesPrepareDTO(); - BeanUtils.copyBeanProp(mesPrepare, whiteOrder); - mesPrepare.setPrepareId(whiteOrder.getWorkorderCode() + "L");//领料单号 - mesPrepare.setWorkorderCode(whiteOrder.getWorkorderCode()); - mesPrepare.setCreateBy(SecurityUtils.getUsername()); - mesPrepare.setCreateTime(DateUtils.getNowDate()); - mesPrepare.setStatus("L0");//待确认 - proOrderWorkorderMapper.createPrepare(mesPrepare); //备(领)料明细 ProWetMaterialPlanDetail planDetail = proWetMaterialPlanDetailMapper.getWetInfo(workorderId); - List details = new ArrayList<>(); - MesPrepareDetailDTO detail = new MesPrepareDetailDTO(); - detail.setCreateTime(DateUtils.getNowDate()); - detail.setCreateBy(SecurityUtils.getUsername()); - detail.setRecordId(IdUtils.fastSimpleUUID()); - detail.setPrepareId(whiteOrder.getWorkorderCode() + "L"); - if (planDetail != null) { + if(planDetail != null){ + //备(领)料主单 + MesPrepareDTO mesPrepare = new MesPrepareDTO(); + BeanUtils.copyBeanProp(mesPrepare, whiteOrder); + mesPrepare.setPrepareId(whiteOrder.getWorkorderCode() + "L");//领料单号 + mesPrepare.setWorkorderCode(whiteOrder.getWorkorderCode()); + mesPrepare.setCreateBy(SecurityUtils.getUsername()); + mesPrepare.setCreateTime(DateUtils.getNowDate()); + mesPrepare.setStatus("L0");//待确认 + proOrderWorkorderMapper.createPrepare(mesPrepare); + //备(领)料明细 + + List details = new ArrayList<>(); + MesPrepareDetailDTO detail = new MesPrepareDetailDTO(); + detail.setCreateTime(DateUtils.getNowDate()); + detail.setCreateBy(SecurityUtils.getUsername()); + detail.setRecordId(IdUtils.fastSimpleUUID()); + detail.setPrepareId(whiteOrder.getWorkorderCode() + "L"); detail.setMaterailName(planDetail.getMaterialName()); detail.setMaterialCode(planDetail.getMaterialCode()); detail.setProductDate(planDetail.getProductDate()); detail.setShiftId(planDetail.getShiftId() + ""); detail.setProdType("white"); detail.setFactoryCode(planDetail.getFactoryCode()); - } - details.add(detail); - proOrderWorkorderMapper.createPrepareDetails(details); + details.add(detail); + proOrderWorkorderMapper.createPrepareDetails(details); + ids.add(workorderId); + }else{ + //无湿料计划,下发不了 + } } else if (whiteOrder != null) {//成品的母工单回传sap sapList = new ArrayList<>(); SapCreateOrder sap = new SapCreateOrder(); @@ -292,11 +281,34 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { } } + ids.add(workorderId); } } + if(!CollectionUtils.isEmpty(ids)){ + String[] idsArray = (String[])ids.toArray(new String[ids.size()]); + List workorders = proOrderWorkorderMapper.getWorkOrderByIds(idsArray); + for (ProOrderWorkorder workorder : workorders) { + //关联工艺 + if (StringUtils.isNotBlank(workorder.getRouteCode())) { + List workDetails = proWorkorderProcessDetailMapper.getWorkOrderDetailsByRouteCode(workorder); + if (!CollectionUtils.isEmpty(workDetails)) { + workDetails.forEach(str -> { + str.setRecordId(IdUtils.fastSimpleUUID()); + str.setWorkorderId(workorder.getWorkorderId()); + str.setStatus("s0");//未执行 + str.setCreateBy(SecurityContextHolder.getUserName()); + str.setCreateTime(DateUtils.getNowDate()); + str.setFactoryCode(workorder.getFactoryCode()); + }); + proWorkorderProcessDetailMapper.addWorkOrderDetails(workDetails); + } + } + } - //下达工单 - return proOrderWorkorderMapper.downProOrderWorkorderByWorkorderIds(workorderIds); + //下达工单 + return proOrderWorkorderMapper.downProOrderWorkorderByWorkorderIds(idsArray); + } + return 0; } // //获取最低级材料 diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProWetMaterialPlanServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProWetMaterialPlanServiceImpl.java index 41a6bbac..8d7b9c5f 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProWetMaterialPlanServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProWetMaterialPlanServiceImpl.java @@ -215,6 +215,7 @@ public class ProWetMaterialPlanServiceImpl implements IProWetMaterialPlanService // 循环创建湿料计划详情 for (ProOrderWorkorder proOrderWorkorder : proOrderWorkorderList) { + // 将湿料计划详情更新至数据库 proWetMaterialPlanDetailMapper.insertProWetMaterialPlanDetail(createProWetMaterialPlanDetail(proOrderWorkorder, planId)); } diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index a65bfe66..754933b0 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -50,12 +50,12 @@