From 5072520172e8f45e3ccb8afc26cf0c8186ba4cdd Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 19 十月 2026 16:31:42 +0800
Subject: [PATCH] refactor(mes): 重构质量管理和批次绑定功能
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/seedquality/MesQcSeedQualityController.java | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 104 insertions(+), 1 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/seedquality/MesQcSeedQualityController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/seedquality/MesQcSeedQualityController.java
index d9c5f98..65ec3f5 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/seedquality/MesQcSeedQualityController.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/seedquality/MesQcSeedQualityController.java
@@ -6,7 +6,16 @@
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualitySubmitReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityApprovalReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityRetestReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityBatchApprovalReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityBatchRetestReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityScopeRetestReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedIndicatorRangeSaveReqVO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.bagcode.MesProBagCodeDO;
+import cn.iocoder.yudao.module.mes.dal.mysql.pro.bagcode.MesProBagCodeMapper;
import cn.iocoder.yudao.module.mes.service.qc.seedquality.MesQcSeedQualityService;
+import cn.iocoder.yudao.module.mes.service.qc.seedquality.MesQcSeedIndicatorRangeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
@@ -14,12 +23,31 @@
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "绠$悊鍚庡彴 - MES 绉嶅瓙璐ㄦ")
@RestController @RequestMapping("/mes/qc/seed-quality") @Validated
public class MesQcSeedQualityController {
@Resource private MesQcSeedQualityService service;
+ @Resource private MesQcSeedIndicatorRangeService rangeService;
+ @Resource private MesProBagCodeMapper bagCodeMapper;
+ @GetMapping("/ranges") @Operation(summary = "鑾峰緱绉嶅瓙璐ㄦ鍚堟牸鑼冨洿")
+ @PreAuthorize("@ss.hasAnyPermissions('mes:qc-seed-quality:submit', 'mes:qc-seed-quality:retest', 'mes:qc-seed-range:query')")
+ public CommonResult<java.util.List<cn.iocoder.yudao.module.mes.dal.dataobject.qc.seedquality.MesQcSeedIndicatorRangeDO>> ranges() {
+ return success(rangeService.getRanges());
+ }
+
+ @PutMapping("/ranges") @Operation(summary = "閰嶇疆绉嶅瓙璐ㄦ鍚堟牸鑼冨洿")
+ @PreAuthorize("@ss.hasPermission('mes:qc-seed-range:update')")
+ public CommonResult<Boolean> saveRanges(@Valid @RequestBody MesQcSeedIndicatorRangeSaveReqVO reqVO) {
+ rangeService.saveRanges(reqVO);
+ return success(true);
+ }
@GetMapping("/resolve")
@Operation(summary = "瑙f瀽寰呰川妫�琚嬬爜鍙婄‘璁よ琚嬭川妫�缁撴灉")
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:submit')")
@@ -30,7 +58,30 @@
@Operation(summary = "鑾峰緱绉嶅瓙璐ㄦ璁板綍鍒嗛〉")
@PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:query')")
public CommonResult<PageResult<MesQcSeedQualityRespVO>> getQualityPage(@Valid MesQcSeedQualityPageReqVO pageReqVO) {
- return success(BeanUtils.toBean(service.getQualityPage(pageReqVO), MesQcSeedQualityRespVO.class));
+ PageResult<MesQcSeedQualityRespVO> page = BeanUtils.toBean(
+ service.getQualityPage(pageReqVO), MesQcSeedQualityRespVO.class);
+ List<String> codes = page.getList().stream().map(MesQcSeedQualityRespVO::getCode)
+ .filter(java.util.Objects::nonNull).distinct().toList();
+ if (!codes.isEmpty()) {
+ Map<String, MesProBagCodeDO> bagMap = bagCodeMapper.selectList(MesProBagCodeDO::getCode, codes).stream()
+ .collect(Collectors.toMap(MesProBagCodeDO::getCode, Function.identity(), (first, ignored) -> first));
+ page.getList().forEach(record -> {
+ MesProBagCodeDO bag = bagMap.get(record.getCode());
+ if (bag != null) record.setPalletCode(bag.getPalletCode());
+ });
+ }
+ return success(page);
+ }
+
+ @GetMapping("/indicators") @Operation(summary = "鑾峰緱绉嶅瓙璐ㄦ鏈�鏂版寚鏍�")
+ @PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:query')")
+ public CommonResult<java.util.List<cn.iocoder.yudao.module.mes.dal.dataobject.qc.seedquality.MesQcSeedQualityIndicatorDO>> indicators(@RequestParam Long id) {
+ return success(service.getIndicatorsByQualityId(id));
+ }
+ @GetMapping("/actions") @Operation(summary = "鑾峰緱绉嶅瓙璐ㄦ娴佺▼鐣欑棔")
+ @PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:query')")
+ public CommonResult<java.util.List<cn.iocoder.yudao.module.mes.dal.dataobject.qc.seedquality.MesQcSeedQualityActionDO>> actions(@RequestParam Long id) {
+ return success(service.getActions(id));
}
@PostMapping("/submit") @Operation(summary = "鎻愪氦绉嶅瓙璐ㄦ")
@@ -42,4 +93,56 @@
public CommonResult<java.util.Map<String, Object>> submitGroup(@Valid @RequestBody cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityGroupSubmitReqVO reqVO) {
return success(service.submitGroup(reqVO));
}
+
+ @PostMapping("/retest") @Operation(summary = "绉嶅瓙璐ㄦ澶嶆")
+ @PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:retest')")
+ public CommonResult<Boolean> retest(@RequestParam Long id, @Valid @RequestBody MesQcSeedQualityRetestReqVO reqVO) {
+ service.retest(id, reqVO);
+ return success(true);
+ }
+
+ @PostMapping("/retest-batch") @Operation(summary = "鍚屾壒娆$瀛愭壒閲忓妫�鎴栭噸鏂板垵妫�")
+ @PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:retest')")
+ public CommonResult<Boolean> retestBatch(@Valid @RequestBody MesQcSeedQualityBatchRetestReqVO reqVO) {
+ service.retestBatch(reqVO);
+ return success(true);
+ }
+
+ @GetMapping("/retest-scope/resolve") @Operation(summary = "鎸夋墭鐩樼爜鎴栫敓浜ф壒娆$爜瑙f瀽寰呮壒閲忚川妫�璁板綍")
+ @PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:retest')")
+ public CommonResult<java.util.Map<String, Object>> resolveRetestScope(@RequestParam String code, @RequestParam String scanType) {
+ return success(service.resolveRetestScope(code, scanType));
+ }
+
+ @PostMapping("/retest-scope") @Operation(summary = "鎸夋墭鐩樼爜鎴栫敓浜ф壒娆$爜鎵归噺澶嶆鎴栭噸鏂板垵妫�")
+ @PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:retest')")
+ public CommonResult<java.util.Map<String, Object>> retestScope(@Valid @RequestBody MesQcSeedQualityScopeRetestReqVO reqVO) {
+ return success(service.retestScope(reqVO));
+ }
+
+ @PostMapping("/process-approve") @Operation(summary = "鍒濇瀹℃牳")
+ @PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:process-approve')")
+ public CommonResult<Boolean> processApprove(@Valid @RequestBody MesQcSeedQualityApprovalReqVO reqVO) {
+ service.processApprove(reqVO.getId(), reqVO.getApproved(), reqVO.getOpinion());
+ return success(true);
+ }
+
+ @PostMapping("/company-approve") @Operation(summary = "澶嶆瀹℃牳骞舵祦杞簱瀛�")
+ @PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:company-approve')")
+ public CommonResult<Boolean> companyApprove(@Valid @RequestBody MesQcSeedQualityApprovalReqVO reqVO) {
+ service.companyApprove(reqVO.getId(), reqVO.getApproved(), reqVO.getOpinion());
+ return success(true);
+ }
+ @PostMapping("/process-approve-batch") @Operation(summary = "鎵归噺鍒濇瀹℃牳")
+ @PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:process-approve')")
+ public CommonResult<Boolean> processApproveBatch(@Valid @RequestBody MesQcSeedQualityBatchApprovalReqVO reqVO) {
+ service.processApproveBatch(reqVO.getIds(), reqVO.getApproved(), reqVO.getOpinion());
+ return success(true);
+ }
+ @PostMapping("/company-approve-batch") @Operation(summary = "鎵归噺澶嶆瀹℃牳骞舵祦杞簱瀛�")
+ @PreAuthorize("@ss.hasPermission('mes:qc-seed-quality:company-approve')")
+ public CommonResult<Boolean> companyApproveBatch(@Valid @RequestBody MesQcSeedQualityBatchApprovalReqVO reqVO) {
+ service.companyApproveBatch(reqVO.getIds(), reqVO.getApproved(), reqVO.getOpinion());
+ return success(true);
+ }
}
--
Gitblit v1.9.3