Commit b5b79b96db8edd91fdf4703bccd797268423bea0

Authored by YunaiV
1 parent c5407a6f

✨ feat(mes): 添加杂项出库单类型及状态枚举支持

新增杂项出库单类型和状态枚举,更新相关接口和前端表单以支持业务类型选择。确保系统能够正确处理杂项出库单的状态和类型,提高用户体验和系统的灵活性。
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/miscissue/MesWmMiscIssueDO.java
@@ -35,9 +35,10 @@ public class MesWmMiscIssueDO extends BaseDO { @@ -35,9 +35,10 @@ public class MesWmMiscIssueDO extends BaseDO {
35 * 出库单名称 35 * 出库单名称
36 */ 36 */
37 private String name; 37 private String name;
38 - // TODO @AI:字典;需要写在 dict constants 里;  
39 /** 38 /**
40 * 杂项类型 39 * 杂项类型
  40 + *
  41 + * 枚举 {@link cn.iocoder.yudao.module.mes.enums.DictTypeConstants#MES_WM_MISC_ISSUE_TYPE}
41 */ 42 */
42 private String type; 43 private String type;
43 // TODO @芋艿:这里还没定,关联哪些; 44 // TODO @芋艿:这里还没定,关联哪些;
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/DictTypeConstants.java
@@ -50,5 +50,7 @@ public interface DictTypeConstants { @@ -50,5 +50,7 @@ public interface DictTypeConstants {
50 String MES_WM_QUALITY_STATUS = "mes_wm_quality_status"; // MES 质量状态(待检/合格/不合格) 50 String MES_WM_QUALITY_STATUS = "mes_wm_quality_status"; // MES 质量状态(待检/合格/不合格)
51 String MES_WM_RETURN_ISSUE_STATUS = "mes_return_issue_status"; // MES 生产退料单状态 51 String MES_WM_RETURN_ISSUE_STATUS = "mes_return_issue_status"; // MES 生产退料单状态
52 String MES_WM_RETURN_ISSUE_TYPE = "mes_return_issue_type"; // MES 生产退料类型 52 String MES_WM_RETURN_ISSUE_TYPE = "mes_return_issue_type"; // MES 生产退料类型
  53 + String MES_WM_MISC_ISSUE_TYPE = "mes_wm_misc_issue_type"; // MES 杂项出库类型
  54 + String MES_WM_MISC_ISSUE_STATUS = "mes_wm_misc_issue_status"; // MES 杂项出库单状态
53 55
54 } 56 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmMiscIssueStatusEnum.java
1 package cn.iocoder.yudao.module.mes.enums.wm; 1 package cn.iocoder.yudao.module.mes.enums.wm;
2 2
3 import cn.iocoder.yudao.framework.common.core.ArrayValuable; 3 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
  4 +import cn.iocoder.yudao.module.mes.enums.MesOrderStatusConstants;
  5 +import cn.iocoder.yudao.module.mes.service.wm.miscissue.MesWmMiscIssueService;
4 import lombok.AllArgsConstructor; 6 import lombok.AllArgsConstructor;
5 import lombok.Getter; 7 import lombok.Getter;
6 8
@@ -9,29 +11,38 @@ import java.util.Arrays; @@ -9,29 +11,38 @@ import java.util.Arrays;
9 /** 11 /**
10 * MES 杂项出库单状态枚举 12 * MES 杂项出库单状态枚举
11 * 13 *
  14 + * 对应字典 mes_wm_misc_issue_status
  15 + *
12 * @author 芋道源码 16 * @author 芋道源码
13 */ 17 */
14 @Getter 18 @Getter
15 @AllArgsConstructor 19 @AllArgsConstructor
16 public enum MesWmMiscIssueStatusEnum implements ArrayValuable<Integer> { 20 public enum MesWmMiscIssueStatusEnum implements ArrayValuable<Integer> {
17 21
18 - // 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/MesWmProductSalesStatusEnum.java,关联 orderstatus;然后有“对应方法”  
19 /** 22 /**
20 * 草稿 23 * 草稿
  24 + *
  25 + * 对应方法:{@link MesWmMiscIssueService#createMiscIssue}
21 */ 26 */
22 - PREPARE(0, "草稿"), 27 + PREPARE(MesOrderStatusConstants.PREPARE, "草稿"),
23 /** 28 /**
24 * 待执行出库 29 * 待执行出库
  30 + *
  31 + * 对应方法:{@link MesWmMiscIssueService#submitMiscIssue}
25 */ 32 */
26 - APPROVED(1, "待执行出库"), 33 + APPROVED(MesOrderStatusConstants.APPROVED, "待执行出库"),
27 /** 34 /**
28 * 已完成 35 * 已完成
  36 + *
  37 + * 对应方法:{@link MesWmMiscIssueService#finishMiscIssue}
29 */ 38 */
30 - FINISHED(2, "已完成"), 39 + FINISHED(MesOrderStatusConstants.FINISHED, "已完成"),
31 /** 40 /**
32 * 已取消 41 * 已取消
  42 + *
  43 + * 对应方法:{@link MesWmMiscIssueService#cancelMiscIssue}
33 */ 44 */
34 - CANCELED(3, "已取消"); 45 + CANCELED(MesOrderStatusConstants.CANCELLED, "已取消");
35 46
36 public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesWmMiscIssueStatusEnum::getStatus).toArray(Integer[]::new); 47 public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesWmMiscIssueStatusEnum::getStatus).toArray(Integer[]::new);
37 48
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscissue/MesWmMiscIssueLineServiceImpl.java
@@ -6,6 +6,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.miscissue.vo.line.MesWmMi @@ -6,6 +6,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.miscissue.vo.line.MesWmMi
6 import cn.iocoder.yudao.module.mes.controller.admin.wm.miscissue.vo.line.MesWmMiscIssueLineSaveReqVO; 6 import cn.iocoder.yudao.module.mes.controller.admin.wm.miscissue.vo.line.MesWmMiscIssueLineSaveReqVO;
7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.miscissue.MesWmMiscIssueLineDO; 7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.miscissue.MesWmMiscIssueLineDO;
8 import cn.iocoder.yudao.module.mes.dal.mysql.wm.miscissue.MesWmMiscIssueLineMapper; 8 import cn.iocoder.yudao.module.mes.dal.mysql.wm.miscissue.MesWmMiscIssueLineMapper;
  9 +import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
  10 +import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
9 import jakarta.annotation.Resource; 11 import jakarta.annotation.Resource;
10 import org.springframework.context.annotation.Lazy; 12 import org.springframework.context.annotation.Lazy;
11 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
@@ -31,12 +33,21 @@ public class MesWmMiscIssueLineServiceImpl implements MesWmMiscIssueLineService @@ -31,12 +33,21 @@ public class MesWmMiscIssueLineServiceImpl implements MesWmMiscIssueLineService
31 @Lazy 33 @Lazy
32 private MesWmMiscIssueService miscIssueService; 34 private MesWmMiscIssueService miscIssueService;
33 35
  36 + @Resource
  37 + private MesMdItemService itemService;
  38 +
  39 + @Resource
  40 + private MesWmWarehouseAreaService warehouseAreaService;
  41 +
34 @Override 42 @Override
35 public Long createMiscIssueLine(MesWmMiscIssueLineSaveReqVO createReqVO) { 43 public Long createMiscIssueLine(MesWmMiscIssueLineSaveReqVO createReqVO) {
36 // 校验父单据存在且为可编辑状态 44 // 校验父单据存在且为可编辑状态
37 miscIssueService.validateMiscIssueEditable(createReqVO.getIssueId()); 45 miscIssueService.validateMiscIssueEditable(createReqVO.getIssueId());
38 - // TODO AI:item 存在;  
39 - // TODO @AI:校验 areaid 等字段存在;areaservice 有统一方法; 46 + // 校验物料存在
  47 + itemService.validateItemExists(createReqVO.getItemId());
  48 + // 校验仓库、库区、库位的父子关系
  49 + warehouseAreaService.validateWarehouseAreaExists(createReqVO.getWarehouseId(),
  50 + createReqVO.getLocationId(), createReqVO.getAreaId());
40 51
41 // 新增 52 // 新增
42 MesWmMiscIssueLineDO line = BeanUtils.toBean(createReqVO, MesWmMiscIssueLineDO.class); 53 MesWmMiscIssueLineDO line = BeanUtils.toBean(createReqVO, MesWmMiscIssueLineDO.class);
@@ -50,8 +61,11 @@ public class MesWmMiscIssueLineServiceImpl implements MesWmMiscIssueLineService @@ -50,8 +61,11 @@ public class MesWmMiscIssueLineServiceImpl implements MesWmMiscIssueLineService
50 MesWmMiscIssueLineDO line = validateMiscIssueLineExists(updateReqVO.getId()); 61 MesWmMiscIssueLineDO line = validateMiscIssueLineExists(updateReqVO.getId());
51 // 校验父单据存在且为可编辑状态 62 // 校验父单据存在且为可编辑状态
52 miscIssueService.validateMiscIssueEditable(line.getIssueId()); 63 miscIssueService.validateMiscIssueEditable(line.getIssueId());
53 - // TODO AI:item 存在;  
54 - // TODO @AI:校验 areaid 等字段存在;areaservice 有统一方法; 64 + // 校验物料存在
  65 + itemService.validateItemExists(updateReqVO.getItemId());
  66 + // 校验仓库、库区、库位的父子关系
  67 + warehouseAreaService.validateWarehouseAreaExists(updateReqVO.getWarehouseId(),
  68 + updateReqVO.getLocationId(), updateReqVO.getAreaId());
55 69
56 // 更新 70 // 更新
57 MesWmMiscIssueLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmMiscIssueLineDO.class); 71 MesWmMiscIssueLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmMiscIssueLineDO.class);