From 788d9c8286fa84a5ba932a11dc6f19b72b281418 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 25 Feb 2026 23:16:04 +0800 Subject: [PATCH] refactor(mes): 添加采购入库单模块待优化项标记 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/itemreceipt/vo/line/MesWmItemReceiptLineSaveReqVO.java | 4 ++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptDO.java | 2 ++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptDetailDO.java | 1 + yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptLineDO.java | 5 +++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmItemReceiptStatusEnum.java | 1 + yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptDetailServiceImpl.java | 8 ++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptLineServiceImpl.java | 7 +++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java | 2 ++ 8 files changed, 30 insertions(+), 0 deletions(-) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/itemreceipt/vo/line/MesWmItemReceiptLineSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/itemreceipt/vo/line/MesWmItemReceiptLineSaveReqVO.java index 54d0c74..e2c90f3 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/itemreceipt/vo/line/MesWmItemReceiptLineSaveReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/itemreceipt/vo/line/MesWmItemReceiptLineSaveReqVO.java @@ -29,9 +29,11 @@ public class MesWmItemReceiptLineSaveReqVO { @NotNull(message = "入库数量不能为空") private BigDecimal receivedQuantity; + // TODO @芋艿:【暂时不调整】这个换成 batchCode;无论是前端、后端;数据库还是 batchId;后续在调整; @Schema(description = "批次编号", example = "1") private Long batchId; + // TODO @AI:是不是这里不用 warehouseId、locationId、areaId @Schema(description = "仓库编号", example = "1") private Long warehouseId; @@ -50,9 +52,11 @@ public class MesWmItemReceiptLineSaveReqVO { @Schema(description = "生产批号", example = "PB20260110") private String productionBatchNumber; + // TODO @AI:这个字段去掉; @Schema(description = "是否需要来料检验", example = "true") private Boolean iqcCheckFlag; + // TODO @AI:这个字段去掉;不是这里保存出来的;你也思考下; @Schema(description = "来料检验单编号", example = "1") private Long iqcId; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptDO.java index 900a9bb..bf5a54e 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptDO.java @@ -65,6 +65,7 @@ public class MesWmItemReceiptDO extends BaseDO { * 关联 {@link MesMdVendorDO#getId()} */ private Long vendorId; + // TODO @AI:warehouseId、locationId、areaId 这几个字段,是不是不需要;只需要在 detaildo 里存储就好了; /** * 仓库编号 * @@ -97,6 +98,7 @@ public class MesWmItemReceiptDO extends BaseDO { * 备注 */ private String remark; + /** * 预留字段1 */ diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptDetailDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptDetailDO.java index 752c85a..d741422 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptDetailDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptDetailDO.java @@ -80,6 +80,7 @@ public class MesWmItemReceiptDetailDO extends BaseDO { * 备注 */ private String remark; + /** * 预留字段1 */ diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptLineDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptLineDO.java index f4e9f25..f5169f1 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptLineDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/itemreceipt/MesWmItemReceiptLineDO.java @@ -38,6 +38,7 @@ public class MesWmItemReceiptLineDO extends BaseDO { * 关联 {@link MesWmItemReceiptDO#getId()} */ private Long receiptId; + // TODO @AI:字段要不完整点,更好维护;arrivalNoticeLineId;因为 noticeLineId 关联到 arrivalNoticeLineId;不然会有歧义; /** * 到货通知单行编号 * @@ -60,6 +61,7 @@ public class MesWmItemReceiptLineDO extends BaseDO { * TODO DONE @芋艿:保留。待 mes_wm_batch 模块迁移后补充 @link 关联 */ private Long batchId; + // TODO @AI:warehouseId、locationId、areaId 这几个字段,是不是不需要;只需要在 detaildo 里存储就好了; /** * 仓库编号 * @@ -90,11 +92,13 @@ public class MesWmItemReceiptLineDO extends BaseDO { * 生产批号 */ private String productionBatchNumber; + // TODO @AI:貌似不用 iqcCheckFlag 存储;因为 noticeLineId 可以关联到 /** * 是否需要来料检验 */ private Boolean iqcCheckFlag; // TODO DONE @AI:已添加关联注释。因 QC 模块 DO 类尚未迁移,暂用表名标识 + // TODO @AI:可以添加了; /** * 来料检验单编号 * @@ -105,6 +109,7 @@ public class MesWmItemReceiptLineDO extends BaseDO { * 备注 */ private String remark; + /** * 预留字段1 */ diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmItemReceiptStatusEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmItemReceiptStatusEnum.java index e52be57..be080e5 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmItemReceiptStatusEnum.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmItemReceiptStatusEnum.java @@ -6,6 +6,7 @@ import lombok.Getter; import java.util.Arrays; +// TODO @AI:应该使用 MesOrderStatusEnum 替代掉,只是使用其中的部分状态。需要在对应的 DO 说明下;当然,字典还是独立的! /** * MES 采购入库单状态枚举 * diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptDetailServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptDetailServiceImpl.java index 406f4b1..8dce8ee 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptDetailServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptDetailServiceImpl.java @@ -30,8 +30,12 @@ public class MesWmItemReceiptDetailServiceImpl implements MesWmItemReceiptDetail @Override public Long createItemReceiptDetail(MesWmItemReceiptDetailSaveReqVO createReqVO) { + // TODO @AI:warehouseId、locationId、areaId 存在,并且是父子关系!最好在 areaService 中提供一个方法,校验这三个 ID 的关系!(并且存在) // 校验父单据存在且为草稿状态 itemReceiptService.validateItemReceiptEditable(createReqVO.getReceiptId()); + // TODO @AI:超过数量验证; + + // TODO @芋艿:【后续搞】不允许物资混放 MesWmItemReceiptDetailDO detail = BeanUtils.toBean(createReqVO, MesWmItemReceiptDetailDO.class); itemReceiptDetailMapper.insert(detail); @@ -40,10 +44,14 @@ public class MesWmItemReceiptDetailServiceImpl implements MesWmItemReceiptDetail @Override public void updateItemReceiptDetail(MesWmItemReceiptDetailSaveReqVO updateReqVO) { + // TODO @AI:warehouseId、locationId、areaId 存在,并且是父子关系!最好在 areaService 中提供一个方法,校验这三个 ID 的关系!(并且存在) // 校验存在 MesWmItemReceiptDetailDO detail = validateItemReceiptDetailExists(updateReqVO.getId()); // 校验父单据存在且为草稿状态 itemReceiptService.validateItemReceiptEditable(detail.getReceiptId()); + // TODO @AI:超过数量验证; + + // TODO @芋艿:【后续搞】不允许物资混放 // 更新 MesWmItemReceiptDetailDO updateObj = BeanUtils.toBean(updateReqVO, MesWmItemReceiptDetailDO.class); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptLineServiceImpl.java index 94f5d17..ffe2647 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptLineServiceImpl.java @@ -41,10 +41,13 @@ public class MesWmItemReceiptLineServiceImpl implements MesWmItemReceiptLineServ public Long createItemReceiptLine(MesWmItemReceiptLineSaveReqVO createReqVO) { // 校验父单据存在且为草稿状态 validateReceiptStatusDraft(createReqVO.getReceiptId()); + // TODO @AI:校验关联订单; // 新增 MesWmItemReceiptLineDO line = BeanUtils.toBean(createReqVO, MesWmItemReceiptLineDO.class); itemReceiptLineMapper.insert(line); + + // TODO @芋艿:【暂时不处理】wmBatchService 需要生成下;基于 batchCode return line.getId(); } @@ -54,10 +57,13 @@ public class MesWmItemReceiptLineServiceImpl implements MesWmItemReceiptLineServ MesWmItemReceiptLineDO line = validateItemReceiptLineExists(updateReqVO.getId()); // 校验父单据存在且为草稿状态 validateReceiptStatusDraft(line.getReceiptId()); + // TODO @AI:校验关联订单; // 更新 MesWmItemReceiptLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmItemReceiptLineDO.class); itemReceiptLineMapper.updateById(updateObj); + + // TODO @芋艿:【暂时不处理】wmBatchService 需要生成下;基于 batchCode } @Override @@ -100,6 +106,7 @@ public class MesWmItemReceiptLineServiceImpl implements MesWmItemReceiptLineServ return line; } + // TODO @AI:这个应该在 itemReceiptService 中; /** * 校验父采购入库单存在且为草稿状态 */ diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java index cdc6b3a..c0a0772 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java @@ -147,6 +147,7 @@ public class MesWmItemReceiptServiceImpl implements MesWmItemReceiptService { } // 遍历所有明细,更新库存台账 + // TODO @AI:这里可能有点问题;缺少库存更新;后面在弄; List details = itemReceiptDetailService.getItemReceiptDetailListByReceiptId(id); for (MesWmItemReceiptDetailDO detail : details) { materialStockService.increaseStock( @@ -157,6 +158,7 @@ public class MesWmItemReceiptServiceImpl implements MesWmItemReceiptService { // 更新入库单状态 itemReceiptMapper.updateById(new MesWmItemReceiptDO() .setId(id).setStatus(MesWmItemReceiptStatusEnum.FINISHED.getStatus())); + // 更新关联的到货通知单状态 if (receipt.getNoticeId() != null) { arrivalNoticeService.finishArrivalNotice(receipt.getNoticeId()); -- libgit2 0.21.4