Bläddra i källkod

✨ feat(mes): 新增采购订单号字段及相关逻辑处理

YunaiV 4 månader sedan
förälder
incheckning
0f0b39573a

+ 3 - 0
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/itemreceipt/vo/MesWmItemReceiptSaveReqVO.java

@@ -36,6 +36,9 @@ public class MesWmItemReceiptSaveReqVO {
     @NotNull(message = "入库日期不能为空")
     private LocalDateTime receiptDate;
 
+    @Schema(description = "采购订单号", example = "PO20260201")
+    private String purchaseOrderCode;
+
     @Schema(description = "备注", example = "备注")
     private String remark;
 

+ 0 - 7
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/itemreceipt/vo/line/MesWmItemReceiptLineSaveReqVO.java

@@ -31,13 +31,6 @@ public class MesWmItemReceiptLineSaveReqVO {
     @DecimalMin(value = "0", inclusive = false, message = "入库数量必须大于 0")
     private BigDecimal receivedQuantity;
 
-    // TODO DONE @芋艿:已添加 batchCode 字段,前端可以使用 batchCode 输入批次编码
-    @Schema(description = "批次编号", example = "1")
-    private Long batchId;
-
-    @Schema(description = "批次编码", example = "BATCH20260225001")
-    private String batchCode;
-
     @Schema(description = "生产日期")
     private LocalDateTime productionDate;
 

+ 7 - 4
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptDO.java

@@ -3,11 +3,8 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemreceipt;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.iqc.MesQcIqcDO;
-import cn.iocoder.yudao.module.mes.enums.wm.MesWmItemReceiptStatusEnum;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.arrivalnotice.MesWmArrivalNoticeDO;
-import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO;
-import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
-import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO;
+import cn.iocoder.yudao.module.mes.enums.wm.MesWmItemReceiptStatusEnum;
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -53,6 +50,12 @@ public class MesWmItemReceiptDO extends BaseDO {
      * 关联 {@link MesWmArrivalNoticeDO#getId()}
      */
     private Long noticeId;
+    /**
+     * 采购订单号
+     *
+     * 冗余自 {@link MesWmArrivalNoticeDO#getPurchaseOrderCode()},也可以手动填写
+     */
+    private String purchaseOrderCode;
     /**
      * 供应商编号
      *

+ 2 - 13
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptLineServiceImpl.java

@@ -6,13 +6,11 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchGenerateReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.itemreceipt.vo.line.MesWmItemReceiptLinePageReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.itemreceipt.vo.line.MesWmItemReceiptLineSaveReqVO;
-import cn.iocoder.yudao.module.mes.dal.dataobject.wm.arrivalnotice.MesWmArrivalNoticeDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemreceipt.MesWmItemReceiptDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemreceipt.MesWmItemReceiptLineDO;
 import cn.iocoder.yudao.module.mes.dal.mysql.wm.itemreceipt.MesWmItemReceiptLineMapper;
 import cn.iocoder.yudao.module.mes.service.wm.arrivalnotice.MesWmArrivalNoticeLineService;
-import cn.iocoder.yudao.module.mes.service.wm.arrivalnotice.MesWmArrivalNoticeService;
 import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService;
 import jakarta.annotation.Resource;
 import org.springframework.context.annotation.Lazy;
@@ -45,9 +43,6 @@ public class MesWmItemReceiptLineServiceImpl implements MesWmItemReceiptLineServ
     @Lazy
     private MesWmArrivalNoticeLineService arrivalNoticeLineService;
     @Resource
-    @Lazy
-    private MesWmArrivalNoticeService arrivalNoticeService;
-    @Resource
     private MesWmBatchService batchService;
 
     @Override
@@ -183,14 +178,8 @@ public class MesWmItemReceiptLineServiceImpl implements MesWmItemReceiptLineServ
         batchReqVO.setItemId(reqVO.getItemId()).setProduceDate(reqVO.getProductionDate())
                 .setExpireDate(reqVO.getExpireDate()).setLotNumber(reqVO.getLotNumber());
         // 从父单据获取
-        batchReqVO.setVendorId(receipt.getVendorId()).setReceiptDate(receipt.getReceiptDate());
-        // 从到货通知单获取采购订单号(如果关联了到货通知单)
-        if (receipt.getNoticeId() != null) {
-            MesWmArrivalNoticeDO notice = arrivalNoticeService.getArrivalNotice(receipt.getNoticeId());
-            if (notice != null) {
-                batchReqVO.setPurchaseOrderCode(notice.getPurchaseOrderCode());
-            }
-        }
+        batchReqVO.setVendorId(receipt.getVendorId()).setReceiptDate(receipt.getReceiptDate())
+                .setPurchaseOrderCode(receipt.getPurchaseOrderCode());
 
         // 生成或获取批次
         return batchService.getOrGenerateBatchCode(batchReqVO);

+ 1 - 0
yudao-module-mes/src/test/resources/sql/create_tables.sql

@@ -459,6 +459,7 @@ CREATE TABLE IF NOT EXISTS "mes_wm_item_receipt" (
     "iqc_id" bigint DEFAULT NULL,
     "notice_id" bigint DEFAULT NULL,
     "vendor_id" bigint DEFAULT NULL,
+    "purchase_order_code" varchar(64) DEFAULT NULL,
     "receipt_date" timestamp DEFAULT NULL,
     "status" tinyint NOT NULL DEFAULT 0,
     "remark" varchar(500) DEFAULT NULL,