Commit ba64b2f664702c5dffba57183b6f7b329775da1a

Authored by YunaiV
1 parent 959b3c7a

♻️ refactor(mes): 重构质检状态枚举及相关逻辑

将质检相关的状态枚举从 MesOrderStatusEnum 更改为 MesQcStatusEnum,确保状态管理的一致性和可维护性。更新了相关的服务和前端逻辑,以反映新的状态枚举。
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/qc/ipqc/MesQcIpqcDO.java
... ... @@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
5 5 import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO;
6 6 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
7 7 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateDO;
8   -import cn.iocoder.yudao.module.mes.enums.MesOrderStatusEnum;
  8 +import cn.iocoder.yudao.module.mes.enums.qc.MesQcStatusEnum;
9 9 import com.baomidou.mybatisplus.annotation.KeySequence;
10 10 import com.baomidou.mybatisplus.annotation.TableId;
11 11 import com.baomidou.mybatisplus.annotation.TableName;
... ... @@ -181,8 +181,7 @@ public class MesQcIpqcDO extends BaseDO {
181 181 /**
182 182 * 状态
183 183 *
184   - * 枚举 {@link MesOrderStatusEnum}
185   - * 当前使用:{@link MesOrderStatusEnum#DRAFT}、{@link MesOrderStatusEnum#FINISHED}
  184 + * 枚举 {@link MesQcStatusEnum}
186 185 */
187 186 private Integer status;
188 187 /**
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/qc/iqc/MesQcIqcDO.java
... ... @@ -6,8 +6,8 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO;
6 6 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateDO;
7 7 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.arrivalnotice.MesWmArrivalNoticeDO;
8 8 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.arrivalnotice.MesWmArrivalNoticeLineDO;
9   -import cn.iocoder.yudao.module.mes.enums.MesOrderStatusEnum;
10 9 import cn.iocoder.yudao.module.mes.enums.qc.MesQcSourceDocTypeEnum;
  10 +import cn.iocoder.yudao.module.mes.enums.qc.MesQcStatusEnum;
11 11 import com.baomidou.mybatisplus.annotation.KeySequence;
12 12 import com.baomidou.mybatisplus.annotation.TableId;
13 13 import com.baomidou.mybatisplus.annotation.TableName;
... ... @@ -167,8 +167,7 @@ public class MesQcIqcDO extends BaseDO {
167 167 /**
168 168 * 状态
169 169 *
170   - * 枚举 {@link MesOrderStatusEnum}
171   - * 当前使用:{@link MesOrderStatusEnum#DRAFT}、{@link MesOrderStatusEnum#FINISHED}
  170 + * 枚举 {@link MesQcStatusEnum}
172 171 */
173 172 private Integer status;
174 173 /**
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/qc/oqc/MesQcOqcDO.java
... ... @@ -159,7 +159,7 @@ public class MesQcOqcDO extends BaseDO {
159 159 /**
160 160 * 状态
161 161 *
162   - * 枚举 {@link cn.iocoder.yudao.module.mes.enums.qc.MesQcOqcStatusEnum}
  162 + * 枚举 {@link cn.iocoder.yudao.module.mes.enums.qc.MesQcStatusEnum}
163 163 */
164 164 private Integer status;
165 165 /**
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/qc/rqc/MesQcRqcDO.java
... ... @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.qc.rqc;
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 4 import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
5 5 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateDO;
6   -import cn.iocoder.yudao.module.mes.enums.MesOrderStatusEnum;
  6 +import cn.iocoder.yudao.module.mes.enums.qc.MesQcStatusEnum;
7 7 import com.baomidou.mybatisplus.annotation.KeySequence;
8 8 import com.baomidou.mybatisplus.annotation.TableId;
9 9 import com.baomidou.mybatisplus.annotation.TableName;
... ... @@ -120,8 +120,7 @@ public class MesQcRqcDO extends BaseDO {
120 120 /**
121 121 * 状态
122 122 *
123   - * 枚举 {@link MesOrderStatusEnum}
124   - * 当前使用:{@link MesOrderStatusEnum#DRAFT}、{@link MesOrderStatusEnum#FINISHED}
  123 + * 枚举 {@link MesQcStatusEnum}
125 124 */
126 125 private Integer status;
127 126 /**
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/itemreceipt/MesWmItemReceiptMapper.java
... ... @@ -19,7 +19,6 @@ public interface MesWmItemReceiptMapper extends BaseMapperX<MesWmItemReceiptDO>
19 19 .likeIfPresent(MesWmItemReceiptDO::getName, reqVO.getName())
20 20 .eqIfPresent(MesWmItemReceiptDO::getVendorId, reqVO.getVendorId())
21 21 .betweenIfPresent(MesWmItemReceiptDO::getReceiptDate, reqVO.getReceiptDate())
22   - .eqIfPresent(MesWmItemReceiptDO::getStatus, reqVO.getStatus())
23 22 .orderByDesc(MesWmItemReceiptDO::getId));
24 23 }
25 24  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/MesOrderStatusConstants.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.enums;
  2 +
  3 +/**
  4 + * MES 单据状态常量
  5 + *
  6 + * 集中管理各模块单据状态的编号,作为状态值的中央注册中心。
  7 + * 各枚举类引用此处常量,避免硬编码数字。
  8 + *
  9 + * @author 芋道源码
  10 + */
  11 +public final class MesOrderStatusConstants {
  12 +
  13 + /** 草稿 */
  14 + public static final int DRAFT = 0;
  15 +
  16 + /** 已确认 */
  17 + public static final int CONFIRMED = 1;
  18 +
  19 + /** 审批中 */
  20 + public static final int APPROVING = 2;
  21 +
  22 + /** 已审批 */
  23 + public static final int APPROVED = 3;
  24 +
  25 + /** 已完成 */
  26 + public static final int FINISHED = 4;
  27 +
  28 + /** 已取消 */
  29 + public static final int CANCELLED = 5;
  30 +
  31 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/MesOrderStatusEnum.java deleted
1   -package cn.iocoder.yudao.module.mes.enums;
2   -
3   -import cn.iocoder.yudao.framework.common.core.ArrayValuable;
4   -import lombok.AllArgsConstructor;
5   -import lombok.Getter;
6   -
7   -import java.util.Arrays;
8   -
9   -/**
10   - * MES 单据状态枚举
11   - *
12   - * @author 芋道源码
13   - */
14   -@Getter
15   -@AllArgsConstructor
16   -public enum MesOrderStatusEnum implements ArrayValuable<Integer> {
17   -
18   - DRAFT(0, "草稿"),
19   - CONFIRMED(1, "已确认"),
20   - APPROVING(2, "审批中"),
21   - APPROVED(3, "已审批"),
22   - FINISHED(4, "已完成"),
23   - CANCELLED(5, "已取消");
24   -
25   - public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesOrderStatusEnum::getType).toArray(Integer[]::new);
26   -
27   - /**
28   - * 状态值
29   - */
30   - private final Integer type;
31   - /**
32   - * 状态名
33   - */
34   - private final String name;
35   -
36   - @Override
37   - public Integer[] array() {
38   - return ARRAYS;
39   - }
40   -
41   -}
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/qc/MesQcOqcStatusEnum.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/qc/MesQcStatusEnum.java
1 1 package cn.iocoder.yudao.module.mes.enums.qc;
2 2  
3 3 import cn.iocoder.yudao.framework.common.core.ArrayValuable;
  4 +import cn.iocoder.yudao.module.mes.enums.MesOrderStatusConstants;
4 5 import lombok.AllArgsConstructor;
5 6 import lombok.Getter;
6 7  
7 8 import java.util.Arrays;
8 9  
9 10 /**
10   - * MES 出货检验单状态枚举
  11 + * MES 质检单状态枚举
  12 + *
  13 + * 适用于:IQC(来料检验)、IPQC(过程检验)、OQC(出货检验)、RQC(退货检验)
11 14 *
12 15 * @author 芋道源码
13 16 */
14 17 @Getter
15 18 @AllArgsConstructor
16   -public enum MesQcOqcStatusEnum implements ArrayValuable<Integer> {
  19 +public enum MesQcStatusEnum implements ArrayValuable<Integer> {
17 20  
18   - PREPARE(0, "草稿"),
19   - FINISHED(1, "已完成");
  21 + DRAFT(MesOrderStatusConstants.DRAFT, "草稿"),
  22 + FINISHED(MesOrderStatusConstants.FINISHED, "已完成");
20 23  
21   - public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesQcOqcStatusEnum::getType).toArray(Integer[]::new);
  24 + public static final Integer[] ARRAYS = Arrays.stream(values())
  25 + .map(MesQcStatusEnum::getStatus).toArray(Integer[]::new);
22 26  
23 27 /**
24 28 * 状态值
25 29 */
26   - private final Integer type;
  30 + private final Integer status;
  31 +
27 32 /**
28 33 * 状态名
29 34 */
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcServiceImpl.java
... ... @@ -11,7 +11,7 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.qc.ipqc.MesQcIpqcDO;
11 11 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateItemDO;
12 12 import cn.iocoder.yudao.module.mes.dal.mysql.qc.ipqc.MesQcIpqcMapper;
13 13 import cn.iocoder.yudao.module.mes.enums.qc.MesQcDefectLevelEnum;
14   -import cn.iocoder.yudao.module.mes.enums.MesOrderStatusEnum;
  14 +import cn.iocoder.yudao.module.mes.enums.qc.MesQcStatusEnum;
15 15 import cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum;
16 16 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
17 17 import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;
... ... @@ -84,7 +84,7 @@ public class MesQcIpqcServiceImpl implements MesQcIpqcService {
84 84 // 2. 插入主表
85 85 MesQcIpqcDO ipqc = BeanUtils.toBean(createReqVO, MesQcIpqcDO.class);
86 86 ipqc.setItemId(workOrder.getProductId());
87   - ipqc.setTemplateId(templateId).setStatus(MesOrderStatusEnum.DRAFT.getType());
  87 + ipqc.setTemplateId(templateId).setStatus(MesQcStatusEnum.DRAFT.getStatus());
88 88 ipqcMapper.insert(ipqc);
89 89  
90 90 // 3. 从模板指标自动生成检验行
... ... @@ -121,7 +121,7 @@ public class MesQcIpqcServiceImpl implements MesQcIpqcService {
121 121 // 2. 更新状态为已完成
122 122 MesQcIpqcDO updateObj = new MesQcIpqcDO();
123 123 updateObj.setId(id);
124   - updateObj.setStatus(MesOrderStatusEnum.FINISHED.getType());
  124 + updateObj.setStatus(MesQcStatusEnum.FINISHED.getStatus());
125 125 ipqcMapper.updateById(updateObj);
126 126  
127 127 // TODO @芋艿:IPQC 完成时的 PRO/WM 联动(报工反馈更新、产品产出单拆分),待 WM 模块迁移后对接
... ... @@ -158,7 +158,7 @@ public class MesQcIpqcServiceImpl implements MesQcIpqcService {
158 158 */
159 159 private MesQcIpqcDO validateIpqcStatusPrepare(Long id) {
160 160 MesQcIpqcDO ipqc = validateIpqcExists(id);
161   - if (ObjUtil.notEqual(ipqc.getStatus(), MesOrderStatusEnum.DRAFT.getType())) {
  161 + if (ObjUtil.notEqual(ipqc.getStatus(), MesQcStatusEnum.DRAFT.getStatus())) {
162 162 throw exception(QC_IPQC_NOT_PREPARE);
163 163 }
164 164 return ipqc;
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/iqc/MesQcIqcServiceImpl.java
... ... @@ -13,7 +13,7 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateItemD
13 13 import cn.iocoder.yudao.module.mes.dal.mysql.qc.iqc.MesQcIqcMapper;
14 14 import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants;
15 15 import cn.iocoder.yudao.module.mes.enums.qc.MesQcDefectLevelEnum;
16   -import cn.iocoder.yudao.module.mes.enums.MesOrderStatusEnum;
  16 +import cn.iocoder.yudao.module.mes.enums.qc.MesQcStatusEnum;
17 17 import cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum;
18 18 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
19 19 import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService;
... ... @@ -83,7 +83,7 @@ public class MesQcIqcServiceImpl implements MesQcIqcService {
83 83 MesQcIqcDO iqc = BeanUtils.toBean(createReqVO, MesQcIqcDO.class);
84 84 iqc.setTemplateId(templateId);
85 85 iqc.setCheckQuantity(createReqVO.getQualifiedQuantity().add(createReqVO.getUnqualifiedQuantity()));
86   - iqc.setStatus(MesOrderStatusEnum.DRAFT.getType());
  86 + iqc.setStatus(MesQcStatusEnum.DRAFT.getStatus());
87 87 iqcMapper.insert(iqc);
88 88  
89 89 // 3. 从模板指标自动生成检验行
... ... @@ -120,7 +120,7 @@ public class MesQcIqcServiceImpl implements MesQcIqcService {
120 120  
121 121 // 2. 更新状态为已完成
122 122 MesQcIqcDO updateObj = new MesQcIqcDO()
123   - .setId(id).setStatus(MesOrderStatusEnum.FINISHED.getType());
  123 + .setId(id).setStatus(MesQcStatusEnum.FINISHED.getStatus());
124 124 iqcMapper.updateById(updateObj);
125 125  
126 126 // 3. 回写来源单据
... ... @@ -181,7 +181,7 @@ public class MesQcIqcServiceImpl implements MesQcIqcService {
181 181 */
182 182 private MesQcIqcDO validateIqcStatusPrepare(Long id) {
183 183 MesQcIqcDO iqc = validateIqcExists(id);
184   - if (ObjUtil.notEqual(iqc.getStatus(), MesOrderStatusEnum.DRAFT.getType())) {
  184 + if (ObjUtil.notEqual(iqc.getStatus(), MesQcStatusEnum.DRAFT.getStatus())) {
185 185 throw exception(QC_IQC_NOT_PREPARE);
186 186 }
187 187 return iqc;
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImpl.java
... ... @@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.qc.oqc.MesQcOqcDO;
10 10 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateItemDO;
11 11 import cn.iocoder.yudao.module.mes.dal.mysql.qc.oqc.MesQcOqcMapper;
12 12 import cn.iocoder.yudao.module.mes.enums.qc.MesQcDefectLevelEnum;
13   -import cn.iocoder.yudao.module.mes.enums.qc.MesQcOqcStatusEnum;
  13 +import cn.iocoder.yudao.module.mes.enums.qc.MesQcStatusEnum;
14 14 import cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum;
15 15 import cn.iocoder.yudao.module.mes.service.md.client.MesMdClientService;
16 16 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
... ... @@ -75,7 +75,7 @@ public class MesQcOqcServiceImpl implements MesQcOqcService {
75 75 // 2. 插入主表
76 76 MesQcOqcDO oqc = BeanUtils.toBean(createReqVO, MesQcOqcDO.class);
77 77 oqc.setTemplateId(templateId);
78   - oqc.setStatus(MesQcOqcStatusEnum.PREPARE.getType());
  78 + oqc.setStatus(MesQcStatusEnum.DRAFT.getStatus());
79 79 oqcMapper.insert(oqc);
80 80  
81 81 // 3. 从模板指标自动生成检验行
... ... @@ -106,7 +106,7 @@ public class MesQcOqcServiceImpl implements MesQcOqcService {
106 106  
107 107 // 2. 更新状态为已完成
108 108 MesQcOqcDO updateObj = new MesQcOqcDO()
109   - .setId(id).setStatus(MesQcOqcStatusEnum.FINISHED.getType());
  109 + .setId(id).setStatus(MesQcStatusEnum.FINISHED.getStatus());
110 110 oqcMapper.updateById(updateObj);
111 111  
112 112 // TODO @芋艿:WM 模块迁移后,更新销售出库单行的检验结果
... ... @@ -140,7 +140,7 @@ public class MesQcOqcServiceImpl implements MesQcOqcService {
140 140 */
141 141 private MesQcOqcDO validateOqcStatusPrepare(Long id) {
142 142 MesQcOqcDO oqc = validateOqcExists(id);
143   - if (ObjUtil.notEqual(oqc.getStatus(), MesQcOqcStatusEnum.PREPARE.getType())) {
  143 + if (ObjUtil.notEqual(oqc.getStatus(), MesQcStatusEnum.DRAFT.getStatus())) {
144 144 throw exception(QC_OQC_NOT_PREPARE);
145 145 }
146 146 return oqc;
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcServiceImpl.java
... ... @@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.qc.defectrecord.MesQcDefectRec
9 9 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.rqc.MesQcRqcDO;
10 10 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateItemDO;
11 11 import cn.iocoder.yudao.module.mes.dal.mysql.qc.rqc.MesQcRqcMapper;
12   -import cn.iocoder.yudao.module.mes.enums.MesOrderStatusEnum;
  12 +import cn.iocoder.yudao.module.mes.enums.qc.MesQcStatusEnum;
13 13 import cn.iocoder.yudao.module.mes.enums.qc.MesQcDefectLevelEnum;
14 14 import cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum;
15 15 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
... ... @@ -71,7 +71,7 @@ public class MesQcRqcServiceImpl implements MesQcRqcService {
71 71 // 2. 插入主表
72 72 MesQcRqcDO rqc = BeanUtils.toBean(createReqVO, MesQcRqcDO.class)
73 73 .setTemplateId(templateId)
74   - .setStatus(MesOrderStatusEnum.DRAFT.getType());
  74 + .setStatus(MesQcStatusEnum.DRAFT.getStatus());
75 75 rqcMapper.insert(rqc);
76 76  
77 77 // 3. 从模板指标自动生成检验行
... ... @@ -108,7 +108,7 @@ public class MesQcRqcServiceImpl implements MesQcRqcService {
108 108 }
109 109  
110 110 // 2. 更新状态为已完成
111   - MesQcRqcDO updateObj = new MesQcRqcDO().setId(id).setStatus(MesOrderStatusEnum.FINISHED.getType());
  111 + MesQcRqcDO updateObj = new MesQcRqcDO().setId(id).setStatus(MesQcStatusEnum.FINISHED.getStatus());
112 112 rqcMapper.updateById(updateObj);
113 113  
114 114 // TODO @芋艿:WM 模块迁移后,更新来源退料/退货单行的质量状态
... ... @@ -145,7 +145,7 @@ public class MesQcRqcServiceImpl implements MesQcRqcService {
145 145 */
146 146 private MesQcRqcDO validateRqcStatusPrepare(Long id) {
147 147 MesQcRqcDO rqc = validateRqcExists(id);
148   - if (ObjUtil.notEqual(rqc.getStatus(), MesOrderStatusEnum.DRAFT.getType())) {
  148 + if (ObjUtil.notEqual(rqc.getStatus(), MesQcStatusEnum.DRAFT.getStatus())) {
149 149 throw exception(QC_RQC_NOT_PREPARE);
150 150 }
151 151 return rqc;
... ...