Browse Source

aps-领料后,取消坯料计划时需要退回备料在制品

sucheng 8 months ago
parent
commit
7e6b51ebf5

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

@@ -1982,11 +1982,17 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         //如果在制品不为空,并且为新增备料
         if (ObjectUtil.isNotEmpty(req.getProgressId()) && apsBlankOrderDo.getPreparematerial().equals("是")) {
             //将对应备料库(在制品库存表【aps_work_in_progress_inventory表】)中的备料计划ID(PLANMATERIALID)字段设置为坯料计划的ID
-            ApsWorkInProgressInventoryDo apsWorkInProgressInventoryDo = new ApsWorkInProgressInventoryDo();
-            apsWorkInProgressInventoryDo.setId(req.getProgressId());
-            apsWorkInProgressInventoryDo.setPlanmaterialid(apsBlankOrderDo.getId());
-            apsWorkInProgressInventoryDo.setWorkinprocessstatus(SaveConstans.WorkInProgressStatus.WAIT_WORK);
-            apsWorkInProgressInventoryService.updateById(apsWorkInProgressInventoryDo);
+//            ApsWorkInProgressInventoryDo apsWorkInProgressInventoryDo = new ApsWorkInProgressInventoryDo();
+//            apsWorkInProgressInventoryDo.setId(req.getProgressId());
+//            apsWorkInProgressInventoryDo.setPlanmaterialid(apsBlankOrderDo.getId());
+//            apsWorkInProgressInventoryDo.setWorkinprocessstatus(SaveConstans.WorkInProgressStatus.WAIT_WORK);
+//            apsWorkInProgressInventoryService.updateById(apsWorkInProgressInventoryDo);
+            apsWorkInProgressInventoryService.update(new UpdateWrapper<ApsWorkInProgressInventoryDo>().lambda()
+                    .set(ApsWorkInProgressInventoryDo::getPlanmaterialid, apsBlankOrderDo.getId())
+                    .setSql("REMARK = WORKINPROCESSSTATUS")
+                    .set(ApsWorkInProgressInventoryDo::getWorkinprocessstatus, SaveConstans.WorkInProgressStatus.WAIT_WORK)
+                    .eq(ApsWorkInProgressInventoryDo::getDeleted, "0")
+                    .eq(ApsWorkInProgressInventoryDo::getId, req.getProgressId()));
 
             //借调逻辑
             borrowBlank(progressWork);
@@ -2371,11 +2377,17 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         this.baseMapper.deleteProcessEquBackupByBlankId(req.getId());
 
         //如果是否备料=是,备料对应在制品的备料计划ID=(空),在制品状态=备料中
-        if (apsBlankOrderDo.getPreparematerial().equals("是")) {
+        if (ObjectUtil.isNotEmpty(apsBlankOrderDo.getPreparematerialbatchno())) {
+//            apsWorkInProgressInventoryService.update(new UpdateWrapper<ApsWorkInProgressInventoryDo>().lambda()
+//                    .set(ApsWorkInProgressInventoryDo::getPlanmaterialid, "")
+//                    .set(ApsWorkInProgressInventoryDo::getWorkinprocessstatus, SaveConstans.WorkInProgressStatus.WAITING)
+//                    .eq(ApsWorkInProgressInventoryDo::getBlankid, req.getId()));
+            List<String> batchNumberList = Arrays.asList(apsBlankOrderDo.getPreparematerialbatchno().split(","));
             apsWorkInProgressInventoryService.update(new UpdateWrapper<ApsWorkInProgressInventoryDo>().lambda()
-                    .set(ApsWorkInProgressInventoryDo::getBlankid, "")
-                    .set(ApsWorkInProgressInventoryDo::getWorkinprocessstatus, SaveConstans.WorkInProgressStatus.WAITING)
-                    .eq(ApsWorkInProgressInventoryDo::getBlankid, req.getId()));
+                    .set(ApsWorkInProgressInventoryDo::getPlanmaterialid, null)
+                    .setSql("WORKINPROCESSSTATUS = IF(REMARK = '待加工','备料中',REMARK)")
+                    .eq(ApsWorkInProgressInventoryDo::getDeleted, "0")
+                    .in(ApsWorkInProgressInventoryDo::getBatchnumber, batchNumberList));
         }
 
         //查询此订单的其他任一一个坯料计划的Id,重新更新订单的状态