Просмотр исходного кода

♻️ refactor(service): 重构外协收据验证逻辑

合并外协收据的验证逻辑,简化代码结构,提高可读性和维护性。
将工单存在性验证方法更新为确认状态验证,确保数据一致性。
YunaiV месяцев назад: 2
Родитель
Сommit
1cd997fc9f

+ 1 - 1
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourceissue/MesWmOutsourceIssueServiceImpl.java

@@ -262,7 +262,7 @@ public class MesWmOutsourceIssueServiceImpl implements MesWmOutsourceIssueServic
             vendorService.validateVendorExists(saveReqVO.getVendorId());
         }
         // 校验工单存在且类型为外协(代工)
-        MesProWorkOrderDO workOrder = workOrderService.validateWorkOrderExists(saveReqVO.getWorkOrderId());
+        MesProWorkOrderDO workOrder = workOrderService.validateWorkOrderConfirmed(saveReqVO.getWorkOrderId());
         if (ObjUtil.notEqual(workOrder.getType(), MesProWorkOrderTypeEnum.OUTSOURCE.getType())) {
             throw exception(WM_OUTSOURCE_ISSUE_WORK_ORDER_TYPE_INVALID);
         }

+ 15 - 16
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java

@@ -64,14 +64,8 @@ public class MesWmOutsourceReceiptServiceImpl implements MesWmOutsourceReceiptSe
 
     @Override
     public Long createOutsourceReceipt(MesWmOutsourceReceiptSaveReqVO createReqVO) {
-        // 校验编码唯一
-        validateCodeUnique(null, createReqVO.getCode());
-        // 校验供应商存在
-        vendorService.validateVendorExists(createReqVO.getVendorId());
-        // 校验外协工单存在
-        if (createReqVO.getWorkOrderId() != null) {
-            workOrderService.validateWorkOrderExists(createReqVO.getWorkOrderId());
-        }
+        // 校验数据
+        validateOutsourceReceiptSaveData(null, createReqVO);
 
         // 插入
         MesWmOutsourceReceiptDO receipt = BeanUtils.toBean(createReqVO, MesWmOutsourceReceiptDO.class);
@@ -84,14 +78,8 @@ public class MesWmOutsourceReceiptServiceImpl implements MesWmOutsourceReceiptSe
     public void updateOutsourceReceipt(MesWmOutsourceReceiptSaveReqVO updateReqVO) {
         // 校验存在 + 草稿状态
         validateOutsourceReceiptExistsAndDraft(updateReqVO.getId());
-        // 校验编码唯一
-        validateCodeUnique(updateReqVO.getId(), updateReqVO.getCode());
-        // 校验供应商存在
-        vendorService.validateVendorExists(updateReqVO.getVendorId());
-        // 校验外协工单存在
-        if (updateReqVO.getWorkOrderId() != null) {
-            workOrderService.validateWorkOrderExists(updateReqVO.getWorkOrderId());
-        }
+        // 校验数据
+        validateOutsourceReceiptSaveData(updateReqVO.getId(), updateReqVO);
 
         // 更新
         MesWmOutsourceReceiptDO updateObj = BeanUtils.toBean(updateReqVO, MesWmOutsourceReceiptDO.class);
@@ -317,6 +305,17 @@ public class MesWmOutsourceReceiptServiceImpl implements MesWmOutsourceReceiptSe
         return receipt;
     }
 
+    private void validateOutsourceReceiptSaveData(Long id, MesWmOutsourceReceiptSaveReqVO reqVO) {
+        // 校验编码唯一
+        validateCodeUnique(id, reqVO.getCode());
+        // 校验供应商存在
+        vendorService.validateVendorExists(reqVO.getVendorId());
+        // 校验外协工单存在
+        if (reqVO.getWorkOrderId() != null) {
+            workOrderService.validateWorkOrderConfirmed(reqVO.getWorkOrderId());
+        }
+    }
+
     private void validateCodeUnique(Long id, String code) {
         MesWmOutsourceReceiptDO receipt = outsourceReceiptMapper.selectByCode(code);
         if (receipt == null) {

+ 1 - 1
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productreceipt/MesWmProductReceiptServiceImpl.java

@@ -267,7 +267,7 @@ public class MesWmProductReceiptServiceImpl implements MesWmProductReceiptServic
         validateCodeUnique(reqVO.getId(), reqVO.getCode());
         // 校验工单存在
         return reqVO.getWorkOrderId() != null ?
-                workOrderService.validateWorkOrderExists(reqVO.getWorkOrderId()) : null;
+                workOrderService.validateWorkOrderConfirmed(reqVO.getWorkOrderId()) : null;
     }
 
     private void validateCodeUnique(Long id, String code) {