diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index 30874d26..036d7000 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -411,11 +411,13 @@ public class ProOrderServiceImpl implements IProOrderService { R> rSapProOrder = remoteSapService.shopOrderSync(sapqo);//sap只能同步指定日期的数据 - List newOrders = rSapProOrder.getData(); - if(CollectionUtils.isEmpty(newOrders)){ + if(rSapProOrder == null){ return AjaxResult.error("无"+sapqo.getCreateTime()+"之后的最新订单"); } + List newOrders = rSapProOrder.getData(); + + syncSAPFunc(newOrders); return success(); 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/ProOrderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml index 1ea17248..3de44404 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml @@ -51,7 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and prod_desc like concat('%', #{prodDesc}, '%') and quantity = #{quantity} and unit = #{unit} - and worker_order = #{workerOrder} + and worker_order like concat('%', #{workerOrder}, '%') and plan_pro_date = #{planProDate} and plan_complete = #{planComplete} and atrr1 = #{atrr1} 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 @@ + + \ No newline at end of file diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductAttachedMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductAttachedMapper.xml new file mode 100644 index 00000000..a0ccdfbd --- /dev/null +++ b/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductAttachedMapper.xml @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, product_code, category, pc, iei, man_standar, spray_way, blank_diameter, blank_no, spray_volume, liquid_no, endometrial_dosage, outer_film_dosage, support, support_no, pvc, support_plate, other from base_product_attached + + + + + + + + insert into base_product_attached + + id, + product_code, + category, + pc, + iei, + man_standar, + spray_way, + blank_diameter, + blank_no, + spray_volume, + liquid_no, + endometrial_dosage, + outer_film_dosage, + support, + support_no, + pvc, + support_plate, + other, + + + #{id}, + #{productCode}, + #{category}, + #{pc}, + #{iei}, + #{manStandar}, + #{sprayWay}, + #{blankDiameter}, + #{blankNo}, + #{sprayVolume}, + #{liquidNo}, + #{endometrialDosage}, + #{outerFilmDosage}, + #{support}, + #{supportNo}, + #{pvc}, + #{supportPlate}, + #{other}, + + + + + update base_product_attached + + product_code = #{productCode}, + category = #{category}, + pc = #{pc}, + iei = #{iei}, + man_standar = #{manStandar}, + spray_way = #{sprayWay}, + blank_diameter = #{blankDiameter}, + blank_no = #{blankNo}, + spray_volume = #{sprayVolume}, + liquid_no = #{liquidNo}, + endometrial_dosage = #{endometrialDosage}, + outer_film_dosage = #{outerFilmDosage}, + support = #{support}, + support_no = #{supportNo}, + pvc = #{pvc}, + support_plate = #{supportPlate}, + other = #{other}, + + where id = #{id} + + + + delete from base_product_attached where id = #{id} + + + + delete from base_product_attached where id in + + #{id} + + + \ No newline at end of file diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductMapper.xml index 06c39ee5..be7bbd8b 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductMapper.xml @@ -48,6 +48,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + + + + + + + + @@ -99,7 +115,68 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"