Commit 8843b7828a59cb048af2733fa04eb2c617ebb74e

Authored by YunaiV
1 parent 2676319a

✨ feat(qc): 重构质检方案服务,拆分为指标项和产品关联服务

将质检方案的服务逻辑拆分为两个独立的服务:MesQcTemplateIndicatorService 和 MesQcTemplateItemService,以提高代码的可维护性和可扩展性。更新相关控制器和实现类,确保功能正常。

BREAKING CHANGE: 质检方案的相关接口已更改,需更新调用方代码
Showing 17 changed files with 251 additions and 197 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/template/MesQcTemplateIndicatorController.java
... ... @@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.qc.indicator.MesQcIndicatorDO;
12 12 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateIndicatorDO;
13 13 import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;
14 14 import cn.iocoder.yudao.module.mes.service.qc.indicator.MesQcIndicatorService;
15   -import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateDetailService;
  15 +import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateIndicatorService;
16 16 import io.swagger.v3.oas.annotations.Operation;
17 17 import io.swagger.v3.oas.annotations.Parameter;
18 18 import io.swagger.v3.oas.annotations.tags.Tag;
... ... @@ -37,7 +37,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
37 37 public class MesQcTemplateIndicatorController {
38 38  
39 39 @Resource
40   - private MesQcTemplateDetailService templateDetailService;
  40 + private MesQcTemplateIndicatorService templateIndicatorService;
41 41 @Resource
42 42 private MesQcIndicatorService indicatorService;
43 43 @Resource
... ... @@ -47,14 +47,14 @@ public class MesQcTemplateIndicatorController {
47 47 @Operation(summary = "创建质检方案-检测指标项")
48 48 @PreAuthorize("@ss.hasPermission('mes:qc-template:create')")
49 49 public CommonResult<Long> createTemplateIndicator(@Valid @RequestBody MesQcTemplateIndicatorSaveReqVO createReqVO) {
50   - return success(templateDetailService.createTemplateIndicator(createReqVO));
  50 + return success(templateIndicatorService.createTemplateIndicator(createReqVO));
51 51 }
52 52  
53 53 @PutMapping("/update")
54 54 @Operation(summary = "更新质检方案-检测指标项")
55 55 @PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
56 56 public CommonResult<Boolean> updateTemplateIndicator(@Valid @RequestBody MesQcTemplateIndicatorSaveReqVO updateReqVO) {
57   - templateDetailService.updateTemplateIndicator(updateReqVO);
  57 + templateIndicatorService.updateTemplateIndicator(updateReqVO);
58 58 return success(true);
59 59 }
60 60  
... ... @@ -63,7 +63,7 @@ public class MesQcTemplateIndicatorController {
63 63 @Parameter(name = "id", description = "编号", required = true)
64 64 @PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
65 65 public CommonResult<Boolean> deleteTemplateIndicator(@RequestParam("id") Long id) {
66   - templateDetailService.deleteTemplateIndicator(id);
  66 + templateIndicatorService.deleteTemplateIndicator(id);
67 67 return success(true);
68 68 }
69 69  
... ... @@ -72,7 +72,7 @@ public class MesQcTemplateIndicatorController {
72 72 @Parameter(name = "id", description = "编号", required = true, example = "1024")
73 73 @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
74 74 public CommonResult<MesQcTemplateIndicatorRespVO> getTemplateIndicator(@RequestParam("id") Long id) {
75   - MesQcTemplateIndicatorDO indicator = templateDetailService.getTemplateIndicator(id);
  75 + MesQcTemplateIndicatorDO indicator = templateIndicatorService.getTemplateIndicator(id);
76 76 return success(buildIndicatorRespVOList(Collections.singletonList(indicator)).get(0));
77 77 }
78 78  
... ... @@ -81,7 +81,7 @@ public class MesQcTemplateIndicatorController {
81 81 @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
82 82 public CommonResult<PageResult<MesQcTemplateIndicatorRespVO>> getTemplateIndicatorPage(
83 83 @Valid MesQcTemplateIndicatorPageReqVO pageReqVO) {
84   - PageResult<MesQcTemplateIndicatorDO> pageResult = templateDetailService.getTemplateIndicatorPage(pageReqVO);
  84 + PageResult<MesQcTemplateIndicatorDO> pageResult = templateIndicatorService.getTemplateIndicatorPage(pageReqVO);
85 85 return success(new PageResult<>(buildIndicatorRespVOList(pageResult.getList()), pageResult.getTotal()));
86 86 }
87 87  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/template/MesQcTemplateItemController.java
... ... @@ -11,7 +11,7 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasur
11 11 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateItemDO;
12 12 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
13 13 import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;
14   -import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateDetailService;
  14 +import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateItemService;
15 15 import io.swagger.v3.oas.annotations.Operation;
16 16 import io.swagger.v3.oas.annotations.Parameter;
17 17 import io.swagger.v3.oas.annotations.tags.Tag;
... ... @@ -36,7 +36,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
36 36 public class MesQcTemplateItemController {
37 37  
38 38 @Resource
39   - private MesQcTemplateDetailService templateDetailService;
  39 + private MesQcTemplateItemService templateItemService;
40 40 @Resource
41 41 private MesMdItemService mdItemService;
42 42 @Resource
... ... @@ -46,14 +46,14 @@ public class MesQcTemplateItemController {
46 46 @Operation(summary = "创建质检方案-产品关联")
47 47 @PreAuthorize("@ss.hasPermission('mes:qc-template:create')")
48 48 public CommonResult<Long> createTemplateItem(@Valid @RequestBody MesQcTemplateItemSaveReqVO createReqVO) {
49   - return success(templateDetailService.createTemplateItem(createReqVO));
  49 + return success(templateItemService.createTemplateItem(createReqVO));
50 50 }
51 51  
52 52 @PutMapping("/update")
53 53 @Operation(summary = "更新质检方案-产品关联")
54 54 @PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
55 55 public CommonResult<Boolean> updateTemplateItem(@Valid @RequestBody MesQcTemplateItemSaveReqVO updateReqVO) {
56   - templateDetailService.updateTemplateItem(updateReqVO);
  56 + templateItemService.updateTemplateItem(updateReqVO);
57 57 return success(true);
58 58 }
59 59  
... ... @@ -62,7 +62,7 @@ public class MesQcTemplateItemController {
62 62 @Parameter(name = "id", description = "编号", required = true)
63 63 @PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
64 64 public CommonResult<Boolean> deleteTemplateItem(@RequestParam("id") Long id) {
65   - templateDetailService.deleteTemplateItem(id);
  65 + templateItemService.deleteTemplateItem(id);
66 66 return success(true);
67 67 }
68 68  
... ... @@ -71,7 +71,7 @@ public class MesQcTemplateItemController {
71 71 @Parameter(name = "id", description = "编号", required = true, example = "1024")
72 72 @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
73 73 public CommonResult<MesQcTemplateItemRespVO> getTemplateItem(@RequestParam("id") Long id) {
74   - MesQcTemplateItemDO item = templateDetailService.getTemplateItem(id);
  74 + MesQcTemplateItemDO item = templateItemService.getTemplateItem(id);
75 75 return success(buildItemRespVOList(Collections.singletonList(item)).get(0));
76 76 }
77 77  
... ... @@ -80,7 +80,7 @@ public class MesQcTemplateItemController {
80 80 @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
81 81 public CommonResult<PageResult<MesQcTemplateItemRespVO>> getTemplateItemPage(
82 82 @Valid MesQcTemplateItemPageReqVO pageReqVO) {
83   - PageResult<MesQcTemplateItemDO> pageResult = templateDetailService.getTemplateItemPage(pageReqVO);
  83 + PageResult<MesQcTemplateItemDO> pageResult = templateItemService.getTemplateItemPage(pageReqVO);
84 84 return success(new PageResult<>(buildItemRespVOList(pageResult.getList()), pageResult.getTotal()));
85 85 }
86 86  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/template/MesQcTemplateIndicatorMapper.java
... ... @@ -9,7 +9,6 @@ import org.apache.ibatis.annotations.Mapper;
9 9  
10 10 import java.util.List;
11 11  
12   -// TODO @AI:MesQcTemplateIndicatorService 独立一个;然后非 MesQcTemplateIndicatorService 调用 mapper 的地方,都替换下;
13 12 /**
14 13 * MES 质检方案-检测指标项 Mapper
15 14 *
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcServiceImpl.java
... ... @@ -25,7 +25,7 @@ import cn.iocoder.yudao.module.mes.service.pro.route.MesProRouteProcessService;
25 25 import cn.iocoder.yudao.module.mes.service.pro.route.MesProRouteProductService;
26 26 import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
27 27 import cn.iocoder.yudao.module.mes.service.qc.defectrecord.MesQcDefectRecordService;
28   -import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateDetailService;
  28 +import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateItemService;
29 29 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
30 30 import jakarta.annotation.Resource;
31 31 import org.springframework.context.annotation.Lazy;
... ... @@ -55,7 +55,7 @@ public class MesQcIpqcServiceImpl implements MesQcIpqcService {
55 55 private MesQcIpqcMapper ipqcMapper;
56 56  
57 57 @Resource
58   - private MesQcTemplateDetailService templateDetailService;
  58 + private MesQcTemplateItemService templateItemService;
59 59 @Resource
60 60 private MesQcIpqcLineService ipqcLineService;
61 61 @Resource
... ... @@ -91,7 +91,7 @@ public class MesQcIpqcServiceImpl implements MesQcIpqcService {
91 91 // 1.2 校验工单存在
92 92 MesProWorkOrderDO workOrder = workOrderService.validateWorkOrderExists(createReqVO.getWorkOrderId());
93 93 // 1.3 根据产品 + 检验类型自动匹配模板
94   - MesQcTemplateItemDO templateItem = templateDetailService.getRequiredTemplateByItemIdAndType(
  94 + MesQcTemplateItemDO templateItem = templateItemService.getRequiredTemplateByItemIdAndType(
95 95 workOrder.getProductId(), MesQcTypeEnum.IPQC.getType());
96 96 Long templateId = templateItem.getTemplateId();
97 97 // 1.4 获取来源单据编号
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/iqc/MesQcIqcServiceImpl.java
... ... @@ -18,7 +18,7 @@ import cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum;
18 18 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
19 19 import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService;
20 20 import cn.iocoder.yudao.module.mes.service.qc.defectrecord.MesQcDefectRecordService;
21   -import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateDetailService;
  21 +import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateItemService;
22 22 import cn.iocoder.yudao.module.mes.service.wm.arrivalnotice.MesWmArrivalNoticeService;
23 23 import cn.iocoder.yudao.module.mes.service.wm.outsourcereceipt.MesWmOutsourceReceiptService;
24 24 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
... ... @@ -49,7 +49,7 @@ public class MesQcIqcServiceImpl implements MesQcIqcService {
49 49 private MesQcIqcMapper iqcMapper;
50 50  
51 51 @Resource
52   - private MesQcTemplateDetailService templateDetailService;
  52 + private MesQcTemplateItemService templateItemService;
53 53 @Resource
54 54 private MesQcIqcLineService iqcLineService;
55 55 @Resource
... ... @@ -75,7 +75,7 @@ public class MesQcIqcServiceImpl implements MesQcIqcService {
75 75 String sourceDocCode = validateAndGetSourceDocCode(
76 76 createReqVO.getSourceDocType(), createReqVO.getSourceDocId(), createReqVO.getSourceLineId());
77 77 // 1.3 通过 itemId + IQC 类型自动查找模板
78   - MesQcTemplateItemDO templateItem = templateDetailService.getRequiredTemplateByItemIdAndType(
  78 + MesQcTemplateItemDO templateItem = templateItemService.getRequiredTemplateByItemIdAndType(
79 79 createReqVO.getItemId(), MesQcTypeEnum.IQC.getType());
80 80 Long templateId = templateItem.getTemplateId();
81 81  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImpl.java
... ... @@ -16,7 +16,7 @@ import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants;
16 16 import cn.iocoder.yudao.module.mes.service.md.client.MesMdClientService;
17 17 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
18 18 import cn.iocoder.yudao.module.mes.service.qc.defectrecord.MesQcDefectRecordService;
19   -import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateDetailService;
  19 +import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateItemService;
20 20 import cn.iocoder.yudao.module.mes.service.wm.productsales.MesWmProductSalesLineService;
21 21 import cn.iocoder.yudao.module.mes.service.wm.productsales.MesWmProductSalesService;
22 22 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDO;
... ... @@ -48,7 +48,7 @@ public class MesQcOqcServiceImpl implements MesQcOqcService {
48 48 @Resource
49 49 private MesQcOqcMapper oqcMapper;
50 50 @Resource
51   - private MesQcTemplateDetailService templateDetailService;
  51 + private MesQcTemplateItemService templateItemService;
52 52 @Resource
53 53 private MesQcOqcLineService oqcLineService;
54 54 @Resource
... ... @@ -79,7 +79,7 @@ public class MesQcOqcServiceImpl implements MesQcOqcService {
79 79 String sourceDocCode = validateAndGetSourceDocCode(
80 80 createReqVO.getSourceDocType(), createReqVO.getSourceLineId());
81 81 // 1.3 根据产品 + 检验类型自动匹配模板
82   - MesQcTemplateItemDO templateItem = templateDetailService.getRequiredTemplateByItemIdAndType(
  82 + MesQcTemplateItemDO templateItem = templateItemService.getRequiredTemplateByItemIdAndType(
83 83 createReqVO.getItemId(), MesQcTypeEnum.OQC.getType());
84 84 Long templateId = templateItem.getTemplateId();
85 85  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcServiceImpl.java
... ... @@ -17,7 +17,7 @@ import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
17 17 import cn.iocoder.yudao.module.mes.service.qc.defectrecord.MesQcDefectRecordService;
18 18 import cn.iocoder.yudao.module.mes.service.wm.returnissue.MesWmReturnIssueService;
19 19 import cn.iocoder.yudao.module.mes.service.wm.returnsales.MesWmReturnSalesService;
20   -import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateDetailService;
  20 +import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateItemService;
21 21 import cn.iocoder.yudao.module.mes.service.wm.returnissue.MesWmReturnIssueLineService;
22 22 import cn.iocoder.yudao.module.mes.service.wm.returnsales.MesWmReturnSalesLineService;
23 23 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
... ... @@ -47,7 +47,7 @@ public class MesQcRqcServiceImpl implements MesQcRqcService {
47 47 @Resource
48 48 private MesQcRqcMapper rqcMapper;
49 49 @Resource
50   - private MesQcTemplateDetailService templateDetailService;
  50 + private MesQcTemplateItemService templateItemService;
51 51 @Resource
52 52 private MesQcRqcLineService rqcLineService;
53 53 @Resource
... ... @@ -78,7 +78,7 @@ public class MesQcRqcServiceImpl implements MesQcRqcService {
78 78 // 1.1 校验数据
79 79 validateRqcSaveData(createReqVO);
80 80 // 1.2 根据物料 + 检验类型自动匹配模板
81   - MesQcTemplateItemDO templateItem = templateDetailService.getRequiredTemplateByItemIdAndType(
  81 + MesQcTemplateItemDO templateItem = templateItemService.getRequiredTemplateByItemIdAndType(
82 82 createReqVO.getItemId(), createReqVO.getType());
83 83 Long templateId = templateItem.getTemplateId();
84 84 // 1.3 获取来源单据编号
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateIndicatorService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.service.qc.template;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorPageReqVO;
  5 +import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorSaveReqVO;
  6 +import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateIndicatorDO;
  7 +import jakarta.validation.Valid;
  8 +
  9 +/**
  10 + * MES 质检方案-检测指标项 Service 接口
  11 + *
  12 + * @author 芋道源码
  13 + */
  14 +public interface MesQcTemplateIndicatorService {
  15 +
  16 + /**
  17 + * 创建检测指标项
  18 + *
  19 + * @param createReqVO 创建信息
  20 + * @return 编号
  21 + */
  22 + Long createTemplateIndicator(@Valid MesQcTemplateIndicatorSaveReqVO createReqVO);
  23 +
  24 + /**
  25 + * 更新检测指标项
  26 + *
  27 + * @param updateReqVO 更新信息
  28 + */
  29 + void updateTemplateIndicator(@Valid MesQcTemplateIndicatorSaveReqVO updateReqVO);
  30 +
  31 + /**
  32 + * 删除检测指标项
  33 + *
  34 + * @param id 编号
  35 + */
  36 + void deleteTemplateIndicator(Long id);
  37 +
  38 + /**
  39 + * 获得检测指标项
  40 + *
  41 + * @param id 编号
  42 + * @return 检测指标项
  43 + */
  44 + MesQcTemplateIndicatorDO getTemplateIndicator(Long id);
  45 +
  46 + /**
  47 + * 获得检测指标项分页
  48 + *
  49 + * @param pageReqVO 分页查询
  50 + * @return 检测指标项分页
  51 + */
  52 + PageResult<MesQcTemplateIndicatorDO> getTemplateIndicatorPage(MesQcTemplateIndicatorPageReqVO pageReqVO);
  53 +
  54 + /**
  55 + * 根据方案编号删除所有检测指标项
  56 + *
  57 + * @param templateId 质检方案编号
  58 + */
  59 + void deleteTemplateIndicatorByTemplateId(Long templateId);
  60 +
  61 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateDetailServiceImpl.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateIndicatorServiceImpl.java
1 1 package cn.iocoder.yudao.module.mes.service.qc.template;
2 2  
3   -import cn.hutool.core.collection.CollUtil;
4   -import cn.hutool.core.util.ObjUtil;
5 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 5 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorPageReqVO;
8 6 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorSaveReqVO;
9   -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemPageReqVO;
10   -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO;
11   -import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateDO;
12 7 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateIndicatorDO;
13   -import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateItemDO;
14   -import cn.iocoder.yudao.module.mes.dal.mysql.qc.indicator.MesQcIndicatorMapper;
15 8 import cn.iocoder.yudao.module.mes.dal.mysql.qc.template.MesQcTemplateIndicatorMapper;
16   -import cn.iocoder.yudao.module.mes.dal.mysql.qc.template.MesQcTemplateItemMapper;
17   -import cn.iocoder.yudao.module.mes.dal.mysql.qc.template.MesQcTemplateMapper;
18 9 import jakarta.annotation.Resource;
19 10 import org.springframework.context.annotation.Lazy;
20 11 import org.springframework.stereotype.Service;
21 12 import org.springframework.validation.annotation.Validated;
22 13  
23   -import java.util.List;
24   -import java.util.Objects;
25   -
26 14 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
27   -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
28   -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.findFirst;
29   -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
  15 +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.QC_TEMPLATE_INDICATOR_NOT_EXISTS;
30 16  
31 17 /**
32   - * MES 质检方案明细 Service 实现类
33   - *
34   - * 专注于质检方案的检测指标项和产品关联的 CRUD,以及复杂查询逻辑
  18 + * MES 质检方案-检测指标项 Service 实现类
35 19 *
36 20 * @author 芋道源码
37 21 */
38 22 @Service
39 23 @Validated
40   -public class MesQcTemplateDetailServiceImpl implements MesQcTemplateDetailService {
  24 +public class MesQcTemplateIndicatorServiceImpl implements MesQcTemplateIndicatorService {
41 25  
42 26 @Resource
43   - private MesQcTemplateMapper templateMapper;
44   - @Resource
45 27 private MesQcTemplateIndicatorMapper templateIndicatorMapper;
46   - @Resource
47   - private MesQcTemplateItemMapper templateItemMapper;
48   - @Resource
49   - private MesQcIndicatorMapper indicatorMapper;
50 28  
51 29 @Resource
52 30 @Lazy
53 31 private MesQcTemplateService templateService;
54 32  
55   - // ========== 质检方案-检测指标项 ==========
56   -
57 33 @Override
58 34 public Long createTemplateIndicator(MesQcTemplateIndicatorSaveReqVO createReqVO) {
59 35 // 校验方案存在
60 36 templateService.validateTemplateExists(createReqVO.getTemplateId());
  37 +
61 38 // 插入
62 39 MesQcTemplateIndicatorDO indicator = BeanUtils.toBean(createReqVO, MesQcTemplateIndicatorDO.class);
63 40 templateIndicatorMapper.insert(indicator);
... ... @@ -68,6 +45,7 @@ public class MesQcTemplateDetailServiceImpl implements MesQcTemplateDetailServic
68 45 public void updateTemplateIndicator(MesQcTemplateIndicatorSaveReqVO updateReqVO) {
69 46 // 校验存在
70 47 validateTemplateIndicatorExists(updateReqVO.getId());
  48 +
71 49 // 更新
72 50 MesQcTemplateIndicatorDO updateObj = BeanUtils.toBean(updateReqVO, MesQcTemplateIndicatorDO.class);
73 51 templateIndicatorMapper.updateById(updateObj);
... ... @@ -97,85 +75,9 @@ public class MesQcTemplateDetailServiceImpl implements MesQcTemplateDetailServic
97 75 return templateIndicatorMapper.selectPage(pageReqVO);
98 76 }
99 77  
100   - // ========== 质检方案-产品关联 ==========
101   -
102 78 @Override
103   - public Long createTemplateItem(MesQcTemplateItemSaveReqVO createReqVO) {
104   - // 校验方案存在
105   - templateService.validateTemplateExists(createReqVO.getTemplateId());
106   - // 校验产品在此方案中唯一
107   - validateTemplateItemNotDuplicate(null, createReqVO.getTemplateId(), createReqVO.getItemId());
108   - // 插入
109   - MesQcTemplateItemDO item = BeanUtils.toBean(createReqVO, MesQcTemplateItemDO.class);
110   - templateItemMapper.insert(item);
111   - return item.getId();
112   - }
113   -
114   - @Override
115   - public void updateTemplateItem(MesQcTemplateItemSaveReqVO updateReqVO) {
116   - // 校验存在
117   - validateTemplateItemExists(updateReqVO.getId());
118   - // 校验产品在此方案中唯一
119   - validateTemplateItemNotDuplicate(updateReqVO.getId(), updateReqVO.getTemplateId(), updateReqVO.getItemId());
120   - // 更新
121   - MesQcTemplateItemDO updateObj = BeanUtils.toBean(updateReqVO, MesQcTemplateItemDO.class);
122   - templateItemMapper.updateById(updateObj);
123   - }
124   -
125   - @Override
126   - public void deleteTemplateItem(Long id) {
127   - // 校验存在
128   - validateTemplateItemExists(id);
129   - // 删除
130   - templateItemMapper.deleteById(id);
131   - }
132   -
133   - private void validateTemplateItemExists(Long id) {
134   - if (templateItemMapper.selectById(id) == null) {
135   - throw exception(QC_TEMPLATE_ITEM_NOT_EXISTS);
136   - }
137   - }
138   -
139   - private void validateTemplateItemNotDuplicate(Long id, Long templateId, Long itemId) {
140   - MesQcTemplateItemDO existing = templateItemMapper.selectByTemplateIdAndItemId(templateId, itemId);
141   - if (existing == null) {
142   - return;
143   - }
144   - if (ObjUtil.notEqual(existing.getId(), id)) {
145   - throw exception(QC_TEMPLATE_ITEM_DUPLICATE);
146   - }
147   - }
148   -
149   - @Override
150   - public MesQcTemplateItemDO getTemplateItem(Long id) {
151   - return templateItemMapper.selectById(id);
152   - }
153   -
154   - @Override
155   - public PageResult<MesQcTemplateItemDO> getTemplateItemPage(MesQcTemplateItemPageReqVO pageReqVO) {
156   - return templateItemMapper.selectPage(pageReqVO);
157   - }
158   -
159   - // ========== 复杂查询 ==========
160   -
161   - @Override
162   - public MesQcTemplateItemDO getRequiredTemplateByItemIdAndType(Long itemId, Integer qcType) {
163   - // 1. 查出 itemId 关联的所有 templateId
164   - List<MesQcTemplateItemDO> templateItems = templateItemMapper.selectListByItemId(itemId);
165   - if (CollUtil.isEmpty(templateItems)) {
166   - throw exception(QC_NO_TEMPLATE);
167   - }
168   - // 2. 筛选 types 包含 qcType 的模板
169   - List<MesQcTemplateDO> templates = templateMapper.selectByIds(
170   - convertSet(templateItems, MesQcTemplateItemDO::getTemplateId));
171   - MesQcTemplateDO matchedTemplate = findFirst(templates,
172   - t -> CollUtil.contains(t.getTypes(), qcType));
173   - if (matchedTemplate == null) {
174   - throw exception(QC_NO_TEMPLATE);
175   - }
176   - // 3. 返回对应的 templateItem
177   - return findFirst(templateItems,
178   - item -> Objects.equals(item.getTemplateId(), matchedTemplate.getId()));
  79 + public void deleteTemplateIndicatorByTemplateId(Long templateId) {
  80 + templateIndicatorMapper.deleteByTemplateId(templateId);
179 81 }
180 82  
181 83 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateDetailService.java renamed to yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateItemService.java
1 1 package cn.iocoder.yudao.module.mes.service.qc.template;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4   -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorPageReqVO;
5   -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorSaveReqVO;
6 4 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemPageReqVO;
7 5 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO;
8   -import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateIndicatorDO;
9 6 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateItemDO;
10 7 import cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum;
11 8 import jakarta.validation.Valid;
12 9  
13   -// TODO @AI:还是按照表,拆分。一个 MesQcTemplateIndicatorDO、MesQcTemplateItemDO;(涉及大规模重构,暂不处理)
14 10 /**
15   - * MES 质检方案明细 Service 接口
16   - *
17   - * 专注于质检方案的检测指标项和产品关联的 CRUD,以及复杂查询逻辑
  11 + * MES 质检方案-产品关联 Service 接口
18 12 *
19 13 * @author 芋道源码
20 14 */
21   -public interface MesQcTemplateDetailService {
22   -
23   - /**
24   - * 创建检测指标项
25   - *
26   - * @param createReqVO 创建信息
27   - * @return 编号
28   - */
29   - Long createTemplateIndicator(@Valid MesQcTemplateIndicatorSaveReqVO createReqVO);
30   -
31   - /**
32   - * 更新检测指标项
33   - *
34   - * @param updateReqVO 更新信息
35   - */
36   - void updateTemplateIndicator(@Valid MesQcTemplateIndicatorSaveReqVO updateReqVO);
37   -
38   - /**
39   - * 删除检测指标项
40   - *
41   - * @param id 编号
42   - */
43   - void deleteTemplateIndicator(Long id);
44   -
45   - /**
46   - * 获得检测指标项
47   - *
48   - * @param id 编号
49   - * @return 检测指标项
50   - */
51   - MesQcTemplateIndicatorDO getTemplateIndicator(Long id);
52   -
53   - /**
54   - * 获得检测指标项分页
55   - *
56   - * @param pageReqVO 分页查询
57   - * @return 检测指标项分页
58   - */
59   - PageResult<MesQcTemplateIndicatorDO> getTemplateIndicatorPage(MesQcTemplateIndicatorPageReqVO pageReqVO);
60   -
61   - // ========== 质检方案-产品关联 ==========
  15 +public interface MesQcTemplateItemService {
62 16  
63 17 /**
64 18 * 创建产品关联
... ... @@ -99,6 +53,13 @@ public interface MesQcTemplateDetailService {
99 53 PageResult<MesQcTemplateItemDO> getTemplateItemPage(MesQcTemplateItemPageReqVO pageReqVO);
100 54  
101 55 /**
  56 + * 根据方案编号删除所有产品关联
  57 + *
  58 + * @param templateId 质检方案编号
  59 + */
  60 + void deleteTemplateItemByTemplateId(Long templateId);
  61 +
  62 + /**
102 63 * 根据产品物料 ID 和 QC 类型查找检验模板的产品关联(必须存在,否则抛异常)
103 64 *
104 65 * @param itemId 产品物料 ID
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateItemServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.service.qc.template;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.util.ObjUtil;
  5 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  7 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  8 +import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemPageReqVO;
  9 +import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO;
  10 +import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateDO;
  11 +import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateItemDO;
  12 +import cn.iocoder.yudao.module.mes.dal.mysql.qc.template.MesQcTemplateItemMapper;
  13 +import jakarta.annotation.Resource;
  14 +import org.springframework.context.annotation.Lazy;
  15 +import org.springframework.stereotype.Service;
  16 +import org.springframework.validation.annotation.Validated;
  17 +
  18 +import java.util.List;
  19 +import java.util.Objects;
  20 +
  21 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  22 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
  23 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.findFirst;
  24 +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
  25 +
  26 +/**
  27 + * MES 质检方案-产品关联 Service 实现类
  28 + *
  29 + * @author 芋道源码
  30 + */
  31 +@Service
  32 +@Validated
  33 +public class MesQcTemplateItemServiceImpl implements MesQcTemplateItemService {
  34 +
  35 + @Resource
  36 + private MesQcTemplateItemMapper templateItemMapper;
  37 +
  38 + @Resource
  39 + @Lazy
  40 + private MesQcTemplateService templateService;
  41 +
  42 + @Override
  43 + public Long createTemplateItem(MesQcTemplateItemSaveReqVO createReqVO) {
  44 + // 校验保存参数
  45 + validateTemplateItemSaveData(createReqVO);
  46 +
  47 + // 插入
  48 + MesQcTemplateItemDO item = BeanUtils.toBean(createReqVO, MesQcTemplateItemDO.class);
  49 + templateItemMapper.insert(item);
  50 + return item.getId();
  51 + }
  52 +
  53 + @Override
  54 + public void updateTemplateItem(MesQcTemplateItemSaveReqVO updateReqVO) {
  55 + // 校验保存参数
  56 + validateTemplateItemSaveData(updateReqVO);
  57 +
  58 + // 更新
  59 + MesQcTemplateItemDO updateObj = BeanUtils.toBean(updateReqVO, MesQcTemplateItemDO.class);
  60 + templateItemMapper.updateById(updateObj);
  61 + }
  62 +
  63 + private void validateTemplateItemSaveData(MesQcTemplateItemSaveReqVO saveReqVO) {
  64 + if (saveReqVO.getId() != null) {
  65 + // 校验存在
  66 + validateTemplateItemExists(saveReqVO.getId());
  67 + }
  68 + // 校验方案存在
  69 + templateService.validateTemplateExists(saveReqVO.getTemplateId());
  70 + // 校验产品在此方案中唯一
  71 + validateTemplateItemNotDuplicate(saveReqVO.getId(), saveReqVO.getTemplateId(), saveReqVO.getItemId());
  72 + }
  73 +
  74 + @Override
  75 + public void deleteTemplateItem(Long id) {
  76 + // 校验存在
  77 + validateTemplateItemExists(id);
  78 + // 删除
  79 + templateItemMapper.deleteById(id);
  80 + }
  81 +
  82 + private void validateTemplateItemExists(Long id) {
  83 + if (templateItemMapper.selectById(id) == null) {
  84 + throw exception(QC_TEMPLATE_ITEM_NOT_EXISTS);
  85 + }
  86 + }
  87 +
  88 + private void validateTemplateItemNotDuplicate(Long id, Long templateId, Long itemId) {
  89 + MesQcTemplateItemDO existing = templateItemMapper.selectByTemplateIdAndItemId(templateId, itemId);
  90 + if (existing == null) {
  91 + return;
  92 + }
  93 + if (ObjUtil.notEqual(existing.getId(), id)) {
  94 + throw exception(QC_TEMPLATE_ITEM_DUPLICATE);
  95 + }
  96 + }
  97 +
  98 + @Override
  99 + public MesQcTemplateItemDO getTemplateItem(Long id) {
  100 + return templateItemMapper.selectById(id);
  101 + }
  102 +
  103 + @Override
  104 + public PageResult<MesQcTemplateItemDO> getTemplateItemPage(MesQcTemplateItemPageReqVO pageReqVO) {
  105 + return templateItemMapper.selectPage(pageReqVO);
  106 + }
  107 +
  108 + @Override
  109 + public void deleteTemplateItemByTemplateId(Long templateId) {
  110 + templateItemMapper.deleteByTemplateId(templateId);
  111 + }
  112 +
  113 + @Override
  114 + public MesQcTemplateItemDO getRequiredTemplateByItemIdAndType(Long itemId, Integer qcType) {
  115 + // 1. 查出 itemId 关联的所有 templateItem
  116 + List<MesQcTemplateItemDO> templateItems = templateItemMapper.selectListByItemId(itemId);
  117 + if (CollUtil.isEmpty(templateItems)) {
  118 + throw exception(QC_NO_TEMPLATE);
  119 + }
  120 + // 2. 筛选 types 包含 qcType 且状态为开启的模板
  121 + List<MesQcTemplateDO> templates = templateService.getTemplateList(
  122 + convertSet(templateItems, MesQcTemplateItemDO::getTemplateId));
  123 + MesQcTemplateDO matchedTemplate = findFirst(templates,
  124 + t -> CommonStatusEnum.isEnable(t.getStatus()) && CollUtil.contains(t.getTypes(), qcType));
  125 + if (matchedTemplate == null) {
  126 + throw exception(QC_NO_TEMPLATE);
  127 + }
  128 + // 3. 返回对应的 templateItem
  129 + return findFirst(templateItems,
  130 + item -> Objects.equals(item.getTemplateId(), matchedTemplate.getId()));
  131 + }
  132 +
  133 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateService.java
... ... @@ -12,7 +12,6 @@ import java.util.Map;
12 12  
13 13 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
14 14  
15   -// DONE @AI:已拆分成 2 个 service;MesQcTemplateService 专注于质检方案主表的 CRUD;MesQcTemplateDetailService 专注于质检方案的检测指标项和产品关联的 CRUD,以及复杂查询逻辑。
16 15 /**
17 16 * MES 质检方案 Service 接口
18 17 *
... ... @@ -20,8 +19,6 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
20 19 */
21 20 public interface MesQcTemplateService {
22 21  
23   - // ========== 质检方案主表 ==========
24   -
25 22 /**
26 23 * 创建质检方案
27 24 *
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateServiceImpl.java
... ... @@ -7,10 +7,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 7 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO;
8 8 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateSaveReqVO;
9 9 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateDO;
10   -import cn.iocoder.yudao.module.mes.dal.mysql.qc.template.MesQcTemplateIndicatorMapper;
11   -import cn.iocoder.yudao.module.mes.dal.mysql.qc.template.MesQcTemplateItemMapper;
12 10 import cn.iocoder.yudao.module.mes.dal.mysql.qc.template.MesQcTemplateMapper;
13 11 import jakarta.annotation.Resource;
  12 +import org.springframework.context.annotation.Lazy;
14 13 import org.springframework.stereotype.Service;
15 14 import org.springframework.transaction.annotation.Transactional;
16 15 import org.springframework.validation.annotation.Validated;
... ... @@ -34,9 +33,11 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
34 33 @Resource
35 34 private MesQcTemplateMapper templateMapper;
36 35 @Resource
37   - private MesQcTemplateIndicatorMapper templateIndicatorMapper;
  36 + @Lazy
  37 + private MesQcTemplateIndicatorService templateIndicatorService;
38 38 @Resource
39   - private MesQcTemplateItemMapper templateItemMapper;
  39 + @Lazy
  40 + private MesQcTemplateItemService templateItemService;
40 41  
41 42 @Override
42 43 public Long createTemplate(MesQcTemplateSaveReqVO createReqVO) {
... ... @@ -70,9 +71,9 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
70 71 // 删除主表
71 72 templateMapper.deleteById(id);
72 73 // 级联删除检测指标项
73   - templateIndicatorMapper.deleteByTemplateId(id);
  74 + templateIndicatorService.deleteTemplateIndicatorByTemplateId(id);
74 75 // 级联删除产品关联
75   - templateItemMapper.deleteByTemplateId(id);
  76 + templateItemService.deleteTemplateItemByTemplateId(id);
76 77 }
77 78  
78 79 @Override
... ...
yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcServiceImplTest.java
... ... @@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationServic
10 10 import cn.iocoder.yudao.module.mes.service.pro.feedback.MesProFeedbackService;
11 11 import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
12 12 import cn.iocoder.yudao.module.mes.service.qc.defectrecord.MesQcDefectRecordService;
13   -import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateDetailService;
  13 +import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateItemService;
14 14 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
15 15 import jakarta.annotation.Resource;
16 16 import org.junit.jupiter.api.Test;
... ... @@ -39,7 +39,7 @@ public class MesQcIpqcServiceImplTest extends BaseDbUnitTest {
39 39 private MesQcIpqcMapper ipqcMapper;
40 40  
41 41 @MockitoBean
42   - private MesQcTemplateDetailService templateDetailService;
  42 + private MesQcTemplateItemService templateItemService;
43 43 @MockitoBean
44 44 private MesQcIpqcLineService ipqcLineService;
45 45 @MockitoBean
... ...
yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/iqc/MesQcIqcServiceImplTest.java
... ... @@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.mes.enums.qc.MesQcStatusEnum;
8 8 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
9 9 import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService;
10 10 import cn.iocoder.yudao.module.mes.service.qc.defectrecord.MesQcDefectRecordService;
11   -import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateDetailService;
  11 +import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateItemService;
12 12 import cn.iocoder.yudao.module.mes.service.wm.arrivalnotice.MesWmArrivalNoticeService;
13 13 import cn.iocoder.yudao.module.mes.service.wm.outsourcereceipt.MesWmOutsourceReceiptService;
14 14 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
... ... @@ -52,7 +52,7 @@ public class MesQcIqcServiceImplTest extends BaseDbUnitTest {
52 52 @MockitoBean
53 53 private MesMdItemService itemService;
54 54 @MockitoBean
55   - private MesQcTemplateDetailService templateDetailService;
  55 + private MesQcTemplateItemService templateItemService;
56 56 @MockitoBean
57 57 private AdminUserApi adminUserApi;
58 58  
... ...
yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImplTest.java
... ... @@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.mes.enums.qc.MesQcStatusEnum;
8 8 import cn.iocoder.yudao.module.mes.service.md.client.MesMdClientService;
9 9 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
10 10 import cn.iocoder.yudao.module.mes.service.qc.defectrecord.MesQcDefectRecordService;
11   -import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateDetailService;
  11 +import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateItemService;
12 12 import cn.iocoder.yudao.module.mes.service.wm.productsales.MesWmProductSalesLineService;
13 13 import cn.iocoder.yudao.module.mes.service.wm.productsales.MesWmProductSalesService;
14 14 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
... ... @@ -50,7 +50,7 @@ public class MesQcOqcServiceImplTest extends BaseDbUnitTest {
50 50 @MockitoBean
51 51 private MesMdItemService itemService;
52 52 @MockitoBean
53   - private MesQcTemplateDetailService templateDetailService;
  53 + private MesQcTemplateItemService templateItemService;
54 54 @MockitoBean
55 55 private MesQcDefectRecordService defectRecordService;
56 56 @MockitoBean
... ...
yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcServiceImplTest.java
... ... @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants;
7 7 import cn.iocoder.yudao.module.mes.enums.qc.MesQcStatusEnum;
8 8 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
9 9 import cn.iocoder.yudao.module.mes.service.qc.defectrecord.MesQcDefectRecordService;
10   -import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateDetailService;
  10 +import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateItemService;
11 11 import cn.iocoder.yudao.module.mes.service.wm.returnissue.MesWmReturnIssueLineService;
12 12 import cn.iocoder.yudao.module.mes.service.wm.returnsales.MesWmReturnSalesLineService;
13 13 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
... ... @@ -51,7 +51,7 @@ public class MesQcRqcServiceImplTest extends BaseDbUnitTest {
51 51 @MockitoBean
52 52 private MesMdItemService itemService;
53 53 @MockitoBean
54   - private MesQcTemplateDetailService templateDetailService;
  54 + private MesQcTemplateItemService templateItemService;
55 55 @MockitoBean
56 56 private MesQcDefectRecordService defectRecordService;
57 57 @MockitoBean
... ...