Commit a1a35aa530551cf9b5e5a508022a561c41120e01
1 parent
521c5380
✨ feat(qc): 新增计量单位引用统计功能
Showing
14 changed files
with
92 additions
and
0 deletions
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<MesQcIpqcLineDO> { | @@ -32,4 +32,8 @@ public interface MesQcIpqcLineMapper extends BaseMapperX<MesQcIpqcLineDO> { | ||
| 32 | .eq(MesQcIpqcLineDO::getIpqcId, ipqcId)); | 32 | .eq(MesQcIpqcLineDO::getIpqcId, ipqcId)); |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | + default Long selectCountByUnitMeasureId(Long unitMeasureId) { | ||
| 36 | + return selectCount(MesQcIpqcLineDO::getUnitMeasureId, unitMeasureId); | ||
| 37 | + } | ||
| 38 | + | ||
| 35 | } | 39 | } |
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<MesQcIqcLineDO> { | @@ -32,4 +32,8 @@ public interface MesQcIqcLineMapper extends BaseMapperX<MesQcIqcLineDO> { | ||
| 32 | .eq(MesQcIqcLineDO::getIqcId, iqcId)); | 32 | .eq(MesQcIqcLineDO::getIqcId, iqcId)); |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | + default Long selectCountByUnitMeasureId(Long unitMeasureId) { | ||
| 36 | + return selectCount(MesQcIqcLineDO::getUnitMeasureId, unitMeasureId); | ||
| 37 | + } | ||
| 38 | + | ||
| 35 | } | 39 | } |
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<MesQcOqcLineDO> { | @@ -32,4 +32,8 @@ public interface MesQcOqcLineMapper extends BaseMapperX<MesQcOqcLineDO> { | ||
| 32 | .eq(MesQcOqcLineDO::getOqcId, oqcId)); | 32 | .eq(MesQcOqcLineDO::getOqcId, oqcId)); |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | + default Long selectCountByUnitMeasureId(Long unitMeasureId) { | ||
| 36 | + return selectCount(MesQcOqcLineDO::getUnitMeasureId, unitMeasureId); | ||
| 37 | + } | ||
| 38 | + | ||
| 35 | } | 39 | } |
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<MesQcRqcLineDO> { | @@ -32,4 +32,8 @@ public interface MesQcRqcLineMapper extends BaseMapperX<MesQcRqcLineDO> { | ||
| 32 | .eq(MesQcRqcLineDO::getRqcId, rqcId)); | 32 | .eq(MesQcRqcLineDO::getRqcId, rqcId)); |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | + default Long selectCountByUnitMeasureId(Long unitMeasureId) { | ||
| 36 | + return selectCount(MesQcRqcLineDO::getUnitMeasureId, unitMeasureId); | ||
| 37 | + } | ||
| 38 | + | ||
| 35 | } | 39 | } |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
| @@ -27,6 +27,7 @@ public interface ErrorCodeConstants { | @@ -27,6 +27,7 @@ public interface ErrorCodeConstants { | ||
| 27 | ErrorCode MD_UNIT_MEASURE_HAS_SECONDARY = new ErrorCode(1_040_101_003, "该主单位下存在辅单位,无法删除"); | 27 | ErrorCode MD_UNIT_MEASURE_HAS_SECONDARY = new ErrorCode(1_040_101_003, "该主单位下存在辅单位,无法删除"); |
| 28 | ErrorCode MD_UNIT_MEASURE_HAS_TASK_ISSUE = new ErrorCode(1_040_101_004, "该计量单位已被生产投料引用,无法删除"); | 28 | ErrorCode MD_UNIT_MEASURE_HAS_TASK_ISSUE = new ErrorCode(1_040_101_004, "该计量单位已被生产投料引用,无法删除"); |
| 29 | ErrorCode MD_UNIT_MEASURE_HAS_QC_TEMPLATE_INDICATOR = new ErrorCode(1_040_101_005, "该计量单位已被质检方案指标项引用,无法删除"); | 29 | ErrorCode MD_UNIT_MEASURE_HAS_QC_TEMPLATE_INDICATOR = new ErrorCode(1_040_101_005, "该计量单位已被质检方案指标项引用,无法删除"); |
| 30 | + ErrorCode MD_UNIT_MEASURE_HAS_QC_LINE = new ErrorCode(1_040_101_006, "该计量单位已被质检单据行引用,无法删除"); | ||
| 30 | 31 | ||
| 31 | // ========== MES 基础数据-物料(1-040-102-000) ========== | 32 | // ========== MES 基础数据-物料(1-040-102-000) ========== |
| 32 | ErrorCode MD_ITEM_NOT_EXISTS = new ErrorCode(1_040_102_000, "物料不存在"); | 33 | ErrorCode MD_ITEM_NOT_EXISTS = new ErrorCode(1_040_102_000, "物料不存在"); |
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 | @@ -9,6 +9,10 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasur | ||
| 9 | import cn.iocoder.yudao.module.mes.dal.mysql.md.unitmeasure.MesMdUnitMeasureMapper; | 9 | import cn.iocoder.yudao.module.mes.dal.mysql.md.unitmeasure.MesMdUnitMeasureMapper; |
| 10 | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; | 10 | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| 11 | import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskIssueService; | 11 | import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskIssueService; |
| 12 | +import cn.iocoder.yudao.module.mes.service.qc.ipqc.MesQcIpqcLineService; | ||
| 13 | +import cn.iocoder.yudao.module.mes.service.qc.iqc.MesQcIqcLineService; | ||
| 14 | +import cn.iocoder.yudao.module.mes.service.qc.oqc.MesQcOqcLineService; | ||
| 15 | +import cn.iocoder.yudao.module.mes.service.qc.rqc.MesQcRqcLineService; | ||
| 12 | import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateIndicatorService; | 16 | import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateIndicatorService; |
| 13 | import org.springframework.context.annotation.Lazy; | 17 | import org.springframework.context.annotation.Lazy; |
| 14 | import jakarta.annotation.Resource; | 18 | import jakarta.annotation.Resource; |
| @@ -43,6 +47,18 @@ public class MesMdUnitMeasureServiceImpl implements MesMdUnitMeasureService { | @@ -43,6 +47,18 @@ public class MesMdUnitMeasureServiceImpl implements MesMdUnitMeasureService { | ||
| 43 | @Resource | 47 | @Resource |
| 44 | @Lazy | 48 | @Lazy |
| 45 | private MesQcTemplateIndicatorService templateIndicatorService; | 49 | private MesQcTemplateIndicatorService templateIndicatorService; |
| 50 | + @Resource | ||
| 51 | + @Lazy | ||
| 52 | + private MesQcIqcLineService iqcLineService; | ||
| 53 | + @Resource | ||
| 54 | + @Lazy | ||
| 55 | + private MesQcOqcLineService oqcLineService; | ||
| 56 | + @Resource | ||
| 57 | + @Lazy | ||
| 58 | + private MesQcIpqcLineService ipqcLineService; | ||
| 59 | + @Resource | ||
| 60 | + @Lazy | ||
| 61 | + private MesQcRqcLineService rqcLineService; | ||
| 46 | 62 | ||
| 47 | @Override | 63 | @Override |
| 48 | public Long createUnitMeasure(MesMdUnitMeasureSaveReqVO createReqVO) { | 64 | public Long createUnitMeasure(MesMdUnitMeasureSaveReqVO createReqVO) { |
| @@ -87,6 +103,13 @@ public class MesMdUnitMeasureServiceImpl implements MesMdUnitMeasureService { | @@ -87,6 +103,13 @@ public class MesMdUnitMeasureServiceImpl implements MesMdUnitMeasureService { | ||
| 87 | if (templateIndicatorService.getTemplateIndicatorCountByUnitMeasureId(id) > 0) { | 103 | if (templateIndicatorService.getTemplateIndicatorCountByUnitMeasureId(id) > 0) { |
| 88 | throw exception(MD_UNIT_MEASURE_HAS_QC_TEMPLATE_INDICATOR); | 104 | throw exception(MD_UNIT_MEASURE_HAS_QC_TEMPLATE_INDICATOR); |
| 89 | } | 105 | } |
| 106 | + // 校验是否被质检单据行引用(IQC/OQC/IPQC/RQC) | ||
| 107 | + if (iqcLineService.getIqcLineCountByUnitMeasureId(id) > 0 | ||
| 108 | + || oqcLineService.getOqcLineCountByUnitMeasureId(id) > 0 | ||
| 109 | + || ipqcLineService.getIpqcLineCountByUnitMeasureId(id) > 0 | ||
| 110 | + || rqcLineService.getRqcLineCountByUnitMeasureId(id) > 0) { | ||
| 111 | + throw exception(MD_UNIT_MEASURE_HAS_QC_LINE); | ||
| 112 | + } | ||
| 90 | 113 | ||
| 91 | // 删除 | 114 | // 删除 |
| 92 | unitMeasureMapper.deleteById(id); | 115 | unitMeasureMapper.deleteById(id); |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcLineService.java
| @@ -69,4 +69,12 @@ public interface MesQcIpqcLineService { | @@ -69,4 +69,12 @@ public interface MesQcIpqcLineService { | ||
| 69 | */ | 69 | */ |
| 70 | void deleteListByIpqcId(Long ipqcId); | 70 | void deleteListByIpqcId(Long ipqcId); |
| 71 | 71 | ||
| 72 | + /** | ||
| 73 | + * 统计使用指定计量单位的过程检验行数量 | ||
| 74 | + * | ||
| 75 | + * @param unitMeasureId 计量单位编号 | ||
| 76 | + * @return 引用数量 | ||
| 77 | + */ | ||
| 78 | + Long getIpqcLineCountByUnitMeasureId(Long unitMeasureId); | ||
| 79 | + | ||
| 72 | } | 80 | } |
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 { | @@ -127,4 +127,9 @@ public class MesQcIpqcLineServiceImpl implements MesQcIpqcLineService { | ||
| 127 | ipqcLineMapper.deleteByIpqcId(ipqcId); | 127 | ipqcLineMapper.deleteByIpqcId(ipqcId); |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | + @Override | ||
| 131 | + public Long getIpqcLineCountByUnitMeasureId(Long unitMeasureId) { | ||
| 132 | + return ipqcLineMapper.selectCountByUnitMeasureId(unitMeasureId); | ||
| 133 | + } | ||
| 134 | + | ||
| 130 | } | 135 | } |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/iqc/MesQcIqcLineService.java
| @@ -70,4 +70,12 @@ public interface MesQcIqcLineService { | @@ -70,4 +70,12 @@ public interface MesQcIqcLineService { | ||
| 70 | */ | 70 | */ |
| 71 | void deleteListByIqcId(Long iqcId); | 71 | void deleteListByIqcId(Long iqcId); |
| 72 | 72 | ||
| 73 | + /** | ||
| 74 | + * 统计使用指定计量单位的来料检验行数量 | ||
| 75 | + * | ||
| 76 | + * @param unitMeasureId 计量单位编号 | ||
| 77 | + * @return 引用数量 | ||
| 78 | + */ | ||
| 79 | + Long getIqcLineCountByUnitMeasureId(Long unitMeasureId); | ||
| 80 | + | ||
| 73 | } | 81 | } |
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 { | @@ -127,4 +127,9 @@ public class MesQcIqcLineServiceImpl implements MesQcIqcLineService { | ||
| 127 | iqcLineMapper.deleteByIqcId(iqcId); | 127 | iqcLineMapper.deleteByIqcId(iqcId); |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | + @Override | ||
| 131 | + public Long getIqcLineCountByUnitMeasureId(Long unitMeasureId) { | ||
| 132 | + return iqcLineMapper.selectCountByUnitMeasureId(unitMeasureId); | ||
| 133 | + } | ||
| 134 | + | ||
| 130 | } | 135 | } |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcLineService.java
| @@ -69,4 +69,12 @@ public interface MesQcOqcLineService { | @@ -69,4 +69,12 @@ public interface MesQcOqcLineService { | ||
| 69 | */ | 69 | */ |
| 70 | void recalculateLineDefectStats(Long oqcId, List<MesQcDefectRecordDO> records); | 70 | void recalculateLineDefectStats(Long oqcId, List<MesQcDefectRecordDO> records); |
| 71 | 71 | ||
| 72 | + /** | ||
| 73 | + * 统计使用指定计量单位的出货检验行数量 | ||
| 74 | + * | ||
| 75 | + * @param unitMeasureId 计量单位编号 | ||
| 76 | + * @return 引用数量 | ||
| 77 | + */ | ||
| 78 | + Long getOqcLineCountByUnitMeasureId(Long unitMeasureId); | ||
| 79 | + | ||
| 72 | } | 80 | } |
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 { | @@ -125,4 +125,9 @@ public class MesQcOqcLineServiceImpl implements MesQcOqcLineService { | ||
| 125 | oqcLineMapper.deleteByOqcId(oqcId); | 125 | oqcLineMapper.deleteByOqcId(oqcId); |
| 126 | } | 126 | } |
| 127 | 127 | ||
| 128 | + @Override | ||
| 129 | + public Long getOqcLineCountByUnitMeasureId(Long unitMeasureId) { | ||
| 130 | + return oqcLineMapper.selectCountByUnitMeasureId(unitMeasureId); | ||
| 131 | + } | ||
| 132 | + | ||
| 128 | } | 133 | } |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcLineService.java
| @@ -69,4 +69,12 @@ public interface MesQcRqcLineService { | @@ -69,4 +69,12 @@ public interface MesQcRqcLineService { | ||
| 69 | */ | 69 | */ |
| 70 | void deleteByRqcId(Long rqcId); | 70 | void deleteByRqcId(Long rqcId); |
| 71 | 71 | ||
| 72 | + /** | ||
| 73 | + * 统计使用指定计量单位的退货检验行数量 | ||
| 74 | + * | ||
| 75 | + * @param unitMeasureId 计量单位编号 | ||
| 76 | + * @return 引用数量 | ||
| 77 | + */ | ||
| 78 | + Long getRqcLineCountByUnitMeasureId(Long unitMeasureId); | ||
| 79 | + | ||
| 72 | } | 80 | } |
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 { | @@ -125,4 +125,9 @@ public class MesQcRqcLineServiceImpl implements MesQcRqcLineService { | ||
| 125 | rqcLineMapper.deleteByRqcId(rqcId); | 125 | rqcLineMapper.deleteByRqcId(rqcId); |
| 126 | } | 126 | } |
| 127 | 127 | ||
| 128 | + @Override | ||
| 129 | + public Long getRqcLineCountByUnitMeasureId(Long unitMeasureId) { | ||
| 130 | + return rqcLineMapper.selectCountByUnitMeasureId(unitMeasureId); | ||
| 131 | + } | ||
| 132 | + | ||
| 128 | } | 133 | } |