From 7ecaade511a180ca5feca8bc7448c1a8c257fdca Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 19 五月 2026 11:37:51 +0800
Subject: [PATCH] fix(quality): 修复质量检验不合格记录中产品型号ID缺失问题
---
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 57 insertions(+), 0 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 86eb0ab..6ac8110 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -20,6 +20,8 @@
import com.ruoyi.quality.pojo.QualityInspect;
import com.ruoyi.quality.pojo.QualityInspectParam;
import com.ruoyi.quality.pojo.QualityUnqualified;
+import com.ruoyi.stock.pojo.StockInRecord;
+import com.ruoyi.stock.service.StockInRecordService;
import com.ruoyi.quality.service.IQualityInspectParamService;
import com.ruoyi.quality.service.IQualityInspectService;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
@@ -34,6 +36,7 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
@@ -45,6 +48,7 @@
private final StockUtils stockUtils;
private final StockInventoryService stockInventoryService;
+ private final StockInRecordService stockInRecordService;
private QualityInspectMapper qualityInspectMapper;
private IQualityInspectParamService qualityInspectParamService;
@@ -111,12 +115,65 @@
stockInventoryDto.setRecordId(qualityInspect.getId());
stockInventoryDto.setProductModelId(qualityInspect.getProductModelId());
stockInventoryDto.setQualitity(qualityInspect.getQuantity());
+ stockInventoryDto.setBatchNo(resolveProductionBatchNo(
+ qualityInspect.getProductMainId(),
+ qualityInspect.getId(),
+ qualityInspect.getProductModelId()));
stockInventoryService.addStockInRecordOnly(stockInventoryDto);
+ }
+ if(qualityInspect.getUnqualifiedQuantity().compareTo(BigDecimal.ZERO) > 0){
+ QualityUnqualified qualityUnqualified = new QualityUnqualified();
+ BeanUtils.copyProperties(qualityInspect, qualityUnqualified);
+ qualityUnqualified.setInspectState(0);//寰呭鐞�
+ qualityUnqualified.setQuantity(qualityInspect.getUnqualifiedQuantity());
+ qualityUnqualified.setProductModelId(qualityInspect.getProductModelId());
+ List<QualityInspectParam> inspectParams = qualityInspectParamService.list(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, inspect.getId()));
+ String text = inspectParams.stream().map(QualityInspectParam::getParameterItem).collect(Collectors.joining(","));
+ qualityUnqualified.setDefectivePhenomena(text + "杩欎簺鎸囨爣涓瓨鍦ㄤ笉鍚堟牸");//涓嶅悎鏍肩幇璞�
+ qualityUnqualified.setInspectId(qualityInspect.getId());
+ qualityUnqualifiedMapper.insert(qualityUnqualified);
}
qualityInspect.setInspectState(1);//宸叉彁浜�
return qualityInspectMapper.updateById(qualityInspect);
}
+ private String resolveProductionBatchNo(Long productionProductMainId,
+ Long qualityInspectId,
+ Long productModelId) {
+ if (productModelId == null) {
+ return null;
+ }
+ if (productionProductMainId != null) {
+ StockInRecord productionRecord = stockInRecordService.getOne(
+ Wrappers.<StockInRecord>lambdaQuery()
+ .eq(StockInRecord::getRecordId, productionProductMainId)
+ .eq(StockInRecord::getProductModelId, productModelId)
+ .in(StockInRecord::getRecordType, Arrays.asList(
+ StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(),
+ StockInQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode()))
+ .isNotNull(StockInRecord::getBatchNo)
+ .orderByDesc(StockInRecord::getId)
+ .last("limit 1"),
+ false);
+ if (productionRecord != null) {
+ return productionRecord.getBatchNo();
+ }
+ }
+ if (qualityInspectId == null) {
+ return null;
+ }
+ StockInRecord inspectRecord = stockInRecordService.getOne(
+ Wrappers.<StockInRecord>lambdaQuery()
+ .eq(StockInRecord::getRecordId, qualityInspectId)
+ .eq(StockInRecord::getProductModelId, productModelId)
+ .eq(StockInRecord::getRecordType, StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode())
+ .isNotNull(StockInRecord::getBatchNo)
+ .orderByDesc(StockInRecord::getId)
+ .last("limit 1"),
+ false);
+ return inspectRecord == null ? null : inspectRecord.getBatchNo();
+ }
+
/*鐢熸垚妫�楠屾姤鍛�*/
@Override
public void down(HttpServletResponse response, QualityInspect qualityInspect) {
--
Gitblit v1.9.3