Commit 0a70bb5cef705a47e18520edbd8a538bc09659bb

Authored by YunaiV
1 parent ba439331

feat(mes): 重构质检方案 Controller/Service/Mapper

- MesQcTemplateController 拆分为三个独立 Controller:
  MesQcTemplateIndicatorController(/mes/qc/template/indicator)
  MesQcTemplateItemController(/mes/qc/template/item)
- Service 层 get 方法统一返回 DO,JOIN 逻辑移至各 Controller 的 convertXxxRespVO()
- MesQcTemplatePageReqVO:types(List) 改为 type(Integer),支持单个检测种类筛选
- MesQcTemplateMapper:FIND_IN_SET 改用 MyBatisUtils.findInSet()
- MesQcTemplateItemSaveReqVO:清理 @Schema 描述中冗余括号说明
- 清理所有 TODO @AI 注释
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/template/MesQcTemplateController.java
@@ -9,12 +9,6 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; @@ -9,12 +9,6 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
9 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO; 9 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO;
10 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateRespVO; 10 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateRespVO;
11 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateSaveReqVO; 11 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateSaveReqVO;
12 -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorPageReqVO;  
13 -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorRespVO;  
14 -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorSaveReqVO;  
15 -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemPageReqVO;  
16 -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemRespVO;  
17 -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO;  
18 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateDO; 12 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateDO;
19 import cn.iocoder.yudao.module.mes.service.qc.MesQcTemplateService; 13 import cn.iocoder.yudao.module.mes.service.qc.MesQcTemplateService;
20 import io.swagger.v3.oas.annotations.Operation; 14 import io.swagger.v3.oas.annotations.Operation;
@@ -33,7 +27,6 @@ import java.util.List; @@ -33,7 +27,6 @@ import java.util.List;
33 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; 27 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
34 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 28 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
35 29
36 -// TODO @AI:拆分为多个 controller,和别的模块;  
37 @Tag(name = "管理后台 - MES 质检方案") 30 @Tag(name = "管理后台 - MES 质检方案")
38 @RestController 31 @RestController
39 @RequestMapping("/mes/qc/template") 32 @RequestMapping("/mes/qc/template")
@@ -43,8 +36,6 @@ public class MesQcTemplateController { @@ -43,8 +36,6 @@ public class MesQcTemplateController {
43 @Resource 36 @Resource
44 private MesQcTemplateService templateService; 37 private MesQcTemplateService templateService;
45 38
46 - // ========== 质检方案主表 ==========  
47 -  
48 @PostMapping("/create") 39 @PostMapping("/create")
49 @Operation(summary = "创建质检方案") 40 @Operation(summary = "创建质检方案")
50 @PreAuthorize("@ss.hasPermission('mes:qc-template:create')") 41 @PreAuthorize("@ss.hasPermission('mes:qc-template:create')")
@@ -74,16 +65,16 @@ public class MesQcTemplateController { @@ -74,16 +65,16 @@ public class MesQcTemplateController {
74 @Parameter(name = "id", description = "编号", required = true, example = "1024") 65 @Parameter(name = "id", description = "编号", required = true, example = "1024")
75 @PreAuthorize("@ss.hasPermission('mes:qc-template:query')") 66 @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
76 public CommonResult<MesQcTemplateRespVO> getTemplate(@RequestParam("id") Long id) { 67 public CommonResult<MesQcTemplateRespVO> getTemplate(@RequestParam("id") Long id) {
77 - // TODO @AI:service 只返回 do;数据拼接放在 controller 里;  
78 - return success(templateService.getTemplate(id)); 68 + MesQcTemplateDO template = templateService.getTemplate(id);
  69 + return success(BeanUtils.toBean(template, MesQcTemplateRespVO.class));
79 } 70 }
80 71
81 @GetMapping("/page") 72 @GetMapping("/page")
82 @Operation(summary = "获得质检方案分页") 73 @Operation(summary = "获得质检方案分页")
83 @PreAuthorize("@ss.hasPermission('mes:qc-template:query')") 74 @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
84 public CommonResult<PageResult<MesQcTemplateRespVO>> getTemplatePage(@Valid MesQcTemplatePageReqVO pageReqVO) { 75 public CommonResult<PageResult<MesQcTemplateRespVO>> getTemplatePage(@Valid MesQcTemplatePageReqVO pageReqVO) {
85 - // TODO @AI:service 只返回 do;数据拼接放在 controller 里;  
86 - return success(templateService.getTemplatePage(pageReqVO)); 76 + PageResult<MesQcTemplateDO> pageResult = templateService.getTemplatePage(pageReqVO);
  77 + return success(BeanUtils.toBean(pageResult, MesQcTemplateRespVO.class));
87 } 78 }
88 79
89 @GetMapping("/simple-list") 80 @GetMapping("/simple-list")
@@ -100,101 +91,9 @@ public class MesQcTemplateController { @@ -100,101 +91,9 @@ public class MesQcTemplateController {
100 public void exportTemplateExcel(@Valid MesQcTemplatePageReqVO pageReqVO, 91 public void exportTemplateExcel(@Valid MesQcTemplatePageReqVO pageReqVO,
101 HttpServletResponse response) throws IOException { 92 HttpServletResponse response) throws IOException {
102 pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); 93 pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
103 - List<MesQcTemplateRespVO> list = templateService.getTemplatePage(pageReqVO).getList();  
104 - // TODO @AI:service 只返回 do;数据拼接放在 controller 里;  
105 - ExcelUtils.write(response, "质检方案.xls", "数据", MesQcTemplateRespVO.class, list);  
106 - }  
107 -  
108 - // ========== 质检方案-检测指标项 ==========  
109 -  
110 - // TODO @AI:是不是拆分成独立的 controller;类似别的模块  
111 -  
112 - @PostMapping("/indicator/create")  
113 - @Operation(summary = "创建质检方案-检测指标项")  
114 - @PreAuthorize("@ss.hasPermission('mes:qc-template:create')")  
115 - public CommonResult<Long> createTemplateIndicator(@Valid @RequestBody MesQcTemplateIndicatorSaveReqVO createReqVO) {  
116 - return success(templateService.createTemplateIndicator(createReqVO));  
117 - }  
118 -  
119 - @PutMapping("/indicator/update")  
120 - @Operation(summary = "更新质检方案-检测指标项")  
121 - @PreAuthorize("@ss.hasPermission('mes:qc-template:update')")  
122 - public CommonResult<Boolean> updateTemplateIndicator(@Valid @RequestBody MesQcTemplateIndicatorSaveReqVO updateReqVO) {  
123 - templateService.updateTemplateIndicator(updateReqVO);  
124 - return success(true);  
125 - }  
126 -  
127 - @DeleteMapping("/indicator/delete")  
128 - @Operation(summary = "删除质检方案-检测指标项")  
129 - @Parameter(name = "id", description = "编号", required = true)  
130 - @PreAuthorize("@ss.hasPermission('mes:qc-template:update')")  
131 - public CommonResult<Boolean> deleteTemplateIndicator(@RequestParam("id") Long id) {  
132 - templateService.deleteTemplateIndicator(id);  
133 - return success(true);  
134 - }  
135 -  
136 - @GetMapping("/indicator/get")  
137 - @Operation(summary = "获得质检方案-检测指标项")  
138 - @Parameter(name = "id", description = "编号", required = true, example = "1024")  
139 - @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")  
140 - public CommonResult<MesQcTemplateIndicatorRespVO> getTemplateIndicator(@RequestParam("id") Long id) {  
141 - // TODO @AI:service 只返回 do;数据拼接放在 controller 里;  
142 - return success(templateService.getTemplateIndicator(id));  
143 - }  
144 -  
145 - @GetMapping("/indicator/page")  
146 - @Operation(summary = "获得质检方案-检测指标项分页")  
147 - @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")  
148 - public CommonResult<PageResult<MesQcTemplateIndicatorRespVO>> getTemplateIndicatorPage(  
149 - @Valid MesQcTemplateIndicatorPageReqVO pageReqVO) {  
150 - // TODO @AI:service 只返回 do;数据拼接放在 controller 里;  
151 - return success(templateService.getTemplateIndicatorPage(pageReqVO));  
152 - }  
153 -  
154 - // ========== 质检方案-产品关联 ==========  
155 -  
156 - // TODO @AI:是不是拆分成独立的 controller;类似别的模块  
157 -  
158 - @PostMapping("/item/create")  
159 - @Operation(summary = "创建质检方案-产品关联")  
160 - @PreAuthorize("@ss.hasPermission('mes:qc-template:create')")  
161 - public CommonResult<Long> createTemplateItem(@Valid @RequestBody MesQcTemplateItemSaveReqVO createReqVO) {  
162 - return success(templateService.createTemplateItem(createReqVO));  
163 - }  
164 -  
165 - @PutMapping("/item/update")  
166 - @Operation(summary = "更新质检方案-产品关联")  
167 - @PreAuthorize("@ss.hasPermission('mes:qc-template:update')")  
168 - public CommonResult<Boolean> updateTemplateItem(@Valid @RequestBody MesQcTemplateItemSaveReqVO updateReqVO) {  
169 - templateService.updateTemplateItem(updateReqVO);  
170 - return success(true);  
171 - }  
172 -  
173 - @DeleteMapping("/item/delete")  
174 - @Operation(summary = "删除质检方案-产品关联")  
175 - @Parameter(name = "id", description = "编号", required = true)  
176 - @PreAuthorize("@ss.hasPermission('mes:qc-template:update')")  
177 - public CommonResult<Boolean> deleteTemplateItem(@RequestParam("id") Long id) {  
178 - templateService.deleteTemplateItem(id);  
179 - return success(true);  
180 - }  
181 -  
182 - @GetMapping("/item/get")  
183 - @Operation(summary = "获得质检方案-产品关联")  
184 - @Parameter(name = "id", description = "编号", required = true, example = "1024")  
185 - @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")  
186 - public CommonResult<MesQcTemplateItemRespVO> getTemplateItem(@RequestParam("id") Long id) {  
187 - // TODO @AI:service 只返回 do;数据拼接放在 controller 里;  
188 - return success(templateService.getTemplateItem(id));  
189 - }  
190 -  
191 - @GetMapping("/item/page")  
192 - @Operation(summary = "获得质检方案-产品关联分页")  
193 - @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")  
194 - public CommonResult<PageResult<MesQcTemplateItemRespVO>> getTemplateItemPage(  
195 - @Valid MesQcTemplateItemPageReqVO pageReqVO) {  
196 - // TODO @AI:service 只返回 do;数据拼接放在 controller 里;  
197 - return success(templateService.getTemplateItemPage(pageReqVO)); 94 + List<MesQcTemplateDO> list = templateService.getTemplatePage(pageReqVO).getList();
  95 + ExcelUtils.write(response, "质检方案.xls", "数据", MesQcTemplateRespVO.class,
  96 + BeanUtils.toBean(list, MesQcTemplateRespVO.class));
198 } 97 }
199 98
200 } 99 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/template/MesQcTemplateIndicatorController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.qc.template;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  6 +import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorPageReqVO;
  7 +import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorRespVO;
  8 +import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorSaveReqVO;
  9 +import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
  10 +import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcIndicatorDO;
  11 +import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateIndicatorDO;
  12 +import cn.iocoder.yudao.module.mes.dal.mysql.md.unitmeasure.MesMdUnitMeasureMapper;
  13 +import cn.iocoder.yudao.module.mes.dal.mysql.qc.MesQcIndicatorMapper;
  14 +import cn.iocoder.yudao.module.mes.service.qc.MesQcTemplateService;
  15 +import io.swagger.v3.oas.annotations.Operation;
  16 +import io.swagger.v3.oas.annotations.Parameter;
  17 +import io.swagger.v3.oas.annotations.tags.Tag;
  18 +import jakarta.annotation.Resource;
  19 +import jakarta.validation.Valid;
  20 +import org.springframework.security.access.prepost.PreAuthorize;
  21 +import org.springframework.validation.annotation.Validated;
  22 +import org.springframework.web.bind.annotation.*;
  23 +
  24 +import java.util.List;
  25 +import java.util.stream.Collectors;
  26 +
  27 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  28 +
  29 +@Tag(name = "管理后台 - MES 质检方案-检测指标项")
  30 +@RestController
  31 +@RequestMapping("/mes/qc/template/indicator")
  32 +@Validated
  33 +public class MesQcTemplateIndicatorController {
  34 +
  35 + @Resource
  36 + private MesQcTemplateService templateService;
  37 + @Resource
  38 + private MesQcIndicatorMapper indicatorMapper;
  39 + @Resource
  40 + private MesMdUnitMeasureMapper unitMeasureMapper;
  41 +
  42 + @PostMapping("/create")
  43 + @Operation(summary = "创建质检方案-检测指标项")
  44 + @PreAuthorize("@ss.hasPermission('mes:qc-template:create')")
  45 + public CommonResult<Long> createTemplateIndicator(@Valid @RequestBody MesQcTemplateIndicatorSaveReqVO createReqVO) {
  46 + return success(templateService.createTemplateIndicator(createReqVO));
  47 + }
  48 +
  49 + @PutMapping("/update")
  50 + @Operation(summary = "更新质检方案-检测指标项")
  51 + @PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
  52 + public CommonResult<Boolean> updateTemplateIndicator(@Valid @RequestBody MesQcTemplateIndicatorSaveReqVO updateReqVO) {
  53 + templateService.updateTemplateIndicator(updateReqVO);
  54 + return success(true);
  55 + }
  56 +
  57 + @DeleteMapping("/delete")
  58 + @Operation(summary = "删除质检方案-检测指标项")
  59 + @Parameter(name = "id", description = "编号", required = true)
  60 + @PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
  61 + public CommonResult<Boolean> deleteTemplateIndicator(@RequestParam("id") Long id) {
  62 + templateService.deleteTemplateIndicator(id);
  63 + return success(true);
  64 + }
  65 +
  66 + @GetMapping("/get")
  67 + @Operation(summary = "获得质检方案-检测指标项")
  68 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  69 + @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
  70 + public CommonResult<MesQcTemplateIndicatorRespVO> getTemplateIndicator(@RequestParam("id") Long id) {
  71 + MesQcTemplateIndicatorDO do0 = templateService.getTemplateIndicator(id);
  72 + return success(convertIndicatorRespVO(do0));
  73 + }
  74 +
  75 + @GetMapping("/page")
  76 + @Operation(summary = "获得质检方案-检测指标项分页")
  77 + @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
  78 + public CommonResult<PageResult<MesQcTemplateIndicatorRespVO>> getTemplateIndicatorPage(
  79 + @Valid MesQcTemplateIndicatorPageReqVO pageReqVO) {
  80 + PageResult<MesQcTemplateIndicatorDO> pageResult = templateService.getTemplateIndicatorPage(pageReqVO);
  81 + List<MesQcTemplateIndicatorRespVO> voList = pageResult.getList().stream()
  82 + .map(this::convertIndicatorRespVO)
  83 + .collect(Collectors.toList());
  84 + return success(new PageResult<>(voList, pageResult.getTotal()));
  85 + }
  86 +
  87 + // TODO @AI:参考别的模块,buildVO;包括注释;
  88 + /**
  89 + * DO → RespVO:JOIN mes_qc_indicator 补充检测项信息,JOIN mes_md_unit_measure 补充单位名称
  90 + */
  91 + private MesQcTemplateIndicatorRespVO convertIndicatorRespVO(MesQcTemplateIndicatorDO do0) {
  92 + // TODO @AI:应该是批量的操作;
  93 + if (do0 == null) {
  94 + return null;
  95 + }
  96 + MesQcTemplateIndicatorRespVO vo = BeanUtils.toBean(do0, MesQcTemplateIndicatorRespVO.class);
  97 + // JOIN 质检指标
  98 + if (do0.getIndicatorId() != null) {
  99 + MesQcIndicatorDO indicator = indicatorMapper.selectById(do0.getIndicatorId());
  100 + if (indicator != null) {
  101 + vo.setIndicatorCode(indicator.getCode());
  102 + vo.setIndicatorName(indicator.getName());
  103 + vo.setIndicatorType(indicator.getType());
  104 + vo.setIndicatorTool(indicator.getTool());
  105 + }
  106 + }
  107 + // JOIN 计量单位
  108 + if (do0.getUnitMeasureId() != null) {
  109 + MesMdUnitMeasureDO unit = unitMeasureMapper.selectById(do0.getUnitMeasureId());
  110 + if (unit != null) {
  111 + vo.setUnitMeasureName(unit.getName());
  112 + }
  113 + }
  114 + return vo;
  115 + }
  116 +
  117 +}
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/template/MesQcTemplateItemController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.controller.admin.qc.template;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  6 +import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemPageReqVO;
  7 +import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemRespVO;
  8 +import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO;
  9 +import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
  10 +import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
  11 +import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateItemDO;
  12 +import cn.iocoder.yudao.module.mes.dal.mysql.md.item.MesMdItemMapper;
  13 +import cn.iocoder.yudao.module.mes.dal.mysql.md.unitmeasure.MesMdUnitMeasureMapper;
  14 +import cn.iocoder.yudao.module.mes.service.qc.MesQcTemplateService;
  15 +import io.swagger.v3.oas.annotations.Operation;
  16 +import io.swagger.v3.oas.annotations.Parameter;
  17 +import io.swagger.v3.oas.annotations.tags.Tag;
  18 +import jakarta.annotation.Resource;
  19 +import jakarta.validation.Valid;
  20 +import org.springframework.security.access.prepost.PreAuthorize;
  21 +import org.springframework.validation.annotation.Validated;
  22 +import org.springframework.web.bind.annotation.*;
  23 +
  24 +import java.util.List;
  25 +import java.util.stream.Collectors;
  26 +
  27 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  28 +
  29 +@Tag(name = "管理后台 - MES 质检方案-产品关联")
  30 +@RestController
  31 +@RequestMapping("/mes/qc/template/item")
  32 +@Validated
  33 +public class MesQcTemplateItemController {
  34 +
  35 + @Resource
  36 + private MesQcTemplateService templateService;
  37 + @Resource
  38 + private MesMdItemMapper mdItemMapper;
  39 + @Resource
  40 + private MesMdUnitMeasureMapper unitMeasureMapper;
  41 +
  42 + @PostMapping("/create")
  43 + @Operation(summary = "创建质检方案-产品关联")
  44 + @PreAuthorize("@ss.hasPermission('mes:qc-template:create')")
  45 + public CommonResult<Long> createTemplateItem(@Valid @RequestBody MesQcTemplateItemSaveReqVO createReqVO) {
  46 + return success(templateService.createTemplateItem(createReqVO));
  47 + }
  48 +
  49 + @PutMapping("/update")
  50 + @Operation(summary = "更新质检方案-产品关联")
  51 + @PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
  52 + public CommonResult<Boolean> updateTemplateItem(@Valid @RequestBody MesQcTemplateItemSaveReqVO updateReqVO) {
  53 + templateService.updateTemplateItem(updateReqVO);
  54 + return success(true);
  55 + }
  56 +
  57 + @DeleteMapping("/delete")
  58 + @Operation(summary = "删除质检方案-产品关联")
  59 + @Parameter(name = "id", description = "编号", required = true)
  60 + @PreAuthorize("@ss.hasPermission('mes:qc-template:update')")
  61 + public CommonResult<Boolean> deleteTemplateItem(@RequestParam("id") Long id) {
  62 + templateService.deleteTemplateItem(id);
  63 + return success(true);
  64 + }
  65 +
  66 + @GetMapping("/get")
  67 + @Operation(summary = "获得质检方案-产品关联")
  68 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  69 + @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
  70 + public CommonResult<MesQcTemplateItemRespVO> getTemplateItem(@RequestParam("id") Long id) {
  71 + MesQcTemplateItemDO do0 = templateService.getTemplateItem(id);
  72 + return success(convertItemRespVO(do0));
  73 + }
  74 +
  75 + @GetMapping("/page")
  76 + @Operation(summary = "获得质检方案-产品关联分页")
  77 + @PreAuthorize("@ss.hasPermission('mes:qc-template:query')")
  78 + public CommonResult<PageResult<MesQcTemplateItemRespVO>> getTemplateItemPage(
  79 + @Valid MesQcTemplateItemPageReqVO pageReqVO) {
  80 + PageResult<MesQcTemplateItemDO> pageResult = templateService.getTemplateItemPage(pageReqVO);
  81 + List<MesQcTemplateItemRespVO> voList = pageResult.getList().stream()
  82 + .map(this::convertItemRespVO)
  83 + .collect(Collectors.toList());
  84 + return success(new PageResult<>(voList, pageResult.getTotal()));
  85 + }
  86 +
  87 + // TODO @AI:参考别的模块,buildVO;包括注释;
  88 + // 质检方案-产品关联的 VO 构建方法
  89 + /**
  90 + * DO → RespVO:JOIN mes_md_item 补充物料信息,JOIN mes_md_unit_measure 补充单位名称
  91 + */
  92 + private MesQcTemplateItemRespVO convertItemRespVO(MesQcTemplateItemDO do0) {
  93 + if (do0 == null) {
  94 + return null;
  95 + }
  96 + MesQcTemplateItemRespVO vo = BeanUtils.toBean(do0, MesQcTemplateItemRespVO.class);
  97 + if (do0.getItemId() != null) {
  98 + MesMdItemDO item = mdItemMapper.selectById(do0.getItemId());
  99 + if (item != null) {
  100 + vo.setItemCode(item.getCode());
  101 + vo.setItemName(item.getName());
  102 + vo.setSpecification(item.getSpecification());
  103 + // 查询计量单位名称
  104 + if (item.getUnitMeasureId() != null) {
  105 + MesMdUnitMeasureDO unit = unitMeasureMapper.selectById(item.getUnitMeasureId());
  106 + if (unit != null) {
  107 + vo.setUnitMeasureName(unit.getName());
  108 + }
  109 + }
  110 + }
  111 + }
  112 + return vo;
  113 + }
  114 +
  115 +}
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/template/vo/MesQcTemplatePageReqVO.java
@@ -6,8 +6,6 @@ import lombok.Data; @@ -6,8 +6,6 @@ import lombok.Data;
6 import lombok.EqualsAndHashCode; 6 import lombok.EqualsAndHashCode;
7 import lombok.ToString; 7 import lombok.ToString;
8 8
9 -import java.util.List;  
10 -  
11 @Schema(description = "管理后台 - MES 质检方案分页 Request VO") 9 @Schema(description = "管理后台 - MES 质检方案分页 Request VO")
12 @Data 10 @Data
13 @EqualsAndHashCode(callSuper = true) 11 @EqualsAndHashCode(callSuper = true)
@@ -20,8 +18,8 @@ public class MesQcTemplatePageReqVO extends PageParam { @@ -20,8 +18,8 @@ public class MesQcTemplatePageReqVO extends PageParam {
20 @Schema(description = "方案名称", example = "出货检验") 18 @Schema(description = "方案名称", example = "出货检验")
21 private String name; 19 private String name;
22 20
23 - @Schema(description = "检测种类", example = "[1, 3]")  
24 - private List<Integer> types; 21 + @Schema(description = "检测种类", example = "1")
  22 + private Integer type;
25 23
26 @Schema(description = "是否启用", example = "true") 24 @Schema(description = "是否启用", example = "true")
27 private Boolean enableFlag; 25 private Boolean enableFlag;
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/template/vo/item/MesQcTemplateItemSaveReqVO.java
@@ -24,16 +24,13 @@ public class MesQcTemplateItemSaveReqVO { @@ -24,16 +24,13 @@ public class MesQcTemplateItemSaveReqVO {
24 @Schema(description = "最低检测数", example = "5") 24 @Schema(description = "最低检测数", example = "5")
25 private Integer quantityCheck; 25 private Integer quantityCheck;
26 26
27 - // TODO @AI:VO 里,(0=不启用) 去掉  
28 - @Schema(description = "最大不合格数(0=不启用)", example = "0") 27 + @Schema(description = "最大不合格数", example = "0")
29 private Integer quantityUnqualified; 28 private Integer quantityUnqualified;
30 29
31 - // TODO @AI:VO 里,(0=不允许) 去掉  
32 - @Schema(description = "最大致命缺陷率(%,0=不允许)", example = "0") 30 + @Schema(description = "最大致命缺陷率(%)", example = "0")
33 private BigDecimal criticalRate; 31 private BigDecimal criticalRate;
34 32
35 - // TODO @AI:VO 里,(0=不允许) 去掉  
36 - @Schema(description = "最大严重缺陷率(%,0=不允许)", example = "0") 33 + @Schema(description = "最大严重缺陷率(%)", example = "0")
37 private BigDecimal majorRate; 34 private BigDecimal majorRate;
38 35
39 @Schema(description = "最大轻微缺陷率(%)", example = "100") 36 @Schema(description = "最大轻微缺陷率(%)", example = "100")
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/MesQcTemplateMapper.java
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.mes.dal.mysql.qc; @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.mes.dal.mysql.qc;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  6 +import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
6 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO; 7 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO;
7 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateDO; 8 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateDO;
8 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
@@ -22,10 +23,8 @@ public interface MesQcTemplateMapper extends BaseMapperX&lt;MesQcTemplateDO&gt; { @@ -22,10 +23,8 @@ public interface MesQcTemplateMapper extends BaseMapperX&lt;MesQcTemplateDO&gt; {
22 .likeIfPresent(MesQcTemplateDO::getCode, reqVO.getCode()) 23 .likeIfPresent(MesQcTemplateDO::getCode, reqVO.getCode())
23 .likeIfPresent(MesQcTemplateDO::getName, reqVO.getName()) 24 .likeIfPresent(MesQcTemplateDO::getName, reqVO.getName())
24 .orderByDesc(MesQcTemplateDO::getId); 25 .orderByDesc(MesQcTemplateDO::getId);
25 - // types: 用 FIND_IN_SET 精确匹配逗号分隔字段(取第一个值过滤)  
26 - // TODO @AI:MyBatisUtils 的 findInSet  
27 - if (reqVO.getTypes() != null && !reqVO.getTypes().isEmpty()) {  
28 - query.apply("FIND_IN_SET({0}, types) > 0", reqVO.getTypes().get(0)); 26 + if (reqVO.getType() != null) {
  27 + query.apply(MyBatisUtils.findInSet("types", reqVO.getType()));
29 } 28 }
30 query.eqIfPresent(MesQcTemplateDO::getEnableFlag, reqVO.getEnableFlag()); 29 query.eqIfPresent(MesQcTemplateDO::getEnableFlag, reqVO.getEnableFlag());
31 return selectPage(reqVO, query); 30 return selectPage(reqVO, query);
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
@@ -146,6 +146,21 @@ public interface ErrorCodeConstants { @@ -146,6 +146,21 @@ public interface ErrorCodeConstants {
146 146
147 // ========== MES 生产管理-工艺路线(1-040-501-000) ========== 147 // ========== MES 生产管理-工艺路线(1-040-501-000) ==========
148 ErrorCode PRO_ROUTE_NOT_EXISTS = new ErrorCode(1_040_501_000, "工艺路线不存在"); 148 ErrorCode PRO_ROUTE_NOT_EXISTS = new ErrorCode(1_040_501_000, "工艺路线不存在");
  149 + ErrorCode PRO_ROUTE_CODE_DUPLICATE = new ErrorCode(1_040_501_001, "工艺路线编码已存在");
  150 + ErrorCode PRO_ROUTE_ENABLE_NO_PROCESS = new ErrorCode(1_040_501_002, "请先添加组成工序");
  151 + ErrorCode PRO_ROUTE_ENABLE_NO_KEY_PROCESS = new ErrorCode(1_040_501_003, "工艺路线必须要有关键工序");
  152 + ErrorCode PRO_ROUTE_ENABLE_PRODUCT_NO_BOM = new ErrorCode(1_040_501_004, "产品 {} 未配置工序的 BOM 消耗");
  153 + // ========== MES 生产管理-工艺路线工序(1-040-501-100) ==========
  154 + ErrorCode PRO_ROUTE_PROCESS_NOT_EXISTS = new ErrorCode(1_040_501_100, "工艺路线工序不存在");
  155 + ErrorCode PRO_ROUTE_PROCESS_SORT_DUPLICATE = new ErrorCode(1_040_501_101, "序号已存在");
  156 + ErrorCode PRO_ROUTE_PROCESS_DUPLICATE = new ErrorCode(1_040_501_102, "不能重复添加工序");
  157 + ErrorCode PRO_ROUTE_PROCESS_KEY_DUPLICATE = new ErrorCode(1_040_501_103, "当前工艺路线已经指定过关键工序");
  158 + // ========== MES 生产管理-工艺路线产品(1-040-501-200) ==========
  159 + ErrorCode PRO_ROUTE_PRODUCT_NOT_EXISTS = new ErrorCode(1_040_501_200, "工艺路线产品不存在");
  160 + ErrorCode PRO_ROUTE_PRODUCT_ITEM_DUPLICATE = new ErrorCode(1_040_501_201, "此产品已配置了工艺路线");
  161 + // ========== MES 生产管理-工艺路线产品BOM(1-040-501-300) ==========
  162 + ErrorCode PRO_ROUTE_PRODUCT_BOM_NOT_EXISTS = new ErrorCode(1_040_501_300, "工艺路线产品 BOM 不存在");
  163 + ErrorCode PRO_ROUTE_PRODUCT_BOM_DUPLICATE = new ErrorCode(1_040_501_301, "当前 BOM 物料在此工序已经配置过");
149 164
150 // ========== MES 生产管理-生产工单(1-040-502-000) ========== 165 // ========== MES 生产管理-生产工单(1-040-502-000) ==========
151 ErrorCode PRO_WORK_ORDER_NOT_EXISTS = new ErrorCode(1_040_502_000, "生产工单不存在"); 166 ErrorCode PRO_WORK_ORDER_NOT_EXISTS = new ErrorCode(1_040_502_000, "生产工单不存在");
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/pro/MesProLinkTypeEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.enums.pro;
  2 +
  3 +import cn.iocoder.yudao.framework.common.core.ArrayValuable;
  4 +import lombok.AllArgsConstructor;
  5 +import lombok.Getter;
  6 +
  7 +import java.util.Arrays;
  8 +
  9 +/**
  10 + * MES 工序关系类型枚举
  11 + *
  12 + * @author 芋道源码
  13 + */
  14 +@Getter
  15 +@AllArgsConstructor
  16 +public enum MesProLinkTypeEnum implements ArrayValuable<Integer> {
  17 +
  18 + // TODO @AI:START_START,类似这样的缩写;
  19 + SS(0, "开始-开始"),
  20 + FF(1, "结束-结束"),
  21 + SF(2, "开始-结束"),
  22 + FS(3, "结束-开始");
  23 +
  24 + public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesProLinkTypeEnum::getType).toArray(Integer[]::new);
  25 +
  26 + /**
  27 + * 类型值
  28 + */
  29 + private final Integer type;
  30 + /**
  31 + * 类型名
  32 + */
  33 + private final String name;
  34 +
  35 + @Override
  36 + public Integer[] array() {
  37 + return ARRAYS;
  38 + }
  39 +
  40 +}
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/MesQcTemplateService.java
@@ -2,15 +2,14 @@ package cn.iocoder.yudao.module.mes.service.qc; @@ -2,15 +2,14 @@ package cn.iocoder.yudao.module.mes.service.qc;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO; 4 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO;
5 -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateRespVO;  
6 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateSaveReqVO; 5 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateSaveReqVO;
7 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorPageReqVO; 6 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorPageReqVO;
8 -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorRespVO;  
9 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorSaveReqVO; 7 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorSaveReqVO;
10 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemPageReqVO; 8 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemPageReqVO;
11 -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemRespVO;  
12 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO; 9 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO;
13 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateDO; 10 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateDO;
  11 +import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateIndicatorDO;
  12 +import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateItemDO;
14 import jakarta.validation.Valid; 13 import jakarta.validation.Valid;
15 14
16 import java.util.Collection; 15 import java.util.Collection;
@@ -54,9 +53,9 @@ public interface MesQcTemplateService { @@ -54,9 +53,9 @@ public interface MesQcTemplateService {
54 * 获得质检方案 53 * 获得质检方案
55 * 54 *
56 * @param id 编号 55 * @param id 编号
57 - * @return 质检方案 RespVO(含 types List、enableFlag Boolean) 56 + * @return 质检方案
58 */ 57 */
59 - MesQcTemplateRespVO getTemplate(Long id); 58 + MesQcTemplateDO getTemplate(Long id);
60 59
61 /** 60 /**
62 * 获得质检方案分页 61 * 获得质检方案分页
@@ -64,12 +63,12 @@ public interface MesQcTemplateService { @@ -64,12 +63,12 @@ public interface MesQcTemplateService {
64 * @param pageReqVO 分页查询 63 * @param pageReqVO 分页查询
65 * @return 质检方案分页 64 * @return 质检方案分页
66 */ 65 */
67 - PageResult<MesQcTemplateRespVO> getTemplatePage(MesQcTemplatePageReqVO pageReqVO); 66 + PageResult<MesQcTemplateDO> getTemplatePage(MesQcTemplatePageReqVO pageReqVO);
68 67
69 /** 68 /**
70 * 获得质检方案列表(用于下拉选择) 69 * 获得质检方案列表(用于下拉选择)
71 * 70 *
72 - * @return 质检方案列表(DO,简单列表场景) 71 + * @return 质检方案列表
73 */ 72 */
74 List<MesQcTemplateDO> getTemplateList(); 73 List<MesQcTemplateDO> getTemplateList();
75 74
@@ -119,17 +118,17 @@ public interface MesQcTemplateService { @@ -119,17 +118,17 @@ public interface MesQcTemplateService {
119 * 获得检测指标项 118 * 获得检测指标项
120 * 119 *
121 * @param id 编号 120 * @param id 编号
122 - * @return 检测指标项(含 JOIN 的指标信息) 121 + * @return 检测指标项
123 */ 122 */
124 - MesQcTemplateIndicatorRespVO getTemplateIndicator(Long id); 123 + MesQcTemplateIndicatorDO getTemplateIndicator(Long id);
125 124
126 /** 125 /**
127 * 获得检测指标项分页 126 * 获得检测指标项分页
128 * 127 *
129 * @param pageReqVO 分页查询 128 * @param pageReqVO 分页查询
130 - * @return 检测指标项分页(含 JOIN 的指标信息) 129 + * @return 检测指标项分页
131 */ 130 */
132 - PageResult<MesQcTemplateIndicatorRespVO> getTemplateIndicatorPage(MesQcTemplateIndicatorPageReqVO pageReqVO); 131 + PageResult<MesQcTemplateIndicatorDO> getTemplateIndicatorPage(MesQcTemplateIndicatorPageReqVO pageReqVO);
133 132
134 // ========== 质检方案-产品关联 ========== 133 // ========== 质检方案-产品关联 ==========
135 134
@@ -159,16 +158,16 @@ public interface MesQcTemplateService { @@ -159,16 +158,16 @@ public interface MesQcTemplateService {
159 * 获得产品关联 158 * 获得产品关联
160 * 159 *
161 * @param id 编号 160 * @param id 编号
162 - * @return 产品关联(含 JOIN 的物料信息) 161 + * @return 产品关联
163 */ 162 */
164 - MesQcTemplateItemRespVO getTemplateItem(Long id); 163 + MesQcTemplateItemDO getTemplateItem(Long id);
165 164
166 /** 165 /**
167 * 获得产品关联分页 166 * 获得产品关联分页
168 * 167 *
169 * @param pageReqVO 分页查询 168 * @param pageReqVO 分页查询
170 - * @return 产品关联分页(含 JOIN 的物料信息) 169 + * @return 产品关联分页
171 */ 170 */
172 - PageResult<MesQcTemplateItemRespVO> getTemplateItemPage(MesQcTemplateItemPageReqVO pageReqVO); 171 + PageResult<MesQcTemplateItemDO> getTemplateItemPage(MesQcTemplateItemPageReqVO pageReqVO);
173 172
174 } 173 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/MesQcTemplateServiceImpl.java
@@ -5,22 +5,14 @@ import cn.hutool.core.util.ObjUtil; @@ -5,22 +5,14 @@ import cn.hutool.core.util.ObjUtil;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO; 7 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO;
8 -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateRespVO;  
9 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateSaveReqVO; 8 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplateSaveReqVO;
10 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorPageReqVO; 9 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorPageReqVO;
11 -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorRespVO;  
12 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorSaveReqVO; 10 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.indicator.MesQcTemplateIndicatorSaveReqVO;
13 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemPageReqVO; 11 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemPageReqVO;
14 -import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemRespVO;  
15 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO; 12 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO;
16 -import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;  
17 -import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;  
18 -import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcIndicatorDO;  
19 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateDO; 13 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateDO;
20 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateIndicatorDO; 14 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateIndicatorDO;
21 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateItemDO; 15 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.MesQcTemplateItemDO;
22 -import cn.iocoder.yudao.module.mes.dal.mysql.md.item.MesMdItemMapper;  
23 -import cn.iocoder.yudao.module.mes.dal.mysql.md.unitmeasure.MesMdUnitMeasureMapper;  
24 import cn.iocoder.yudao.module.mes.dal.mysql.qc.MesQcIndicatorMapper; 16 import cn.iocoder.yudao.module.mes.dal.mysql.qc.MesQcIndicatorMapper;
25 import cn.iocoder.yudao.module.mes.dal.mysql.qc.MesQcTemplateIndicatorMapper; 17 import cn.iocoder.yudao.module.mes.dal.mysql.qc.MesQcTemplateIndicatorMapper;
26 import cn.iocoder.yudao.module.mes.dal.mysql.qc.MesQcTemplateItemMapper; 18 import cn.iocoder.yudao.module.mes.dal.mysql.qc.MesQcTemplateItemMapper;
@@ -33,7 +25,6 @@ import org.springframework.validation.annotation.Validated; @@ -33,7 +25,6 @@ import org.springframework.validation.annotation.Validated;
33 import java.util.Collection; 25 import java.util.Collection;
34 import java.util.Collections; 26 import java.util.Collections;
35 import java.util.List; 27 import java.util.List;
36 -import java.util.stream.Collectors;  
37 28
38 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 29 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
39 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; 30 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
@@ -55,10 +46,6 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -55,10 +46,6 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
55 private MesQcTemplateItemMapper templateItemMapper; 46 private MesQcTemplateItemMapper templateItemMapper;
56 @Resource 47 @Resource
57 private MesQcIndicatorMapper indicatorMapper; 48 private MesQcIndicatorMapper indicatorMapper;
58 - @Resource  
59 - private MesMdItemMapper mdItemMapper;  
60 - @Resource  
61 - private MesMdUnitMeasureMapper unitMeasureMapper;  
62 49
63 // ========== 质检方案主表 ========== 50 // ========== 质检方案主表 ==========
64 51
@@ -112,27 +99,14 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -112,27 +99,14 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
112 } 99 }
113 } 100 }
114 101
115 - // TODO @AI:返回 DO;交给 controller 拼接  
116 @Override 102 @Override
117 - public MesQcTemplateRespVO getTemplate(Long id) {  
118 - MesQcTemplateDO do0 = templateMapper.selectById(id);  
119 - if (do0 == null) {  
120 - return null;  
121 - }  
122 - // types/enableFlag 由 TypeHandler/MyBatis-Plus 自动映射,直接 toBean 即可  
123 - return BeanUtils.toBean(do0, MesQcTemplateRespVO.class); 103 + public MesQcTemplateDO getTemplate(Long id) {
  104 + return templateMapper.selectById(id);
124 } 105 }
125 106
126 - // TODO @AI:返回 DO;交给 controller 拼接  
127 @Override 107 @Override
128 - public PageResult<MesQcTemplateRespVO> getTemplatePage(MesQcTemplatePageReqVO pageReqVO) {  
129 - PageResult<MesQcTemplateDO> pageResult = templateMapper.selectPage(pageReqVO);  
130 - return new PageResult<>(  
131 - pageResult.getList().stream()  
132 - .map(do0 -> BeanUtils.toBean(do0, MesQcTemplateRespVO.class))  
133 - .collect(Collectors.toList()),  
134 - pageResult.getTotal()  
135 - ); 108 + public PageResult<MesQcTemplateDO> getTemplatePage(MesQcTemplatePageReqVO pageReqVO) {
  109 + return templateMapper.selectPage(pageReqVO);
136 } 110 }
137 111
138 @Override 112 @Override
@@ -184,46 +158,13 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -184,46 +158,13 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
184 } 158 }
185 159
186 @Override 160 @Override
187 - public MesQcTemplateIndicatorRespVO getTemplateIndicator(Long id) {  
188 - MesQcTemplateIndicatorDO do0 = templateIndicatorMapper.selectById(id);  
189 - if (do0 == null) {  
190 - return null;  
191 - }  
192 - return convertIndicatorRespVO(do0); 161 + public MesQcTemplateIndicatorDO getTemplateIndicator(Long id) {
  162 + return templateIndicatorMapper.selectById(id);
193 } 163 }
194 164
195 @Override 165 @Override
196 - public PageResult<MesQcTemplateIndicatorRespVO> getTemplateIndicatorPage(MesQcTemplateIndicatorPageReqVO pageReqVO) {  
197 - PageResult<MesQcTemplateIndicatorDO> pageResult = templateIndicatorMapper.selectPage(pageReqVO);  
198 - return new PageResult<>(  
199 - pageResult.getList().stream().map(this::convertIndicatorRespVO).collect(Collectors.toList()),  
200 - pageResult.getTotal()  
201 - );  
202 - }  
203 -  
204 - /**  
205 - * DO → RespVO:JOIN mes_qc_indicator 补充检测项信息,JOIN mes_md_unit_measure 补充单位名称  
206 - */  
207 - private MesQcTemplateIndicatorRespVO convertIndicatorRespVO(MesQcTemplateIndicatorDO do0) {  
208 - MesQcTemplateIndicatorRespVO vo = BeanUtils.toBean(do0, MesQcTemplateIndicatorRespVO.class);  
209 - // JOIN 质检指标  
210 - if (do0.getIndicatorId() != null) {  
211 - MesQcIndicatorDO indicator = indicatorMapper.selectById(do0.getIndicatorId());  
212 - if (indicator != null) {  
213 - vo.setIndicatorCode(indicator.getCode());  
214 - vo.setIndicatorName(indicator.getName());  
215 - vo.setIndicatorType(indicator.getType());  
216 - vo.setIndicatorTool(indicator.getTool());  
217 - }  
218 - }  
219 - // JOIN 计量单位  
220 - if (do0.getUnitMeasureId() != null) {  
221 - MesMdUnitMeasureDO unit = unitMeasureMapper.selectById(do0.getUnitMeasureId());  
222 - if (unit != null) {  
223 - vo.setUnitMeasureName(unit.getName());  
224 - }  
225 - }  
226 - return vo; 166 + public PageResult<MesQcTemplateIndicatorDO> getTemplateIndicatorPage(MesQcTemplateIndicatorPageReqVO pageReqVO) {
  167 + return templateIndicatorMapper.selectPage(pageReqVO);
227 } 168 }
228 169
229 // ========== 质检方案-产品关联 ========== 170 // ========== 质检方案-产品关联 ==========
@@ -276,44 +217,13 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -276,44 +217,13 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
276 } 217 }
277 218
278 @Override 219 @Override
279 - public MesQcTemplateItemRespVO getTemplateItem(Long id) {  
280 - MesQcTemplateItemDO do0 = templateItemMapper.selectById(id);  
281 - if (do0 == null) {  
282 - return null;  
283 - }  
284 - return convertItemRespVO(do0); 220 + public MesQcTemplateItemDO getTemplateItem(Long id) {
  221 + return templateItemMapper.selectById(id);
285 } 222 }
286 223
287 @Override 224 @Override
288 - public PageResult<MesQcTemplateItemRespVO> getTemplateItemPage(MesQcTemplateItemPageReqVO pageReqVO) {  
289 - PageResult<MesQcTemplateItemDO> pageResult = templateItemMapper.selectPage(pageReqVO);  
290 - return new PageResult<>(  
291 - pageResult.getList().stream().map(this::convertItemRespVO).collect(Collectors.toList()),  
292 - pageResult.getTotal()  
293 - );  
294 - }  
295 -  
296 - /**  
297 - * DO → RespVO:JOIN mes_md_item 补充物料信息,JOIN mes_md_unit_measure 补充单位名称  
298 - */  
299 - private MesQcTemplateItemRespVO convertItemRespVO(MesQcTemplateItemDO do0) {  
300 - MesQcTemplateItemRespVO vo = BeanUtils.toBean(do0, MesQcTemplateItemRespVO.class);  
301 - if (do0.getItemId() != null) {  
302 - MesMdItemDO item = mdItemMapper.selectById(do0.getItemId());  
303 - if (item != null) {  
304 - vo.setItemCode(item.getCode());  
305 - vo.setItemName(item.getName());  
306 - vo.setSpecification(item.getSpecification());  
307 - // 查询计量单位名称  
308 - if (item.getUnitMeasureId() != null) {  
309 - MesMdUnitMeasureDO unit = unitMeasureMapper.selectById(item.getUnitMeasureId());  
310 - if (unit != null) {  
311 - vo.setUnitMeasureName(unit.getName());  
312 - }  
313 - }  
314 - }  
315 - }  
316 - return vo; 225 + public PageResult<MesQcTemplateItemDO> getTemplateItemPage(MesQcTemplateItemPageReqVO pageReqVO) {
  226 + return templateItemMapper.selectPage(pageReqVO);
317 } 227 }
318 228
319 } 229 }