From 97e55806eaa48b9bf81677729bd27f3d3154141b Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 22 Feb 2026 19:16:30 +0800 Subject: [PATCH] ✨ feat(mes): 添加物料接收单状态枚举及相关功能 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestLineController.java | 2 +- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineSaveReqVO.java | 3 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestDO.java | 5 ++--- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestLineDO.java | 5 ----- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmMaterialRequestStatusEnum.java | 40 ++++++++++++++++++++++++++++++++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineService.java | 17 +++++++++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineServiceImpl.java | 48 ++++++++++++++++++++++++++++++++++++++++++------ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestService.java | 11 ++++------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestServiceImpl.java | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------- 9 files changed, 162 insertions(+), 59 deletions(-) create mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmMaterialRequestStatusEnum.java diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestLineController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestLineController.java index 3245721..ea09214 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestLineController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/MesWmMaterialRequestLineController.java @@ -102,7 +102,7 @@ public class MesWmMaterialRequestLineController { // 2. 构建结果 return BeanUtils.toBean(list, MesWmMaterialRequestLineRespVO.class, vo -> { MapUtils.findAndThen(itemMap, vo.getItemId(), item -> - vo.setItemCode(item.getCode()).setSpecification(item.getSpecification())); + vo.setItemCode(item.getCode()).setItemName(item.getName()).setSpecification(item.getSpecification())); MapUtils.findAndThen(unitMeasureMap, vo.getUnitMeasureId(), unit -> vo.setUnitMeasureName(unit.getName())); }); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineSaveReqVO.java index ffd39bf..9294655 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineSaveReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialrequest/vo/line/MesWmMaterialRequestLineSaveReqVO.java @@ -22,9 +22,6 @@ public class MesWmMaterialRequestLineSaveReqVO { @NotNull(message = "产品物料ID不能为空") private Long itemId; - @Schema(description = "产品物料名称", example = "PVC 颗粒") - private String itemName; - @Schema(description = "计量单位ID", example = "1") private Long unitMeasureId; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestDO.java index ae3e7b5..9291ef2 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestDO.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; +import cn.iocoder.yudao.module.mes.enums.wm.MesWmMaterialRequestStatusEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -58,12 +59,10 @@ public class MesWmMaterialRequestDO extends BaseDO { * 完成时间 */ private LocalDateTime endTime; - // TODO @AI:枚举类; - // TODO @AI:字典; /** * 状态 * - * 0=草稿 1=备料中 2=待领料 3=已完成 4=已取消 + * 枚举 {@link MesWmMaterialRequestStatusEnum} */ private Integer status; /** diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestLineDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestLineDO.java index be7be89..925ce1b 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestLineDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/materialrequest/MesWmMaterialRequestLineDO.java @@ -40,11 +40,6 @@ public class MesWmMaterialRequestLineDO extends BaseDO { * 关联 {@link MesMdItemDO#getId()} */ private Long itemId; - // TODO @AI:不用快照,读取就好了。 - /** - * 产品物料名称(快照) - */ - private String itemName; /** * 计量单位ID * diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmMaterialRequestStatusEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmMaterialRequestStatusEnum.java new file mode 100644 index 0000000..f3b6d02 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmMaterialRequestStatusEnum.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.mes.enums.wm; + +import cn.iocoder.yudao.framework.common.core.ArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * MES 领料申请单状态枚举 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum MesWmMaterialRequestStatusEnum implements ArrayValuable { + + PREPARE(0, "草稿"), + PREPARING(1, "备料中"), + WAITING(2, "待领料"), + FINISHED(3, "已完成"), + CANCELED(4, "已取消"); + + public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesWmMaterialRequestStatusEnum::getStatus).toArray(Integer[]::new); + + /** + * 状态值 + */ + private final Integer status; + /** + * 状态名 + */ + private final String name; + + @Override + public Integer[] array() { + return ARRAYS; + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineService.java index 220a6ba..d232a31 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineService.java @@ -6,6 +6,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.M import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestLineDO; import jakarta.validation.Valid; +import java.util.List; + /** * MES 领料申请单行 Service 接口 */ @@ -49,4 +51,19 @@ public interface MesWmMaterialRequestLineService { */ PageResult getMaterialRequestLinePage(MesWmMaterialRequestLinePageReqVO pageReqVO); + /** + * 获得指定领料申请单的所有行 + * + * @param materialRequestId 领料申请单编号 + * @return 领料申请单行列表 + */ + List getMaterialRequestLineListByMaterialRequestId(Long materialRequestId); + + /** + * 根据领料申请单编号,删除所有行 + * + * @param materialRequestId 领料申请单编号 + */ + void deleteMaterialRequestLineByMaterialRequestId(Long materialRequestId); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineServiceImpl.java index 98a9349..0eb1b38 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestLineServiceImpl.java @@ -1,17 +1,23 @@ package cn.iocoder.yudao.module.mes.service.wm.materialrequest; +import cn.hutool.core.util.ObjUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLinePageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.line.MesWmMaterialRequestLineSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestDO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestLineDO; import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialrequest.MesWmMaterialRequestLineMapper; +import cn.iocoder.yudao.module.mes.enums.wm.MesWmMaterialRequestStatusEnum; import jakarta.annotation.Resource; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import java.util.List; + import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_MATERIAL_REQUEST_LINE_NOT_EXISTS; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; /** * MES 领料申请单行 Service 实现类 @@ -23,9 +29,14 @@ public class MesWmMaterialRequestLineServiceImpl implements MesWmMaterialRequest @Resource private MesWmMaterialRequestLineMapper materialRequestLineMapper; + @Resource + @Lazy + private MesWmMaterialRequestService materialRequestService; + @Override public Long createMaterialRequestLine(MesWmMaterialRequestLineSaveReqVO createReqVO) { - // TODO @AI:校验关联字段 + // 校验父单据存在且为草稿状态 + validateMaterialRequestStatusDraft(createReqVO.getMaterialRequestId()); // 插入 MesWmMaterialRequestLineDO line = BeanUtils.toBean(createReqVO, MesWmMaterialRequestLineDO.class); @@ -35,9 +46,10 @@ public class MesWmMaterialRequestLineServiceImpl implements MesWmMaterialRequest @Override public void updateMaterialRequestLine(MesWmMaterialRequestLineSaveReqVO updateReqVO) { - // 验证是否存在 - validateMaterialRequestLineExists(updateReqVO.getId()); - // TODO @AI:校验关联字段 + // 校验存在 + MesWmMaterialRequestLineDO line = validateMaterialRequestLineExists(updateReqVO.getId()); + // 校验父单据存在且为草稿状态 + validateMaterialRequestStatusDraft(line.getMaterialRequestId()); // 更新 MesWmMaterialRequestLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmMaterialRequestLineDO.class); @@ -46,7 +58,7 @@ public class MesWmMaterialRequestLineServiceImpl implements MesWmMaterialRequest @Override public void deleteMaterialRequestLine(Long id) { - // 验证是否存在 + // 校验存在 validateMaterialRequestLineExists(id); // 删除 materialRequestLineMapper.deleteById(id); @@ -62,6 +74,16 @@ public class MesWmMaterialRequestLineServiceImpl implements MesWmMaterialRequest return materialRequestLineMapper.selectPage(pageReqVO); } + @Override + public List getMaterialRequestLineListByMaterialRequestId(Long materialRequestId) { + return materialRequestLineMapper.selectListByMaterialRequestId(materialRequestId); + } + + @Override + public void deleteMaterialRequestLineByMaterialRequestId(Long materialRequestId) { + materialRequestLineMapper.deleteByMaterialRequestId(materialRequestId); + } + private MesWmMaterialRequestLineDO validateMaterialRequestLineExists(Long id) { MesWmMaterialRequestLineDO line = materialRequestLineMapper.selectById(id); if (line == null) { @@ -70,4 +92,18 @@ public class MesWmMaterialRequestLineServiceImpl implements MesWmMaterialRequest return line; } + /** + * 校验父领料申请单存在且为草稿状态 + */ + private void validateMaterialRequestStatusDraft(Long materialRequestId) { + // TODO @AI:对方提供下接口,更聚焦一点! + MesWmMaterialRequestDO materialRequest = materialRequestService.getMaterialRequest(materialRequestId); + if (materialRequest == null) { + throw exception(WM_MATERIAL_REQUEST_NOT_EXISTS); + } + if (ObjUtil.notEqual(MesWmMaterialRequestStatusEnum.PREPARE.getStatus(), materialRequest.getStatus())) { + throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID); + } + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestService.java index 2e2de6a..fed303d 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestService.java @@ -55,32 +55,29 @@ public interface MesWmMaterialRequestService { */ PageResult getMaterialRequestPage(MesWmMaterialRequestPageReqVO pageReqVO); - // TODO @AI:不用 0、1 这种状态,只写中文就行 /** - * 提交领料申请单(0=草稿 → 1=备料中) + * 提交领料申请单(草稿 → 备料中) * * @param id 编号 */ void submitMaterialRequest(Long id); - // TODO @AI:不用 0、1 这种状态,只写中文就行 /** - * 审批领料申请单(1=备料中 → 2=待领料) + * 审批领料申请单(备料中 → 待领料) * * @param id 编号 */ void approveMaterialRequest(Long id); - // TODO @AI:不用 0、1 这种状态,只写中文就行 /** - * 完成领料申请单(2=待领料 → 3=已完成),内部调用 + * 完成领料申请单(待领料 → 已完成),内部调用 * * @param id 编号 */ void finishMaterialRequest(Long id); /** - * 取消领料申请单(非已完成 → 4=已取消) + * 取消领料申请单(非已完成 → 已取消) * * @param id 编号 */ diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestServiceImpl.java index e8be2d1..5859437 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialrequest/MesWmMaterialRequestServiceImpl.java @@ -1,13 +1,14 @@ package cn.iocoder.yudao.module.mes.service.wm.materialrequest; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.materialrequest.vo.MesWmMaterialRequestSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialrequest.MesWmMaterialRequestDO; -import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialrequest.MesWmMaterialRequestLineMapper; import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialrequest.MesWmMaterialRequestMapper; +import cn.iocoder.yudao.module.mes.enums.wm.MesWmMaterialRequestStatusEnum; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -20,7 +21,6 @@ import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; -// TODO @AI:参考 /Users/yunai/Java/yudao-all-in-one/ruoyi-vue-pro/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java 风格,优化代码; /** * MES 领料申请单 Service 实现类 */ @@ -32,24 +32,26 @@ public class MesWmMaterialRequestServiceImpl implements MesWmMaterialRequestServ private MesWmMaterialRequestMapper materialRequestMapper; @Resource - private MesWmMaterialRequestLineMapper materialRequestLineMapper; + private MesWmMaterialRequestLineService materialRequestLineService; @Override public Long createMaterialRequest(MesWmMaterialRequestSaveReqVO createReqVO) { + // TODO @AI:校验关联数据; + + // 2. 插入 MesWmMaterialRequestDO materialRequest = BeanUtils.toBean(createReqVO, MesWmMaterialRequestDO.class); - materialRequest.setStatus(0); // 草稿 + materialRequest.setStatus(MesWmMaterialRequestStatusEnum.PREPARE.getStatus()); materialRequestMapper.insert(materialRequest); return materialRequest.getId(); } @Override public void updateMaterialRequest(MesWmMaterialRequestSaveReqVO updateReqVO) { - // 校验存在 - MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(updateReqVO.getId()); - // 只有草稿状态才允许修改 - if (!materialRequest.getStatus().equals(0)) { - throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID); - } + // 1. 校验存在 + 草稿状态 + validateMaterialRequestExistsAndDraft(updateReqVO.getId()); + // TODO @AI:校验关联数据; + + // 2. 更新 MesWmMaterialRequestDO updateObj = BeanUtils.toBean(updateReqVO, MesWmMaterialRequestDO.class); materialRequestMapper.updateById(updateObj); } @@ -57,15 +59,12 @@ public class MesWmMaterialRequestServiceImpl implements MesWmMaterialRequestServ @Override @Transactional(rollbackFor = Exception.class) public void deleteMaterialRequest(Long id) { - // 校验存在 - MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id); - // 只有草稿状态才允许删除 - if (!materialRequest.getStatus().equals(0)) { - throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID); - } - // 级联删除行 - materialRequestLineMapper.deleteByMaterialRequestId(id); - // 删除 + // 1. 校验存在 + 草稿状态 + validateMaterialRequestExistsAndDraft(id); + + // 2.1 级联删除行 + materialRequestLineService.deleteMaterialRequestLineByMaterialRequestId(id); + // 2.2 删除 materialRequestMapper.deleteById(id); } @@ -81,42 +80,54 @@ public class MesWmMaterialRequestServiceImpl implements MesWmMaterialRequestServ @Override public void submitMaterialRequest(Long id) { - MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id); - // 0=草稿 → 1=备料中 - if (!materialRequest.getStatus().equals(0)) { - throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID); - } - materialRequestMapper.updateById(new MesWmMaterialRequestDO().setId(id).setStatus(1)); + // 1. 校验存在 + 草稿状态 + validateMaterialRequestExistsAndDraft(id); + + // 2. 草稿 → 备料中 + materialRequestMapper.updateById(new MesWmMaterialRequestDO() + .setId(id).setStatus(MesWmMaterialRequestStatusEnum.PREPARING.getStatus())); } @Override public void approveMaterialRequest(Long id) { + // 1.1 校验存在 MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id); - // 1=备料中 → 2=待领料 - if (!materialRequest.getStatus().equals(1)) { + // 1.2 校验状态:只有备料中才允许审批 + if (ObjUtil.notEqual(MesWmMaterialRequestStatusEnum.PREPARING.getStatus(), materialRequest.getStatus())) { throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID); } - materialRequestMapper.updateById(new MesWmMaterialRequestDO().setId(id).setStatus(2)); + + // 2. 备料中 → 待领料 + materialRequestMapper.updateById(new MesWmMaterialRequestDO() + .setId(id).setStatus(MesWmMaterialRequestStatusEnum.WAITING.getStatus())); } @Override public void finishMaterialRequest(Long id) { + // 1.1 校验存在 MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id); - // 2=待领料 → 3=已完成 - if (!materialRequest.getStatus().equals(2)) { + // 1.2 校验状态:只有待领料才允许完成 + if (ObjUtil.notEqual(MesWmMaterialRequestStatusEnum.WAITING.getStatus(), materialRequest.getStatus())) { throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID); } - materialRequestMapper.updateById(new MesWmMaterialRequestDO().setId(id).setStatus(3)); + + // 2. 待领料 → 已完成 + materialRequestMapper.updateById(new MesWmMaterialRequestDO() + .setId(id).setStatus(MesWmMaterialRequestStatusEnum.FINISHED.getStatus())); } @Override public void cancelMaterialRequest(Long id) { + // 1.1 校验存在 MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id); - // 已完成不可取消 - if (materialRequest.getStatus().equals(3)) { + // 1.2 已完成不可取消 + if (ObjUtil.equal(MesWmMaterialRequestStatusEnum.FINISHED.getStatus(), materialRequest.getStatus())) { throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID); } - materialRequestMapper.updateById(new MesWmMaterialRequestDO().setId(id).setStatus(4)); + + // 2. 非已完成 → 已取消 + materialRequestMapper.updateById(new MesWmMaterialRequestDO() + .setId(id).setStatus(MesWmMaterialRequestStatusEnum.CANCELED.getStatus())); } @Override @@ -135,4 +146,15 @@ public class MesWmMaterialRequestServiceImpl implements MesWmMaterialRequestServ return materialRequest; } + /** + * 校验领料申请单存在且为草稿状态 + */ + private MesWmMaterialRequestDO validateMaterialRequestExistsAndDraft(Long id) { + MesWmMaterialRequestDO materialRequest = validateMaterialRequestExists(id); + if (ObjUtil.notEqual(MesWmMaterialRequestStatusEnum.PREPARE.getStatus(), materialRequest.getStatus())) { + throw exception(WM_MATERIAL_REQUEST_STATUS_INVALID); + } + return materialRequest; + } + } -- libgit2 0.21.4