Commit bcad0a896f93c0178d76a75112bb4fd5370ff970

Authored by YunaiV
1 parent 6c2da289

feat(mes): 移除不必要的字段,优化流转卡和工序记录的校验逻辑,添加工序记录列表组件

yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/card/vo/MesProCardSaveReqVO.java
... ... @@ -29,12 +29,6 @@ public class MesProCardSaveReqVO {
29 29 @NotNull(message = "产品物料不能为空")
30 30 private Long itemId;
31 31  
32   - @Schema(description = "规格型号", example = "100x200mm")
33   - private String specification;
34   -
35   - @Schema(description = "单位编号", example = "300")
36   - private Long unitMeasureId;
37   -
38 32 @Schema(description = "流转数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
39 33 @NotNull(message = "流转数量不能为空")
40 34 private BigDecimal transferedQuantity;
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/pro/card/MesProCardDO.java
... ... @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.pro.card;
2 2  
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   -import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
6 5 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
7 6 import com.baomidou.mybatisplus.annotation.KeySequence;
8 7 import com.baomidou.mybatisplus.annotation.TableId;
... ... @@ -52,16 +51,6 @@ public class MesProCardDO extends BaseDO {
52 51 */
53 52 private Long itemId;
54 53 /**
55   - * 规格型号
56   - */
57   - private String specification;
58   - /**
59   - * 单位编号
60   - *
61   - * 关联 {@link MesMdUnitMeasureDO#getId()}
62   - */
63   - private Long unitMeasureId;
64   - /**
65 54 * 条码地址
66 55 *
67 56 * TODO @芋艿:条码生成功能,需等条码模块(wm_barcode)迁移后再对接
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/cal/team/MesCalTeamShiftService.java
... ... @@ -27,7 +27,6 @@ public interface MesCalTeamShiftService {
27 27 */
28 28 List<MesCalTeamShiftDO> getTeamShiftList(MesCalTeamShiftListReqVO reqVO);
29 29  
30   - // TODO @AI:评审下,为什么不调用!
31 30 /**
32 31 * 根据排班计划编号删除所有排班记录
33 32 *
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/checkrecord/MesDvCheckRecordLineServiceImpl.java
... ... @@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.mes.controller.admin.dv.checkrecord.vo.line.MesDv
7 7 import cn.iocoder.yudao.module.mes.dal.dataobject.dv.checkrecord.MesDvCheckRecordLineDO;
8 8 import cn.iocoder.yudao.module.mes.dal.mysql.dv.checkrecord.MesDvCheckRecordLineMapper;
9 9 import jakarta.annotation.Resource;
  10 +import org.springframework.context.annotation.Lazy;
10 11 import org.springframework.stereotype.Service;
11 12 import org.springframework.validation.annotation.Validated;
12 13  
... ... @@ -27,9 +28,16 @@ public class MesDvCheckRecordLineServiceImpl implements MesDvCheckRecordLineServ
27 28 @Resource
28 29 private MesDvCheckRecordLineMapper checkRecordLineMapper;
29 30  
  31 + @Resource
  32 + @Lazy
  33 + private MesDvCheckRecordService checkRecordService;
  34 +
30 35 @Override
31 36 public Long createCheckRecordLine(MesDvCheckRecordLineSaveReqVO createReqVO) {
32   - // TODO @AI:校验下存在
  37 + // 1. 校验点检记录存在
  38 + checkRecordService.validateCheckRecordExists(createReqVO.getRecordId());
  39 +
  40 + // 2. 插入
33 41 MesDvCheckRecordLineDO line = BeanUtils.toBean(createReqVO, MesDvCheckRecordLineDO.class);
34 42 checkRecordLineMapper.insert(line);
35 43 return line.getId();
... ... @@ -37,11 +45,12 @@ public class MesDvCheckRecordLineServiceImpl implements MesDvCheckRecordLineServ
37 45  
38 46 @Override
39 47 public void updateCheckRecordLine(MesDvCheckRecordLineSaveReqVO updateReqVO) {
40   - // TODO @AI:校验下存在
41   - // 校验存在
  48 + // 1.1 校验行存在
42 49 validateCheckRecordLineExists(updateReqVO.getId());
  50 + // 1.2 校验点检记录存在
  51 + checkRecordService.validateCheckRecordExists(updateReqVO.getRecordId());
43 52  
44   - // 更新
  53 + // 2. 更新
45 54 MesDvCheckRecordLineDO updateObj = BeanUtils.toBean(updateReqVO, MesDvCheckRecordLineDO.class);
46 55 checkRecordLineMapper.updateById(updateObj);
47 56 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/andon/MesProAndonConfigServiceImpl.java
... ... @@ -6,10 +6,13 @@ import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.config.MesProAn
6 6 import cn.iocoder.yudao.module.mes.controller.admin.pro.andon.vo.config.MesProAndonConfigSaveReqVO;
7 7 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.andon.MesProAndonConfigDO;
8 8 import cn.iocoder.yudao.module.mes.dal.mysql.pro.andon.MesProAndonConfigMapper;
  9 +import cn.iocoder.yudao.module.system.api.permission.RoleApi;
  10 +import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
9 11 import jakarta.annotation.Resource;
10 12 import org.springframework.stereotype.Service;
11 13 import org.springframework.validation.annotation.Validated;
12 14  
  15 +import java.util.Collections;
13 16 import java.util.List;
14 17  
15 18 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
... ... @@ -27,11 +30,17 @@ public class MesProAndonConfigServiceImpl implements MesProAndonConfigService {
27 30 @Resource
28 31 private MesProAndonConfigMapper andonConfigMapper;
29 32  
  33 + @Resource
  34 + private AdminUserApi adminUserApi;
  35 + @Resource
  36 + private RoleApi roleApi;
  37 +
30 38 @Override
31 39 public Long createAndonConfig(MesProAndonConfigSaveReqVO createReqVO) {
32   - // TODO @AI:userid、roleid 存在;
  40 + // 1. 校验处置人/角色存在
  41 + validateHandlerUserAndRole(createReqVO);
33 42  
34   - // 插入
  43 + // 2. 插入
35 44 MesProAndonConfigDO config = BeanUtils.toBean(createReqVO, MesProAndonConfigDO.class);
36 45 andonConfigMapper.insert(config);
37 46 return config.getId();
... ... @@ -39,11 +48,12 @@ public class MesProAndonConfigServiceImpl implements MesProAndonConfigService {
39 48  
40 49 @Override
41 50 public void updateAndonConfig(MesProAndonConfigSaveReqVO updateReqVO) {
42   - // 校验存在
  51 + // 1.1 校验存在
43 52 validateAndonConfigExists(updateReqVO.getId());
44   - // TODO @AI:userid、roleid 存在;
  53 + // 1.2 校验处置人/角色存在
  54 + validateHandlerUserAndRole(updateReqVO);
45 55  
46   - // 更新
  56 + // 2. 更新
47 57 MesProAndonConfigDO updateObj = BeanUtils.toBean(updateReqVO, MesProAndonConfigDO.class);
48 58 andonConfigMapper.updateById(updateObj);
49 59 }
... ... @@ -81,4 +91,15 @@ public class MesProAndonConfigServiceImpl implements MesProAndonConfigService {
81 91 return andonConfigMapper.selectList();
82 92 }
83 93  
  94 + // ==================== 校验方法 ====================
  95 +
  96 + private void validateHandlerUserAndRole(MesProAndonConfigSaveReqVO reqVO) {
  97 + if (reqVO.getHandlerUserId() != null) {
  98 + adminUserApi.validateUser(reqVO.getHandlerUserId());
  99 + }
  100 + if (reqVO.getHandlerRoleId() != null) {
  101 + roleApi.validRoleList(Collections.singleton(reqVO.getHandlerRoleId()));
  102 + }
  103 + }
  104 +
84 105 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardProcessServiceImpl.java
... ... @@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.mes.controller.admin.pro.card.vo.process.MesProCa
7 7 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.card.MesProCardProcessDO;
8 8 import cn.iocoder.yudao.module.mes.dal.mysql.pro.card.MesProCardProcessMapper;
9 9 import jakarta.annotation.Resource;
  10 +import org.springframework.context.annotation.Lazy;
10 11 import org.springframework.stereotype.Service;
11 12 import org.springframework.validation.annotation.Validated;
12 13  
... ... @@ -25,9 +26,16 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService {
25 26 @Resource
26 27 private MesProCardProcessMapper cardProcessMapper;
27 28  
  29 + @Resource
  30 + @Lazy
  31 + private MesProCardService cardService;
  32 +
28 33 @Override
29 34 public Long createCardProcess(MesProCardProcessSaveReqVO createReqVO) {
30   - // TODO @AI:card 存在,通过 cardService 的 validateCardExists() 方法校验
  35 + // 1. 校验流转卡存在
  36 + cardService.validateCardExists(createReqVO.getCardId());
  37 +
  38 + // 2. 插入
31 39 MesProCardProcessDO cardProcess = BeanUtils.toBean(createReqVO, MesProCardProcessDO.class);
32 40 cardProcessMapper.insert(cardProcess);
33 41 return cardProcess.getId();
... ... @@ -35,9 +43,10 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService {
35 43  
36 44 @Override
37 45 public void updateCardProcess(MesProCardProcessSaveReqVO updateReqVO) {
38   - // 1. 校验存在
  46 + // 1.1 校验存在
39 47 validateCardProcessExists(updateReqVO.getId());
40   - // TODO @AI:card 存在,通过 cardService 的 validateCardExists() 方法校验
  48 + // 1.2 校验流转卡存在
  49 + cardService.validateCardExists(updateReqVO.getCardId());
41 50  
42 51 // 2. 更新
43 52 MesProCardProcessDO updateObj = BeanUtils.toBean(updateReqVO, MesProCardProcessDO.class);
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardService.java
... ... @@ -36,6 +36,13 @@ public interface MesProCardService {
36 36 void deleteCard(Long id);
37 37  
38 38 /**
  39 + * 校验生产流转卡存在
  40 + *
  41 + * @param id 编号
  42 + */
  43 + void validateCardExists(Long id);
  44 +
  45 + /**
39 46 * 获得生产流转卡
40 47 *
41 48 * @param id 编号
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java
... ... @@ -84,7 +84,8 @@ public class MesProCardServiceImpl implements MesProCardService {
84 84  
85 85 // ==================== 校验方法 ====================
86 86  
87   - private void validateCardExists(Long id) {
  87 + @Override
  88 + public void validateCardExists(Long id) {
88 89 if (cardMapper.selectById(id) == null) {
89 90 throw exception(PRO_CARD_NOT_EXISTS);
90 91 }
... ...