Browse Source

合并表格,list排序

aQiu6 3 months ago
parent
commit
dd81dcbd5d

+ 89 - 3
src/main/java/org/example/mybatisplus/Controller/IndexController.java

@@ -1,5 +1,7 @@
 package org.example.mybatisplus.Controller;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 
@@ -19,9 +21,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.io.*;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 
 @ApiOperation("控制类")
 @RestController
@@ -40,6 +40,92 @@ public class IndexController {
         auditResult.setScore("222");
         auditResult.setOpinion("test");
         auditResult.setServiceProviderName("服务商2");
+        String str=" [\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"净资产评级\",\n" +
+                "        \"category\": \"基础信息\"\n" +
+                "      },\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"发展能力-总收入增长率\",\n" +
+                "        \"category\": \"财务信息\"\n" +
+                "      },\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"项目信息\",\n" +
+                "        \"category\": \"项目信息\"\n" +
+                "      },\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"运营年限\",\n" +
+                "        \"category\": \"基础信息\"\n" +
+                "      },\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"失信被执行人\",\n" +
+                "        \"category\": \"公共记录\"\n" +
+                "      },\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"基金会捐赠收入规模\",\n" +
+                "        \"category\": \"基础信息\"\n" +
+                "      },\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"发展能力-公益支出增长率\",\n" +
+                "        \"category\": \"财务信息\"\n" +
+                "      },\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"严重违法\",\n" +
+                "        \"category\": \"公共记录\"\n" +
+                "      },\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"运营能力-私募基金-公益支出\",\n" +
+                "        \"category\": \"财务信息\"\n" +
+                "      },\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"运营能力-私募基金-管理费用\",\n" +
+                "        \"category\": \"财务信息\"\n" +
+                "      },\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"税务处罚\",\n" +
+                "        \"category\": \"公共记录\"\n" +
+                "      },\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"MOCA评级\",\n" +
+                "        \"category\": \"基础信息\"\n" +
+                "      },\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"经营异常\",\n" +
+                "        \"category\": \"公共记录\"\n" +
+                "      },\n" +
+                "      {\n" +
+                "        \"score\": 1,\n" +
+                "        \"itemName\": \"行政处罚\",\n" +
+                "        \"category\": \"公共记录\"\n" +
+                "      }\n" +
+                "    ]";
+        List<CheckItemScore> slist=JSONArray.parseArray(str,CheckItemScore.class);
+
+        // 定义固定的排序顺序
+        List<String> fixedOrder = List.of("基础信息", "公共记录", "财务信息","项目情况");
+        Map<String, Integer> orderMap = new HashMap<>();
+        for (int i = 0; i < fixedOrder.size(); i++) {
+            orderMap.put(fixedOrder.get(i), i);
+        }
+
+        // 使用 Comparator 对列表进行排序
+        Collections.sort(slist, Comparator.comparingInt(person -> orderMap.getOrDefault(person.getCategory(), Integer.MAX_VALUE)));
+
+        System.out.println(JSON.toJSONString(slist));
+        auditResult.setCheckItemScores(slist);
 
         BasicInfo basicInfo = new BasicInfo();
         basicInfo.setBasicInfoScore(new BasicInfoScore(

+ 5 - 1
src/main/java/org/example/mybatisplus/module/vo/CheckItemScore.java

@@ -9,5 +9,9 @@ import lombok.Data;
 public class CheckItemScore {
     private String category;
     private String itemName;
-    private String Score;
+    private String score;
+    public int compareTo(CheckItemScore o) {
+        String cates="基础信息,公共记录,财务信息,项目情况";
+        return cates.indexOf(this.category)-cates.indexOf(o.category);
+    }
 }

+ 8 - 2
src/main/resources/foundation_template.xml

@@ -10439,6 +10439,7 @@ fmppOBQAc+lHWiiqAMnvSDk5FLRQFwoxRRQFz//Z
                     <w:gridCol w:w="3245"/>
                     <w:gridCol w:w="3575"/>
                 </w:tblGrid> <#if auditResult.checkItemScores?? && auditResult.checkItemScores?size gt 0>
+                <#assign prevCategory = "">
                                 <#list auditResult.checkItemScores as item>
                 <w:tr>
                     <w:tblPrEx>
@@ -10463,6 +10464,11 @@ fmppOBQAc+lHWiiqAMnvSDk5FLRQFwoxRRQFz//Z
                     <w:tc>
                         <w:tcPr>
                             <w:tcW w:w="2250" w:type="dxa"/>
+                            <#if item.category != prevCategory>
+                                <w:vMerge w:val="restart"/>
+                            <#else>
+                                <w:vMerge w:val="continue"/>
+                            </#if>
                             <w:tcBorders>
                                 <w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="E3EDFB"/>
                                 <w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="E3EDFB"/>
@@ -10494,7 +10500,7 @@ fmppOBQAc+lHWiiqAMnvSDk5FLRQFwoxRRQFz//Z
                                     <w:sz-cs w:val="18"/>
                                     <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
                                 </w:rPr>
-                                <w:t>${item.category!''}</w:t>
+                                <w:t>${item.category!''}<#assign prevCategory = item.category></w:t>
                             </w:r>
                         </w:p>
                     </w:tc>
@@ -10562,7 +10568,7 @@ fmppOBQAc+lHWiiqAMnvSDk5FLRQFwoxRRQFz//Z
                                     <w:sz-cs w:val="18"/>
                                     <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
                                 </w:rPr>
-                                <w:t>${item.Score!''}</w:t>
+                                <w:t>${item.score!''}</w:t>
                             </w:r>
                         </w:p>
                     </w:tc>