Browse Source

✨ feat(mes): 新增批次编码字段及外协工单编码处理逻辑

YunaiV 2 months ago
parent
commit
7df27df39b

+ 9 - 0
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/outsourcereceipt/MesWmOutsourceReceiptController.java

@@ -12,8 +12,10 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.outsourcereceipt.vo.MesWm
 import cn.iocoder.yudao.module.mes.controller.admin.wm.outsourcereceipt.vo.MesWmOutsourceReceiptRespVO;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.outsourcereceipt.vo.MesWmOutsourceReceiptSaveReqVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.outsourcereceipt.MesWmOutsourceReceiptDO;
 import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService;
+import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
 import cn.iocoder.yudao.module.mes.service.wm.outsourcereceipt.MesWmOutsourceReceiptService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -46,6 +48,9 @@ public class MesWmOutsourceReceiptController {
     @Resource
     private MesMdVendorService vendorService;
 
+    @Resource
+    private MesProWorkOrderService workOrderService;
+
     @PostMapping("/create")
     @Operation(summary = "创建外协入库单")
     @PreAuthorize("@ss.hasPermission('mes:wm-outsource-receipt:create')")
@@ -148,10 +153,14 @@ public class MesWmOutsourceReceiptController {
         // 1. 获得关联数据
         Map<Long, MesMdVendorDO> vendorMap = vendorService.getVendorMap(
                 convertSet(list, MesWmOutsourceReceiptDO::getVendorId));
+        Map<Long, MesProWorkOrderDO> workOrderMap = workOrderService.getWorkOrderMap(
+                convertSet(list, MesWmOutsourceReceiptDO::getWorkOrderId));
         // 2. 构建结果
         return BeanUtils.toBean(list, MesWmOutsourceReceiptRespVO.class, vo -> {
             MapUtils.findAndThen(vendorMap, vo.getVendorId(),
                     vendor -> vo.setVendorName(vendor.getName()));
+            MapUtils.findAndThen(workOrderMap, vo.getWorkOrderId(),
+                    workOrder -> vo.setWorkOrderCode(workOrder.getCode()));
         });
     }
 

+ 2 - 2
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/outsourcereceipt/vo/MesWmOutsourceReceiptRespVO.java

@@ -25,11 +25,11 @@ public class MesWmOutsourceReceiptRespVO {
     private String name;
 
     @Schema(description = "外协工单编号", example = "1")
-    private Long workorderId;
+    private Long workOrderId;
 
     @Schema(description = "外协工单编码", example = "WO20260301")
     @ExcelProperty("外协工单")
-    private String workorderCode;
+    private String workOrderCode;
 
     @Schema(description = "供应商编号", example = "1")
     private Long vendorId;

+ 3 - 0
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/outsourcereceipt/vo/line/MesWmOutsourceReceiptLineRespVO.java

@@ -37,6 +37,9 @@ public class MesWmOutsourceReceiptLineRespVO {
     @Schema(description = "批次编号", example = "1")
     private Long batchId;
 
+    @Schema(description = "批次编码", example = "BATCH20260301001")
+    private String batchCode;
+
     @Schema(description = "生产日期")
     private LocalDateTime productionDate;
 

+ 7 - 0
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptDetailService.java

@@ -63,4 +63,11 @@ public interface MesWmOutsourceReceiptDetailService {
      */
     void deleteOutsourceReceiptDetailByReceiptId(Long receiptId);
 
+    /**
+     * 删除委外收货明细(根据行编号)
+     *
+     * @param lineId 行编号
+     */
+    void deleteOutsourceReceiptDetailByLineId(Long lineId);
+
 }

+ 5 - 0
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptDetailServiceImpl.java

@@ -110,6 +110,11 @@ public class MesWmOutsourceReceiptDetailServiceImpl implements MesWmOutsourceRec
         detailMapper.deleteByReceiptId(receiptId);
     }
 
+    @Override
+    public void deleteOutsourceReceiptDetailByLineId(Long lineId) {
+        detailMapper.deleteByLineId(lineId);
+    }
+
     private void validateOutsourceReceiptDetailExists(Long id) {
         if (detailMapper.selectById(id) == null) {
             throw exception(WM_OUTSOURCE_RECEIPT_DETAIL_NOT_EXISTS);