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 35 * 出库单名称
36 36 */
37 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 43 private String type;
43 44 // TODO @芋艿:这里还没定,关联哪些;
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/DictTypeConstants.java
... ... @@ -50,5 +50,7 @@ public interface DictTypeConstants {
50 50 String MES_WM_QUALITY_STATUS = "mes_wm_quality_status"; // MES 质量状态(待检/合格/不合格)
51 51 String MES_WM_RETURN_ISSUE_STATUS = "mes_return_issue_status"; // MES 生产退料单状态
52 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 1 package cn.iocoder.yudao.module.mes.enums.wm;
2 2  
3 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 6 import lombok.AllArgsConstructor;
5 7 import lombok.Getter;
6 8  
... ... @@ -9,29 +11,38 @@ import java.util.Arrays;
9 11 /**
10 12 * MES 杂项出库单状态枚举
11 13 *
  14 + * 对应字典 mes_wm_misc_issue_status
  15 + *
12 16 * @author 芋道源码
13 17 */
14 18 @Getter
15 19 @AllArgsConstructor
16 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 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 import cn.iocoder.yudao.module.mes.controller.admin.wm.miscissue.vo.line.MesWmMiscIssueLineSaveReqVO;
7 7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.miscissue.MesWmMiscIssueLineDO;
8 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 11 import jakarta.annotation.Resource;
10 12 import org.springframework.context.annotation.Lazy;
11 13 import org.springframework.stereotype.Service;
... ... @@ -31,12 +33,21 @@ public class MesWmMiscIssueLineServiceImpl implements MesWmMiscIssueLineService
31 33 @Lazy
32 34 private MesWmMiscIssueService miscIssueService;
33 35  
  36 + @Resource
  37 + private MesMdItemService itemService;
  38 +
  39 + @Resource
  40 + private MesWmWarehouseAreaService warehouseAreaService;
  41 +
34 42 @Override
35 43 public Long createMiscIssueLine(MesWmMiscIssueLineSaveReqVO createReqVO) {
36 44 // 校验父单据存在且为可编辑状态
37 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 53 MesWmMiscIssueLineDO line = BeanUtils.toBean(createReqVO, MesWmMiscIssueLineDO.class);
... ... @@ -50,8 +61,11 @@ public class MesWmMiscIssueLineServiceImpl implements MesWmMiscIssueLineService
50 61 MesWmMiscIssueLineDO line = validateMiscIssueLineExists(updateReqVO.getId());
51 62 // 校验父单据存在且为可编辑状态
52 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 71 MesWmMiscIssueLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmMiscIssueLineDO.class);
... ...