From 0bc2c552b180afa16e4aae3c8c12746b15ba6fc8 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期四, 02 四月 2026 17:35:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_长治_健齿齿科器材' into dev_长治_健齿齿科器材
---
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java | 86 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 85 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 d13dfc9..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()) {
@@ -125,11 +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 {
//鍚堟牸鐩存帴鍏ュ簱
stockUtils.addStock(qualityInspect.getProductModelId(), qualityInspect.getQuantity(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(),
- qualityInspect.getId(), batchNo, customer
+ qualityInspect.getId(), batchNo, customer,inspect.getProductionDate()
);
}
qualityInspect.setInspectState(1);//宸叉彁浜�
@@ -236,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