diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/task/MesProTaskIssueMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/task/MesProTaskIssueMapper.java index bcedd81..9c62c44 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/task/MesProTaskIssueMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/task/MesProTaskIssueMapper.java @@ -27,6 +27,10 @@ public interface MesProTaskIssueMapper extends BaseMapperX { .orderByDesc(MesProTaskIssueDO::getId)); } + default Long selectCountByUnitMeasureId(Long unitMeasureId) { + return selectCount(MesProTaskIssueDO::getUnitMeasureId, unitMeasureId); + } + default List selectListByTaskId(Long taskId) { return selectList(new LambdaQueryWrapperX() .eq(MesProTaskIssueDO::getTaskId, taskId) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/template/MesQcTemplateIndicatorMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/template/MesQcTemplateIndicatorMapper.java index 94b2ae2..1e43133 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/template/MesQcTemplateIndicatorMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/template/MesQcTemplateIndicatorMapper.java @@ -27,6 +27,10 @@ public interface MesQcTemplateIndicatorMapper extends BaseMapperX() .eq(MesQcTemplateIndicatorDO::getTemplateId, templateId)); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/batch/MesWmBatchMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/batch/MesWmBatchMapper.java index 195858c..db221d8 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/batch/MesWmBatchMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/batch/MesWmBatchMapper.java @@ -24,6 +24,10 @@ public interface MesWmBatchMapper extends BaseMapperX { return selectOne(MesWmBatchDO:: getCode, code); } + default Long selectCountByToolId(Long toolId) { + return selectCount(MesWmBatchDO::getToolId, toolId); + } + default PageResult selectPage(MesWmBatchPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(MesWmBatchDO::getCode, reqVO.getCode()) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java index b5688be..5759331 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java @@ -25,6 +25,8 @@ public interface ErrorCodeConstants { ErrorCode MD_UNIT_MEASURE_CODE_DUPLICATE = new ErrorCode(1_040_101_001, "计量单位编码已存在"); ErrorCode MD_UNIT_MEASURE_HAS_ITEM = new ErrorCode(1_040_101_002, "该计量单位下存在物料,无法删除"); ErrorCode MD_UNIT_MEASURE_HAS_SECONDARY = new ErrorCode(1_040_101_003, "该主单位下存在辅单位,无法删除"); + ErrorCode MD_UNIT_MEASURE_HAS_TASK_ISSUE = new ErrorCode(1_040_101_004, "该计量单位已被生产投料引用,无法删除"); + ErrorCode MD_UNIT_MEASURE_HAS_QC_TEMPLATE_INDICATOR = new ErrorCode(1_040_101_005, "该计量单位已被质检方案指标项引用,无法删除"); // ========== MES 基础数据-物料(1-040-102-000) ========== ErrorCode MD_ITEM_NOT_EXISTS = new ErrorCode(1_040_102_000, "物料不存在"); @@ -223,6 +225,7 @@ public interface ErrorCodeConstants { // ========== MES 工具管理-工具台账(1-040-401-000) ========== ErrorCode TM_TOOL_NOT_EXISTS = new ErrorCode(1_040_401_000, "工具不存在"); ErrorCode TM_TOOL_CODE_DUPLICATE = new ErrorCode(1_040_401_001, "工具编码已存在"); + ErrorCode TM_TOOL_HAS_BATCH = new ErrorCode(1_040_401_002, "该工具已被批次引用,无法删除"); // ========== MES 生产管理-工序(1-040-500-000) ========== ErrorCode PRO_PROCESS_NOT_EXISTS = new ErrorCode(1_040_500_000, "工序不存在"); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/unitmeasure/MesMdUnitMeasureServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/unitmeasure/MesMdUnitMeasureServiceImpl.java index bdc996b..72360b8 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/unitmeasure/MesMdUnitMeasureServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/unitmeasure/MesMdUnitMeasureServiceImpl.java @@ -8,6 +8,9 @@ import cn.iocoder.yudao.module.mes.controller.admin.md.unitmeasure.vo.MesMdUnitM import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; import cn.iocoder.yudao.module.mes.dal.mysql.md.unitmeasure.MesMdUnitMeasureMapper; import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; +import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskIssueService; +import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateIndicatorService; +import org.springframework.context.annotation.Lazy; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -34,6 +37,12 @@ public class MesMdUnitMeasureServiceImpl implements MesMdUnitMeasureService { @Resource private MesMdItemService itemService; + @Resource + @Lazy + private MesProTaskIssueService taskIssueService; + @Resource + @Lazy + private MesQcTemplateIndicatorService templateIndicatorService; @Override public Long createUnitMeasure(MesMdUnitMeasureSaveReqVO createReqVO) { @@ -70,6 +79,14 @@ public class MesMdUnitMeasureServiceImpl implements MesMdUnitMeasureService { if (itemService.getItemCountByUnitMeasureId(id) > 0) { throw exception(MD_UNIT_MEASURE_HAS_ITEM); } + // 校验是否被生产任务投料引用 + if (taskIssueService.getTaskIssueCountByUnitMeasureId(id) > 0) { + throw exception(MD_UNIT_MEASURE_HAS_TASK_ISSUE); + } + // 校验是否被质检方案指标项引用 + if (templateIndicatorService.getTemplateIndicatorCountByUnitMeasureId(id) > 0) { + throw exception(MD_UNIT_MEASURE_HAS_QC_TEMPLATE_INDICATOR); + } // 删除 unitMeasureMapper.deleteById(id); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskIssueService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskIssueService.java index 6883568..2c52261 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskIssueService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskIssueService.java @@ -61,4 +61,12 @@ public interface MesProTaskIssueService { */ List getTaskIssueListByTaskId(Long taskId); + /** + * 获取指定计量单位的投料记录数量 + * + * @param unitMeasureId 计量单位编号 + * @return 投料记录数量 + */ + Long getTaskIssueCountByUnitMeasureId(Long unitMeasureId); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskIssueServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskIssueServiceImpl.java index cfe4883..5104a79 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskIssueServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskIssueServiceImpl.java @@ -83,6 +83,11 @@ public class MesProTaskIssueServiceImpl implements MesProTaskIssueService { return taskIssueMapper.selectListByTaskId(taskId); } + @Override + public Long getTaskIssueCountByUnitMeasureId(Long unitMeasureId) { + return taskIssueMapper.selectCountByUnitMeasureId(unitMeasureId); + } + private void validateTaskIssueExists(Long id) { if (taskIssueMapper.selectById(id) == null) { throw exception(PRO_TASK_ISSUE_NOT_EXISTS); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateIndicatorService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateIndicatorService.java index f8d0e64..1d7f910 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateIndicatorService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateIndicatorService.java @@ -68,4 +68,12 @@ public interface MesQcTemplateIndicatorService { */ List getTemplateIndicatorListByTemplateId(Long templateId); + /** + * 获取指定计量单位的检测指标项数量 + * + * @param unitMeasureId 计量单位编号 + * @return 检测指标项数量 + */ + Long getTemplateIndicatorCountByUnitMeasureId(Long unitMeasureId); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateIndicatorServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateIndicatorServiceImpl.java index 84e1120..667226f 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateIndicatorServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateIndicatorServiceImpl.java @@ -87,4 +87,9 @@ public class MesQcTemplateIndicatorServiceImpl implements MesQcTemplateIndicator return templateIndicatorMapper.selectListByTemplateId(templateId); } + @Override + public Long getTemplateIndicatorCountByUnitMeasureId(Long unitMeasureId) { + return templateIndicatorMapper.selectCountByUnitMeasureId(unitMeasureId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchService.java index 1211d05..258bb9c 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchService.java @@ -88,4 +88,12 @@ public interface MesWmBatchService { */ MesWmBatchDO validateBatchExists(Long batchId, Long itemId, Long clientId, Long vendorId); + /** + * 获取指定工具的批次数量 + * + * @param toolId 工具编号 + * @return 批次数量 + */ + Long getBatchCountByToolId(Long toolId); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java index c84f5a6..35d0a18 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java @@ -266,4 +266,9 @@ public class MesWmBatchServiceImpl implements MesWmBatchService { return batch; } + @Override + public Long getBatchCountByToolId(Long toolId) { + return batchMapper.selectCountByToolId(toolId); + } + }