From ce6969c7e1ccd5b861484e6e8cbc2ab1fc16bccc Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 2 Mar 2026 12:25:27 +0800 Subject: [PATCH] ✨ feat(mes): 新增发货通知单状态枚举及相关逻辑优化 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/salesnotice/vo/MesWmSalesNoticePageReqVO.java | 12 ------------ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/salesnotice/MesWmSalesNoticeDO.java | 2 +- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/salesnotice/MesWmSalesNoticeMapper.java | 2 -- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmSalesNoticeStatusEnum.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java | 9 +++++---- 5 files changed, 61 insertions(+), 19 deletions(-) create mode 100644 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmSalesNoticeStatusEnum.java diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/salesnotice/vo/MesWmSalesNoticePageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/salesnotice/vo/MesWmSalesNoticePageReqVO.java index e702e70..d7568df 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/salesnotice/vo/MesWmSalesNoticePageReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/salesnotice/vo/MesWmSalesNoticePageReqVO.java @@ -5,11 +5,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; -import org.springframework.format.annotation.DateTimeFormat; - -import java.time.LocalDateTime; - -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Schema(description = "管理后台 - MES 发货通知单分页 Request VO") @Data @@ -29,11 +24,4 @@ public class MesWmSalesNoticePageReqVO extends PageParam { @Schema(description = "客户编号", example = "1") private Long clientId; - @Schema(description = "发货日期") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] salesDate; - - @Schema(description = "状态", example = "0") - private Integer status; - } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/salesnotice/MesWmSalesNoticeDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/salesnotice/MesWmSalesNoticeDO.java index a89c44e..01a3ea7 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/salesnotice/MesWmSalesNoticeDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/salesnotice/MesWmSalesNoticeDO.java @@ -64,7 +64,7 @@ public class MesWmSalesNoticeDO extends BaseDO { /** * 状态 * - * 0-草稿,1-已提交 + * 枚举 {@link cn.iocoder.yudao.module.mes.enums.wm.MesWmSalesNoticeStatusEnum} */ private Integer status; /** diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/salesnotice/MesWmSalesNoticeMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/salesnotice/MesWmSalesNoticeMapper.java index 93b22d7..de04777 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/salesnotice/MesWmSalesNoticeMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/salesnotice/MesWmSalesNoticeMapper.java @@ -21,8 +21,6 @@ public interface MesWmSalesNoticeMapper extends BaseMapperX .likeIfPresent(MesWmSalesNoticeDO::getNoticeName, reqVO.getNoticeName()) .likeIfPresent(MesWmSalesNoticeDO::getSalesOrderCode, reqVO.getSalesOrderCode()) .eqIfPresent(MesWmSalesNoticeDO::getClientId, reqVO.getClientId()) - .betweenIfPresent(MesWmSalesNoticeDO::getSalesDate, reqVO.getSalesDate()) - .eqIfPresent(MesWmSalesNoticeDO::getStatus, reqVO.getStatus()) .orderByDesc(MesWmSalesNoticeDO::getId)); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmSalesNoticeStatusEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmSalesNoticeStatusEnum.java new file mode 100644 index 0000000..7b1dc5b --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmSalesNoticeStatusEnum.java @@ -0,0 +1,55 @@ +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.salesnotice.vo.MesWmSalesNoticeSaveReqVO; +import cn.iocoder.yudao.module.mes.enums.MesOrderStatusConstants; +import cn.iocoder.yudao.module.mes.service.wm.salesnotice.MesWmSalesNoticeService; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * MES 发货通知单状态枚举 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum MesWmSalesNoticeStatusEnum implements ArrayValuable { + + /** + * 草稿 + * + * 对应方法:{@link MesWmSalesNoticeService#createSalesNotice(MesWmSalesNoticeSaveReqVO)} + */ + PREPARE(MesOrderStatusConstants.PREPARE, "草稿"), + /** + * 待出库,对接 wm 模块的 MesWmProductSalesDO 后续流程 + * + * 对应方法:{@link MesWmSalesNoticeService#submitSalesNotice(Long)} + */ + APPROVED(MesOrderStatusConstants.APPROVED, "待出库"), + /** + * 已完成 + */ + // TODO @芋艿:这个待实现; + FINISHED(MesOrderStatusConstants.FINISHED, "已完成"); + + public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesWmSalesNoticeStatusEnum::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/salesnotice/MesWmSalesNoticeServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java index b8ae069..c58749f 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java @@ -21,6 +21,7 @@ import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.mes.enums.wm.MesWmSalesNoticeStatusEnum.*; /** * MES 发货通知单 Service 实现类 @@ -43,7 +44,7 @@ public class MesWmSalesNoticeServiceImpl implements MesWmSalesNoticeService { // 插入 MesWmSalesNoticeDO notice = BeanUtils.toBean(createReqVO, MesWmSalesNoticeDO.class); - notice.setStatus(0); // 草稿状态 + notice.setStatus(PREPARE.getStatus()); // 草稿状态 salesNoticeMapper.insert(notice); return notice.getId(); } @@ -93,9 +94,9 @@ public class MesWmSalesNoticeServiceImpl implements MesWmSalesNoticeService { throw exception(WM_SALES_NOTICE_LINE_EMPTY); } - // 2. 更新状态:草稿 → 已提交 + // 2. 更新状态:草稿 → 待出库 salesNoticeMapper.updateById(new MesWmSalesNoticeDO() - .setId(id).setStatus(1)); + .setId(id).setStatus(APPROVED.getStatus())); } @Override @@ -127,7 +128,7 @@ public class MesWmSalesNoticeServiceImpl implements MesWmSalesNoticeService { */ private MesWmSalesNoticeDO validateSalesNoticeExistsAndDraft(Long id) { MesWmSalesNoticeDO notice = validateSalesNoticeExists(id); - if (ObjUtil.notEqual(0, notice.getStatus())) { + if (ObjUtil.notEqual(PREPARE.getStatus(), notice.getStatus())) { throw exception(WM_SALES_NOTICE_STATUS_NOT_ALLOW_DELETE); } return notice; -- libgit2 0.21.4