From ada06626c3f81258e01837d09a10135f8ec3232f Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期六, 28 三月 2026 16:06:30 +0800
Subject: [PATCH] refactor: 生产报工参数与投入表分离

---
 src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java |  105 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 98 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
index 8a1e066..0d68a23 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -9,11 +9,23 @@
 import com.deepoove.poi.XWPFTemplate;
 import com.deepoove.poi.config.Configure;
 import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
 import com.ruoyi.common.utils.HackLoopTableRenderPolicy;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.procurementrecord.service.ProcurementRecordService;
 import com.ruoyi.procurementrecord.utils.StockUtils;
+import com.ruoyi.production.dto.ProductMaterialSkuDto;
+import com.ruoyi.production.dto.ProductionProductRouteItemParamDto;
+import com.ruoyi.production.mapper.ProductOrderMapper;
+import com.ruoyi.production.mapper.ProductionProductRouteItemMapper;
+import com.ruoyi.production.mapper.ProductionProductRouteItemParamMapper;
+import com.ruoyi.production.pojo.ProductionProductInput;
+import com.ruoyi.production.pojo.ProductionProductRouteItemParam;
+import com.ruoyi.production.service.ProductBomService;
+import com.ruoyi.production.service.ProductMaterialService;
+import com.ruoyi.production.service.ProductionProductInputService;
+import com.ruoyi.quality.dto.FinishedPageDto;
+import com.ruoyi.quality.dto.FinishedRatioDto;
+import com.ruoyi.quality.dto.ProcessPageDto;
 import com.ruoyi.quality.dto.QualityInspectDto;
 import com.ruoyi.quality.mapper.QualityInspectMapper;
 import com.ruoyi.quality.mapper.QualityTestStandardMapper;
@@ -33,6 +45,7 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URLEncoder;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -43,17 +56,29 @@
 public class QualityInspectServiceImpl extends ServiceImpl<QualityInspectMapper, QualityInspect> implements IQualityInspectService {
 
     private final StockUtils stockUtils;
-    private QualityInspectMapper qualityInspectMapper;
+    private final QualityInspectMapper qualityInspectMapper;
 
-    private IQualityInspectParamService qualityInspectParamService;
+    private final IQualityInspectParamService qualityInspectParamService;
 
-    private QualityTestStandardMapper qualityTestStandardMapper;
+    private final QualityTestStandardMapper qualityTestStandardMapper;
 
-    private QualityUnqualifiedMapper qualityUnqualifiedMapper;
+    private final QualityUnqualifiedMapper qualityUnqualifiedMapper;
 
-    private SalesLedgerProductMapper salesLedgerProductMapper;
+    private final SalesLedgerProductMapper salesLedgerProductMapper;
 
-    private ProcurementRecordService procurementRecordService;
+    private final ProcurementRecordService procurementRecordService;
+
+    private final ProductionProductRouteItemMapper productionProductRouteItemMapper;
+
+    private final ProductionProductRouteItemParamMapper productionProductRouteItemParamMapper;
+
+    private final ProductOrderMapper productOrderMapper;
+
+    private final ProductionProductInputService productionProductInputService;
+
+    private final ProductMaterialService productMaterialService;
+
+    private final ProductBomService productBomService;
 
     @Override
     public int add(QualityInspectDto qualityInspectDto) {
@@ -157,6 +182,72 @@
     }
 
     @Override
+    public IPage<ProcessPageDto> processPage(Page page, ProcessPageDto processPageDto) {
+        return productionProductRouteItemMapper.processPage(page,processPageDto);
+    }
+
+    @Override
+    public List<ProductionProductRouteItemParamDto> processDetails(ProcessPageDto processPageDto) {
+        List<ProductionProductRouteItemParamDto> resultList = new ArrayList<>();
+
+        // 1. 鏌ヨ鏅�氬弬鏁�
+        List<ProductionProductRouteItemParam> paramList = productionProductRouteItemParamMapper.processDetails(processPageDto.getProductionProductRouteItemId());
+        if (paramList != null && !paramList.isEmpty()) {
+            resultList.addAll(paramList.stream().map(param -> {
+                ProductionProductRouteItemParamDto dto = new ProductionProductRouteItemParamDto();
+                BeanUtils.copyProperties(param, dto);
+                return dto;
+            }).collect(Collectors.toList()));
+        }
+
+        // 2. 鏌ヨ鐗╂枡鎶曞叆
+        // 娉ㄦ剰锛氭垚鍝佹鐨勬椂鍊欏彲鑳芥病鏈夊叿浣撳崟鏉℃姤宸ヨ褰旾D锛屾墍浠ユ垚鍝佹璇︽儏鍙兘闇�瑕佹寜璁㈠崟鏌ヨ锛�
+        // 浣嗚繖閲岀殑processDetails鏄�滆繃绋嬫璇︽儏鈥濓紝閫氬父鏈夊叿浣撴姤宸ヨ褰曘��
+        // 鏍规嵁鎶ュ伐璁板綍 ID 鏌ユ壘瀵瑰簲鐨� ProductMainId
+        Long routeItemId = processPageDto.getProductionProductRouteItemId();
+        if (routeItemId != null) {
+            List<ProductionProductInput> inputList = productionProductInputService.list(Wrappers.<ProductionProductInput>lambdaQuery()
+                    .eq(ProductionProductInput::getRouteItemId, routeItemId));
+
+            if (inputList != null && !inputList.isEmpty()) {
+                for (ProductionProductInput input : inputList) {
+                    ProductionProductRouteItemParamDto dto = new ProductionProductRouteItemParamDto();
+                    dto.setProductId(input.getProductId());
+                    dto.setBomId(input.getBomId());
+                    dto.setQuantity(input.getQuantity());
+                    dto.setProductValue(input.getQuantity());
+                    dto.setUnit(input.getUnit());
+
+                    // 濉厖鐗╂枡淇℃伅
+                    ProductMaterialSkuDto materialSkuDto = productMaterialService.selectProductByModelId(input.getProductId());
+                    if (materialSkuDto != null) {
+                        dto.setParamName(materialSkuDto.getProductName());
+                        dto.setProductName(materialSkuDto.getProductName());
+                        dto.setModel(materialSkuDto.getModel());
+                        dto.setMaterialCode(materialSkuDto.getMaterialCode());
+                    }
+                    String strength = productBomService.strengthById(input.getBomId());
+                    dto.setStrength(strength);
+
+                    resultList.add(dto);
+                }
+            }
+        }
+
+        return resultList;
+    }
+
+    @Override
+    public IPage<FinishedPageDto> finishedPage(Page page, FinishedPageDto finishedPageDto) {
+        return productOrderMapper.finishedPage(page,finishedPageDto);
+    }
+
+    @Override
+    public List<FinishedRatioDto> finishedRatio(FinishedPageDto finishedPageDto) {
+        return productOrderMapper.finishedRatio(finishedPageDto.getProductOrderId());
+    }
+
+    @Override
     public int updateQualityInspect(QualityInspectDto qualityInspectDto) {
         if (ObjectUtils.isNotNull(qualityInspectDto.getQualityInspectParams())) {
             qualityInspectParamService.remove(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, qualityInspectDto.getId()));

--
Gitblit v1.9.3