瀏覽代碼

Merge remote-tracking branch 'origin/mode-min-unit' into mode-min-unit

fangpy 1 年之前
父節點
當前提交
aef2746ae2

+ 3 - 7
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsBlankOrderDao.java

@@ -58,13 +58,6 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
             ") b where b.PROCESSID like '%${processid}%'")
     List<ApsProcessOperationProcessEquDo> getGroupProcessOperationProcessEqus(@Param("processid") String processid);
 
-    @Update("update aps_blank_order o \n" +
-            "join (select ID,PRODUCTTYPE,METAL,METALSTATE,THICKSTR,THICKEND,WIDTHSTR,WIDTHEND,LENGTHSTR,LENGTHEND from aps_craft_route where DELETED ='0' and ID=#{craftrouteid}) as r on 1=1\n" +
-            "set o.CRAFTROUTEID=r.ID,o.ROUTEPRODUCTTYPEID=r.PRODUCTTYPE,o.ROUTEMETAL=r.METAL,o.ROUTEMETALSTATE=r.METALSTATE,\n" +
-            "\to.ROUTETHICKSTR=r.THICKSTR,o.ROUTETHICKEND=r.THICKEND,o.ROUTEWIDTHSTR=r.WIDTHSTR,o.ROUTEWIDTHEND=r.WIDTHEND,o.ROUTELENGTHSTR=r.LENGTHSTR,o.ROUTELENGTHEND=r.LENGTHEND\n" +
-            "where o.ID=#{blankId} ")
-    void upCraftrouteId(@Param("blankId") String blankId, @Param("craftrouteid") String craftrouteid);
-
     void publish(@Param("productionOrderIds") List<String> productionOrderIds);
 
     void publishCancel(@Param("productionOrderIds") List<String> productionOrderIds);
@@ -115,4 +108,7 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
 
     @Select("SELECT * FROM aps_blank_order WHERE DELETED = 0 AND PRODUCTIONORDERID = #{productionorderId}")
     List<ApsBlankOrderDo> selectBlankOrderByProductionorderId(@Param("productionorderId") String productionorderId);
+
+    @Update("update aps_process_operation_process_equ set BACHMATERIALPROCESS = REPLACE(REPLACE(REPLACE(BACHMATERIALPROCESS,'${batchnumber},',''),',${batchnumber}',''),'${batchnumber}','') where DELETED = 0 AND PREVIOUSPROCESSESIDS = #{processoperationequid} AND PROCESSID IN (select ID from aps_process_operation where DELETED = 0 AND PLANINPUTID = #{joboutputmaterialid})")
+    void updateBatchNumberByBorrow(@Param("batchnumber") String batchnumber, @Param("processoperationequid") String processoperationequid, @Param("joboutputmaterialid") String joboutputmaterialid);
 }

+ 2 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationDao.java

@@ -67,4 +67,6 @@ public interface ApsProcessOperationDao extends BaseMapper<ApsProcessOperationDo
     @Select("SELECT * FROM aps_process_operation WHERE DELETED = 0 AND BLANKID = #{blankid}")
     List<ApsProcessOperationDo> getProcessOperationByBlankId(@Param("blankid") String blankid);
 
+    @Update("update aps_process_operation_process_equ set BACHMATERIALPROCESS = IF(BACHMATERIALPROCESS is null || BACHMATERIALPROCESS = '',#{batchnumber},concat(BACHMATERIALPROCESS,',',#{batchnumber})) where DELETED = 0 AND PREVIOUSPROCESSESIDS = #{previousprocessesids}")
+    void updateBatchNumberByPrevious(@Param("batchnumber") String batchnumber, @Param("previousprocessesids") String previousprocessesids);
 }

+ 2 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationProcessEquDao.java

@@ -16,7 +16,8 @@ import java.util.List;
  */
 public interface ApsProcessOperationProcessEquDao extends BaseMapper<ApsProcessOperationProcessEquDo> {
 
-    void updateBachmaterialprocessByIds(@Param("ids") List<String> ids, @Param("batchNum") String batchNum);
+    void updateBachmaterialprocessByIds(@Param("ids") List<String> ids, @Param("batchNum") String batchNum,
+                                        @Param("nextIds") List<String> nextProcessesIds);
 
     /**
      * 更新 工序明细的 实际完工时间 完工状态 作业状态  已检验卷数 未完工卷数

+ 3 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsReportRecordsDao.java

@@ -49,6 +49,9 @@ public interface ApsReportRecordsDao extends BaseMapper<ApsReportRecordsDo> {
 
     @Select("select arr.ID from aps_process_operation apo LEFT JOIN aps_report_records arr ON arr.DELETED = 0 AND arr.PROCESSOPERATIONID = apo.ID LEFT JOIN aps_report_output aro ON aro.DELETED = 0 AND aro.MAINID = arr.ID where apo.DELETED = 0 AND aro.OUTPUTNUMBER = #{inputBatchNumber} ORDER BY arr.CREATEDATE desc limit 1")
     String selectLastReoprtRecordByBatchNumber(@Param("inputBatchNumber") String inputBatchNumber);
+
+    @Update("update aps_process_operation_process_equ set BACHMATERIALPROCESS = REPLACE(REPLACE(REPLACE(BACHMATERIALPROCESS,'${inputBatchNumber},',''),',${inputBatchNumber}',''),'${inputBatchNumber}','') where DELETED = 0 AND PREVIOUSPROCESSESIDS = #{previousprocessesids}")
+    void updateAllProcessEquBatchNumber(@Param("inputBatchNumber") String inputBatchNumber, @Param("previousprocessesids") String previousprocessesids);
 }
 
 

+ 7 - 2
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsBlankOrderServiceImpl.java

@@ -1731,10 +1731,15 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 String batchnumber = progressWork.getBatchnumber();
                 //获取该在制品作业明细的ID
                 String processoperationequid = progressWork.getProcessoperationequid();
+                //在制品对应的工序作业输出物料ID
+                String joboutputmaterialid = progressWork.getJoboutputmaterialid();
                 //该对应工序作业的已借调卷数=已借调卷数+1
                 this.baseMapper.processAddSecondRoll(processoperationid);
-                //将在制品的作业输出物料ID对应的所有后道工序作业的所有作业明细的待加工料卷批次号去掉“{批次号},”
-                this.baseMapper.processDeleteBatchNumber(batchnumber, processoperationid);
+//                //将在制品的作业输出物料ID对应的所有后道工序作业的所有作业明细的待加工料卷批次号去掉“{批次号},”
+//                this.baseMapper.processDeleteBatchNumber(batchnumber, processoperationid);
+                //查找该在制品作业明细ID对应的后道作业明细中,其工序作业的输入物料ID是该在制品的作业输出物料ID的所有作业明细,
+                //将这些作业明细的待加工料卷批次号去掉“{批次号},”
+                this.baseMapper.updateBatchNumberByBorrow(batchnumber, processoperationequid, joboutputmaterialid);
                 //处理后续工序状态
                 Map<String, Object> params2 = new HashMap<>();
                 params2.put("processId", processoperationid);

+ 4 - 2
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationProcessEquServiceImpl.java

@@ -66,9 +66,11 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
      * @param ids
      * @param batchNumn
      */
-    public void updateBachmaterialprocessByIds(List<String> ids, String batchNumn) {
+    public void updateBachmaterialprocessByIds(List<String> ids, String batchNumn,String nextprocessesids) {
         if (StringUtils.isNotBlank(batchNumn)) {
-            apsProcessOperationProcessEquDao.updateBachmaterialprocessByIds(ids, batchNumn);
+            apsProcessOperationProcessEquDao.updateBachmaterialprocessByIds(ids, batchNumn,
+                    StringUtils.isBlank(nextprocessesids)?null:Arrays.asList(nextprocessesids.split(","))
+                    );
         }
     }
 

+ 87 - 13
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationServiceImpl.java

@@ -58,6 +58,9 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
     @Autowired
     private ApsBlankOrderDao apsBlankOrderDao;
 
+    @Autowired
+    private ApsCraftRouteService apsCraftRouteService;
+
     @Autowired
     ApsCraftRouteStepService apsCraftRouteStepService;
 
@@ -150,7 +153,6 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
     @Override
     @Transactional
     public R resetCraftRoute(Map<String, Object> params) {
-//        R r = new R();
         try {
             JSONObject blanckdata = new JSONObject(params.get("BLANKDATA"));
             String craftrouteid = params.get("CRAFTROUTEID").toString();
@@ -562,8 +564,24 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
 
             if (bool1 && bool2 && bool3 && bool4) {
                 //更新坯料计划的所选工艺路线相关信息
-                apsBlankOrderDao.upCraftrouteId(blanckdata.getStr("ID"), craftrouteid);
-                return R.ok();
+                ApsCraftRouteDo apsCraftRouteDo = apsCraftRouteService.getById(craftrouteid);
+                apsBlankOrderService.update(new LambdaUpdateWrapper<ApsBlankOrderDo>()
+                        .eq(ApsBlankOrderDo::getId, blanckdata.getStr("ID"))
+                        .set(ApsBlankOrderDo::getCraftrouteid, craftrouteid)
+                        .set(ApsBlankOrderDo::getRouteproducttypeid, apsCraftRouteDo.getProducttype())
+                        .set(ApsBlankOrderDo::getRoutemetal, apsCraftRouteDo.getMetal())
+                        .set(ApsBlankOrderDo::getRoutemetalstate, apsCraftRouteDo.getMetalstate())
+                        .set(ApsBlankOrderDo::getRoutethinckstr, apsCraftRouteDo.getThickstr())
+                        .set(ApsBlankOrderDo::getRoutethickend, apsCraftRouteDo.getThickend())
+                        .set(ApsBlankOrderDo::getRoutewodthstr, apsCraftRouteDo.getWidthstr())
+                        .set(ApsBlankOrderDo::getRoutewidthend, apsCraftRouteDo.getWidthend())
+                        .set(ApsBlankOrderDo::getRoutelengthstr, apsCraftRouteDo.getLengthstr())
+                        .set(ApsBlankOrderDo::getRoutelengthend, apsCraftRouteDo.getLengthend())
+                );
+                R r = new R();
+                r.setCode("200");
+                r.setData(apsCraftRouteDo);
+                return r;
             } else {
                 return R.error();
             }
@@ -939,9 +957,25 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
         boolean bool3 = apsProcessOperationEquService.saveOrUpdateBatch(apsProcessOperationEquDoList);
         boolean bool4 = sysMindMappingService.saveOrUpdateBatch(sysMindMappingDoList);
         if (bool1 && bool2 && bool3 && bool4) {
-            //更新坯料计划的所选工艺路线
-            apsBlankOrderDao.upCraftrouteId(blanckdata.getStr("ID"), craftrouteid);
-            return R.ok();
+            //更新坯料计划的所选工艺路线相关信息
+            ApsCraftRouteDo apsCraftRouteDo = apsCraftRouteService.getById(craftrouteid);
+            apsBlankOrderService.update(new LambdaUpdateWrapper<ApsBlankOrderDo>()
+                    .eq(ApsBlankOrderDo::getId, blanckdata.getStr("ID"))
+                    .set(ApsBlankOrderDo::getCraftrouteid, craftrouteid)
+                    .set(ApsBlankOrderDo::getRouteproducttypeid, apsCraftRouteDo.getProducttype())
+                    .set(ApsBlankOrderDo::getRoutemetal, apsCraftRouteDo.getMetal())
+                    .set(ApsBlankOrderDo::getRoutemetalstate, apsCraftRouteDo.getMetalstate())
+                    .set(ApsBlankOrderDo::getRoutethinckstr, apsCraftRouteDo.getThickstr())
+                    .set(ApsBlankOrderDo::getRoutethickend, apsCraftRouteDo.getThickend())
+                    .set(ApsBlankOrderDo::getRoutewodthstr, apsCraftRouteDo.getWidthstr())
+                    .set(ApsBlankOrderDo::getRoutewidthend, apsCraftRouteDo.getWidthend())
+                    .set(ApsBlankOrderDo::getRoutelengthstr, apsCraftRouteDo.getLengthstr())
+                    .set(ApsBlankOrderDo::getRoutelengthend, apsCraftRouteDo.getLengthend())
+            );
+            R r = new R();
+            r.setCode("200");
+            r.setData(apsCraftRouteDo);
+            return r;
         } else {
             return R.error();
         }
@@ -957,7 +991,17 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
         //坯料计划去掉选择的工艺路线ID
         apsBlankOrderService.update(new LambdaUpdateWrapper<ApsBlankOrderDo>()
                 .eq(ApsBlankOrderDo::getId, blankid)
-                .set(ApsBlankOrderDo::getCraftrouteid, null));
+                .set(ApsBlankOrderDo::getCraftrouteid, null)
+                .set(ApsBlankOrderDo::getRouteproducttypeid, null)
+                .set(ApsBlankOrderDo::getRoutemetal, null)
+                .set(ApsBlankOrderDo::getRoutemetalstate, null)
+                .set(ApsBlankOrderDo::getRoutethinckstr, null)
+                .set(ApsBlankOrderDo::getRoutethickend, null)
+                .set(ApsBlankOrderDo::getRoutewodthstr, null)
+                .set(ApsBlankOrderDo::getRoutewidthend, null)
+                .set(ApsBlankOrderDo::getRoutelengthstr, null)
+                .set(ApsBlankOrderDo::getRoutelengthend, null)
+        );
         //工序作业
         apsProcessOperationDao.updateProcessOperation(blankid);
         //工序作业输出物料
@@ -1446,15 +1490,16 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
     @Transactional
     public R updateProcess(Map<String, Object> params) {
         List<ApsProcessOperationOutMaterDo> operationOutMaterDos = new ArrayList<>();//递归的数据源
+        JSONObject blanckdata = new JSONObject(params.get("BLANKDATA"));
         //首道工序
         Map<String, Object> map = new HashMap<>();
-        map.put("BLANKID", params.get("BLANKID").toString());
+        map.put("BLANKID", blanckdata.getStr("ID"));
         map.put("PREVIOUSPROCESSID", null);
         ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.listByMap(map).stream().findFirst().orElse(null);
 
         //首道工序输出
         Map<String, Object> outmap = new HashMap<>();
-        outmap.put("BLANKID", params.get("BLANKID").toString());
+        outmap.put("BLANKID", blanckdata.getStr("ID"));
         outmap.put("MAINID", apsProcessOperationDo.getId());
 //        List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterDos =apsProcessOperationOutMaterService.listByMap(outmap).stream().collect(Collectors.toList());
         ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo = apsProcessOperationOutMaterService.listByMap(outmap).stream().findFirst().orElse(null);
@@ -1464,10 +1509,17 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
         BigDecimal aluminumdensity = apsConfigs.get(0).getAluminumdensity();
 
         //更新工序输入
-        Integer rollnum = Integer.parseInt(params.get("ROLLNUM").toString());
-        BigDecimal singlerollweight = new BigDecimal(params.get("SINGLEROLLWEIGHT").toString());
-        String meterInput = getInMeterInfo(apsProcessOperationDo.getProducttype(), apsProcessOperationDo.getMetal(), apsProcessOperationDo.getMetalstate(), apsProcessOperationDo.getThickness(), apsProcessOperationDo.getProwidth(), apsProcessOperationDo.getProlength());
-        apsProcessOperationDo.setPlaninput(meterInput + params.get("SINGLEROLLWEIGHT").toString() + UNIT_MAP.getOrDefault(apsProcessOperationDo.getNumunit(), ""));
+        String meterInput = getInMeterInfo(blanckdata.getStr("PRODUCTTYPE"), blanckdata.getStr("ALLOY"), blanckdata.getStr("ALLOYSTATUS"), blanckdata.getBigDecimal("THICKNESS"), blanckdata.getBigDecimal("PROWIDTH"), blanckdata.getBigDecimal("PROLENGTH"));
+        apsProcessOperationDo.setPlaninput(meterInput + blanckdata.getStr("SINGLEROLLWEIGHT") + UNIT_MAP.getOrDefault(blanckdata.getStr("NUMBERUNIT"), ""));
+        apsProcessOperationDo.setProducttypeid(blanckdata.getStr("PRODUCTTYPEID"));
+        apsProcessOperationDo.setProducttype(blanckdata.getStr("PRODUCTTYPE"));
+        apsProcessOperationDo.setMetal(blanckdata.getStr("ALLOY"));
+        apsProcessOperationDo.setMetalstate(blanckdata.getStr("ALLOYSTATUS"));
+        apsProcessOperationDo.setThickness(blanckdata.getBigDecimal("THICKNESS"));
+        apsProcessOperationDo.setProwidth(blanckdata.getBigDecimal("PROWIDTH"));
+        apsProcessOperationDo.setProlength(blanckdata.getBigDecimal("PROLENGTH"));
+        Integer rollnum = blanckdata.getInt("ROLLNUM");
+        BigDecimal singlerollweight = blanckdata.getBigDecimal("SINGLEROLLWEIGHT");
         apsProcessOperationDo.setSinglerollweight(singlerollweight);
         apsProcessOperationDo.setPlaninrall(rollnum);
         apsProcessOperationDo.setPlanprocessrall(rollnum);
@@ -1491,6 +1543,28 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
         }
 
         //更新工序输出
+        String outProducttype = apsProcessOperationOutMaterDo.getProducttype();
+        if (apsProcessOperationOutMaterDo.getProducttyperule().equals("不变")) {
+            outProducttype = blanckdata.getStr("PRODUCTTYPE") == null ? "" : blanckdata.getStr("PRODUCTTYPE");
+            apsProcessOperationOutMaterDo.setProducttypeid(blanckdata.getStr("PRODUCTTYPEID") == null ? "" : blanckdata.getStr("PRODUCTTYPEID"));
+            apsProcessOperationOutMaterDo.setProducttype(outProducttype);
+        }
+        String outMeter = apsProcessOperationOutMaterDo.getMetal();
+        if (apsProcessOperationOutMaterDo.getMetalrule().equals("不变")) {
+            outMeter = blanckdata.getStr("ALLOY") == null ? "" : blanckdata.getStr("ALLOY");
+            apsProcessOperationOutMaterDo.setMetal(outMeter);
+        }
+        String outMetalstate = apsProcessOperationOutMaterDo.getMetalstate();
+        if (apsProcessOperationOutMaterDo.getMetalstaterule().equals("不变")) {
+            outMetalstate = blanckdata.getStr("ALLOYSTATUS") == null ? "" : blanckdata.getStr("ALLOYSTATUS");
+            apsProcessOperationOutMaterDo.setMetalstate(outMetalstate);
+        }
+        BigDecimal tval = changeSize(blanckdata.getBigDecimal("THICKNESS"), apsProcessOperationOutMaterDo.getThickrule(), apsProcessOperationOutMaterDo.getThickchange(), apsProcessOperationOutMaterDo.getThickness());
+        apsProcessOperationOutMaterDo.setThickness(tval);
+        BigDecimal wval = changeSize(blanckdata.getBigDecimal("PROWIDTH"), apsProcessOperationOutMaterDo.getWidthrule(), apsProcessOperationOutMaterDo.getWidthchange(), apsProcessOperationOutMaterDo.getProwidth());
+        apsProcessOperationOutMaterDo.setProwidth(wval);
+        BigDecimal lval = changeSize(blanckdata.getBigDecimal("PROLENGTH"), apsProcessOperationOutMaterDo.getLengthrule(), apsProcessOperationOutMaterDo.getLengthchange(), apsProcessOperationOutMaterDo.getProlength());
+        apsProcessOperationOutMaterDo.setProlength(lval);
         apsProcessOperationOutMaterDo.setPlanrollnum(rollnum);
         //输入单卷重*输出宽度/输入宽度
         String outsinglerollweight = df.format(singlerollweight.multiply(apsProcessOperationOutMaterDo.getProwidth() == null ? BigDecimal.valueOf(1) : apsProcessOperationOutMaterDo.getProwidth()).divide(apsProcessOperationDo.getProwidth() == null ? BigDecimal.valueOf(1) : apsProcessOperationDo.getProwidth(), 3, BigDecimal.ROUND_HALF_UP));

+ 48 - 28
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsReportRecordsServiceImpl.java

@@ -143,26 +143,30 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
 
         /**
          * 如果输入物料有批次号,则
-         * 如果该工序作业没有前道工序作业,则该工序作业所有作业明细的待加工料卷批次号加上“{批次号},”
-         * 如果该工序作业有前道工序作业,则输入物料对应前道工序作业的输出物料的所有后道工序作业的所有作业明细的待加工料卷批次号加上“{批次号},”
          */
         if (ObjectUtil.isNotEmpty(recordsDo.getBatchnumber())) {
-            //查询工序作业
-            ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(processoperationid);
-            //没有前道工序
-            if (ObjectUtil.isEmpty(apsProcessOperationDo.getPreviousprocessid())) {
-                apsProcessOperationDao.updateBatchNumberByProcessId(recordsDo.getBatchnumber(), processoperationid);
-            }
-            //有前道工序
-            if (ObjectUtil.isNotEmpty(apsProcessOperationDo.getPreviousprocessid())) {
-                //查询所有同级工序
-                List<ApsProcessOperationDo> list = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getPreviousprocessid, apsProcessOperationDo.getPreviousprocessid()));
-                List<String> processIdList = list.stream().map(ApsProcessOperationDo::getId).collect(Collectors.toList());
-                if (StringUtils.isNotBlank(recordsDo.getBatchnumber())) {
-                    //更新所有同级工序作业的明细,增加批次号
-                    apsProcessOperationDao.updateBatchNumberByProcessList(recordsDo.getBatchnumber(), processIdList);
-                }
-
+//            //查询工序作业
+//            ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(processoperationid);
+//            //没有前道工序
+//            if (ObjectUtil.isEmpty(apsProcessOperationDo.getPreviousprocessid())) {
+//                apsProcessOperationDao.updateBatchNumberByProcessId(recordsDo.getBatchnumber(), processoperationid);
+//            }
+//            //有前道工序
+//            if (ObjectUtil.isNotEmpty(apsProcessOperationDo.getPreviousprocessid())) {
+//                //查询所有同级工序
+//                List<ApsProcessOperationDo> list = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getPreviousprocessid, apsProcessOperationDo.getPreviousprocessid()));
+//                List<String> processIdList = list.stream().map(ApsProcessOperationDo::getId).collect(Collectors.toList());
+//                if (StringUtils.isNotBlank(recordsDo.getBatchnumber())) {
+//                    //更新所有同级工序作业的明细,增加批次号
+//                    apsProcessOperationDao.updateBatchNumberByProcessList(recordsDo.getBatchnumber(), processIdList);
+//                }
+//
+//            }
+            /**
+             * 如果该工序作业明细有前道工序作业明细,则将前道工序作业明细的所有后道工序作业明细的待加工料卷批次号加上“{批次号},”
+             */
+            if (ObjectUtil.isNotEmpty(equDo.getPreviousprocessesids()) && ObjectUtil.isNotEmpty(recordsDo.getBatchnumber())) {
+                apsProcessOperationDao.updateBatchNumberByPrevious(recordsDo.getBatchnumber(), equDo.getPreviousprocessesids());
             }
         }
 
@@ -259,9 +263,14 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
             //更新实际开工时间
             needUpdateProcessOperationProcessEqu.setActualstartdate(DateUtil.date());
         }
+        //加工中批次号
         if (ObjectUtil.isNotEmpty(req.getInputBatchNumber())) {
             needUpdateProcessOperationProcessEqu.setDoingbatchnumber(req.getInputBatchNumber());
         }
+        //更新工序作业明细的完工状态和作业状态
+        if (apsProcessOperationProcessEquDo.getWorkstatus().equals("待开工")) {
+            needUpdateProcessOperationProcessEqu.setWorkstatus("加工中");
+        }
         apsProcessOperationProcessEquService.updateById(needUpdateProcessOperationProcessEqu);
 
         //===============更新工序作业==================
@@ -273,16 +282,23 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
         //==========输入物料有批次号==============
         if (ObjectUtil.isNotEmpty(req.getInputBatchNumber())) {
             //如果该工序作业没有前道工序作业
-            if (ObjectUtil.isEmpty(apsProcessOperationDo.getPreviousprocessid())) {
-                //该工序作业的待加工料卷批次号去掉“{批次号},”或者“,{批次号}”
-                this.baseMapper.updateBatchMaterialProcess(req.getInputBatchNumber(), apsProcessOperationProcessEquDo.getId());
-            } else {//如果该工序作业有前道工序作业
-                //前道工序作业 的 所有后道工序作业(包含本工序作业【即所有与本工序同级的工序作业】) 的待加工料卷批次号去掉“{批次号},”或者“,{批次号}”
-                //查询前道工序作业的所有后道工序作业
-                List<ApsProcessOperationDo> nextProcessList = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getPreviousprocessid, apsProcessOperationDo.getPreviousprocessid()));
-                String collect = nextProcessList.stream().map(ApsProcessOperationDo::getId).collect(Collectors.joining("','"));
-                String processIds = "'" + collect + "'";
-                this.baseMapper.updateBatchMaterialProcessBatch(req.getInputBatchNumber(), processIds);
+//            if (ObjectUtil.isEmpty(apsProcessOperationDo.getPreviousprocessid())) {
+//                //该工序作业的待加工料卷批次号去掉“{批次号},”或者“,{批次号}”
+//                this.baseMapper.updateBatchMaterialProcess(req.getInputBatchNumber(), apsProcessOperationProcessEquDo.getId());
+//            } else {//如果该工序作业有前道工序作业
+//                //前道工序作业 的 所有后道工序作业(包含本工序作业【即所有与本工序同级的工序作业】) 的待加工料卷批次号去掉“{批次号},”或者“,{批次号}”
+//                //查询前道工序作业的所有后道工序作业
+//                List<ApsProcessOperationDo> nextProcessList = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getPreviousprocessid, apsProcessOperationDo.getPreviousprocessid()));
+//                String collect = nextProcessList.stream().map(ApsProcessOperationDo::getId).collect(Collectors.joining("','"));
+//                String processIds = "'" + collect + "'";
+//                this.baseMapper.updateBatchMaterialProcessBatch(req.getInputBatchNumber(), processIds);
+//            }
+            /**
+             * 如果该工序作业明细有前道工序作业明细,
+             * 则将前道工序作业明细的所有后道工序作业明细的待加工料卷批次号去掉“{批次号},”
+             */
+            if (ObjectUtil.isNotEmpty(apsProcessOperationProcessEquDo.getPreviousprocessesids())) {
+                this.baseMapper.updateAllProcessEquBatchNumber(req.getInputBatchNumber(), apsProcessOperationProcessEquDo.getPreviousprocessesids());
             }
         }
 
@@ -485,6 +501,10 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
         if (apsProcessOperationProcessEquDo.getClosestatus().equals("未完工") && apsProcessOperationProcessEquDo.getStartingroll() > 0) {
             needUpdateProcessOperationProcessEquDo.setWorkstatus("加工中");
         }
+        if (ObjectUtil.isNotEmpty(unfinishroll) && unfinishroll == 0) {
+            needUpdateProcessOperationProcessEquDo.setWorkstatus("已完工");
+        }
+
         //清空加工中批次号
         needUpdateProcessOperationProcessEquDo.setDoingbatchnumber("");
         apsProcessOperationProcessEquService.updateById(needUpdateProcessOperationProcessEquDo);

+ 2 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ReportCheckServiceImpl.java

@@ -203,7 +203,8 @@ public class ReportCheckServiceImpl implements ReportCheckService {
             //更新后续工序的待加工批次号信息
             apsProcessOperationService.updateBachmaterialprocessByIds(nextProcessIds, toBeProcessedBatchNum,
                     unqualifiedQuantity);
-            apsProcessOperationProcessEquService.updateBachmaterialprocessByIds(nextProcessIds, toBeProcessedBatchNum);
+            apsProcessOperationProcessEquService.updateBachmaterialprocessByIds(nextProcessIds, toBeProcessedBatchNum,
+                    currentProcessOperationEqu.getNextprocessesids());
         }
         /***************************存在不合格批次信息时 更新更新报工记录对应订单的订单评审状态=待计划评审, 订单调整日期=今天*************************************/
         if (unqualifiedQuantity > 0) {

+ 33 - 27
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationProcessEquDao.xml

@@ -53,6 +53,12 @@
             <foreach collection="ids" separator="," open="(" close=")" item="id">
                 #{id}
             </foreach>
+            <if test="nextIds != null and nextIds.size()>0">
+               and ID in
+                <foreach collection="nextIds" separator="," open="(" close=")" item="id">
+                    #{id}
+                </foreach>
+            </if>
         </where>
     </update>
     <update id="updateAboutCheckBatchNum">
@@ -61,7 +67,7 @@
             <!--  OUTPUTQUALIFIEDNUM = IFNULL(OUTPUTQUALIFIEDNUM,0)+ #{qualifiedQuantity},
              OUTPUTUNQUALIFIEDNUM = IFNULL(OUTPUTUNQUALIFIEDNUM,0) +#{unqualifiedQuantity},-->
             apope.CHECKOUTROLL = IFNULL(CHECKOUTROLL,0) +#{currentCheckNum},
-            apope.UNFINISHROLL = PLANPROCESSRALL -#{currentCheckNum},
+            apope.UNFINISHROLL = PLANPROCESSRALL -#{currentCheckNum}
             <choose>
                 <when test="previousprocessid == null and previousprocessid == ''">
                     <!-- 不存在上一个工序 未完工卷数等于0时 更新 为已完工  -->
@@ -71,15 +77,15 @@
 #                     ELSE '未完工'
 #                     END,
                     <!--  作业状态-->
-                    apope.WORKSTATUS= CASE
-                    WHEN (apope.PLANPROCESSRALL -#{currentCheckNum}) = 0 THEN '已完工'
-                    ELSE apope.WORKSTATUS
-                    END,
-                    <!--实际完工时间-->
-                    apope.ACTUALFINISHDATE = CASE
-                    WHEN (apope.PLANPROCESSRALL - #{currentCheckNum}) = 0 THEN NOW()
-                    ELSE apope.ACTUALFINISHDATE
-                    END
+<!--                    apope.WORKSTATUS= CASE-->
+<!--                    WHEN (apope.PLANPROCESSRALL -#{currentCheckNum}) = 0 THEN '已完工'-->
+<!--                    ELSE apope.WORKSTATUS-->
+<!--                    END,-->
+<!--                    &lt;!&ndash;实际完工时间&ndash;&gt;-->
+<!--                    apope.ACTUALFINISHDATE = CASE-->
+<!--                    WHEN (apope.PLANPROCESSRALL - #{currentCheckNum}) = 0 THEN NOW()-->
+<!--                    ELSE apope.ACTUALFINISHDATE-->
+<!--                    END-->
                 </when>
                 <otherwise>
                     <!-- 存在上一个工序 上道工序作业已完工 当前工序作业明细的已开工卷数=已检验卷数-->
@@ -96,23 +102,23 @@
 <!--                        ) and apope.STARTINGROLL = apope.CHECKOUTROLL+#{currentCheckNum}  from dual )THEN '已完工'-->
 <!--                        ELSE '未完工'-->
 <!--                    END,-->
-                    apope.WORKSTATUS =
-                    CASE
-                        WHEN  (select (select apo.CLOSESTATUS='已完工' from aps_process_operation apo where apo.ID =#{previousprocessid} )
-                    <!--并且作业明细待加工料卷批次号数量-工序作业已取消卷数<=0-->
-                    and (select IFNULL(LENGTH(apope.BACHMATERIALPROCESS) - LENGTH(REPLACE(apope.BACHMATERIALPROCESS, ',',
-                    '')) + 1 ,0)-IFNULL(apo.CANCELROLL,0)&lt;=0 from aps_process_operation apo where apo.ID =#{processOperationId}
-                    ) and apope.STARTINGROLL = apope.CHECKOUTROLL+#{currentCheckNum}  from dual) THEN '已完工'
-                        ELSE apope.WORKSTATUS
-                    END,
-                    apope.ACTUALFINISHDATE =  CASE
-                    WHEN  (select (select apo.CLOSESTATUS='已完工' from aps_process_operation apo where apo.ID =#{previousprocessid} )
-                    <!--并且作业明细待加工料卷批次号数量-工序作业已取消卷数<=0-->
-                    and (select IFNULL(LENGTH(apope.BACHMATERIALPROCESS) - LENGTH(REPLACE(apope.BACHMATERIALPROCESS, ',',
-                    '')) + 1 ,0)-IFNULL(apo.CANCELROLL,0)&lt;=0 from aps_process_operation apo where apo.ID =#{processOperationId}
-                    ) and apope.STARTINGROLL = apope.CHECKOUTROLL+#{currentCheckNum}  from dual) THEN NOW()
-                    ELSE apope.ACTUALFINISHDATE
-                    END
+<!--                    apope.WORKSTATUS =-->
+<!--                    CASE-->
+<!--                        WHEN  (select (select apo.CLOSESTATUS='已完工' from aps_process_operation apo where apo.ID =#{previousprocessid} )-->
+<!--                    &lt;!&ndash;并且作业明细待加工料卷批次号数量-工序作业已取消卷数<=0&ndash;&gt;-->
+<!--                    and (select IFNULL(LENGTH(apope.BACHMATERIALPROCESS) - LENGTH(REPLACE(apope.BACHMATERIALPROCESS, ',',-->
+<!--                    '')) + 1 ,0)-IFNULL(apo.CANCELROLL,0)&lt;=0 from aps_process_operation apo where apo.ID =#{processOperationId}-->
+<!--                    ) and apope.STARTINGROLL = apope.CHECKOUTROLL+#{currentCheckNum}  from dual) THEN '已完工'-->
+<!--                        ELSE apope.WORKSTATUS-->
+<!--                    END,-->
+<!--                    apope.ACTUALFINISHDATE =  CASE-->
+<!--                    WHEN  (select (select apo.CLOSESTATUS='已完工' from aps_process_operation apo where apo.ID =#{previousprocessid} )-->
+<!--                    &lt;!&ndash;并且作业明细待加工料卷批次号数量-工序作业已取消卷数<=0&ndash;&gt;-->
+<!--                    and (select IFNULL(LENGTH(apope.BACHMATERIALPROCESS) - LENGTH(REPLACE(apope.BACHMATERIALPROCESS, ',',-->
+<!--                    '')) + 1 ,0)-IFNULL(apo.CANCELROLL,0)&lt;=0 from aps_process_operation apo where apo.ID =#{processOperationId}-->
+<!--                    ) and apope.STARTINGROLL = apope.CHECKOUTROLL+#{currentCheckNum}  from dual) THEN NOW()-->
+<!--                    ELSE apope.ACTUALFINISHDATE-->
+<!--                    END-->
                 </otherwise>
             </choose>
 

+ 1 - 1
cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsProcessOperationController.java

@@ -108,7 +108,7 @@ public class ApsProcessOperationController {
     }
 
     /**
-     * 坯料计划修改卷数和单卷重后,更新工序作业相关信息
+     * 坯料计划修改坯料需求后,更新工序作业相关信息
      */
     @PostMapping("/updateProcess")
     public R updateProcess(@RequestBody Map<String, Object> params) {