Commit abfe7830d81337118b2b77de23588ea598c73d81

Authored by YunaiV
1 parent cffa022d

✨ feat(mes): 增加车间编码和主单位校验逻辑

新增车间编码常量,优化获取车间信息的逻辑,确保在删除计量单位时校验是否存在辅单位,提升数据一致性和安全性。
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkshopController.java
... ... @@ -77,7 +77,11 @@ public class MesMdWorkshopController {
77 77 @PreAuthorize("@ss.hasPermission('mes:md-workshop:query')")
78 78 public CommonResult<MesMdWorkshopRespVO> getWorkshop(@RequestParam("id") Long id) {
79 79 MesMdWorkshopDO workshop = workshopService.getWorkshop(id);
80   - return success(BeanUtils.toBean(workshop, MesMdWorkshopRespVO.class));
  80 + if (workshop == null) {
  81 + return success(null);
  82 + }
  83 + List<MesMdWorkshopRespVO> voList = buildWorkshopRespVOList(Collections.singletonList(workshop));
  84 + return success(voList.get(0));
81 85 }
82 86  
83 87 @GetMapping("/page")
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/unitmeasure/MesMdUnitMeasureMapper.java
... ... @@ -33,4 +33,8 @@ public interface MesMdUnitMeasureMapper extends BaseMapperX&lt;MesMdUnitMeasureDO&gt;
33 33 return selectList(MesMdUnitMeasureDO::getStatus, status);
34 34 }
35 35  
  36 + default Long selectCountByPrimaryId(Long primaryId) {
  37 + return selectCount(MesMdUnitMeasureDO::getPrimaryId, primaryId);
  38 + }
  39 +
36 40 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
... ... @@ -24,6 +24,7 @@ public interface ErrorCodeConstants {
24 24 ErrorCode MD_UNIT_MEASURE_NOT_EXISTS = new ErrorCode(1_040_101_000, "计量单位不存在");
25 25 ErrorCode MD_UNIT_MEASURE_CODE_DUPLICATE = new ErrorCode(1_040_101_001, "计量单位编码已存在");
26 26 ErrorCode MD_UNIT_MEASURE_HAS_ITEM = new ErrorCode(1_040_101_002, "该计量单位下存在物料,无法删除");
  27 + ErrorCode MD_UNIT_MEASURE_HAS_SECONDARY = new ErrorCode(1_040_101_003, "该主单位下存在辅单位,无法删除");
27 28  
28 29 // ========== MES 基础数据-物料(1-040-102-000) ==========
29 30 ErrorCode MD_ITEM_NOT_EXISTS = new ErrorCode(1_040_102_000, "物料不存在");
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java
... ... @@ -17,6 +17,7 @@ public enum MesMdAutoCodeRuleCodeEnum {
17 17 MD_VENDOR_CODE("MD_VENDOR_CODE", "供应商编码"),
18 18 MD_CLIENT_CODE("MD_CLIENT_CODE", "客户编码"),
19 19 MD_WORKSTATION_CODE("MD_WORKSTATION_CODE", "工作站编码"),
  20 + MD_WORKSHOP_CODE("MD_WORKSHOP_CODE", "车间编码"),
20 21 TM_TOOL_TYPE_CODE("TM_TOOL_TYPE_CODE", "工具类型编码"),
21 22 WM_ARRIVAL_NOTICE_CODE("WM_ARRIVAL_NOTICE_CODE", "到货通知单编码"),
22 23 WM_ITEM_RECEIPT_CODE("WM_ITEM_RECEIPT_CODE", "采购入库单编码"),
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/unitmeasure/MesMdUnitMeasureServiceImpl.java
... ... @@ -62,10 +62,15 @@ public class MesMdUnitMeasureServiceImpl implements MesMdUnitMeasureService {
62 62 public void deleteUnitMeasure(Long id) {
63 63 // 校验存在
64 64 validateUnitMeasureExists(id);
  65 + // 校验是否存在以此为主单位的辅单位
  66 + if (unitMeasureMapper.selectCountByPrimaryId(id) > 0) {
  67 + throw exception(MD_UNIT_MEASURE_HAS_SECONDARY);
  68 + }
65 69 // 校验是否被物料引用
66 70 if (itemService.getItemCountByUnitMeasureId(id) > 0) {
67 71 throw exception(MD_UNIT_MEASURE_HAS_ITEM);
68 72 }
  73 +
69 74 // 删除
70 75 unitMeasureMapper.deleteById(id);
71 76 }
... ...