Jelajahi Sumber

aps-撤回发布时退料

sucheng 8 bulan lalu
induk
melakukan
f2004d0205

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

@@ -331,11 +331,34 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         for (String productionOrderId : productionOrderIds) {
             apsProcessOperationProcessEquServiceImpl.updateProductDetail(productionOrderId);
         }
+        //退料
+        for (String blankId : blankIds) {
+            removeBatchNumberByBlankId(blankId);
+        }
         // 根据坯料ID 删除 备份数据
         ApsUtils.clearBackup(null);
         return R.ok();
     }
 
+    private R removeBatchNumberByBlankId(String blankId) {
+        ApsBlankOrderDo apsBlankOrderDo = apsBlankOrderService.getById(blankId);
+        //如果是否备料=是,备料对应在制品的备料计划ID=(空),在制品状态=备料中
+        if (ObjectUtil.isNotEmpty(apsBlankOrderDo.getPreparematerialbatchno())) {
+            List<String> batchNumberList = Arrays.asList(apsBlankOrderDo.getPreparematerialbatchno().split(","));
+            apsWorkInProgressInventoryService.update(new UpdateWrapper<ApsWorkInProgressInventoryDo>().lambda()
+                    .set(ApsWorkInProgressInventoryDo::getPlanmaterialid, null)
+                    .setSql("WORKINPROCESSSTATUS = IF(REMARK = '待加工','备料中',REMARK)")
+                    .eq(ApsWorkInProgressInventoryDo::getDeleted, "0")
+                    .in(ApsWorkInProgressInventoryDo::getBatchnumber, batchNumberList));
+
+            //更新坯料计划该字段为空
+            apsBlankOrderService.update(new UpdateWrapper<ApsBlankOrderDo>().lambda()
+                    .set(ApsBlankOrderDo::getPreparematerialbatchno, null)
+                    .eq(ApsBlankOrderDo::getId, apsBlankOrderDo.getId()));
+        }
+        return R.ok();
+    }
+
     /*
     插单
      */