From a016e3f59d1b2227cd22aeb82090b82d487c8235 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 06 十二月 2024 14:36:42 +0800
Subject: [PATCH] Merge branch 'master' into cnas
---
inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java | 141 +++++++++++++++++++++++++---------------------
1 files changed, 77 insertions(+), 64 deletions(-)
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java b/inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java
index 6249c85..eb50374 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java
@@ -1,5 +1,6 @@
package com.yuanchu.mom.utils;
+import cn.hutool.core.lang.UUID;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.config.ConfigureBuilder;
@@ -11,8 +12,10 @@
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.InsOrderFileMapper;
import com.yuanchu.mom.mapper.InsOrderMapper;
+import com.yuanchu.mom.mapper.InsSampleMapper;
import com.yuanchu.mom.pojo.InsOrder;
import com.yuanchu.mom.pojo.InsOrderFile;
+import com.yuanchu.mom.pojo.InsSample;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.openxml4j.util.ZipSecureFile;
@@ -28,8 +31,6 @@
import javax.annotation.Resource;
import java.io.*;
-import java.nio.file.Files;
-import java.nio.file.Paths;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -44,7 +45,7 @@
InsOrderFileMapper insOrderFileMapper;
@Resource
- InsOrderMapper insOrderMapper;
+ InsSampleMapper insSampleMapper;
public void getFuSheWord1(String sonLaboratory, InsOrderFile insOrderFile) {
//璇诲彇excel鏂囦欢鍐呭
@@ -58,6 +59,7 @@
Exceldata exceldata = new Exceldata();
Map<Integer, Object> project = new HashMap<>();
HashMap<String, Object> datas1 = new HashMap<>();
+ Boolean exitLoop=false;
for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
String s = "";
Sheet sheet = workbook.getSheetAt(i);
@@ -87,10 +89,13 @@
default:
System.out.print("NULL\t");
}
- }
- else {
+ } else {
switch (cell.getCellType()) {
case STRING:
+ if (cell.getColumnIndex()==1) {
+ exitLoop=true;
+ break;
+ }
if (StringUtils.isNotEmpty(s)) {
datas.put(s, list);
}
@@ -115,6 +120,10 @@
System.out.print("NULL\t");
}
}
+ if (exitLoop){
+ exitLoop=false;
+ break;
+ }
if (map.isEmpty()) {
list.add(map);
}
@@ -137,15 +146,17 @@
for (Map<String, Object> number : hashMaps) {
number.put("绔彛", s1);
Double o = (Double) number.get("棰戠巼");
- floatList.add(o);
+ if (o!=null) {
+ floatList.add(o);
+ }
}
Double maxValue = Collections.max(floatList);
Double minValue = Collections.min(floatList);
- if (map.get(minValue + "-" + maxValue + "-" + s) == null) {
- map.put(minValue + "-" + maxValue + "-" + s, s1);
+ if (map.get(minValue + "," + maxValue + "," + s) == null) {
+ map.put(minValue + "," + maxValue + "," + s, s1);
} else {
- Object o = map.get(minValue + "-" + maxValue + "-" + s);
- map.put(minValue + "-" + maxValue + "-" + s, s1 + "," + o);
+ Object o = map.get(minValue + "," + maxValue + "," + s);
+ map.put(minValue + "," + maxValue + "," + s, s1 + "," + o);
}
}
}
@@ -201,8 +212,8 @@
HashMap<String, Object> map2 = new HashMap<>();
List<Map<String, Object>> list = new ArrayList<>();
XWPFDocument document = new XWPFDocument();
- String jiaodu="";
- String port="";
+ String jiaodu = "";
+ String port = "";
try (CSVReader reader = new CSVReader(new InputStreamReader(new FileInputStream(excelFilePath), fileEncoding))) {
List<String[]> records = reader.readAll();
for (int i = 0; i < records.size(); i++) {
@@ -213,13 +224,13 @@
for (int i1 = 0; i1 < record.length; i1++) {
String value = record[i1];
if (i == 0) {
- project.put(i1,value);
+ project.put(i1, value);
}
if (i == 1) {
- biaozhun.put(project.get(i1).toString(),value);
+ biaozhun.put(project.get(i1).toString(), value);
}
- if (i>2) {
- if (i1==0&&StringUtils.isNotEmpty(value)) {
+ if (i > 2) {
+ if (i1 == 0 && StringUtils.isNotEmpty(value)) {
if (map2.size() != 0) {
map2.put(port, list);
@@ -227,16 +238,16 @@
map2 = new HashMap<>();
}
datas1.put(value, "");
- jiaodu=value;
+ jiaodu = value;
} else if (i1 == 1 && StringUtils.isNotEmpty(value)) {
if (list.size() != 0) {
map2.put(port, list);
list = new ArrayList<>();
}
map2.put(value, "");
- port=value;
+ port = value;
} else if (StringUtils.isNotEmpty(value)) {
- if (value.equals("鏈�澶у��")||value.equals("鏈�灏忓��")||value.equals("鎸囨爣")||value.equals("绫诲埆")) {
+ if (value.equals("鏈�澶у��") || value.equals("鏈�灏忓��") || value.equals("鎸囨爣") || value.equals("绫诲埆")) {
break;
} else if (value.equals("骞冲潎鍊�")) {
for (int i2 = 0; i2 < record.length; i2++) {
@@ -244,24 +255,24 @@
if (value1.equals("骞冲潎鍊�")) {
continue;
}
- pingjun.put(project.get(i2).toString(),value1);
+ pingjun.put(project.get(i2).toString(), value1);
}
break;
}
- map1.put(project.get(i1).toString(),value);
+ map1.put(project.get(i1).toString(), value);
}
}
System.out.print(value + " ");
}
- if (map1.size()!=0) {
+ if (map1.size() != 0) {
list.add(map1);
}
- if (pingjun.size()!=0) {
- pingjunzhi.put(jiaodu,pingjun);
+ if (pingjun.size() != 0) {
+ pingjunzhi.put(jiaodu, pingjun);
}
- if (i==records.size()-1) {
- map2.put(port,list);
- datas1.put(jiaodu,map2);
+ if (i == records.size() - 1) {
+ map2.put(port, list);
+ datas1.put(jiaodu, map2);
}
System.out.println();
}
@@ -276,23 +287,23 @@
HashMap<String, Object> map = new HashMap<>();
for (String s : datas1.keySet()) {
- Map<String, List<HashMap<String,Object>>> numbers = (Map<String, List<HashMap<String,Object>>>) datas1.get(s);
+ Map<String, List<HashMap<String, Object>>> numbers = (Map<String, List<HashMap<String, Object>>>) datas1.get(s);
for (String s1 : numbers.keySet()) {
List<HashMap<String, Object>> hashMaps = numbers.get(s1);
List<Integer> floatList = new ArrayList<>();
for (Map<String, Object> number : hashMaps) {
number.put("绔彛", s1);
- floatList.add( Integer.parseInt((String) number.get("娴嬭瘯棰戠巼(MHZ)")));
+ floatList.add(Integer.parseInt((String) number.get("娴嬭瘯棰戠巼(MHZ)")));
}
Integer maxValue = Collections.max(floatList);
Integer minValue = Collections.min(floatList);
- if (map.get(minValue + "-" + maxValue+"-"+s) == null) {
- map.put(minValue + "-" + maxValue+"-"+s, s1);
+ if (map.get(minValue + "-" + maxValue + "-" + s) == null) {
+ map.put(minValue + "-" + maxValue + "-" + s, s1);
} else {
- Object o = map.get(minValue + "-" + maxValue+"-"+s);
- map.put(minValue + "-" + maxValue+"-"+s, s1 + "," + o);
+ Object o = map.get(minValue + "-" + maxValue + "-" + s);
+ map.put(minValue + "-" + maxValue + "-" + s, s1 + "," + o);
}
}
@@ -307,9 +318,9 @@
int size1 = -1;
for (String s : datas1.keySet()) {
- Map<String, List<HashMap<String,Object>>> o1 = (Map<String, List<HashMap<String,Object>>>)datas1.get(s);
+ Map<String, List<HashMap<String, Object>>> o1 = (Map<String, List<HashMap<String, Object>>>) datas1.get(s);
for (String s3 : o1.keySet()) {
- List<HashMap<String, Object>> numbers = o1.get(s3);
+ List<HashMap<String, Object>> numbers = o1.get(s3);
for (String s2 : collect) {
if (s3.equals(s2)) {
if (numbers.size() > size1) {
@@ -325,7 +336,7 @@
System.out.println(map);
try {
- createWord2(sonLaboratory,document,exceldata, map,pingjunzhi,biaozhun,insOrderFile);
+ createWord2(sonLaboratory, document, exceldata, map, pingjunzhi, biaozhun, insOrderFile);
} catch (IOException e) {
e.printStackTrace();
}
@@ -341,8 +352,8 @@
runs.setText("杈愬皠鏂瑰悜鍥惧弬鏁�");
for (String s : map.keySet()) {
Map<String, Object> dataRow = exceldata.getDataRow();
- String result = s.substring(s.lastIndexOf("-") + 1);
- String result1 = s.substring(0, s.lastIndexOf("-"));
+ String result = s.substring(s.lastIndexOf(",") + 1);
+ String result1 = s.substring(0, s.lastIndexOf(","));
String o = map.get(s).toString();
String[] split = o.split(",");
Integer s1 = Integer.parseInt(split[split.length - 1]);
@@ -520,24 +531,27 @@
paragraph11.setAlignment(ParagraphAlignment.CENTER);
XWPFRun run11 = paragraph11.createRun();
double v = count / (Double.parseDouble(s1.toString()) * Double.parseDouble(i1.toString()));
- run11.setText(String.format("%.2f",v));
+ run11.setText(String.format("%.2f", v));
size++;
}
}
// 杈撳嚭鍒版枃浠�
try {
- InsOrder insOrder = insOrderMapper.selectById(insOrderFile.getInsOrderId());
+ InsSample insSample = insSampleMapper.selectById(insOrderFile.getInsSampleId());
String[] split = insOrderFile.getFileName().split("\\.");
- String name = insOrderFile.getFileName().substring(0, (insOrderFile.getFileName().length() - split[split.length - 1].length()));
- FileOutputStream out = new FileOutputStream(wordUrl + "/" + insOrder.getEntrustCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx");
+ String name = insOrderFile.getFileName().replace('#','&').substring(0, (insOrderFile.getFileName().length() - split[split.length - 1].length()));
+ String url = UUID.randomUUID() + "_" + insSample.getSampleCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx";
+ url.replace("#", "&");
+ FileOutputStream out = new FileOutputStream(wordUrl + "/" + url);
document.write(out);
out.close();
document.close();
InsOrderFile orderFile = new InsOrderFile();
orderFile.setInsOrderId(insOrderFile.getInsOrderId());
- orderFile.setFileUrl(insOrder.getEntrustCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx");
+ orderFile.setInsSampleId(insOrderFile.getInsSampleId());
+ orderFile.setFileUrl(url);
orderFile.setType(2);
- orderFile.setFileName(insOrder.getEntrustCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx");
+ orderFile.setFileName(insSample.getSampleCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx");
orderFile.setSonLaboratory(sonLaboratory);
insOrderFileMapper.insert(orderFile);
} catch (IOException e) {
@@ -545,19 +559,19 @@
}
}
- public void createWord2(String sonLaboratory,XWPFDocument document,Exceldata exceldata, HashMap<String, Object> map,HashMap<String,Object> pj,HashMap<String,Object> bz,InsOrderFile insOrderFile) throws IOException {
+ public void createWord2(String sonLaboratory, XWPFDocument document, Exceldata exceldata, HashMap<String, Object> map, HashMap<String, Object> pj, HashMap<String, Object> bz, InsOrderFile insOrderFile) throws IOException {
int size = 1;
for (String s : map.keySet()) {
Map<String, Object> dataRow = exceldata.getDataRow();
String result = s.substring(s.lastIndexOf("-") + 1);
- String result1 = s.substring(0,s.lastIndexOf("-"));
+ String result1 = s.substring(0, s.lastIndexOf("-"));
String o = map.get(s).toString();
String[] split = o.split(",");
Integer s1 = Integer.parseInt(split[split.length - 1]);
Integer i1 = split.length - 1;
int row = 3 + s1;
int cell = 6 + i1;
- HashMap<String,Object> o2 =(HashMap<String,Object>) pj.get(result);
+ HashMap<String, Object> o2 = (HashMap<String, Object>) pj.get(result);
XWPFTable table1 = document.createTable(2, cell);
@@ -580,7 +594,7 @@
XWPFRun run15 = paragraph15.createRun();
run15.setText("鏍囧噯瑕佹眰");
- XWPFParagraph paragraph16 = table1.getRow(0).getCell(cell-1).getParagraphArray(0);
+ XWPFParagraph paragraph16 = table1.getRow(0).getCell(cell - 1).getParagraphArray(0);
XWPFRun run16 = paragraph16.createRun();
run16.setText("妫�楠岀粨璁�");
@@ -590,8 +604,7 @@
XWPFParagraph paragraph18 = table1.getRow(1).getCell(0).getParagraphArray(0);
XWPFRun run18 = paragraph18.createRun();
- run18.setText("棰戞锛� "+result1+"MHz "+"涓嬪�捐"+result);
-
+ run18.setText("棰戞锛� " + result1 + "MHz " + "涓嬪�捐" + result);
List<String> collect = Arrays.stream(split).collect(Collectors.toList());
@@ -606,7 +619,7 @@
Map<String, List<Map<String, Object>>> o1 = (Map<String, List<Map<String, Object>>>) dataRow.get(result);
for (String s2 : collect) {
- if (s2.contains("绔彛")||s2.contains("P")) {
+ if (s2.contains("绔彛") || s2.contains("P")) {
List<Map<String, Object>> mapList = o1.get(s2);
list.addAll(mapList);
}
@@ -624,7 +637,7 @@
for (String s2 : aggregatedMap.keySet()) {
- if (s2.equals("绔彛")||s2.equals("娴嬭瘯棰戠巼(MHZ)")) {
+ if (s2.equals("绔彛") || s2.equals("娴嬭瘯棰戠巼(MHZ)")) {
continue;
}
List<Map<String, Object>> mapList = aggregatedMap.get(s2);
@@ -674,7 +687,6 @@
}
-
XWPFParagraph paragraph3 = table.getRow(0).getCell(3).getParagraphArray(0);
XWPFRun run3 = paragraph3.createRun();
run3.setText(bz.get(s2).toString());
@@ -706,7 +718,7 @@
for (int i = 0; i < collect.size(); i++) {
String s3 = collect.get(i);
- if (s3.contains("绔彛")||s3.contains("P")) {
+ if (s3.contains("绔彛") || s3.contains("P")) {
XWPFParagraph paragraph10 = table.getRow(1).getCell(5 + i).getParagraphArray(0);
XWPFRun run10 = paragraph10.createRun();
run10.setText(s3);
@@ -714,7 +726,7 @@
}
Map<Integer, List<Map<String, Object>>> group = mapList.stream()
- .collect(Collectors.groupingBy(item -> Integer.parseInt(item.get("娴嬭瘯棰戠巼(MHZ)").toString()) ));
+ .collect(Collectors.groupingBy(item -> Integer.parseInt(item.get("娴嬭瘯棰戠巼(MHZ)").toString())));
int hang = 2;
@@ -728,7 +740,7 @@
if (text.equals(port)) {
XWPFParagraph paragraph10 = table.getRow(hang).getCell(i).getParagraphArray(0);
XWPFRun run10 = paragraph10.createRun();
- count=Double.parseDouble(stringObjectMap.get(s2).toString())+count;
+ count = Double.parseDouble(stringObjectMap.get(s2).toString()) + count;
String project = stringObjectMap.get(s2).toString();
run10.setText(project);
}
@@ -742,7 +754,7 @@
hang++;
}
- XWPFParagraph paragraph11 = table.getRow(row-1).getCell(5).getParagraphArray(0);
+ XWPFParagraph paragraph11 = table.getRow(row - 1).getCell(5).getParagraphArray(0);
XWPFRun run11 = paragraph11.createRun();
double v = count / (Double.parseDouble(s1.toString()) * Double.parseDouble(i1.toString()));
run11.setText(o2.get(s2).toString());
@@ -750,22 +762,23 @@
size++;
}
}
-
-
// 杈撳嚭鍒版枃浠�
try {
- InsOrder insOrder = insOrderMapper.selectById(insOrderFile.getInsOrderId());
+ InsSample insSample = insSampleMapper.selectById(insOrderFile.getInsSampleId());
String[] split = insOrderFile.getFileName().split("\\.");
- String name = insOrderFile.getFileName().replace("#","&").substring(0, (insOrderFile.getFileName().length() - split[split.length - 1].length()));
- FileOutputStream out = new FileOutputStream(wordUrl + "/" + insOrder.getEntrustCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx");
+ String name = insOrderFile.getFileName().replace("#", "&").substring(0, (insOrderFile.getFileName().length() - split[split.length - 1].length()));
+ String url = UUID.randomUUID() + "_" + insSample.getSampleCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx";
+ url.replace("#", "&");
+ FileOutputStream out = new FileOutputStream(wordUrl + "/" + url);
document.write(out);
out.close();
document.close();
InsOrderFile orderFile = new InsOrderFile();
orderFile.setInsOrderId(insOrderFile.getInsOrderId());
- orderFile.setFileUrl(insOrder.getEntrustCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx");
+ orderFile.setInsSampleId(insOrderFile.getInsSampleId());
+ orderFile.setFileUrl(url);
orderFile.setType(2);
- orderFile.setFileName(insOrder.getEntrustCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx");
+ orderFile.setFileName(insSample.getSampleCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx");
orderFile.setSonLaboratory(sonLaboratory);
insOrderFileMapper.insert(orderFile);
} catch (IOException e) {
--
Gitblit v1.9.3