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 | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 103 insertions(+), 8 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 2111b99..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) {
@@ -82,8 +107,12 @@
@Override
public int submit(QualityInspect inspect) {
QualityInspect qualityInspect = qualityInspectMapper.selectById(inspect.getId());
+ //鎻愪氦鍓嶅繀椤诲垽鏂槸鍚﹀悎鏍�
+ if (ObjectUtils.isNull(qualityInspect.getCheckResult())) {
+ throw new RuntimeException("璇峰厛鍒ゆ柇鏄惁鍚堟牸");
+ }
/*鍒ゆ柇涓嶅悎鏍�*/
- if (ObjectUtils.isNotNull(qualityInspect.getCheckResult()) && qualityInspect.getCheckResult().equals("涓嶅悎鏍�")) {
+ if (qualityInspect.getCheckResult().equals("涓嶅悎鏍�")) {
QualityUnqualified qualityUnqualified = new QualityUnqualified();
BeanUtils.copyProperties(qualityInspect, qualityUnqualified);
qualityUnqualified.setInspectState(0);//寰呭鐞�
@@ -153,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