From de3832e6560ead526d2ad86dd1feea39a39e3aef Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 15 三月 2025 17:54:09 +0800
Subject: [PATCH] 报告调整2.0

---
 inspect-server/src/main/java/com/yuanchu/mom/dto/UrlListDto.java         |   17 ++++++++
 cnas-server/src/main/java/com/yuanchu/mom/controller/SealController.java |    2 
 inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java        |   89 ++++++++++++++++++++++----------------------
 inspect-server/src/main/resources/mapper/InsReportMapper.xml             |    2 
 inspect-server/src/main/resources/static/report-template.docx            |    0 
 inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java       |    8 ++--
 inspect-server/src/main/java/com/yuanchu/mom/dto/ReportPageDto.java      |    2 +
 7 files changed, 69 insertions(+), 51 deletions(-)

diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/SealController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/SealController.java
index 3d34291..1ebc129 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/controller/SealController.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/SealController.java
@@ -52,7 +52,7 @@
     @ValueClassify("鍦烘墍鎴栬鏂�")
     @ApiOperation(value="鍒犻櫎鍗扮珷")
     @PostMapping("/delectSeal")
-    public  Result delectSeal(@RequestBody Seal seal) {
+    public  Result delectSeal(Seal seal) {
         return Result.success(sealService.removeById(seal));
     }
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/dto/ReportPageDto.java b/inspect-server/src/main/java/com/yuanchu/mom/dto/ReportPageDto.java
index 71ebeb1..def5e88 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/dto/ReportPageDto.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/dto/ReportPageDto.java
@@ -28,4 +28,6 @@
     //瀹為獙瀹d
     private Integer labId;
 
+    private String orderType;
+
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/dto/UrlListDto.java b/inspect-server/src/main/java/com/yuanchu/mom/dto/UrlListDto.java
new file mode 100644
index 0000000..994ab32
--- /dev/null
+++ b/inspect-server/src/main/java/com/yuanchu/mom/dto/UrlListDto.java
@@ -0,0 +1,17 @@
+package com.yuanchu.mom.dto;
+
+
+import com.deepoove.poi.data.PictureRenderData;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+//
+public class UrlListDto {
+
+    @ApiModelProperty("鍥剧墖1")
+    private PictureRenderData imageOne;
+
+    @ApiModelProperty("鍥剧墖2")
+    private PictureRenderData imageTwo;
+}
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 f1b978a..e764498 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
@@ -613,7 +613,7 @@
                 XWPFParagraph paragraph6 = table.getRow(0).getCell(cell - 1).getParagraphArray(0);
                 paragraph6.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run6 = paragraph6.createRun();
-                run6.setText("/");
+                run6.setText("鍒ゅ畾");
                 XWPFParagraph paragraph7 = table.getRow(2).getCell(cell - 1).getParagraphArray(0);
                 paragraph7.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run7 = paragraph7.createRun();
@@ -625,7 +625,7 @@
                 XWPFParagraph paragraph9 = table.getRow(row - 1).getCell(cell - 1).getParagraphArray(0);
                 paragraph9.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run9 = paragraph9.createRun();
-                run9.setText("/");
+                run9.setText("");
                 for (int i = 0; i < collect.size(); i++) {
                     String s3 = collect.get(i);
                     if (s3.contains("绔彛")) {
@@ -838,7 +838,7 @@
 
                 XWPFParagraph paragraph6 = table.getRow(0).getCell(cell - 1).getParagraphArray(0);
                 XWPFRun run6 = paragraph6.createRun();
-                run6.setText("/");
+                run6.setText("鍒ゅ畾");
 
                 XWPFParagraph paragraph7 = table.getRow(1).getCell(cell - 1).getParagraphArray(0);
                 XWPFRun run7 = paragraph7.createRun();
@@ -851,7 +851,7 @@
 
                 XWPFParagraph paragraph9 = table.getRow(row - 1).getCell(cell - 1).getParagraphArray(0);
                 XWPFRun run9 = paragraph9.createRun();
-                run9.setText("/");
+                run9.setText("");
 
                 for (int i = 0; i < collect.size(); i++) {
                     String s3 = collect.get(i);
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java b/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
index 8b01a45..6fcbefd 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
@@ -283,7 +283,6 @@
                         cells.add(cellRenderData);
                     }
                     else {
-                        i=i-1;
                         if (insOrderState.getVersion() == 1) {
                             //闈炵數璋冪増鏈�(绠�鍗曠増)
                             if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�") && i <= 2 * portRow) {
@@ -905,7 +904,8 @@
                                     paragraphRenderDataList.add(paragraphRenderData);
                                     cellRenderData.setParagraphs(paragraphRenderDataList);
                                     cells.add(cellRenderData);
-                                } else if (j == bb - 1) {
+                                }
+                                else if (j == bb - 1) {
                                     //鏈�鍚庝竴鍒�
                                     if (i % (angles + 1) == 1) {
                                         textRenderData.setText("鍒ゅ畾");
@@ -2692,16 +2692,15 @@
         List<Map<String, Object>> tables2 = new ArrayList<>();
         if (strings.contains("鐢佃矾璇曢獙")) {
             /*鍕鹃�夌殑鐢佃矾璇曢獙琛�*/
-            for (InsReportDto2 insReportDto2 : insReportDto1.getInsReportDto2s()) {
+            List<InsReportDto2> dto2s = insReportDto1.getInsReportDto2s().stream().filter(insReportDto2 -> insReportDto2.getLaboratory().equals("鐢佃矾璇曢獙")).collect(Collectors.toList());
+            for (InsReportDto2 insReportDto2 : dto2s) {
                 InsOrderUser insOrderUser = insOrderUserMapper.selectById(insReportDto2.getInsOrderUsersId());
                 InsOrderState orderState = insOrderStateMapper.selectById(insOrderUser.getInsOrderStateId());
-                if (orderState.getLaboratory().equals("鐢佃矾璇曢獙")) {
-                    orderState.setNum(insOrderUser.getNum());
-                    if (!insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) {
-                        getWord1(insOrderUser.getTerm(), orderState, tables2);
-                    } else {
-                        getWord2(insOrderUser.getTerm(), orderState, tables2);
-                    }
+                orderState.setNum(insOrderUser.getNum());
+                if (!insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) {
+                    getWord1(insOrderUser.getTerm(), orderState, tables2);
+                } else {
+                    getWord2(insOrderUser.getTerm(), orderState, tables2);
                 }
             }
         }
@@ -2948,27 +2947,25 @@
 
         /*妫�楠屾牱鍝佷俊鎭�*/
         //鏍峰搧鐓х墖
+        List<UrlListDto> urlList = new ArrayList<>();
         //鑾峰彇闄勪欢鍥剧墖绫诲瀷
-        List<List<Map<String, Object>>> imageRows = new ArrayList<>();
-        List<Map<String, Object>> currentRow = new ArrayList<>();
         List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery()
                 .eq(InsOrderFile::getType, 1)
                 .eq(InsOrderFile::getInsSampleId,insReportDto1.getSampleId())
                 .eq(InsOrderFile::getInsOrderId, orderId));
         if (CollectionUtils.isNotEmpty(insOrderFiles)) {
+            UrlListDto urlListDto = new UrlListDto();
             for (int i = 0; i < insOrderFiles.size(); i++) {
-                Map<String, Object> image = new HashMap<>();
-                PictureRenderData pictureRenderData = Pictures.ofLocal(imgUrl + "/" + insOrderFiles.get(i).getFileUrl()).sizeInCm(8, 10).create();
-                image.put("url", pictureRenderData);
-                currentRow.add(image);
-                if ((i + 1) % 2 == 0 || i == insOrderFiles.size() - 1) {
-                    imageRows.add(currentRow);
-                    currentRow = new ArrayList<>();
+                if (i % 2 == 0) {
+                    urlListDto = new UrlListDto();
+                    urlListDto.setImageOne(Pictures.ofLocal(imgUrl + "/" + insOrderFiles.get(i).getFileUrl()).create());
+                } else {
+                    urlListDto.setImageTwo(Pictures.ofLocal(imgUrl + "/" + insOrderFiles.get(i).getFileUrl()).create());
+                    urlList.add(urlListDto);
                 }
-            }
-            // 濡傛灉鏈�鍚庝竴琛屼笉瓒充袱涓紝涔熸坊鍔犲埌缁撴灉涓�
-            if (!currentRow.isEmpty()) {
-                imageRows.add(currentRow);
+                if (i == insOrderFiles.size() - 1) {
+                    urlList.add(urlListDto);
+                }
             }
         }
         //鏍峰搧缂栧彿鍙傜収涓婅堪sampleCode
@@ -2990,20 +2987,17 @@
             String insUser = insUserList.stream().map(insSampleUser -> {
                 User user = userMapper.selectById(insSampleUser.getUserId());
                 return user.getName();
-            }).collect(Collectors.joining(","));
+            }).distinct().collect(Collectors.joining(","));
             insUserDto.setInsUser(insUser);//娴嬭瘯浜哄憳
             List<InsSampleUser> checkUserList = entry.getValue().stream().filter(insSampleUser -> insSampleUser.getState() == 1).collect(Collectors.toList());//澶嶆牳浜�
             String checkUser = checkUserList.stream().map(insSampleUser -> {
                 User user = userMapper.selectById(insSampleUser.getUserId());
                 return user.getName();
-            }).collect(Collectors.joining(","));
+            }).distinct().collect(Collectors.joining(","));
             insUserDto.setCheckUser(checkUser);//瀹℃牳浜哄憳
             insUsers.add(insUserDto);
             index2++;
         }
-
-
-
 
         /*娴嬭瘯浠〃*/
         Set<String> deviceSet = new HashSet<>();
@@ -3048,6 +3042,7 @@
                 .bind("insProductList", new HackLoopTableRenderPolicy())
                 .bind("devList", new HackLoopTableRenderPolicy())
                 .bind("insUsers", new HackLoopTableRenderPolicy())
+                .bind("urlList", new HackLoopTableRenderPolicy())
                 .build();
         List<DevListDto> finalDevList = devList;
         String finalTitle = title3;
@@ -3072,7 +3067,7 @@
                     put("title3", finalTitle);                  //妫�娴嬬粨鏋�
                     put("tables3", tables3);                    //妫�娴嬬粨鏋�
                     put("tables4", tables4);                    //妫�娴嬬粨鏋�
-                    put("images", imageRows);                   //鏍峰搧鐓х墖
+                    put("urlList", urlList);                   //鏍峰搧鐓х墖
                     put("insUsers", insUsers);                //妫�娴嬩汉鍛樹俊鎭�
                     put("devList", finalDevList);                //娴嬭瘯浠〃
                     put("writeUrl", null);                      //鎻愪氦浜�
@@ -3198,19 +3193,19 @@
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
-        //鐩綍鏇存柊
-        try{
-            com.spire.doc.Document document = new com.spire.doc.Document();
-            document.loadFromFile(path);
-            // 鏇存柊鐩綍
-            document.updateTableOfContents();
-            // 淇濆瓨鏂囨。
-            document.saveToFile(path, FileFormat.Docx);
-            document.close();
-        }
-        catch (Exception e) {
-            throw new RuntimeException(e);
-        }
+//        //鐩綍鏇存柊
+//        try{
+//            com.spire.doc.Document document = new com.spire.doc.Document();
+//            document.loadFromFile(path);
+//            // 鏇存柊鐩綍
+//            document.updateTableOfContents();
+//            // 淇濆瓨鏂囨。
+//            document.saveToFile(path, FileFormat.Docx);
+//            document.close();
+//        }
+//        catch (Exception e) {
+//            throw new RuntimeException(e);
+//        }
     }
 
 
@@ -3365,7 +3360,7 @@
             int qq = 0;
             int ss = 0;
             //琛ㄦ牸鐨勮鏁�
-            for (int i = 0; i <= aa+1; i++) {
+         for (int i = 0; i <= aa+1; i++) {
                 RowRenderData rowRenderData = new RowRenderData();
                 RowStyle rowStyle = new RowStyle();
                 rowStyle.setHeight(40);
@@ -3447,7 +3442,9 @@
                         paragraphRenderDataList.add(paragraphRenderData);
                         cellRenderData.setParagraphs(paragraphRenderDataList);
                         cells.add(cellRenderData);
-                    } else {
+                    }
+                    else {
+                        int u = i;
                         i=i-1;
                         if (insOrderState.getVersion() == 1) {
                             //闈炵數璋冪増鏈�(绠�鍗曠増)
@@ -4013,7 +4010,8 @@
                                     cells.add(cellRenderData);
                                 }
                             }
-                        } else {
+                        }
+                        else {
                             //鐢佃皟鐗堟湰(澶嶆潅鐗�)
                             if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�") && i <= (angles + 1) * portRow) {
                                 cc = (angles + 1) * portRow;
@@ -5317,6 +5315,7 @@
                                 }
                             }
                         }
+                        i=u;
                     }
                 }
                 rowRenderData.setCells(cells);
diff --git a/inspect-server/src/main/resources/mapper/InsReportMapper.xml b/inspect-server/src/main/resources/mapper/InsReportMapper.xml
index 26244f4..404e25d 100644
--- a/inspect-server/src/main/resources/mapper/InsReportMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsReportMapper.xml
@@ -24,7 +24,7 @@
         from (
         select
         ir.*,io.entrust_code,sample_code,u.name write_user_name,u1.name ratify_user,u2.name
-        examine_user,io.laboratory,l.id labId
+        examine_user,io.laboratory,l.id labId,order_type
         from ins_report ir
         left join ins_order io on io.id = ir.ins_order_id
         left join ins_sample isa on isa.id = ir.ins_sample_id
diff --git a/inspect-server/src/main/resources/static/report-template.docx b/inspect-server/src/main/resources/static/report-template.docx
index 6ac386d..7ec7a26 100644
--- a/inspect-server/src/main/resources/static/report-template.docx
+++ b/inspect-server/src/main/resources/static/report-template.docx
Binary files differ

--
Gitblit v1.9.3