diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/ipqc/MesQcIpqcLineMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/ipqc/MesQcIpqcLineMapper.java index 4dad4b9..37b4a09 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/ipqc/MesQcIpqcLineMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/ipqc/MesQcIpqcLineMapper.java @@ -32,4 +32,8 @@ public interface MesQcIpqcLineMapper extends BaseMapperX { .eq(MesQcIpqcLineDO::getIpqcId, ipqcId)); } + default Long selectCountByUnitMeasureId(Long unitMeasureId) { + return selectCount(MesQcIpqcLineDO::getUnitMeasureId, unitMeasureId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/iqc/MesQcIqcLineMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/iqc/MesQcIqcLineMapper.java index d238845..761b54d 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/iqc/MesQcIqcLineMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/iqc/MesQcIqcLineMapper.java @@ -32,4 +32,8 @@ public interface MesQcIqcLineMapper extends BaseMapperX { .eq(MesQcIqcLineDO::getIqcId, iqcId)); } + default Long selectCountByUnitMeasureId(Long unitMeasureId) { + return selectCount(MesQcIqcLineDO::getUnitMeasureId, unitMeasureId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcLineMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcLineMapper.java index 34031d0..a3907c7 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcLineMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcLineMapper.java @@ -32,4 +32,8 @@ public interface MesQcOqcLineMapper extends BaseMapperX { .eq(MesQcOqcLineDO::getOqcId, oqcId)); } + default Long selectCountByUnitMeasureId(Long unitMeasureId) { + return selectCount(MesQcOqcLineDO::getUnitMeasureId, unitMeasureId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/rqc/MesQcRqcLineMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/rqc/MesQcRqcLineMapper.java index 1fc134d..e3d48d8 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/rqc/MesQcRqcLineMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/rqc/MesQcRqcLineMapper.java @@ -32,4 +32,8 @@ public interface MesQcRqcLineMapper extends BaseMapperX { .eq(MesQcRqcLineDO::getRqcId, rqcId)); } + default Long selectCountByUnitMeasureId(Long unitMeasureId) { + return selectCount(MesQcRqcLineDO::getUnitMeasureId, unitMeasureId); + } + } 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 5759331..e61dd25 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 @@ -27,6 +27,7 @@ public interface ErrorCodeConstants { 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, "该计量单位已被质检方案指标项引用,无法删除"); + ErrorCode MD_UNIT_MEASURE_HAS_QC_LINE = new ErrorCode(1_040_101_006, "该计量单位已被质检单据行引用,无法删除"); // ========== MES 基础数据-物料(1-040-102-000) ========== ErrorCode MD_ITEM_NOT_EXISTS = new ErrorCode(1_040_102_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 72360b8..cdb6613 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 @@ -9,6 +9,10 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasur 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.ipqc.MesQcIpqcLineService; +import cn.iocoder.yudao.module.mes.service.qc.iqc.MesQcIqcLineService; +import cn.iocoder.yudao.module.mes.service.qc.oqc.MesQcOqcLineService; +import cn.iocoder.yudao.module.mes.service.qc.rqc.MesQcRqcLineService; import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateIndicatorService; import org.springframework.context.annotation.Lazy; import jakarta.annotation.Resource; @@ -43,6 +47,18 @@ public class MesMdUnitMeasureServiceImpl implements MesMdUnitMeasureService { @Resource @Lazy private MesQcTemplateIndicatorService templateIndicatorService; + @Resource + @Lazy + private MesQcIqcLineService iqcLineService; + @Resource + @Lazy + private MesQcOqcLineService oqcLineService; + @Resource + @Lazy + private MesQcIpqcLineService ipqcLineService; + @Resource + @Lazy + private MesQcRqcLineService rqcLineService; @Override public Long createUnitMeasure(MesMdUnitMeasureSaveReqVO createReqVO) { @@ -87,6 +103,13 @@ public class MesMdUnitMeasureServiceImpl implements MesMdUnitMeasureService { if (templateIndicatorService.getTemplateIndicatorCountByUnitMeasureId(id) > 0) { throw exception(MD_UNIT_MEASURE_HAS_QC_TEMPLATE_INDICATOR); } + // 校验是否被质检单据行引用(IQC/OQC/IPQC/RQC) + if (iqcLineService.getIqcLineCountByUnitMeasureId(id) > 0 + || oqcLineService.getOqcLineCountByUnitMeasureId(id) > 0 + || ipqcLineService.getIpqcLineCountByUnitMeasureId(id) > 0 + || rqcLineService.getRqcLineCountByUnitMeasureId(id) > 0) { + throw exception(MD_UNIT_MEASURE_HAS_QC_LINE); + } // 删除 unitMeasureMapper.deleteById(id); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcLineService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcLineService.java index df2d09e..677c098 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcLineService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcLineService.java @@ -69,4 +69,12 @@ public interface MesQcIpqcLineService { */ void deleteListByIpqcId(Long ipqcId); + /** + * 统计使用指定计量单位的过程检验行数量 + * + * @param unitMeasureId 计量单位编号 + * @return 引用数量 + */ + Long getIpqcLineCountByUnitMeasureId(Long unitMeasureId); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcLineServiceImpl.java index 31be93c..03bd3eb 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcLineServiceImpl.java @@ -127,4 +127,9 @@ public class MesQcIpqcLineServiceImpl implements MesQcIpqcLineService { ipqcLineMapper.deleteByIpqcId(ipqcId); } + @Override + public Long getIpqcLineCountByUnitMeasureId(Long unitMeasureId) { + return ipqcLineMapper.selectCountByUnitMeasureId(unitMeasureId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/iqc/MesQcIqcLineService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/iqc/MesQcIqcLineService.java index 544d46b..023ad80 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/iqc/MesQcIqcLineService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/iqc/MesQcIqcLineService.java @@ -70,4 +70,12 @@ public interface MesQcIqcLineService { */ void deleteListByIqcId(Long iqcId); + /** + * 统计使用指定计量单位的来料检验行数量 + * + * @param unitMeasureId 计量单位编号 + * @return 引用数量 + */ + Long getIqcLineCountByUnitMeasureId(Long unitMeasureId); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/iqc/MesQcIqcLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/iqc/MesQcIqcLineServiceImpl.java index c44937f..f5420e1 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/iqc/MesQcIqcLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/iqc/MesQcIqcLineServiceImpl.java @@ -127,4 +127,9 @@ public class MesQcIqcLineServiceImpl implements MesQcIqcLineService { iqcLineMapper.deleteByIqcId(iqcId); } + @Override + public Long getIqcLineCountByUnitMeasureId(Long unitMeasureId) { + return iqcLineMapper.selectCountByUnitMeasureId(unitMeasureId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcLineService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcLineService.java index 1f8fbb2..26de524 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcLineService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcLineService.java @@ -69,4 +69,12 @@ public interface MesQcOqcLineService { */ void recalculateLineDefectStats(Long oqcId, List records); + /** + * 统计使用指定计量单位的出货检验行数量 + * + * @param unitMeasureId 计量单位编号 + * @return 引用数量 + */ + Long getOqcLineCountByUnitMeasureId(Long unitMeasureId); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcLineServiceImpl.java index d1059fa..cc4135b 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcLineServiceImpl.java @@ -125,4 +125,9 @@ public class MesQcOqcLineServiceImpl implements MesQcOqcLineService { oqcLineMapper.deleteByOqcId(oqcId); } + @Override + public Long getOqcLineCountByUnitMeasureId(Long unitMeasureId) { + return oqcLineMapper.selectCountByUnitMeasureId(unitMeasureId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcLineService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcLineService.java index 2992335..64c504e 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcLineService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcLineService.java @@ -69,4 +69,12 @@ public interface MesQcRqcLineService { */ void deleteByRqcId(Long rqcId); + /** + * 统计使用指定计量单位的退货检验行数量 + * + * @param unitMeasureId 计量单位编号 + * @return 引用数量 + */ + Long getRqcLineCountByUnitMeasureId(Long unitMeasureId); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcLineServiceImpl.java index 1e9dffa..a14001d 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcLineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcLineServiceImpl.java @@ -125,4 +125,9 @@ public class MesQcRqcLineServiceImpl implements MesQcRqcLineService { rqcLineMapper.deleteByRqcId(rqcId); } + @Override + public Long getRqcLineCountByUnitMeasureId(Long unitMeasureId) { + return rqcLineMapper.selectCountByUnitMeasureId(unitMeasureId); + } + }