Commit abfe7830d81337118b2b77de23588ea598c73d81
1 parent
cffa022d
✨ feat(mes): 增加车间编码和主单位校验逻辑
新增车间编码常量,优化获取车间信息的逻辑,确保在删除计量单位时校验是否存在辅单位,提升数据一致性和安全性。
Showing
5 changed files
with
16 additions
and
1 deletions
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<MesMdUnitMeasureDO> | @@ -33,4 +33,8 @@ public interface MesMdUnitMeasureMapper extends BaseMapperX<MesMdUnitMeasureDO> | ||
| 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 | } |