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