From 5c891d8d2c206dfd2aa6daf59579eb2b6843dcc0 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 01 四月 2026 18:00:37 +0800
Subject: [PATCH] fix:1.采购/销售入库去掉审批 2.返工下载附件内容变更 3.生产/库存入库生产日期添加 4.仓库导入导出字段优化
---
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java | 102 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 98 insertions(+), 4 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 1c46b5f..a128dd3 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -39,7 +39,10 @@
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
+import java.math.BigDecimal;
import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
@@ -75,6 +78,9 @@
public int add(QualityInspectDto qualityInspectDto) {
QualityInspect qualityInspect = new QualityInspect();
BeanUtils.copyProperties(qualityInspectDto, qualityInspect);
+ if (qualityInspectDto.getInspectType() != 0) {
+ qualityInspectDto.setCustomer("闀挎不甯傝酱鎵垮埗閫犳湁闄愬叕鍙�");
+ }
qualityInspect.setInspectState(0);//榛樿鏈彁浜�
qualityInspectMapper.insert(qualityInspect);
for (QualityInspectParam qualityInspectParam : qualityInspectDto.getQualityInspectParams()) {
@@ -99,8 +105,19 @@
public int submit(QualityInspect inspect) {
QualityInspect qualityInspect = qualityInspectMapper.selectById(inspect.getId());
ProductionProductMain productionProductMain = productionProductMainMapper.selectById(qualityInspect.getProductMainId());
- ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId());
- ProductOrder productOrder = productOrderMapper.selectById(productWorkOrder.getProductOrderId());
+
+ String batchNo;
+ String customer;
+ if (productionProductMain != null) {
+ ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId());
+ ProductOrder productOrder = productOrderMapper.selectById(productWorkOrder.getProductOrderId());
+ batchNo = productOrder.getBatchNo();
+ customer = "闀挎不甯傝酱鎵垮埗閫犳湁闄愬叕鍙�";
+ } else {
+ batchNo = qualityInspect.getBatchNo();
+ customer = qualityInspect.getSupplier();
+ }
+
//鎻愪氦鍓嶅繀椤诲垽鏂槸鍚﹀悎鏍�
if (ObjectUtils.isNull(qualityInspect.getCheckResult())) {
throw new RuntimeException("璇峰厛鍒ゆ柇鏄惁鍚堟牸");
@@ -114,12 +131,13 @@
String text = inspectParams.stream().map(QualityInspectParam::getParameterItem).collect(Collectors.joining(","));
qualityUnqualified.setDefectivePhenomena(text + "杩欎簺鎸囨爣涓瓨鍦ㄤ笉鍚堟牸");//涓嶅悎鏍肩幇璞�
qualityUnqualified.setInspectId(qualityInspect.getId());
+ qualityUnqualified.setProductionDate(inspect.getProductionDate());
+ qualityUnqualified.setBatchNo(inspect.getBatchNo());
qualityUnqualifiedMapper.insert(qualityUnqualified);
} else {
//鍚堟牸鐩存帴鍏ュ簱
- String customer = "闀挎不甯傝酱鎵垮埗閫犳湁闄愬叕鍙�";
stockUtils.addStock(qualityInspect.getProductModelId(), qualityInspect.getQuantity(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(),
- qualityInspect.getId(),productOrder.getBatchNo(),customer
+ qualityInspect.getId(), batchNo, customer,inspect.getProductionDate()
);
}
qualityInspect.setInspectState(1);//宸叉彁浜�
@@ -226,5 +244,81 @@
}
+ @Override
+ public void downOutReport(HttpServletResponse response, QualityInspect qualityInspect) {
+ QualityInspect inspect = qualityInspectMapper.selectOneData(qualityInspect.getId());
+
+ // 鏍煎紡鍖栨棩鏈熷瓧娈�
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ inspect.setCheckTimeStr(inspect.getCheckTime() != null ? sdf.format(inspect.getCheckTime()) : "");
+ inspect.setProductionDateStr(inspect.getProductionDate() != null ? inspect.getProductionDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) : "");
+ inspect.setValidityDateStr(inspect.getValidityDate() != null ? inspect.getValidityDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) : "");
+
+ // 鑾峰彇妫�楠屽弬鏁板垪琛�
+ List<QualityInspectParam> paramList = qualityInspectParamService.list(
+ Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, inspect.getId()));
+ int index = 1;
+ for (QualityInspectParam detail : paramList) {
+ detail.setIndex(index);
+ index++;
+ }
+
+ // 鑾峰彇浜у搧鍨嬪彿淇℃伅锛堝寘鍚湁鏁堟湡锛�
+ ProductModel productModel = null;
+ BigDecimal validityPeriod = null;
+ if (inspect.getProductModelId() != null) {
+ productModel = productModelMapper.selectById(inspect.getProductModelId());
+ if (productModel != null) {
+ validityPeriod = productModel.getValidityPeriod();
+ }
+ }
+ /*String calculatedValidityDate = "";
+ if (inspect.getProductionDate() != null && validityPeriod != null) {
+ LocalDate productionDate = inspect.getProductionDate();
+ int years = validityPeriod.intValue();
+ int months = validityPeriod
+ .subtract(new BigDecimal(years))
+ .multiply(new BigDecimal(12))
+ .setScale(0, RoundingMode.HALF_UP)
+ .intValue();
+ LocalDate calculatedDate = productionDate
+ .plusYears(years)
+ .plusMonths(months);
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ calculatedValidityDate = calculatedDate.format(formatter);
+ }*/
+
+ // 妫�楠屼緷鎹細浜у搧鍚嶇О + 鍑哄巶妫�楠屾搷浣滄祦绋�
+ String checkBasis = (inspect.getProductName() != null ? inspect.getProductName() : "") + "鍑哄巶妫�楠屾搷浣滄祦绋�";
+
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/out-report-template.docx");
+ Configure configure = Configure.builder()
+ .bind("paramList", new HackLoopTableRenderPolicy())
+ .build();
+// final String finalCalculatedValidityDate = calculatedValidityDate;
+ final String finalCheckBasis = checkBasis;
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
+ new HashMap<String, Object>() {{
+ put("inspect", inspect);
+ put("checkBasis", finalCheckBasis);
+// put("calculatedValidityDate", finalCalculatedValidityDate);
+ put("paramList", paramList);
+ }});
+
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode("鍑哄簱妫�楠屾姤鍛�", "UTF-8");
+ response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
+ response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ inputStream.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
}
--
Gitblit v1.9.3