From 61ad48645e045591a0e82df746faba8f70d75674 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 31 三月 2026 17:59:29 +0800
Subject: [PATCH] fix:1.质检增加批号和供应商(区分质检和不质检)
---
src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java | 106 +++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 95 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
index 5e98fa8..b8ac021 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
@@ -7,16 +7,13 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.procurementrecord.utils.StockUtils;
-import com.ruoyi.production.mapper.ProductProcessRouteItemMapper;
-import com.ruoyi.production.mapper.ProductProcessRouteMapper;
-import com.ruoyi.production.mapper.ProductWorkOrderMapper;
-import com.ruoyi.production.mapper.ProductionProductMainMapper;
+import com.ruoyi.production.mapper.*;
import com.ruoyi.production.pojo.*;
import com.ruoyi.production.service.ProductOrderService;
import com.ruoyi.quality.mapper.QualityUnqualifiedMapper;
@@ -29,10 +26,14 @@
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
@AllArgsConstructor
@Service
@@ -47,6 +48,7 @@
private ProductProcessRouteItemMapper productProcessRouteItemMapper;
private ProductWorkOrderMapper productWorkOrderMapper;
private StockUninventoryService stockUninventoryService;
+ private ProductOrderMapper productOrderMapper;
@Override
public IPage<QualityUnqualified> qualityUnqualifiedListPage(Page page, QualityUnqualified qualityUnqualified) {
@@ -64,10 +66,12 @@
public int deal(QualityUnqualified qualityUnqualified) {
QualityUnqualified unqualified = qualityUnqualifiedMapper.selectById(qualityUnqualified.getId());
QualityInspect qualityInspect = qualityInspectService.getById(unqualified.getInspectId());
- if (ObjectUtils.isNotNull(qualityInspect) && qualityInspect.getInspectType()!=0) {
+ ProductionProductMain productionProductMain = productionProductMainMapper.selectById(qualityInspect.getProductMainId());
+ ProductWorkOrder workOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId());
+ ProductOrder orders = productOrderMapper.selectById(workOrder.getProductOrderId());
+ if (ObjectUtils.isNotNull(qualityInspect) && qualityInspect.getInspectType() != 0) {
switch (qualityUnqualified.getDealResult()) {
case "杩斾慨":
- case "杩斿伐":
//鍒ゆ柇璐ㄦ琛ㄦ槸鍚︽湁鐩稿叧鐨勬姤宸d,濡傛灉鏈夋姤宸d,閭d箞杩斿伐闇�瑕侀噸鏂板垱寤虹敓浜ц鍗曢噸鏂扮敓浜�
if (ObjectUtils.isNotNull(qualityInspect.getProductMainId())) {
//杩斿伐闇�瑕侀噸鏂板垱寤虹敓浜ц鍗曢噸鏂扮敓浜�
@@ -113,7 +117,7 @@
}
}
// 鐢熸垚瀹屾暣鐨勫伐鍗曞彿
- String workOrderNoStr ="FG" +String.format("%s%03d", datePrefix, sequenceNumber);
+ String workOrderNoStr = "FG" + String.format("%s%03d", datePrefix, sequenceNumber);
ProductWorkOrder productWorkOrder = new ProductWorkOrder();
productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
productWorkOrder.setProductOrderId(order.getId());
@@ -131,15 +135,95 @@
break;
case "璁╂鏀捐":
//璋冪敤鎻愪氦鍚堟牸鐨勬帴鍙�
- stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId());
- qualityInspect.setCheckResult("鍚堟牸");
- qualityInspectService.submit(qualityInspect);
+ String customer = "闀挎不甯傝酱鎵垮埗閫犳湁闄愬叕鍙�";
+ stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId(),
+ orders.getBatchNo(), customer
+ );
+ break;
+ case "杩斿伐":
+ default:
+ break;
+ }
+ } else {
+ //鏌ヨ瀵瑰簲鐨勮鏍煎瀷鍙穒d
+ Long modelId = qualityUnqualifiedMapper.getModelId(qualityUnqualified.getProductName(), qualityUnqualified.getModel());
+ switch (qualityUnqualified.getDealResult()) {
+ case "鎶ュ簾":
+ //璋冪敤涓嶅悎鏍煎簱瀛樻帴鍙� 鍏ヤ笉鍚堟牸搴�
+ stockUtils.addUnStock(modelId, unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId());
+ break;
+ case "璁╂鏀捐":
+ //璋冪敤鎻愪氦鍚堟牸鐨勬帴鍙�
+ String customer = "闀挎不甯傝酱鎵垮埗閫犳湁闄愬叕鍙�";
+ stockUtils.addStock(modelId, unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId(), orders.getBatchNo(), customer);
break;
default:
break;
}
+
}
qualityUnqualified.setInspectState(1);//宸插鐞�
return qualityUnqualifiedMapper.updateById(qualityUnqualified);
}
+
+ @Override
+ public QualityUnqualified getUnqualified(Integer id) {
+ return qualityUnqualifiedMapper.getUnqualified(id);
+ }
+
+ @Override
+ public void downloadReturnRecord(Long id, HttpServletResponse response) {
+ XWPFTemplate template = null;
+ InputStream inputStream = null;
+ OutputStream out = null;
+ try {
+ // 1. 鏌ヨ鏁版嵁
+ QualityUnqualified info = qualityUnqualifiedMapper.selectById(id);
+ Map<String, Object> data = new HashMap<>();
+ data.put("productName", info.getProductName());
+ data.put("model", info.getModel());
+
+ // 鍔犺浇妯℃澘
+ inputStream = getClass().getResourceAsStream("/static/return-record.docx");
+ if (inputStream == null) {
+ throw new RuntimeException("妯℃澘鏂囦欢涓嶅瓨鍦紝璇锋鏌ヨ矾寰勶細/static/return-record.docx");
+ }
+
+ // 娓叉煋妯℃澘
+ template = XWPFTemplate.compile(inputStream).render(data);
+
+ // 璁剧疆鍝嶅簲澶�
+ response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
+ response.setHeader("Content-Disposition", "attachment; filename=rework_record_" + id + ".docx");
+ response.setContentLengthLong(-1);
+
+ out = response.getOutputStream();
+ template.write(out);
+ out.flush();
+ } catch (Exception e) {
+ throw new RuntimeException("涓嬭浇澶辫触", e);
+ } finally {
+ if (template != null) {
+ try {
+ template.close();
+ } catch (Exception e) {
+ log.error("鍏抽棴妯℃澘澶辫触", e);
+ }
+ }
+ if (inputStream != null) {
+ try {
+ inputStream.close();
+ } catch (Exception e) {
+ log.error("鍏抽棴杈撳叆娴佸け璐�", e);
+ }
+ }
+ if (out != null) {
+ try {
+ out.close();
+ } catch (Exception e) {
+ log.error("鍏抽棴杈撳嚭娴佸け璐�", e);
+ }
+ }
+ }
+ }
}
--
Gitblit v1.9.3