From 741918a903e17b2ec7522556d2c043b8d35dd8a1 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 15 六月 2026 17:42:58 +0800
Subject: [PATCH] 生产取消bom,不合格管理定制化
---
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java | 73 ++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 1 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 0707375..b0ece76 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -9,19 +9,27 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
+import com.ruoyi.basic.enums.ApplicationTypeEnum;
+import com.ruoyi.basic.enums.RecordTypeEnum;
+import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.HackLoopTableRenderPolicy;
+import com.ruoyi.common.utils.OrderUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.web.domain.R;
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.quality.dto.QualityInspectDto;
import com.ruoyi.quality.mapper.QualityInspectMapper;
import com.ruoyi.quality.mapper.QualityTestStandardMapper;
import com.ruoyi.quality.mapper.QualityUnqualifiedMapper;
+import com.ruoyi.quality.mapper.QualityUnqualifiedOrderMapper;
import com.ruoyi.quality.pojo.QualityInspect;
import com.ruoyi.quality.pojo.QualityInspectParam;
import com.ruoyi.quality.pojo.QualityUnqualified;
+import com.ruoyi.quality.pojo.QualityUnqualifiedOrder;
import com.ruoyi.stock.pojo.StockInRecord;
import com.ruoyi.stock.service.StockInRecordService;
import com.ruoyi.quality.service.IQualityInspectParamService;
@@ -39,6 +47,8 @@
import java.io.OutputStream;
import java.math.BigDecimal;
import java.net.URLEncoder;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
@@ -52,6 +62,7 @@
private final StockUtils stockUtils;
private final StockInventoryService stockInventoryService;
private final StockInRecordService stockInRecordService;
+ private final FileUtil fileUtil;
private QualityInspectMapper qualityInspectMapper;
private IQualityInspectParamService qualityInspectParamService;
@@ -59,6 +70,8 @@
private QualityTestStandardMapper qualityTestStandardMapper;
private QualityUnqualifiedMapper qualityUnqualifiedMapper;
+
+ private QualityUnqualifiedOrderMapper qualityUnqualifiedOrderMapper;
private SalesLedgerProductMapper salesLedgerProductMapper;
@@ -74,6 +87,8 @@
qualityInspectParam.setInspectId(qualityInspect.getId());
}
qualityInspectParamService.saveBatch(qualityInspectDto.getQualityInspectParams());
+ // 淇濆瓨闄勪欢
+ fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.QUALITY_INSPECT, qualityInspect.getId(), qualityInspectDto.getStorageBlobDTOs());
return 0;
}
@@ -84,6 +99,8 @@
QualityInspectDto qualityInspectDto = new QualityInspectDto();
BeanUtils.copyProperties(qualityInspect, qualityInspectDto);
qualityInspectDto.setQualityInspectParams(qualityInspectParams);
+ // 鏌ヨ闄勪欢
+ qualityInspectDto.setStorageBlobVOs(fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(RecordTypeEnum.QUALITY_INSPECT, qualityInspect.getId()));
return qualityInspectDto;
}
@@ -127,6 +144,10 @@
stockInventoryDto.setRecordId(qualityInspect.getId());
stockInventoryDto.setProductModelId(qualityInspect.getProductModelId());
stockInventoryDto.setQualitity(qualityInspect.getQualifiedQuantity());
+ if (qualityInspect.getCheckTime() != null) {
+ LocalDate stockCreateDate = DateUtils.toLocalDate(qualityInspect.getCheckTime()).plusDays(1);
+ stockInventoryDto.setCreateTime(LocalDateTime.of(stockCreateDate, java.time.LocalTime.MIDNIGHT));
+ }
stockInventoryDto.setBatchNo(resolveProductionBatchNo(
qualityInspect.getProductMainId(),
qualityInspect.getId(),
@@ -145,10 +166,57 @@
qualityUnqualified.setDefectivePhenomena(text + "杩欎簺鎸囨爣涓瓨鍦ㄤ笉鍚堟牸");//涓嶅悎鏍肩幇璞�
qualityUnqualified.setInspectId(qualityInspect.getId());
qualityUnqualifiedMapper.insert(qualityUnqualified);
+
+ // 鑷姩鍒涘缓涓嶅悎鏍煎搧澶勭悊鍗曪紝娴佸叆鏂版ā鍧�
+ QualityUnqualifiedOrder order = new QualityUnqualifiedOrder();
+ order.setUnqualifiedId(qualityUnqualified.getId());
+ order.setUnqualifiedProcess(qualityInspect.getInspectType() + 1);
+ order.setUnqualifiedQuantity(qualityInspect.getUnqualifiedQuantity());
+ order.setQuantity(qualityInspect.getQuantity());
+ order.setProductModelId(qualityInspect.getProductModelId());
+ order.setInspectorName(qualityInspect.getCheckName());
+ if (qualityInspect.getCheckTime() != null) {
+ order.setInspectDate(new java.util.Date(qualityInspect.getCheckTime().getTime()));
+ }
+ order.setSupplierName(qualityInspect.getSupplier());
+ order.setSpecificationModel(qualityInspect.getModel());
+ order.setProblemDescription(qualityInspect.getDefectivePhenomena());
+ order.setStatus(0);
+ String orderNo = OrderUtils.countTodayByCreateTime(
+ qualityUnqualifiedOrderMapper, "BHG", "order_no", LocalDateTime.now());
+ order.setOrderNo(orderNo);
+ qualityUnqualifiedOrderMapper.insert(order);
}
qualityInspect.setInspectState(1);//宸叉彁浜�
return qualityInspectMapper.updateById(qualityInspect);
+ }
+
+ @Override
+ public R autoSubmit(Long id) {
+ if (id == null) {
+ return R.fail("妫�楠屽崟ID涓嶈兘涓虹┖");
+ }
+ QualityInspect qualityInspect = qualityInspectMapper.selectById(id);
+ if (qualityInspect == null) {
+ return R.fail("妫�楠屽崟涓嶅瓨鍦�");
+ }
+ if (Integer.valueOf(1).equals(qualityInspect.getInspectState())) {
+ return R.ok("妫�楠屽崟宸叉彁浜�");
+ }
+
+ if (ObjectUtils.isNull(qualityInspect.getCheckResult())) {
+ qualityInspect.setCheckResult("鍚堟牸");
+ }
+ if (ObjectUtils.isNull(qualityInspect.getQualifiedQuantity())) {
+ qualityInspect.setQualifiedQuantity(qualityInspect.getQuantity() == null ? BigDecimal.ZERO : qualityInspect.getQuantity());
+ }
+ if (ObjectUtils.isNull(qualityInspect.getUnqualifiedQuantity())) {
+ qualityInspect.setUnqualifiedQuantity(BigDecimal.ZERO);
+ }
+ qualityInspectMapper.updateById(qualityInspect);
+ int rows = submit(qualityInspect);
+ return rows > 0 ? R.ok("妫�楠屽崟鎻愪氦鎴愬姛") : R.fail("妫�楠屽崟鎻愪氦澶辫触");
}
private String resolveProductionBatchNo(Long productionProductMainId,
@@ -251,7 +319,10 @@
}
QualityInspect qualityInspect = new QualityInspect();
BeanUtils.copyProperties(qualityInspectDto, qualityInspect);
- return qualityInspectMapper.updateById(qualityInspect);
+ int result = qualityInspectMapper.updateById(qualityInspect);
+ // 淇濆瓨闄勪欢
+ fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.QUALITY_INSPECT, qualityInspectDto.getId(), qualityInspectDto.getStorageBlobDTOs());
+ return result;
}
@Override
--
Gitblit v1.9.3