diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmOutsourceReceiptStatusEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmOutsourceReceiptStatusEnum.java index d65ccec..ea1b009 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmOutsourceReceiptStatusEnum.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmOutsourceReceiptStatusEnum.java @@ -1,14 +1,18 @@ package cn.iocoder.yudao.module.mes.enums.wm; import cn.iocoder.yudao.framework.common.core.ArrayValuable; +import cn.iocoder.yudao.module.mes.controller.admin.wm.outsourcereceipt.vo.MesWmOutsourceReceiptSaveReqVO; import cn.iocoder.yudao.module.mes.enums.MesOrderStatusConstants; +import cn.iocoder.yudao.module.mes.service.wm.outsourcereceipt.MesWmOutsourceReceiptService; import lombok.AllArgsConstructor; import lombok.Getter; import java.util.Arrays; /** - * MES 委外收货单状态枚举 + * MES 外协入库单状态枚举 + * + * 对应字典 mes_wm_outsource_receipt_status * * @author 芋道源码 */ @@ -16,25 +20,40 @@ import java.util.Arrays; @AllArgsConstructor public enum MesWmOutsourceReceiptStatusEnum implements ArrayValuable { - // TODO @AI:需要 @对应的状态;参考 /Users/yunai/Java/yudao-all-in-one/ruoyi-vue-pro/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmMiscIssueStatusEnum.java 里的逻辑; /** - * 准备中 + * 草稿 + * + * 对应方法:{@link MesWmOutsourceReceiptService#createOutsourceReceipt(MesWmOutsourceReceiptSaveReqVO)} + */ + PREPARE(MesOrderStatusConstants.PREPARE, "草稿"), + /** + * 待检验(已确认,等待质检) + * + * 对应方法:{@link MesWmOutsourceReceiptService#submitOutsourceReceipt(Long)} */ - PREPARE(MesOrderStatusConstants.PREPARE, "准备中"), + CONFIRMED(MesOrderStatusConstants.CONFIRMED, "待检验"), /** - * 审批中 + * 待上架(检验完成,等待仓库上架) + * + * 对应方法:{@link MesWmOutsourceReceiptService#submitOutsourceReceipt(Long)} */ - APPROVING(MesOrderStatusConstants.APPROVING, "审批中"), + APPROVING(MesOrderStatusConstants.APPROVING, "待上架"), /** - * 已审批 + * 待执行入库(上架完成,等待执行入库操作) + * + * 对应方法:{@link MesWmOutsourceReceiptService#stockOutsourceReceipt(Long)} */ - APPROVED(MesOrderStatusConstants.APPROVED, "已审批"), + APPROVED(MesOrderStatusConstants.APPROVED, "待执行入库"), /** - * 已完成 + * 已完成(入库执行完成,库存已更新) + * + * 对应方法:{@link MesWmOutsourceReceiptService#finishOutsourceReceipt(Long)} */ FINISHED(MesOrderStatusConstants.FINISHED, "已完成"), /** * 已取消 + * + * 对应方法:{@link MesWmOutsourceReceiptService#cancelOutsourceReceipt(Long)} */ CANCELED(MesOrderStatusConstants.CANCELLED, "已取消"); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java index 058aa82..c8c0005 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java @@ -14,12 +14,11 @@ import cn.iocoder.yudao.module.mes.dal.mysql.wm.outsourcereceipt.MesWmOutsourceR import cn.iocoder.yudao.module.mes.dal.mysql.wm.outsourcereceipt.MesWmOutsourceReceiptLineMapper; import cn.iocoder.yudao.module.mes.dal.mysql.wm.outsourcereceipt.MesWmOutsourceReceiptMapper; import cn.iocoder.yudao.module.mes.enums.wm.MesWmOutsourceReceiptStatusEnum; +import cn.iocoder.yudao.module.mes.enums.wm.MesWmQualityStatusEnum; import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService; import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService; import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService; -import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService; -import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -56,12 +55,6 @@ public class MesWmOutsourceReceiptServiceImpl implements MesWmOutsourceReceiptSe private MesMdItemService itemService; @Resource - private MesWmWarehouseService warehouseService; - - @Resource - private MesWmWarehouseLocationService warehouseLocationService; - - @Resource private MesWmWarehouseAreaService warehouseAreaService; @Override @@ -125,14 +118,15 @@ public class MesWmOutsourceReceiptServiceImpl implements MesWmOutsourceReceiptSe if (CollUtil.isEmpty(lines)) { throw exception(WM_OUTSOURCE_RECEIPT_NO_LINE); } - // 校验物料存在 - for (MesWmOutsourceReceiptLineDO line : lines) { - itemService.validateItemExists(line.getItemId()); - } - // 提交(草稿 → 审批中) + // 检查是否有待检验的行 + boolean hasPendingQc = CollUtil.contains(lines, + line -> MesWmQualityStatusEnum.PENDING.getStatus().equals(line.getQualityStatus())); + // 根据质检状态,路由到待检验或待上架 + Integer targetStatus = hasPendingQc ? MesWmOutsourceReceiptStatusEnum.CONFIRMED.getStatus() + : MesWmOutsourceReceiptStatusEnum.APPROVING.getStatus(); outsourceReceiptMapper.updateById(new MesWmOutsourceReceiptDO() - .setId(id).setStatus(MesWmOutsourceReceiptStatusEnum.APPROVING.getStatus())); + .setId(id).setStatus(targetStatus)); } @Override