From 22d3a8dc4185c5461bee9e42a9f4a2775ff448e6 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期二, 10 九月 2024 17:28:17 +0800 Subject: [PATCH] 报告更改+再次试验 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 700 ++++----------------------------------------------------- 1 files changed, 53 insertions(+), 647 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 58ded93..91912bb 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 @@ -244,6 +244,34 @@ case 0: //鏍峰搧 insProducts = insSampleMapper.getInsProduct1(id, laboratory); + if (insProducts.size()==0){ + insProducts = insSampleMapper.getIns2Product1(id, laboratory); + } + break; + case 1: + //鍏夌氦甯� + break; + case 2: + //鍏夌氦 + break; + case 3: + //濂楃 + break; + } + Set<Integer> set = new HashSet<>(); + Map<Integer, String> map2 = new HashMap<>(); + if (BeanUtil.isEmpty(insProducts)) return null; + getTemplateThing(set, map2, insProducts); + return insProducts; + } + + @Override + public List<InsProduct> getInsProduct2(Integer id, Integer type, String laboratory, HttpServletRequest request,Integer num) { + List<InsProduct> insProducts = new ArrayList<>(); + switch (type) { + case 0: + //鏍峰搧 + insProducts = insSampleMapper.get2InsProduct1(id, laboratory,num); break; case 1: //鍏夌氦甯� @@ -515,20 +543,13 @@ public int deleteInsContext(InsProductResultVo insProductResultVo) { return insProductResult2Mapper.delete(Wrappers.<InsProductResult2>lambdaQuery() .eq(InsProductResult2::getFrequency, insProductResultVo.getFrequency()) + .eq(InsProductResult2::getNum, insProductResultVo.getNum()) .in(InsProductResult2::getInsProductId, insProductResultVo.getProductIds())); } - @Override - public int deleteInsContext2(String frequency, Integer productId, String often) { - return insProductResult2Mapper.delete(Wrappers.<InsProductResult2>lambdaQuery() - .eq(InsProductResult2::getFrequency, frequency) - .eq(InsProductResult2::getInsProductId, productId) - .eq(InsProductResult2::getOften, often)); - } - @Override - public void saveInsContext(Map<String, Object> insContext) { + public void saveInsContext(Map<String, Object> insContext,Integer num) { Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); CompletableFuture.supplyAsync(() -> { insContext.forEach((k, v) -> { @@ -544,6 +565,7 @@ result = results.get(0); } result.setInsProductId(Integer.parseInt(k)); + result.setNum(num); //妫�楠屽�� if (jo.get("insValue") != null) { JSONArray jsonArray = JSON.parseArray(JSON.toJSONString(jo.get("insValue"))); @@ -744,23 +766,30 @@ //鐢佃矾璇曢獙鐨勪繚瀛樻楠屽唴瀹� @Override public List<Integer> saveInsContext2(InsProductResultDto insProductResultDtos) { - if (ObjectUtils.isEmpty(insProductResultDtos.getFrequency())){ + if (ObjectUtils.isEmpty(insProductResultDtos.getFrequency())) { throw new ErrorException("棰戠巼涓嶈兘涓虹┖"); } Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); //鏌ヨ妫�楠屽崟淇℃伅 InsOrder insOrder = insOrderMapper.selectById(insProductResultDtos.getOrderId()); + InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, insProductResultDtos.getOrderId()) + .eq(InsOrderState::getLaboratory, insProductResultDtos.getSonLaboratory()) + .orderByDesc(InsOrderState::getId) + .last("LIMIT 1"));// 纭繚鍙彇涓�鏉¤褰� //鏌ヨ鏍峰搧淇℃伅 InsSample insSample = insSampleMapper.selectById(insProductResultDtos.getSampleId()); List<Integer> list = new ArrayList<>(); /*鏂板妫�楠岄」鐩楠屽�艰褰曡〃(閲囧彇鍏堝垹鍚庡)*/ insProductResult2Mapper.delete(Wrappers.<InsProductResult2>lambdaQuery() .in(InsProductResult2::getInsProductId, insProductResultDtos.getInsProductResult2s().stream().map(InsProductResult2::getInsProductId).distinct().collect(Collectors.toList())) + .eq(InsProductResult2::getNum, orderState.getNum()) .eq(InsProductResult2::getFrequency, insProductResultDtos.getFrequency())); for (InsProductResult2 insProductResult2 : insProductResultDtos.getInsProductResult2s()) { InsProduct insProduct = new InsProduct(); insProduct.setId(insProductResult2.getInsProductId());//椤圭洰id InsProductResult2 result2 = new InsProductResult2(); + result2.setNum(orderState.getNum()); result2.setInsProductId(insProductResult2.getInsProductId()); //棰戠巼 result2.setFrequency(insProductResultDtos.getFrequency()); @@ -818,8 +847,8 @@ ressult = 0; // 涓嶅悎鏍� break; } - }catch (Exception e) { - }finally { + } catch (Exception e) { + } finally { continue; } @@ -1036,7 +1065,7 @@ /*type=0 鍐嶆璇曢獙; type=1 缁х画璇曢獙 ; type=2 缁撴潫璇曢獙*/ switch (type) { case 0: - /*鍐嶆璇曢獙:璇ュ崟瀛愰��鍥炲埌妫�楠岀姸鎬�(鎺掑簭鏀规垚褰撳墠鐨勬渶鍚�)锛�*/ + /*鍐嶆璇曢獙:璇ュ崟瀛愰��鍥炲埌妫�楠岀姸鎬�(鎺掑簭鏀规垚褰撳墠鐨勬渶鍚�),娆℃暟閫掑(淇濈暀浠ュ墠鐨勬暟鎹�)锛�*/ //鏇存柊鍘熸潵鐨勬楠屼换鍔� // 鏌ヨ鏍规嵁 id 鍊掑簭鎺掑垪鐨勭涓�鏉¤褰� InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() @@ -1052,6 +1081,7 @@ .set(InsOrderState::getInsState, 4) .set(InsOrderState::getVerifyTell, tell) .set(InsOrderState::getVerifyUser, userId) + .set(InsOrderState::getNum, record.getNum() + 1)//娆℃暟鍔�1 .set(InsOrderState::getCreateTime, LocalDateTime.now())); } break; @@ -1110,6 +1140,7 @@ insOrderState.setInsOrderId(orderId); insOrderState.setLaboratory(minElement); insOrderState.setInsState(0); + insOrderState.setNum(1);//鍒濆鏄涓�娆� insOrderStateMapper.insert(insOrderState); } else { //濡傛灉缁х画璇曢獙娌℃湁鍏朵粬绔欑偣鐨勬楠屼换鍔¢偅灏辩粨鏉熻瘯楠� @@ -1125,629 +1156,9 @@ .set(InsOrderState::getInsState, 5) .set(InsOrderState::getVerifyTell, tell) .set(InsOrderState::getVerifyUser, userId)); - /*鐢熸垚鎶ュ憡*/ - generateReport(orderId); break; } return 1; - } - - //鐢熸垚鎶ュ憡 - private void generateReport(Integer orderId) { - LocalDateTime now = LocalDateTime.now(); - InsOrder insOrder = insOrderMapper.selectById(orderId); - Map<String, String> user = insProductMapper.selectUserById(insOrder.getUserId()); - //samples鏄繃婊ゆ帀娌℃湁妫�楠岄」鐩殑鏍峰搧 - List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId(orderId); - InsReport insReport = new InsReport(); - insReport.setCode(insOrder.getEntrustCode()); - insReport.setInsOrderId(orderId); - List<Map<String, Object>> tables = new ArrayList<>(); - Set<String> standardMethod = new HashSet<>(); - Set<String> deviceSet = new HashSet<>(); - Set<String> models = new HashSet<>(); - AtomicReference<Integer> productSize = new AtomicReference<>(0); - String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; - AtomicReference<String> resultCh = new AtomicReference<>(""); - AtomicReference<String> resultEn = new AtomicReference<>(""); - /*鍩虹鎶ュ憡(7鍒�)*/ - samples.forEach(a -> { - Set<Integer> set = new HashSet<>(); - Map<Integer, String> map2 = new HashMap<>(); - Long productCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, a.getId())); - productSize.set(productSize.get() + Integer.parseInt(productCount + "")); - models.add(a.getModel()); - standardMethod.add(baseMapper.getStandardMethodCode(a.getStandardMethodListId())); - getTemplateThing(set, map2, a.getInsProduct()); - for (InsProduct b : a.getInsProduct()) { - if (b.getInsProductResult() != null) { - List<JSONObject> jsonObjects = JSON.parseArray(b.getInsProductResult().getEquipValue(), JSONObject.class); - for (JSONObject jsonObject : jsonObjects) { - if (!"".equals(jsonObject.get("v") + "")) { - deviceSet.add(jsonObject.get("v") + ""); - } - } - } - } - AtomicInteger index = new AtomicInteger(); - Set<String> itemSet = new HashSet<>(); - List<RowRenderData> rows = new ArrayList<>(); - //琛ㄦ牸鐨勮鏁� - for (int i = 0; i < 3 + a.getInsProduct().size(); i++) { - RowRenderData rowRenderData = new RowRenderData(); - RowStyle rowStyle = new RowStyle(); - rowStyle.setHeight(40); - rowRenderData.setRowStyle(rowStyle); - List<CellRenderData> cells = new ArrayList<>(); - if (i >= 2 && i < 2 + a.getInsProduct().size()) { - if (itemSet.add(a.getInsProduct().get(i - 2).getInspectionItem())) { - index.getAndIncrement(); - } - } - //鍒楁暟 - for (int j = 0; j < 7; j++) { - CellRenderData cellRenderData = new CellRenderData(); - CellStyle cellStyle = new CellStyle(); - cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER); - cellRenderData.setCellStyle(cellStyle); - List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>(); - ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); - ParagraphStyle paragraphStyle = new ParagraphStyle(); - paragraphStyle.setAlign(ParagraphAlignment.CENTER); - paragraphRenderData.setParagraphStyle(paragraphStyle); - List<RenderData> renderData = new ArrayList<>(); - TextRenderData textRenderData = new TextRenderData(); - Style style = new Style(); - style.setFontFamily("瀹嬩綋"); - style.setColor("000000"); - textRenderData.setStyle(style); - if (i == 0) { - //绗竴琛� - if (j == 0 || j == 1) { - //绗竴鍒楀拰绗簩鍒� - textRenderData.setText("鏍峰搧缂栧彿@Sample number鈭�1"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 2 || j == 3) { - //绗笁鍒楀拰绗洓鍒� - textRenderData.setText(a.getSampleCode() + "鈭�2"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 4) { - //绗簲鍒� - textRenderData.setText("瑙勬牸鍨嬪彿@Type"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //绗叚鍒楀拰绗竷鍒� - textRenderData.setText(a.getModel() + "鈭�3"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (i == 1) { - //绗簩琛� - if (j == 0) { - //绗竴鍒� - textRenderData.setText("搴忓彿@No."); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 1 || j == 2) { - //绗簩鍒楀拰绗笁鍒� - textRenderData.setText("妫�娴嬮」鐩瓳Testing item鈭�4"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 3) { - //绗洓鍒� - textRenderData.setText("鍗曚綅@Unit"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 4) { - //绗簲鍒� - textRenderData.setText("鏍囧噯瑕佹眰@Requirement"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 5) { - //绗叚鍒� - textRenderData.setText("妫�楠岀粨鏋淍Test result"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //绗竷鍒� - textRenderData.setText("缁撹@Conclusion"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (i == 2 + a.getInsProduct().size()) { - //鏈�鍚庝竴琛� - if (j == 0 || j == 1) { - //绗竴鍒楀拰绗簩鍒� - textRenderData.setText("澶囨敞鈭�5"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //鍏朵綑鍒� - textRenderData.setText("鈥溾垰鈥濊〃绀洪」鐩悎鏍硷紝鈥溍椻�濊〃绀洪」鐩笉鍚堟牸銆侤鈥溾垰鈥� indicates test item is qualified,鈥溍椻�� indicates test item is not qualified 鈭�6"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else { - //鍏朵綑琛� - if (j == 0) { - //绗竴鍒� - textRenderData.setText(index + "鈭�2" + index); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 1) { - //绗簩鍒� - if (ObjectUtil.isNotEmpty(a.getInsProduct().get(i - 2).getInspectionItemSubclass())) { - if (ObjectUtil.isNotEmpty(a.getInsProduct().get(i - 2).getInspectionItemEn())) { - textRenderData.setText(a.getInsProduct().get(i - 2).getInspectionItem() + "@" + a.getInsProduct().get(i - 2).getInspectionItemEn() + "鈭�3" + index); - } else { - textRenderData.setText(a.getInsProduct().get(i - 2).getInspectionItem() + "鈭�3" + index); - } - } else { - if (ObjectUtil.isNotEmpty(a.getInsProduct().get(i - 2).getInspectionItemEn())) { - textRenderData.setText(a.getInsProduct().get(i - 2).getInspectionItem() + "@" + a.getInsProduct().get(i - 2).getInspectionItemEn() + "鈭�3" + index); - } else { - textRenderData.setText(a.getInsProduct().get(i - 2).getInspectionItem() + "鈭�3" + index); - } - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 2) { - //绗笁鍒� - if (ObjectUtil.isNotEmpty(a.getInsProduct().get(i - 2).getInspectionItemSubclass())) { - if (ObjectUtil.isNotEmpty(a.getInsProduct().get(i - 2).getInspectionItemSubclassEn())) { - textRenderData.setText(a.getInsProduct().get(i - 2).getInspectionItemSubclass() + "@" + a.getInsProduct().get(i - 2).getInspectionItemSubclassEn()); - } else { - textRenderData.setText(a.getInsProduct().get(i - 2).getInspectionItemSubclass()); - } - } else { - if (ObjectUtil.isNotEmpty(a.getInsProduct().get(i - 2).getInspectionItemEn())) { - textRenderData.setText(a.getInsProduct().get(i - 2).getInspectionItem() + "@" + a.getInsProduct().get(i - 2).getInspectionItemEn() + "鈭�3" + index); - } else { - textRenderData.setText(a.getInsProduct().get(i - 2).getInspectionItem() + "鈭�3" + index); - } - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 3) { - //绗洓鍒� - textRenderData.setText(ObjectUtil.isNotEmpty(a.getInsProduct().get(i - 2).getUnit()) ? a.getInsProduct().get(i - 2).getUnit() : ""); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 4) { - //绗簲鍒� - textRenderData.setText(a.getInsProduct().get(i - 2).getTell()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 5) { - //绗叚鍒� - textRenderData.setText(a.getInsProduct().get(i - 2).getLastValue()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //绗竷鍒� - if (ObjectUtils.isEmpty(a.getInsProduct().get(i - 2).getInsResult())) { - textRenderData.setText("-"); - } else if (a.getInsProduct().get(i - 2).getInsResult() == 1) { - textRenderData.setText("鈭�"); - } else if (a.getInsProduct().get(i - 2).getInsResult() == 0) { - textRenderData.setText("脳"); - } else { - textRenderData.setText("-"); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - rowRenderData.setCells(cells); - if (rowRenderData.getCells().size() != 0) { - rows.add(rowRenderData); - } - } - TableRenderData tableRenderData = new TableRenderData(); - tableRenderData.setRows(rows); - - List<TableRenderData> tables1 = new ArrayList<>(); - tableRenderData.setRows(new ArrayList<>()); - int totalHeight = 0; - int pageHeightLimit = 450; // 鍋囪姣忛〉鐨勯珮搴﹂檺鍒朵负500鍗曚綅 - int rowHeight = 0; - List<RowRenderData> firstTwoRows = new ArrayList<>(); // 淇濆瓨鍓嶄袱琛屼互渚垮鍒跺埌鏂拌〃鏍� - List<RowRenderData> endRows = new ArrayList<>(); // 淇濆瓨鏈�鍚庝竴琛屽娉ㄤ互渚垮鍒跺埌鏂拌〃鏍� - // 淇濆瓨鍓嶄袱琛屼互渚垮鍒跺埌鏂拌〃鏍� - if (rows.size() >= 3) { - firstTwoRows.add(rows.get(0)); - firstTwoRows.add(rows.get(1)); - endRows.add(rows.get(rows.size() - 1)); - } - for (RowRenderData row : rows) { - rowHeight = calculateRowHeight(row); // 鑷畾涔夋柟娉曡绠楄楂� - if (totalHeight + rowHeight > pageHeightLimit) { - tableRenderData.getRows().addAll(endRows); - // 鍒涘缓鏂拌〃鏍煎苟澶嶅埗鍓嶄袱琛� - TableRenderData newTableRenderData = new TableRenderData(); - newTableRenderData.setRows(new ArrayList<>(firstTwoRows)); - //璁剧疆鏍峰紡 - TableStyle tableStyle = new TableStyle(); - tableStyle.setColWidths(new int[]{650, 1600, 2000, 750, 2800, 1100, 1100}); - tableStyle.setWidth("10000"); - tableStyle.setAlign(TableRowAlign.CENTER); - BorderStyle borderStyle = new BorderStyle(); - borderStyle.setColor("000000"); - borderStyle.setType(XWPFTable.XWPFBorderType.THICK); - borderStyle.setSize(14); - tableStyle.setLeftBorder(borderStyle); - tableStyle.setTopBorder(borderStyle); - tableStyle.setRightBorder(borderStyle); - tableStyle.setBottomBorder(borderStyle); - tableRenderData.setTableStyle(tableStyle); - newTableRenderData.setTableStyle(tableStyle); - tables1.add(tableRenderData); - tableRenderData = newTableRenderData; - totalHeight = 0; - } - totalHeight += rowHeight; - tableRenderData.getRows().add(row); - } - if (!tableRenderData.getRows().isEmpty()) { - //璁剧疆鏍峰紡 - TableStyle tableStyle = new TableStyle(); - tableStyle.setColWidths(new int[]{650, 1600, 2000, 750, 2800, 1100, 1100}); - tableStyle.setWidth("10000"); - tableStyle.setAlign(TableRowAlign.CENTER); - BorderStyle borderStyle = new BorderStyle(); - borderStyle.setColor("000000"); - borderStyle.setType(XWPFTable.XWPFBorderType.THICK); - borderStyle.setSize(14); - tableStyle.setLeftBorder(borderStyle); - tableStyle.setTopBorder(borderStyle); - tableStyle.setRightBorder(borderStyle); - tableStyle.setBottomBorder(borderStyle); - tableRenderData.setTableStyle(tableStyle); - tables1.add(tableRenderData); - } - tables1.forEach(table -> { - Map<String, Object> tableMap = new HashMap<>(); - tableMap.put("table", table); - tableMap.put("report", insReport); - tables.add(tableMap); - }); - }); - - String url; - try { - InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx"); - File file = File.createTempFile("temp", ".tmp"); - OutputStream outputStream = new FileOutputStream(file); - IOUtils.copy(inputStream, outputStream); - url = file.getAbsolutePath(); - } catch (FileNotFoundException e) { - throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�"); - } catch (IOException e) { - throw new RuntimeException(e); - } - StringBuilder standardMethod2 = new StringBuilder(); - for (String s : standardMethod) { - standardMethod2.append("銆�").append(s); - } - standardMethod2.replace(0, 1, ""); - tables.forEach(table -> { - table.put("tableSize", tables.size() + 1); - }); - List<Map<String, String>> deviceList = null; - if (deviceSet.size() != 0) { - deviceList = insOrderMapper.selectDeviceList(deviceSet); - } - Map<String, String> codeStr = new HashMap<>(); - codeStr.put("鎶ュ憡缂栧彿", insReport.getCode()); - codeStr.put("鏍峰搧鍚嶇О", insOrder.getSample()); - codeStr.put("瑙勬牸鍨嬪彿", samples.get(0).getModel()); - codeStr.put("鍙戞斁鏃ユ湡", now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); - String codePath; - try { - codePath = new MatrixToImageWriter().code(JackSonUtil.marshal(codeStr).replaceAll("\\{", "") - .replaceAll("}", "").replaceAll(",", "").replaceAll("\"", ""), twoCode); - } catch (Exception e) { - throw new RuntimeException(e); - } - String modelStr = ""; - for (String model : models) { - modelStr += "," + model; - } - String finalModelStr = modelStr; - String sampleEn = insSampleMapper.getSampleEn(insOrder.getSample()); - String orderType = insOrderMapper.getEnumLabelByValue(insOrder.getOrderType()); - String formType = insOrderMapper.getEnumLabelByValue(insOrder.getFormType()); - ConfigureBuilder builder = Configure.builder(); - builder.useSpringEL(true); - List<Map<String, String>> finalDeviceList = deviceList; - Integer userId = insSampleUserMapper.selectOne(Wrappers.<InsSampleUser>lambdaQuery() - .eq(InsSampleUser::getInsSampleId, orderId).last("limit 1")).getUserId(); - String signatureUrl; - try { - signatureUrl = userMapper.selectById(userId).getSignatureUrl(); - } catch (Exception e) { - throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�"); - } - if (ObjectUtils.isEmpty(signatureUrl) || signatureUrl.equals("")) { - throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�"); - } - Custom custom = customMapper.selectById(insOrder.getCompanyId()); - if (!resultCh.get().equals("")) { - resultCh.set("渚濇嵁濮旀墭瑕佹眰锛�" + resultCh.get().replaceFirst("銆�", "") + "绛夋墍妫�椤圭洰涓嶇鍚堣姹傦紝鍏朵綑鎵�妫�椤圭洰鍧囩鍚堣姹傘��"); - resultEn.set("According to commissioned requirements," + resultEn.get().replaceFirst("銆�", "") + " these inspected items do not meet the requirements, all other inspected items meet the requirements."); - } else { - resultCh.set("渚濇嵁濮旀墭瑕佹眰锛屾墍妫�椤圭洰鍧囩鍚堣姹傘��"); - resultEn.set("According to commissioned requirements, all the tested items meet the requirements."); - } - - /*鑾峰彇闄勪欢鍥剧墖绫诲瀷*/ - List<Map<String, Object>> images = new ArrayList<>(); - List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery().eq(InsOrderFile::getType, 1).eq(InsOrderFile::getInsOrderId, orderId)); - if (CollectionUtils.isNotEmpty(insOrderFiles)) { - insOrderFiles.forEach(insOrderFile -> { - Map<String, Object> image = new HashMap<>(); - PictureRenderData pictureRenderData = Pictures.ofLocal(imgUrl + "/" + insOrderFile.getFileUrl()).sizeInCm(17, 20).create(); - image.put("url", pictureRenderData); - image.put("report", insReport); - images.add(image); - }); - } - //濮旀墭浜哄拰鐢佃瘽瀛楁鍒ゆ柇 - if (ObjectUtils.isEmpty(insOrder.getPrepareUser())) { - insOrder.setPrepareUser("/"); - } - if (ObjectUtils.isEmpty(insOrder.getPhone())) { - insOrder.setPhone("/"); - } - //妫�楠岄」鐩殑鐜 - InsProduct insProduct = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).eq(InsProduct::getInsSampleId, samples.get(0).getId())).get(0); - String environment = ""; - environment = (ObjectUtils.isNotEmpty(insProduct.getTemperature()) ? insProduct.getTemperature() + "鈩� " : "") + (ObjectUtils.isNotEmpty(insProduct.getHumidity()) ? insProduct.getHumidity() + "%" : ""); - String finalEnvironment = environment; - XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render( - new HashMap<String, Object>() {{ - put("order", insOrder); - put("report", insReport); - put("environment", finalEnvironment); - put("custom", custom); - put("sampleSize", samples.size()); - put("tables", tables); - put("tableSize", tables.size() + 1); - put("standardMethod", (standardMethod2.toString().equals("null") ? "" : standardMethod2)); - put("deviceList", finalDeviceList); - put("twoCode", Pictures.ofLocal(codePath).create()); - put("models", finalModelStr.replace(",", "")); - put("productSize", productSize); - put("createTime", now.format(DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"))); - put("createTimeEn", monthNames[now.getMonthValue() - 1] + " " + now.getDayOfMonth() + ", " + now.getYear()); - put("insTime", insOrder.getInsTime().format(DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"))); - put("insTimeEn", monthNames[insOrder.getInsTime().getMonthValue() - 1] + " " + insOrder.getInsTime().getDayOfMonth() + ", " + insOrder.getInsTime().getYear()); - put("writeUrl", null); - put("insUrl", Pictures.ofLocal(imgUrl + "/" + signatureUrl).create()); - put("images", images); - put("examineUrl", null); - put("ratifyUrl", null); - put("sampleEn", sampleEn); - put("orderType", orderType); - put("getTime", insOrder.getExamineTime().format(DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"))); - put("getTimeEn", monthNames[insOrder.getExamineTime().getMonthValue() - 1] + " " + insOrder.getExamineTime().getDayOfMonth() + ", " + insOrder.getExamineTime().getYear()); - put("seal1", null); - put("seal2", null); - put("formTypeCh", formType); - put("formTypeEn", insOrder.getFormType()); - put("resultCh", resultCh.get()); - put("resultEn", resultEn.get()); - }}); - try { - String name = insReport.getCode().replace("/", "") + ".docx"; - template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name))); - insReport.setUrl("/word/" + name); - insReportMapper.insert(insReport); - insOrder.setInsState(5); - insOrderMapper.updateById(insOrder); - } catch (IOException e) { - throw new RuntimeException(e); - } - // 澶勭悊鍚堝苟鍗曞厓鏍肩殑闂 - String path = wordUrl + "/" + insReport.getCode().replace("/", "") + ".docx"; - try { - FileInputStream stream = new FileInputStream(path); - XWPFDocument document = new XWPFDocument(stream); - List<XWPFTable> xwpfTables = document.getTables(); - for (int i = 1; i < xwpfTables.size() - (deviceList == null ? 1 : 2); i++) { - Set<String> set1 = new HashSet<>(); - Map<String, Map<String, Integer>> maps = new HashMap<>(); - for (int j = 0; j < xwpfTables.get(i).getRows().size(); j++) { - for (int k = 0; k < xwpfTables.get(i).getRows().get(j).getTableCells().size(); k++) { - if (xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().indexOf("鈭�") > -1) { - String[] split = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�"); - if (set1.add(split[1])) { - Map<String, Integer> map = new HashMap<>(); - map.put("sr", j); - map.put("sc", k); - map.put("er", j + 0); - map.put("ec", k + 0); - maps.put(split[1], map); - } else { - Map<String, Integer> map1 = maps.get(split[1]); - if (j == map1.get("sr")) { - map1.put("ec", map1.get("ec") + 1); - } else if (k == map1.get("sc")) { - map1.put("er", map1.get("er") + 1); - } - } - String str = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�")[0]; - xwpfTables.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0); - xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setText(str); - xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); - xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getParagraphArray(0).setAlignment(ParagraphAlignment.CENTER); - } - } - } - List<String> list = new ArrayList<>(); - for (String s : maps.keySet()) { - list.add(s); - } - for (int a = list.size() - 1; a >= 0; a--) { - Map<String, Integer> v = maps.get(list.get(a)); - for (int j = 0; j < v.get("er") - v.get("sr") + 1; j++) { - if (v.get("ec") > v.get("sc")) { - try { - TableTools.mergeCellsHorizonal(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec")); - } catch (Exception e) { - } - } - } - if (v.get("er") > v.get("sr")) { - try { - TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er")); - } catch (Exception e) { - } - } - } - } - FileOutputStream fileOutputStream = new FileOutputStream(path); - document.write(fileOutputStream); - fileOutputStream.close(); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } - //澶勭悊涓嫳鏂囨崲琛岀殑闂 - try { - FileInputStream stream1 = new FileInputStream(path); - XWPFDocument document1 = new XWPFDocument(stream1); - List<XWPFTable> xwpfTables1 = document1.getTables(); - for (int i = 1; i < xwpfTables1.size() - (deviceList == null ? 1 : 2); i++) { - for (int j = 0; j < xwpfTables1.get(i).getRows().size(); j++) { - for (int k = 0; k < xwpfTables1.get(i).getRows().get(j).getTableCells().size(); k++) { - if (xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText().contains("@")) { - String text = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText(); - String[] split = text.split("@"); - xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0); - XWPFParagraph xwpfParagraph = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).addParagraph(); - XWPFRun run = xwpfParagraph.createRun(); - run.setText(split[0]); - if (ObjectUtils.isNotNull(split[1])) { - run.addBreak(); - run.setText(split[1]); - } - xwpfParagraph.setAlignment(ParagraphAlignment.CENTER); - } - } - } - } - FileOutputStream fileOutputStream1 = new FileOutputStream(path); - document1.write(fileOutputStream1); - fileOutputStream1.close(); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - - // 璁$畻琛岄珮鐨勬柟娉� - private int calculateRowHeight(RowRenderData rowRenderData) { - // 瀹炵幇璁$畻閫昏緫锛屽彲鑳介渶瑕佹牴鎹崟鍏冩牸鍐呭鍜屽瓧浣撶瓑鍙傛暟杩涜璁$畻 - int height = 0; - for (CellRenderData cell : rowRenderData.getCells()) { - int cellHeight = estimateCellHeight(cell); // 鏍规嵁鍐呭浼扮畻鍗曞厓鏍奸珮搴� - if (cellHeight > height) { - height = cellHeight; - } - } - return height; - } - - //鏍规嵁鍗曞厓鏍肩殑鏂囨湰鍐呭璁$畻瀹為檯琛岄珮 - private int estimateCellHeight(CellRenderData cellRenderData) { - // 鍋囪榛樿琛岄珮鏄�40 - int defaultHeight = 40; - // 鑾峰彇鍗曞厓鏍间腑鐨勬墍鏈夋钀� - List<ParagraphRenderData> paragraphs = cellRenderData.getParagraphs(); - int estimatedHeight = 0; - // 閬嶅巻娈佃惤锛屼及绠楁瘡涓钀界殑楂樺害 - for (ParagraphRenderData paragraph : paragraphs) { - List<RenderData> contents = paragraph.getContents(); - for (RenderData content : contents) { - if (content instanceof TextRenderData) { - TextRenderData text = (TextRenderData) content; - Style style = text.getStyle(); - // 鍋囪姣忚鏂囨湰鐨勯珮搴︿负瀛椾綋澶у皬鐨�1.2鍊� - Double fontSize = Objects.isNull(style.getFontSize()) ? 12.0 : style.getFontSize(); - int lines = (int) Math.ceil(text.getText().length() / 15.0); // 鍋囪姣忚绾�15涓瓧绗� - int textHeight = (int) (fontSize * 1.2 * lines); - // 绱姞娈佃惤鐨勯珮搴� - estimatedHeight += textHeight; - } - } - } - // 杩斿洖鏈�澶у�硷紝纭繚楂樺害涓嶄綆浜庨粯璁ら珮搴� - return Math.max(estimatedHeight, defaultHeight); } private void getTemplateThing(Set<Integer> set, Map<Integer, String> map2, List<InsProduct> insProducts) { @@ -1777,7 +1188,13 @@ @Override public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode) { - List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId)); + List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() + .eq(InsSample::getInsOrderId, orderId).select(InsSample::getId)); + InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, orderId) + .eq(InsOrderState::getLaboratory, laboratory) + .orderByDesc(InsOrderState::getId) + .last("LIMIT 1"));// 纭繚鍙彇涓�鏉¤褰� List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList()); List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() .in(InsProduct::getInsSampleId, ids) @@ -1804,6 +1221,7 @@ //鐢佃矾璇曢獙鐨勬楠岄」鐩�,闇�瑕佸湪鎻愪氦鐨勬椂鍊欏啀鍘昏祴鍊煎悎鏍间笌涓嶅悎鏍� if (product.getInspectionItem().equals("鐢佃矾璇曢獙")) { List<Integer> collect = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery() + .eq(InsProductResult2::getNum, orderState.getNum()) .eq(InsProductResult2::getInsProductId, product.getId())).stream().map(InsProductResult2::getResult).distinct().collect(Collectors.toList()); if (collect.contains(0)) { product.setInsResult(0);//涓嶅悎鏍� @@ -1871,6 +1289,7 @@ List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList()); for (Integer ip : ips) { List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() + .eq(InsProductResult::getNum, orderState.getNum()) .eq(InsProductResult::getInsProductId, ip)); if (insProductResults.size() > 1) { for (int i = 1; i < insProductResults.size(); i++) { @@ -1884,19 +1303,6 @@ String key = "frequency" + ":" + entrustCode + ":*"; RedisUtil.delsLike(key); return 1; - } - - // 鑾峰彇涓や釜localDateTime鐨勬瘡涓�澶� - public static List<LocalDateTime> getLocalDateTimesBetween(LocalDateTime start, LocalDateTime end) { - List<LocalDateTime> localDateTimes = new ArrayList<>(); - LocalDate currentDate = start.toLocalDate(); - LocalDateTime currentLocalDateTime = start; - while (!currentDate.isAfter(end.toLocalDate())) { - localDateTimes.add(currentLocalDateTime); - currentLocalDateTime = currentLocalDateTime.plusDays(1); - currentDate = currentDate.plusDays(1); - } - return localDateTimes; } public static String getWeek(String dayStr) { -- Gitblit v1.9.3