From 54c480e3632fbc6fc821786e2b473bceb2f0ae4e Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 22 三月 2025 15:35:29 +0800
Subject: [PATCH] 天线的电路总报告保留两位小数
---
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 168 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 160 insertions(+), 8 deletions(-)
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
index 60c0617..5497fbe 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -24,6 +24,7 @@
import com.yuanchu.mom.service.*;
import com.yuanchu.mom.utils.*;
import com.yuanchu.mom.vo.*;
+import org.apache.poi.hwpf.usermodel.*;
import org.apache.poi.ss.usermodel.CellValue;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
@@ -35,6 +36,7 @@
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
+import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.nio.file.Files;
@@ -48,6 +50,8 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
+
+import org.apache.poi.hwpf.HWPFDocument;
/**
* 妫�楠屼换鍔�-涓氬姟瀹炵幇灞�
@@ -357,6 +361,14 @@
} else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("鐢佃矾璇曢獙") && split[split.length - 1].equals("csv") && insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) {
dianLuUtils.readDianLuFile3(sampleId, insOrderFile);
}
+ // 鐢佃矾瀹為獙杩斿洖鏂囦欢鍚�
+ if(ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("鐢佃矾璇曢獙")){
+ return pathName;
+ }
+ // 闇囧姩doc鏂囦欢瑙f瀽
+ if(filename.contains(".doc") && sonLaboratory.equals("鎸姩")){
+ return docAnalysis(urlString,orderId,sampleId,file.getOriginalFilename());
+ }
} catch (Exception e) {
throw new ErrorException(e.getMessage());
}
@@ -652,6 +664,16 @@
} catch (Exception e) {
result.setAfterCheck("");//''
}
+ //瀹為獙缁撴灉
+ try {
+ JSONObject resValue = JSON.parseObject(JSON.toJSONString(jo.get("testResult")));
+ if (resValue.get("v") != null) {
+ Object o = JSON.parseObject(JSON.toJSONString(resValue.get("v"))).get("v");
+ result.setTestResult(o.equals("") ? null : (o.toString()));
+ }
+ } catch (Exception e) {
+ result.setTestResult("");//''
+ }
//璁惧缂栧彿
if (jo.get("equipValue") != null) {
JSONArray jsonArray2 = JSON.parseArray(JSON.toJSONString(jo.get("equipValue")));
@@ -894,6 +916,116 @@
return 1;
}
+ /**
+ * 闇囧姩doc鏂囦欢瑙f瀽
+ * @param urlString
+ * @param orderId
+ * @param sampleId
+ * @param originFileName
+ * @return
+ */
+ private Map<String, String> docAnalysis(String urlString,Integer orderId,Integer sampleId,String originFileName) {
+ Map<String, String> analysisMap = new HashMap<>();
+ try {
+ File file = new File(urlString);
+ HWPFDocument document = new HWPFDocument(new FileInputStream(file));
+ Range range = document.getRange();
+ TableIterator tableIterator = new TableIterator(range);
+ List<Table> tableList = new ArrayList<>();
+ while (tableIterator.hasNext()) {
+ tableList.add(tableIterator.next());
+ }
+ for (int tableIndex = 0; tableIndex < tableList.size(); tableIndex++) {
+ // 鍙栫涓�涓〃鍗曢檺鍒跺弬鏁扮殑 鎸姩鍙板瀷鍙枫�佽繍鍔ㄩ儴浠剁瓑鏁堣川閲忋�佽瘯浠惰川閲忔暟鍊�
+ if(tableIndex == 0){
+ Table table = tableList.get(0);
+ for (int i = 0; i < table.numRows(); i++) {
+ String columnText = ObjectUtils.isEmpty(table.getRow(i).getCell(0))? "" : table.getRow(i).getCell(0).text();
+ String columnValue = ObjectUtils.isEmpty(table.getRow(i).getCell(1))? "" : table.getRow(i).getCell(1).text();
+ if(columnValue.contains("\u0007")){
+ columnValue = columnValue.replace("\u0007","");
+ }
+ if(columnText.contains("\u0007")){
+ columnText = columnText.replace("\u0007","");
+ }
+ if(columnText.equals("鎸姩鍙板瀷鍙�")){
+ analysisMap.put("11",columnValue);
+ }
+ if(columnText.equals("杩愬姩閮ㄤ欢绛夋晥璐ㄩ噺")){
+ analysisMap.put("12",columnValue);
+ }
+ if(columnText.equals("璇曚欢璐ㄩ噺")){
+ analysisMap.put("1",columnValue);
+ }
+ }
+ }
+ //鍙栫涓�涓〃鍗曡緭鍏ラ�氶亾鍙傛暟绗竴鏉℃暟鎹�
+ if(tableIndex == 1){
+ Table table = tableList.get(1);
+ if(ObjectUtils.isNotEmpty(table)&& table.numRows() > 0){
+ String columnValue = ObjectUtils.isEmpty(table.getRow(1).getCell(2))? "" : table.getRow(1).getCell(2).text();
+ if(columnValue.contains("\u0007")){
+ columnValue = columnValue.replace("\u0007","");
+ }
+ analysisMap.put("9",columnValue);
+ }
+ }
+ // 鍙栨渶鍚庝竴涓〃鍗曠涓夌鍥涜淇℃伅
+ if(tableIndex == tableList.size() - 1){
+ Table table = tableList.get(tableIndex);
+ for (int i = 0; i < table.numRows(); i++) {
+ String columnText = ObjectUtils.isEmpty(table.getRow(i).getCell(0))? "" : table.getRow(i).getCell(0).text();
+ String columnValue = ObjectUtils.isEmpty(table.getRow(i).getCell(1))? "" : table.getRow(i).getCell(1).text();
+ if(columnValue.contains("\u0007")){
+ columnValue = columnValue.replace("\u0007","");
+ }
+ if(columnText.contains("\u0007")){
+ columnText = columnText.replace("\u0007","");
+ }
+ if(columnText.contains("鎬昏繍琛屾椂闂�")){
+ analysisMap.put("13",columnValue);
+ }
+ if(columnText.contains("璇曢獙鎵鏁�")){
+ analysisMap.put("10",columnValue);
+ }
+ }
+ }
+ }
+ // 鍥剧墖缁戝畾
+ List<Picture> pictureList = document.getPicturesTable().getAllPictures();
+ String[] split = originFileName.split("\\.");
+ String docName = "";
+ if(null != split && split.length > 0){
+ docName = split[0];
+ }
+ for (Picture picture : pictureList) {
+ byte[] pictureData = picture.getContent();
+ File imgDir = new File(imgUrl);
+ if (!imgDir.exists()) {
+ imgDir.mkdirs();
+ }
+ String filename = docName + "_" + UUID.randomUUID()+".png";
+ File pictureFile = new File(imgUrl + File.separatorChar + filename);
+ // 鍒涘缓杈撳嚭娴佷互灏嗗浘鐗囨暟鎹啓鍏ュ埌鎸囧畾璺緞
+ try (OutputStream outputStream = new FileOutputStream(pictureFile)) {
+ // 鍐欏叆鏁版嵁
+ outputStream.write(pictureData);
+ }
+ InsOrderFile insOrderFile = new InsOrderFile();
+ insOrderFile.setInsOrderId(orderId);
+ insOrderFile.setInsSampleId(sampleId);
+ insOrderFile.setSonLaboratory("鎸姩");
+ insOrderFile.setType(1);
+ insOrderFile.setFileName(filename);
+ insOrderFile.setFileUrl(filename);
+ insOrderFileMapper.insert(insOrderFile);
+ }
+ }catch (Exception e){
+ log.error(e.getMessage());
+ }
+ return analysisMap;
+ }
+
//娓╂箍搴﹁瘯楠�+鍔熺巼璇曢獙鐨勪繚瀛樻楠屽唴瀹�
@Override
public int saveInsContext3(InsProductResult insProductResult) {
@@ -979,7 +1111,7 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public int verifyPlan(Integer sampleId, String laboratory, Integer type, String tell) throws IOException {
+ public int verifyPlan(Integer sampleId, String laboratory, Integer type, String tell) {
LocalDateTime now = LocalDateTime.now();
Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
List<InsUnPass> insUnPasses = new ArrayList<>();
@@ -1069,6 +1201,10 @@
}
}
+ /*鐢熸垚瀵瑰簲鐨勬楠屾姤鍛�*/
+ List<InsReportDto1> insReportDto1s=insOrderUserMapper.selectInsReportDto1(insOrder.getId());
+ createReport(insOrder.getId(),insReportDto1s);
+ //璇ヨ鍗曢棴鐜�
insOrder.setState(4);
insOrderMapper.updateById(insOrder);
break;
@@ -1079,7 +1215,7 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public int verifyPlan2(Integer sampleId, String laboratory, Integer type, String tell) throws IOException {
+ public int verifyPlan2(Integer sampleId, String laboratory, Integer type, String tell) {
Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
InsSample insSample = insSampleMapper.selectById(sampleId);
InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
@@ -1103,7 +1239,6 @@
.set(InsOrderState::getVerifyUser, userId)
.set(InsOrderState::getNum, record.getNum() + 1)//娆℃暟鍔�1
.set(InsOrderState::getCreateTime, LocalDateTime.now()));
- insOrder.setState(1);
break;
case 1:
//缁х画璇曢獙:璇ユ牱鍝佽绔欑偣浠诲姟缁撴潫(鍙互鍐嶆鎵爜妫�楠�)锛�
@@ -1126,7 +1261,6 @@
.set(InsOrderState::getVerifyTell, tell)
.set(InsOrderState::getVerifyUser, userId));
}
- insOrder.setState(1);
break;
case 2:
//缁撴潫璇曢獙:姝ゅ鎵樺崟鍋滄璇曢獙(鏃犳硶鍐嶆妫�楠�)銆�
@@ -1155,15 +1289,33 @@
try{
outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode());
}catch (Exception e){
-
}
}
+ /*鐢熸垚瀵瑰簲鐨勬楠屾姤鍛�*/
+ List<InsReportDto1> insReportDto1s=insOrderUserMapper.selectInsReportDto1(insOrder.getId());
+ createReport(insOrder.getId(),insReportDto1s);
+ //璁㈠崟闂幆
insOrder.setState(4);
+ insOrderMapper.updateById(insOrder);
break;
}
- insOrderMapper.updateById(insOrder);
}
return 1;
+ }
+
+
+ /*鐢熸垚瀵瑰簲鐨勬楠屾姤鍛�*/
+ private void createReport(Integer orderId,List<InsReportDto1> insReportDto1s){
+ for (InsReportDto1 insReportDto1 : insReportDto1s) {
+ if (ObjectUtils.isNotEmpty(insReportDto1.getInsReportDto2s())){
+ wordUtils.generateReport(orderId, insReportDto1);
+// try{
+// wordUtils.generateReport(orderId, insReportDto1);
+// }catch (Exception e){
+// throw new ErrorException("鎶ュ憡鏍煎紡鐢熸垚鏈夎,璇疯仈绯荤鐞嗗憳!");
+// }
+ }
+ }
}
private void getTemplateThing
@@ -1224,8 +1376,8 @@
String str = "";
int count = 0;
for (InsProduct product : insProducts) {
- //杈愬皠璇曢獙,娓╂箍搴﹁瘯楠�,鍔熺巼璇曢獙鐨勬楠岄」鐩�,涓嶉渶瑕佸幓鎵嬪姩濉啓妫�楠屽��,鍙渶瑕佷笂浼犺〃鏍兼枃浠跺氨鍙互浜�,鍚庡彴鎻愪氦鐨勬椂鍊欐牎楠岃烦杩囪繖涓楠岄」鐩�
- if (product.getInspectionItem().equals("杈愬皠璇曢獙") || product.getInspectionItem().equals("娓╂箍搴﹁瘯楠�") || product.getInspectionItem().equals("鍔熺巼璇曢獙")) {
+ //娓╂箍搴﹁瘯楠�,鍔熺巼璇曢獙鐨勬楠岄」鐩�,涓嶉渶瑕佸幓鎵嬪姩濉啓妫�楠屽��,鍙渶瑕佷笂浼犺〃鏍兼枃浠跺氨鍙互浜�,鍚庡彴鎻愪氦鐨勬椂鍊欐牎楠岃烦杩囪繖涓楠岄」鐩�
+ if ( product.getInspectionItem().equals("娓╂箍搴﹁瘯楠�") || product.getInspectionItem().equals("鍔熺巼璇曢獙")) {
product.setInsResult(3);//涓嶅垽瀹�
insProductMapper.updateById(product);
continue;
--
Gitblit v1.9.3