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,7 +77,11 @@ public class MesMdWorkshopController {
77 @PreAuthorize("@ss.hasPermission('mes:md-workshop:query')") 77 @PreAuthorize("@ss.hasPermission('mes:md-workshop:query')")
78 public CommonResult<MesMdWorkshopRespVO> getWorkshop(@RequestParam("id") Long id) { 78 public CommonResult<MesMdWorkshopRespVO> getWorkshop(@RequestParam("id") Long id) {
79 MesMdWorkshopDO workshop = workshopService.getWorkshop(id); 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 @GetMapping("/page") 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,4 +33,8 @@ public interface MesMdUnitMeasureMapper extends BaseMapperX&lt;MesMdUnitMeasureDO&gt;
33 return selectList(MesMdUnitMeasureDO::getStatus, status); 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,6 +24,7 @@ public interface ErrorCodeConstants {
24 ErrorCode MD_UNIT_MEASURE_NOT_EXISTS = new ErrorCode(1_040_101_000, "计量单位不存在"); 24 ErrorCode MD_UNIT_MEASURE_NOT_EXISTS = new ErrorCode(1_040_101_000, "计量单位不存在");
25 ErrorCode MD_UNIT_MEASURE_CODE_DUPLICATE = new ErrorCode(1_040_101_001, "计量单位编码已存在"); 25 ErrorCode MD_UNIT_MEASURE_CODE_DUPLICATE = new ErrorCode(1_040_101_001, "计量单位编码已存在");
26 ErrorCode MD_UNIT_MEASURE_HAS_ITEM = new ErrorCode(1_040_101_002, "该计量单位下存在物料,无法删除"); 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 // ========== MES 基础数据-物料(1-040-102-000) ========== 29 // ========== MES 基础数据-物料(1-040-102-000) ==========
29 ErrorCode MD_ITEM_NOT_EXISTS = new ErrorCode(1_040_102_000, "物料不存在"); 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,6 +17,7 @@ public enum MesMdAutoCodeRuleCodeEnum {
17 MD_VENDOR_CODE("MD_VENDOR_CODE", "供应商编码"), 17 MD_VENDOR_CODE("MD_VENDOR_CODE", "供应商编码"),
18 MD_CLIENT_CODE("MD_CLIENT_CODE", "客户编码"), 18 MD_CLIENT_CODE("MD_CLIENT_CODE", "客户编码"),
19 MD_WORKSTATION_CODE("MD_WORKSTATION_CODE", "工作站编码"), 19 MD_WORKSTATION_CODE("MD_WORKSTATION_CODE", "工作站编码"),
  20 + MD_WORKSHOP_CODE("MD_WORKSHOP_CODE", "车间编码"),
20 TM_TOOL_TYPE_CODE("TM_TOOL_TYPE_CODE", "工具类型编码"), 21 TM_TOOL_TYPE_CODE("TM_TOOL_TYPE_CODE", "工具类型编码"),
21 WM_ARRIVAL_NOTICE_CODE("WM_ARRIVAL_NOTICE_CODE", "到货通知单编码"), 22 WM_ARRIVAL_NOTICE_CODE("WM_ARRIVAL_NOTICE_CODE", "到货通知单编码"),
22 WM_ITEM_RECEIPT_CODE("WM_ITEM_RECEIPT_CODE", "采购入库单编码"), 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,10 +62,15 @@ public class MesMdUnitMeasureServiceImpl implements MesMdUnitMeasureService {
62 public void deleteUnitMeasure(Long id) { 62 public void deleteUnitMeasure(Long id) {
63 // 校验存在 63 // 校验存在
64 validateUnitMeasureExists(id); 64 validateUnitMeasureExists(id);
  65 + // 校验是否存在以此为主单位的辅单位
  66 + if (unitMeasureMapper.selectCountByPrimaryId(id) > 0) {
  67 + throw exception(MD_UNIT_MEASURE_HAS_SECONDARY);
  68 + }
65 // 校验是否被物料引用 69 // 校验是否被物料引用
66 if (itemService.getItemCountByUnitMeasureId(id) > 0) { 70 if (itemService.getItemCountByUnitMeasureId(id) > 0) {
67 throw exception(MD_UNIT_MEASURE_HAS_ITEM); 71 throw exception(MD_UNIT_MEASURE_HAS_ITEM);
68 } 72 }
  73 +
69 // 删除 74 // 删除
70 unitMeasureMapper.deleteById(id); 75 unitMeasureMapper.deleteById(id);
71 } 76 }