Browse Source

畜牧资源

wwh 1 week ago
parent
commit
3ad5ff4133
19 changed files with 40 additions and 109 deletions
  1. 0 13
      baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/domain/BizThreeAssetsProblemReport.java
  2. 1 2
      baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/research/controller/ResearchOpenApiController.java
  3. 0 13
      baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/research/domain/vo/ResearchThreeAssetsProblemReportVo.java
  4. 1 3
      baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/research/service/IResearchOpenApiService.java
  5. 1 6
      baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/research/service/impl/ResearchOpenApiServiceImpl.java
  6. 0 1
      baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/research/support/ResearchOpenApiSupport.java
  7. 1 16
      baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/support/ThreeAssetsProblemReportRules.java
  8. 1 9
      baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/support/ThreeAssetsProblemReportValidation.java
  9. 3 8
      baqing-admin/src/main/resources/mapper/industryservice/BizThreeAssetsProblemReportMapper.xml
  10. 3 4
      baqing-admin/src/test/java/com/ruoyi/web/modules/industryservice/research/controller/ResearchOpenApiControllerApiTest.java
  11. 3 5
      baqing-admin/src/test/java/com/ruoyi/web/modules/industryservice/support/ThreeAssetsProblemReportValidationTest.java
  12. 10 10
      doc/产业数据模型及服务/三资具体问题上报/三资具体问题上报前端技术方案.md
  13. 1 3
      doc/产业数据模型及服务/三资具体问题上报/三资具体问题上报功能需求.md
  14. 3 3
      doc/产业数据模型及服务/三资具体问题上报/三资具体问题上报技术方案.md
  15. 3 2
      doc/产业数据模型及服务/三资具体问题上报/三资具体问题上报测试用例.md
  16. 2 2
      doc/产业数据模型及服务/科研开放数据接口/科研开放数据接口功能需求.md
  17. 5 5
      doc/产业数据模型及服务/科研开放数据接口/科研开放数据接口技术方案.md
  18. 1 1
      doc/产业数据模型及服务/科研开放数据接口/科研开放数据接口测试用例.md
  19. 1 3
      sql/biz_three_assets_problem_report.sql

+ 0 - 13
baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/domain/BizThreeAssetsProblemReport.java

@@ -26,9 +26,6 @@ public class BizThreeAssetsProblemReport extends BaseEntity
26
 
26
 
27
     private String villageName;
27
     private String villageName;
28
 
28
 
29
-    /** 问题类型:fund/asset/resource/other */
30
-    private String problemType;
31
-
32
     /** 问题等级:general/key/major */
29
     /** 问题等级:general/key/major */
33
     private String problemLevel;
30
     private String problemLevel;
34
 
31
 
@@ -104,16 +101,6 @@ public class BizThreeAssetsProblemReport extends BaseEntity
104
         this.villageName = villageName;
101
         this.villageName = villageName;
105
     }
102
     }
106
 
103
 
107
-    public String getProblemType()
108
-    {
109
-        return problemType;
110
-    }
111
-
112
-    public void setProblemType(String problemType)
113
-    {
114
-        this.problemType = problemType;
115
-    }
116
-
117
     public String getProblemLevel()
104
     public String getProblemLevel()
118
     {
105
     {
119
         return problemLevel;
106
         return problemLevel;

+ 1 - 2
baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/research/controller/ResearchOpenApiController.java

@@ -406,7 +406,6 @@ public class ResearchOpenApiController
406
             @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
406
             @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
407
             @RequestParam(value = "townName", required = false) String townName,
407
             @RequestParam(value = "townName", required = false) String townName,
408
             @RequestParam(value = "villageName", required = false) String villageName,
408
             @RequestParam(value = "villageName", required = false) String villageName,
409
-            @RequestParam(value = "problemType", required = false) String problemType,
410
             @RequestParam(value = "beginReportTime", required = false)
409
             @RequestParam(value = "beginReportTime", required = false)
411
             @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginReportTime,
410
             @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginReportTime,
412
             @RequestParam(value = "endReportTime", required = false)
411
             @RequestParam(value = "endReportTime", required = false)
@@ -415,7 +414,7 @@ public class ResearchOpenApiController
415
         try
414
         try
416
         {
415
         {
417
             return ResearchOpenApiSupport.success(researchOpenApiService.listThreeAssetsProblemReports(
416
             return ResearchOpenApiSupport.success(researchOpenApiService.listThreeAssetsProblemReports(
418
-                    pageNum, pageSize, townName, villageName, problemType, beginReportTime, endReportTime));
417
+                    pageNum, pageSize, townName, villageName, beginReportTime, endReportTime));
419
         }
418
         }
420
         catch (ServiceException ex)
419
         catch (ServiceException ex)
421
         {
420
         {

+ 0 - 13
baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/research/domain/vo/ResearchThreeAssetsProblemReportVo.java

@@ -21,9 +21,6 @@ public class ResearchThreeAssetsProblemReportVo
21
     /** 所属村名称 */
21
     /** 所属村名称 */
22
     private String villageName;
22
     private String villageName;
23
 
23
 
24
-    /** 问题类型(fund/asset/resource/other) */
25
-    private String problemType;
26
-
27
     /** 问题等级(general/key/major) */
24
     /** 问题等级(general/key/major) */
28
     private String problemLevel;
25
     private String problemLevel;
29
 
26
 
@@ -73,16 +70,6 @@ public class ResearchThreeAssetsProblemReportVo
73
         this.villageName = villageName;
70
         this.villageName = villageName;
74
     }
71
     }
75
 
72
 
76
-    public String getProblemType()
77
-    {
78
-        return problemType;
79
-    }
80
-
81
-    public void setProblemType(String problemType)
82
-    {
83
-        this.problemType = problemType;
84
-    }
85
-
86
     public String getProblemLevel()
73
     public String getProblemLevel()
87
     {
74
     {
88
         return problemLevel;
75
         return problemLevel;

+ 1 - 3
baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/research/service/IResearchOpenApiService.java

@@ -147,13 +147,11 @@ public interface IResearchOpenApiService
147
      *
147
      *
148
      * @param townName 所属乡镇名称模糊匹配
148
      * @param townName 所属乡镇名称模糊匹配
149
      * @param villageName 所属村名称模糊匹配
149
      * @param villageName 所属村名称模糊匹配
150
-     * @param problemType 问题类型精确匹配
151
      * @param beginReportTime 上报开始日期(与结束日期同时有值时生效)
150
      * @param beginReportTime 上报开始日期(与结束日期同时有值时生效)
152
      * @param endReportTime 上报结束日期(与开始日期同时有值时生效)
151
      * @param endReportTime 上报结束日期(与开始日期同时有值时生效)
153
      */
152
      */
154
     OpenApiPageResult<ResearchThreeAssetsProblemReportVo> listThreeAssetsProblemReports(int pageNum, int pageSize,
153
     OpenApiPageResult<ResearchThreeAssetsProblemReportVo> listThreeAssetsProblemReports(int pageNum, int pageSize,
155
-            String townName, String villageName, String problemType,
156
-            Date beginReportTime, Date endReportTime);
154
+            String townName, String villageName, Date beginReportTime, Date endReportTime);
157
 
155
 
158
     /**
156
     /**
159
      * 科技服务人员管理详情(单例配置,无查询参数)。
157
      * 科技服务人员管理详情(单例配置,无查询参数)。

+ 1 - 6
baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/research/service/impl/ResearchOpenApiServiceImpl.java

@@ -482,8 +482,7 @@ public class ResearchOpenApiServiceImpl implements IResearchOpenApiService
482
 
482
 
483
     @Override
483
     @Override
484
     public OpenApiPageResult<ResearchThreeAssetsProblemReportVo> listThreeAssetsProblemReports(int pageNum,
484
     public OpenApiPageResult<ResearchThreeAssetsProblemReportVo> listThreeAssetsProblemReports(int pageNum,
485
-            int pageSize, String townName, String villageName, String problemType,
486
-            Date beginReportTime, Date endReportTime)
485
+            int pageSize, String townName, String villageName, Date beginReportTime, Date endReportTime)
487
     {
486
     {
488
         tokenService.assertEnabled();
487
         tokenService.assertEnabled();
489
         int safePageNum = normalizePageNum(pageNum);
488
         int safePageNum = normalizePageNum(pageNum);
@@ -497,10 +496,6 @@ public class ResearchOpenApiServiceImpl implements IResearchOpenApiService
497
         {
496
         {
498
             query.setVillageName(villageName.trim());
497
             query.setVillageName(villageName.trim());
499
         }
498
         }
500
-        if (StringUtils.isNotEmpty(problemType))
501
-        {
502
-            query.setProblemType(problemType.trim());
503
-        }
504
         // 上报时间区间:开始、结束日期同时有值时才生效
499
         // 上报时间区间:开始、结束日期同时有值时才生效
505
         if (beginReportTime != null && endReportTime != null)
500
         if (beginReportTime != null && endReportTime != null)
506
         {
501
         {

+ 0 - 1
baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/research/support/ResearchOpenApiSupport.java

@@ -477,7 +477,6 @@ public final class ResearchOpenApiSupport
477
         vo.setReportTime(row.getReportTime());
477
         vo.setReportTime(row.getReportTime());
478
         vo.setTownName(row.getTownName());
478
         vo.setTownName(row.getTownName());
479
         vo.setVillageName(row.getVillageName());
479
         vo.setVillageName(row.getVillageName());
480
-        vo.setProblemType(row.getProblemType());
481
         vo.setProblemLevel(row.getProblemLevel());
480
         vo.setProblemLevel(row.getProblemLevel());
482
         vo.setProblemDetail(row.getProblemDetail());
481
         vo.setProblemDetail(row.getProblemDetail());
483
         vo.setHandleResult(row.getHandleResult());
482
         vo.setHandleResult(row.getHandleResult());

+ 1 - 16
baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/support/ThreeAssetsProblemReportRules.java

@@ -2,19 +2,10 @@ package com.ruoyi.web.modules.industryservice.support;
2
 
2
 
3
 /**
3
 /**
4
  * 三资具体问题上报常量。
4
  * 三资具体问题上报常量。
5
- * <p>问题类型 Excel 未列选项,按「三资」暂定资金/资产/资源/其他;问题等级:一般/重点/重大。</p>
5
+ * <p>问题等级:一般/重点/重大。</p>
6
  */
6
  */
7
 public final class ThreeAssetsProblemReportRules
7
 public final class ThreeAssetsProblemReportRules
8
 {
8
 {
9
-    /** 资金问题 */
10
-    public static final String TYPE_FUND = "fund";
11
-    /** 资产问题 */
12
-    public static final String TYPE_ASSET = "asset";
13
-    /** 资源问题 */
14
-    public static final String TYPE_RESOURCE = "resource";
15
-    /** 其他 */
16
-    public static final String TYPE_OTHER = "other";
17
-
18
     /** 一般 */
9
     /** 一般 */
19
     public static final String LEVEL_GENERAL = "general";
10
     public static final String LEVEL_GENERAL = "general";
20
     /** 重点 */
11
     /** 重点 */
@@ -29,12 +20,6 @@ public final class ThreeAssetsProblemReportRules
29
     {
20
     {
30
     }
21
     }
31
 
22
 
32
-    public static boolean isValidType(String type)
33
-    {
34
-        return TYPE_FUND.equals(type) || TYPE_ASSET.equals(type)
35
-                || TYPE_RESOURCE.equals(type) || TYPE_OTHER.equals(type);
36
-    }
37
-
38
     public static boolean isValidLevel(String level)
23
     public static boolean isValidLevel(String level)
39
     {
24
     {
40
         return LEVEL_GENERAL.equals(level) || LEVEL_KEY.equals(level) || LEVEL_MAJOR.equals(level);
25
         return LEVEL_GENERAL.equals(level) || LEVEL_KEY.equals(level) || LEVEL_MAJOR.equals(level);

+ 1 - 9
baqing-admin/src/main/java/com/ruoyi/web/modules/industryservice/support/ThreeAssetsProblemReportValidation.java

@@ -7,7 +7,7 @@ import com.ruoyi.common.utils.StringUtils;
7
 import com.ruoyi.web.modules.industryservice.domain.BizThreeAssetsProblemReport;
7
 import com.ruoyi.web.modules.industryservice.domain.BizThreeAssetsProblemReport;
8
 
8
 
9
 /**
9
 /**
10
- * 三资具体问题上报校验:村反推乡镇、类型/等级枚举、描述长度。
10
+ * 三资具体问题上报校验:村反推乡镇、等级枚举、描述长度。
11
  */
11
  */
12
 public final class ThreeAssetsProblemReportValidation
12
 public final class ThreeAssetsProblemReportValidation
13
 {
13
 {
@@ -43,14 +43,6 @@ public final class ThreeAssetsProblemReportValidation
43
         {
43
         {
44
             row.setReportTime(new Date());
44
             row.setReportTime(new Date());
45
         }
45
         }
46
-        if (StringUtils.isEmpty(row.getProblemType()))
47
-        {
48
-            throw new ServiceException("问题类型不能为空");
49
-        }
50
-        if (!ThreeAssetsProblemReportRules.isValidType(row.getProblemType()))
51
-        {
52
-            throw new ServiceException("问题类型不合法");
53
-        }
54
         if (StringUtils.isEmpty(row.getProblemLevel()))
46
         if (StringUtils.isEmpty(row.getProblemLevel()))
55
         {
47
         {
56
             throw new ServiceException("问题等级不能为空");
48
             throw new ServiceException("问题等级不能为空");

+ 3 - 8
baqing-admin/src/main/resources/mapper/industryservice/BizThreeAssetsProblemReportMapper.xml

@@ -11,7 +11,6 @@
11
         <result property="townName"        column="town_name"/>
11
         <result property="townName"        column="town_name"/>
12
         <result property="villageDeptId"   column="village_dept_id"/>
12
         <result property="villageDeptId"   column="village_dept_id"/>
13
         <result property="villageName"     column="village_name"/>
13
         <result property="villageName"     column="village_name"/>
14
-        <result property="problemType"     column="problem_type"/>
15
         <result property="problemLevel"    column="problem_level"/>
14
         <result property="problemLevel"    column="problem_level"/>
16
         <result property="problemDetail"   column="problem_detail"/>
15
         <result property="problemDetail"   column="problem_detail"/>
17
         <result property="handleResult"    column="handle_result"/>
16
         <result property="handleResult"    column="handle_result"/>
@@ -24,7 +23,7 @@
24
 
23
 
25
     <sql id="selectVo">
24
     <sql id="selectVo">
26
         select r.id, r.report_time, r.town_dept_id, r.town_name, r.village_dept_id, r.village_name,
25
         select r.id, r.report_time, r.town_dept_id, r.town_name, r.village_dept_id, r.village_name,
27
-               r.problem_type, r.problem_level, r.problem_detail, r.handle_result,
26
+               r.problem_level, r.problem_detail, r.handle_result,
28
                r.create_by, r.create_time, r.update_by, r.update_time, r.remark
27
                r.create_by, r.create_time, r.update_by, r.update_time, r.remark
29
         from biz_three_assets_problem_report r
28
         from biz_three_assets_problem_report r
30
     </sql>
29
     </sql>
@@ -54,9 +53,6 @@
54
             <if test="villageName != null and villageName != ''">
53
             <if test="villageName != null and villageName != ''">
55
                 and r.village_name like concat('%', #{villageName}, '%')
54
                 and r.village_name like concat('%', #{villageName}, '%')
56
             </if>
55
             </if>
57
-            <if test="problemType != null and problemType != ''">
58
-                and r.problem_type = #{problemType}
59
-            </if>
60
             <if test="beginReportTime != null">
56
             <if test="beginReportTime != null">
61
                 and date_format(r.report_time,'%y%m%d') &gt;= date_format(#{beginReportTime},'%y%m%d')
57
                 and date_format(r.report_time,'%y%m%d') &gt;= date_format(#{beginReportTime},'%y%m%d')
62
             </if>
58
             </if>
@@ -73,11 +69,11 @@
73
             useGeneratedKeys="true" keyProperty="id">
69
             useGeneratedKeys="true" keyProperty="id">
74
         insert into biz_three_assets_problem_report (
70
         insert into biz_three_assets_problem_report (
75
             report_time, town_dept_id, town_name, village_dept_id, village_name,
71
             report_time, town_dept_id, town_name, village_dept_id, village_name,
76
-            problem_type, problem_level, problem_detail, handle_result,
72
+            problem_level, problem_detail, handle_result,
77
             create_by, create_time, remark
73
             create_by, create_time, remark
78
         ) values (
74
         ) values (
79
             #{reportTime}, #{townDeptId}, #{townName}, #{villageDeptId}, #{villageName},
75
             #{reportTime}, #{townDeptId}, #{townName}, #{villageDeptId}, #{villageName},
80
-            #{problemType}, #{problemLevel}, #{problemDetail}, #{handleResult},
76
+            #{problemLevel}, #{problemDetail}, #{handleResult},
81
             #{createBy}, sysdate(), #{remark}
77
             #{createBy}, sysdate(), #{remark}
82
         )
78
         )
83
     </insert>
79
     </insert>
@@ -90,7 +86,6 @@
90
             town_name = #{townName},
86
             town_name = #{townName},
91
             village_dept_id = #{villageDeptId},
87
             village_dept_id = #{villageDeptId},
92
             village_name = #{villageName},
88
             village_name = #{villageName},
93
-            problem_type = #{problemType},
94
             problem_level = #{problemLevel},
89
             problem_level = #{problemLevel},
95
             problem_detail = #{problemDetail},
90
             problem_detail = #{problemDetail},
96
             handle_result = #{handleResult},
91
             handle_result = #{handleResult},

+ 3 - 4
baqing-admin/src/test/java/com/ruoyi/web/modules/industryservice/research/controller/ResearchOpenApiControllerApiTest.java

@@ -438,24 +438,23 @@ class ResearchOpenApiControllerApiTest
438
         row.setProblemId(1L);
438
         row.setProblemId(1L);
439
         row.setTownName("雅安镇");
439
         row.setTownName("雅安镇");
440
         row.setVillageName("荣嘎村");
440
         row.setVillageName("荣嘎村");
441
-        row.setProblemType("fund");
441
+        row.setProblemLevel("general");
442
         OpenApiPageResult<ResearchThreeAssetsProblemReportVo> page = new OpenApiPageResult<>();
442
         OpenApiPageResult<ResearchThreeAssetsProblemReportVo> page = new OpenApiPageResult<>();
443
         page.setPageNum(1);
443
         page.setPageNum(1);
444
         page.setPageSize(20);
444
         page.setPageSize(20);
445
         page.setTotal(1L);
445
         page.setTotal(1L);
446
         page.setRecords(Collections.singletonList(row));
446
         page.setRecords(Collections.singletonList(row));
447
         when(researchOpenApiService.listThreeAssetsProblemReports(
447
         when(researchOpenApiService.listThreeAssetsProblemReports(
448
-                anyInt(), anyInt(), any(), any(), any(), any(), any())).thenReturn(page);
448
+                anyInt(), anyInt(), any(), any(), any(), any())).thenReturn(page);
449
 
449
 
450
         mockMvc.perform(get("/open-api/v1/research/three-assets-problem-reports")
450
         mockMvc.perform(get("/open-api/v1/research/three-assets-problem-reports")
451
                 .param("townName", "雅安")
451
                 .param("townName", "雅安")
452
                 .param("villageName", "荣嘎")
452
                 .param("villageName", "荣嘎")
453
-                .param("problemType", "fund")
454
                 .param("beginReportTime", "2026-01-01")
453
                 .param("beginReportTime", "2026-01-01")
455
                 .param("endReportTime", "2026-12-31"))
454
                 .param("endReportTime", "2026-12-31"))
456
                 .andExpect(status().isOk())
455
                 .andExpect(status().isOk())
457
                 .andExpect(jsonPath("$.code").value(200))
456
                 .andExpect(jsonPath("$.code").value(200))
458
-                .andExpect(jsonPath("$.data.records[0].problemType").value("fund"))
457
+                .andExpect(jsonPath("$.data.records[0].problemLevel").value("general"))
459
                 .andExpect(jsonPath("$.data.records[0].townName").value("雅安镇"));
458
                 .andExpect(jsonPath("$.data.records[0].townName").value("雅安镇"));
460
     }
459
     }
461
 
460
 

+ 3 - 5
baqing-admin/src/test/java/com/ruoyi/web/modules/industryservice/support/ThreeAssetsProblemReportValidationTest.java

@@ -32,7 +32,6 @@ class ThreeAssetsProblemReportValidationTest
32
 
32
 
33
         BizThreeAssetsProblemReport row = new BizThreeAssetsProblemReport();
33
         BizThreeAssetsProblemReport row = new BizThreeAssetsProblemReport();
34
         row.setVillageDeptId(201L);
34
         row.setVillageDeptId(201L);
35
-        row.setProblemType(ThreeAssetsProblemReportRules.TYPE_FUND);
36
         row.setProblemLevel(ThreeAssetsProblemReportRules.LEVEL_GENERAL);
35
         row.setProblemLevel(ThreeAssetsProblemReportRules.LEVEL_GENERAL);
37
         row.setProblemDetail("资金账目不清");
36
         row.setProblemDetail("资金账目不清");
38
         ThreeAssetsProblemReportValidation.validateRowForSave(row, townDeptSupport);
37
         ThreeAssetsProblemReportValidation.validateRowForSave(row, townDeptSupport);
@@ -44,8 +43,8 @@ class ThreeAssetsProblemReportValidationTest
44
     }
43
     }
45
 
44
 
46
     @Test
45
     @Test
47
-    @DisplayName("问题类型不合法时拒绝")
48
-    void invalidTypeRejected()
46
+    @DisplayName("问题等级不合法时拒绝")
47
+    void invalidLevelRejected()
49
     {
48
     {
50
         SysDept town = town(101L, "雅安镇");
49
         SysDept town = town(101L, "雅安镇");
51
         SysDept village = village(201L, "荣嘎村", 101L);
50
         SysDept village = village(201L, "荣嘎村", 101L);
@@ -54,8 +53,7 @@ class ThreeAssetsProblemReportValidationTest
54
 
53
 
55
         BizThreeAssetsProblemReport row = new BizThreeAssetsProblemReport();
54
         BizThreeAssetsProblemReport row = new BizThreeAssetsProblemReport();
56
         row.setVillageDeptId(201L);
55
         row.setVillageDeptId(201L);
57
-        row.setProblemType("unknown");
58
-        row.setProblemLevel(ThreeAssetsProblemReportRules.LEVEL_KEY);
56
+        row.setProblemLevel("unknown");
59
         row.setProblemDetail("描述");
57
         row.setProblemDetail("描述");
60
         assertThrows(ServiceException.class,
58
         assertThrows(ServiceException.class,
61
                 () -> ThreeAssetsProblemReportValidation.validateRowForSave(row, townDeptSupport));
59
                 () -> ThreeAssetsProblemReportValidation.validateRowForSave(row, townDeptSupport));

+ 10 - 10
doc/产业数据模型及服务/三资具体问题上报/三资具体问题上报前端技术方案.md

@@ -24,7 +24,7 @@
24
 
24
 
25
 | 方法 | 路径 | 说明 |
25
 | 方法 | 路径 | 说明 |
26
 | --- | --- | --- |
26
 | --- | --- | --- |
27
-| `listThreeAssetsProblemReport` | GET `/list` | 分页;筛选上报时间区间、乡镇、村、问题类型 |
27
+| `listThreeAssetsProblemReport` | GET `/list` | 分页;筛选上报时间区间、乡镇、村 |
28
 | `getThreeAssetsProblemReport` | GET `/{id}` | 详情 |
28
 | `getThreeAssetsProblemReport` | GET `/{id}` | 详情 |
29
 | `addThreeAssetsProblemReport` | POST `/` | 新增 |
29
 | `addThreeAssetsProblemReport` | POST `/` | 新增 |
30
 | `updateThreeAssetsProblemReport` | PUT `/` | 修改 |
30
 | `updateThreeAssetsProblemReport` | PUT `/` | 修改 |
@@ -38,16 +38,16 @@
38
 
38
 
39
 ## 3. 页面结构
39
 ## 3. 页面结构
40
 
40
 
41
-1. **筛选**:上报时间(日期区间)、乡镇、村(可搜索)、问题类型
42
-2. **列表**:上报时间、乡镇、村、问题类型、问题等级、问题详细描述、操作。  
43
-3. **新增/编辑**:上报时间、所属村、问题类型、问题等级、问题详细描述、处理结果(选填);乡镇由后端按村反推,表单不选。  
41
+1. **筛选**:上报时间(日期区间)、乡镇、村(可搜索)。  
42
+2. **列表**:上报时间、乡镇、村、问题等级、问题详细描述、操作。  
43
+3. **新增/编辑**:上报时间、所属村、问题等级、问题详细描述、处理结果(选填);乡镇由后端按村反推,表单不选。  
44
 4. **详情**:含乡镇;处理结果一并展示。
44
 4. **详情**:含乡镇;处理结果一并展示。
45
 
45
 
46
 ### 表单 / 查看分区
46
 ### 表单 / 查看分区
47
 
47
 
48
 | 分区 | 内容 |
48
 | 分区 | 内容 |
49
 | --- | --- |
49
 | --- | --- |
50
-| 基本信息 | 上报时间、村(查看含乡镇)、问题类型、问题等级、问题详细描述、处理结果 |
50
+| 基本信息 | 上报时间、村(查看含乡镇)、问题等级、问题详细描述、处理结果 |
51
 
51
 
52
 ### 字段映射
52
 ### 字段映射
53
 
53
 
@@ -56,7 +56,6 @@
56
 | 上报时间 | `reportTime` | `yyyy-MM-dd HH:mm:ss`;新增默认当前时间 |
56
 | 上报时间 | `reportTime` | `yyyy-MM-dd HH:mm:ss`;新增默认当前时间 |
57
 | 所属村 | `villageDeptId` | 提交只传村;乡镇后端反推落库 |
57
 | 所属村 | `villageDeptId` | 提交只传村;乡镇后端反推落库 |
58
 | 所属乡镇 | `townName` / `townDeptId` | 列表/详情展示;筛选可传 `townDeptId` |
58
 | 所属乡镇 | `townName` / `townDeptId` | 列表/详情展示;筛选可传 `townDeptId` |
59
-| 问题类型 | `problemType` | `fund` / `asset` / `resource` / `other` |
60
 | 问题等级 | `problemLevel` | `general` / `key` / `major` |
59
 | 问题等级 | `problemLevel` | `general` / `key` / `major` |
61
 | 问题详细描述 | `problemDetail` | 必填,≤2000 |
60
 | 问题详细描述 | `problemDetail` | 必填,≤2000 |
62
 | 处理结果 | `handleResult` | 选填,≤2000;不进列表列 |
61
 | 处理结果 | `handleResult` | 选填,≤2000;不进列表列 |
@@ -72,7 +71,7 @@
72
 | CRUD | 列表 / 查看 / 新增 / 编辑 / 删除;无导入导出入口 |
71
 | CRUD | 列表 / 查看 / 新增 / 编辑 / 删除;无导入导出入口 |
73
 | 上报时间默认 | 新增打开表单时前端填当前时间;后端空则补 `now` |
72
 | 上报时间默认 | 新增打开表单时前端填当前时间;后端空则补 `now` |
74
 | 乡镇 | 提交只传 `villageDeptId`;乡镇由后端 `TownDeptSupport` 反推 |
73
 | 乡镇 | 提交只传 `villageDeptId`;乡镇由后端 `TownDeptSupport` 反推 |
75
-| 必填 | 上报时间、村、问题类型、问题等级、问题详细描述 |
74
+| 必填 | 上报时间、村、问题等级、问题详细描述 |
76
 | 长度 | 描述 / 处理结果 ≤2000 |
75
 | 长度 | 描述 / 处理结果 ≤2000 |
77
 | 无唯一约束 | 同一村可多次上报 |
76
 | 无唯一约束 | 同一村可多次上报 |
78
 | 数据权限 | 乡镇/村下拉与列表沿用后端填报部门数据范围 |
77
 | 数据权限 | 乡镇/村下拉与列表沿用后端填报部门数据范围 |
@@ -83,15 +82,15 @@
83
 
82
 
84
 `dataModel.threeAssetsProblemReport`(`lang/zh|bo/dataModel.js`);页面 `dmNs = 'threeAssetsProblemReport'`,复用 `dataModelLocaleMixin`。查看表单使用 `dm-view-form`。
83
 `dataModel.threeAssetsProblemReport`(`lang/zh|bo/dataModel.js`);页面 `dmNs = 'threeAssetsProblemReport'`,复用 `dataModelLocaleMixin`。查看表单使用 `dm-view-form`。
85
 
84
 
86
-枚举文案键:`problemType_fund|asset|resource|other`、`problemLevel_general|key|major`。
85
+枚举文案键:`problemLevel_general|key|major`。
87
 
86
 
88
 ---
87
 ---
89
 
88
 
90
 ## 6. 联调说明
89
 ## 6. 联调说明
91
 
90
 
92
-1. 执行 `sql/biz_three_assets_problem_report.sql`(若尚未执行)。  
91
+1. 执行 `sql/biz_three_assets_problem_report.sql`(若尚未执行);已有库执行 `sql/biz_three_assets_problem_report_drop_problem_type.sql`
93
 2. 菜单组件 `dataModel/threeAssetsProblemReport/index`,权限见 §1 / 后端技术方案菜单示例。  
92
 2. 菜单组件 `dataModel/threeAssetsProblemReport/index`,权限见 §1 / 后端技术方案菜单示例。  
94
-3. 验证:新增默认上报时间、按村反推乡镇、类型/等级枚举、描述长度、时间区间筛选、无导入导出入口。
93
+3. 验证:新增默认上报时间、按村反推乡镇、问题等级枚举、描述长度、时间区间筛选、无导入导出入口。
95
 
94
 
96
 ---
95
 ---
97
 
96
 
@@ -110,4 +109,5 @@
110
 
109
 
111
 | 版本 | 说明 |
110
 | 版本 | 说明 |
112
 | --- | --- |
111
 | --- | --- |
112
+| 1.1 | 删除「问题类型」字段及相关筛选/枚举 |
113
 | 1.0 | 初版:普通 CRUD;上报时间默认;村反推乡镇;无导入导出 |
113
 | 1.0 | 初版:普通 CRUD;上报时间默认;村反推乡镇;无导入导出 |

+ 1 - 3
doc/产业数据模型及服务/三资具体问题上报/三资具体问题上报功能需求.md

@@ -17,13 +17,10 @@
17
 | 上报时间 | 新增默认当前时间 | √(日期区间) | √ | √ |
17
 | 上报时间 | 新增默认当前时间 | √(日期区间) | √ | √ |
18
 | 所属村 | 必填;反推乡镇 | √ | √ | √ |
18
 | 所属村 | 必填;反推乡镇 | √ | √ | √ |
19
 | 所属乡镇 | 由村反推 | √ | √ | 查看展示 |
19
 | 所属乡镇 | 由村反推 | √ | √ | 查看展示 |
20
-| 问题类型 | 单选 | √ | √ | √ |
21
 | 问题等级 | 单选:一般/重点/重大 | — | √ | √ |
20
 | 问题等级 | 单选:一般/重点/重大 | — | √ | √ |
22
 | 问题详细描述 | 必填,≤2000 字 | — | √ | √ |
21
 | 问题详细描述 | 必填,≤2000 字 | — | √ | √ |
23
 | 处理结果 | 选填,≤2000 字 | — | — | √ |
22
 | 处理结果 | 选填,≤2000 字 | — | — | √ |
24
 
23
 
25
-**问题类型说明**:Excel 仅写「单选,」未列选项;实现暂按三资类别:资金问题 / 资产问题 / 资源问题 / 其他(码值 `fund`/`asset`/`resource`/`other`)。若业务另有口径可再改。
26
-
27
 **问题等级码值**:`general`(一般)/ `key`(重点)/ `major`(重大)。
24
 **问题等级码值**:`general`(一般)/ `key`(重点)/ `major`(重大)。
28
 
25
 
29
 ---
26
 ---
@@ -54,4 +51,5 @@
54
 
51
 
55
 | 版本 | 说明 |
52
 | 版本 | 说明 |
56
 | --- | --- |
53
 | --- | --- |
54
+| 1.1 | 删除「问题类型」字段 |
57
 | 1.0 | 初版:按 Excel 实现 CRUD |
55
 | 1.0 | 初版:按 Excel 实现 CRUD |

+ 3 - 3
doc/产业数据模型及服务/三资具体问题上报/三资具体问题上报技术方案.md

@@ -6,14 +6,13 @@ Controller `/dataModel/threeAssetsProblemReport` → Service → Mapper;校验
6
 
6
 
7
 ## 2. 表结构
7
 ## 2. 表结构
8
 
8
 
9
-见 `sql/biz_three_assets_problem_report.sql`。
9
+见 `sql/biz_three_assets_problem_report.sql`。已有库执行 `sql/biz_three_assets_problem_report_drop_problem_type.sql` 删除 `problem_type`。
10
 
10
 
11
 | 列 | 说明 |
11
 | 列 | 说明 |
12
 | --- | --- |
12
 | --- | --- |
13
 | `report_time` | 上报时间 |
13
 | `report_time` | 上报时间 |
14
 | `town_dept_id` / `town_name` | 乡镇 |
14
 | `town_dept_id` / `town_name` | 乡镇 |
15
 | `village_dept_id` / `village_name` | 村 |
15
 | `village_dept_id` / `village_name` | 村 |
16
-| `problem_type` | fund/asset/resource/other |
17
 | `problem_level` | general/key/major |
16
 | `problem_level` | general/key/major |
18
 | `problem_detail` | 详细描述 |
17
 | `problem_detail` | 详细描述 |
19
 | `handle_result` | 处理结果(可空) |
18
 | `handle_result` | 处理结果(可空) |
@@ -32,7 +31,7 @@ Controller `/dataModel/threeAssetsProblemReport` → Service → Mapper;校验
32
 | GET | `/townOptions` | list |
31
 | GET | `/townOptions` | list |
33
 | GET | `/villageTree` | list |
32
 | GET | `/villageTree` | list |
34
 
33
 
35
-列表筛选:`beginReportTime`/`endReportTime`、`townDeptId`、`villageDeptId`、`problemType`
34
+列表筛选:`beginReportTime`/`endReportTime`、`townDeptId`、`villageDeptId`。
36
 
35
 
37
 ## 4. 前端
36
 ## 4. 前端
38
 
37
 
@@ -57,4 +56,5 @@ INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame
57
 
56
 
58
 | 版本 | 说明 |
57
 | 版本 | 说明 |
59
 | --- | --- |
58
 | --- | --- |
59
+| 1.1 | 删除 `problem_type` / 问题类型 |
60
 | 1.0 | 初版 |
60
 | 1.0 | 初版 |

+ 3 - 2
doc/产业数据模型及服务/三资具体问题上报/三资具体问题上报测试用例.md

@@ -8,7 +8,7 @@
8
 | --- | --- | --- |
8
 | --- | --- | --- |
9
 | L1 | 超管打开列表 | 返回分页数据 |
9
 | L1 | 超管打开列表 | 返回分页数据 |
10
 | L2 | 按上报时间区间筛选 | 仅区间内记录 |
10
 | L2 | 按上报时间区间筛选 | 仅区间内记录 |
11
-| L3 | 按乡镇/村/问题类型筛选 | 条件生效 |
11
+| L3 | 按乡镇/村筛选 | 条件生效 |
12
 | L4 | 乡镇账号登录 | 仅本镇数据;乡镇下拉仅本镇 |
12
 | L4 | 乡镇账号登录 | 仅本镇数据;乡镇下拉仅本镇 |
13
 
13
 
14
 ## 2. 新增
14
 ## 2. 新增
@@ -18,7 +18,7 @@
18
 | A1 | 打开新增 | 上报时间默认当前 |
18
 | A1 | 打开新增 | 上报时间默认当前 |
19
 | A2 | 不选村提交 | 校验失败 |
19
 | A2 | 不选村提交 | 校验失败 |
20
 | A3 | 必填齐全提交 | 成功;乡镇由村反推落库 |
20
 | A3 | 必填齐全提交 | 成功;乡镇由村反推落库 |
21
-| A4 | 问题类型非法码 | 后端拒绝 |
21
+| A4 | 问题等级非法码 | 后端拒绝 |
22
 
22
 
23
 ## 3. 修改 / 查看 / 删除
23
 ## 3. 修改 / 查看 / 删除
24
 
24
 
@@ -32,4 +32,5 @@
32
 
32
 
33
 | 版本 | 说明 |
33
 | 版本 | 说明 |
34
 | --- | --- |
34
 | --- | --- |
35
+| 1.1 | 删除问题类型相关用例 |
35
 | 1.0 | 初版 |
36
 | 1.0 | 初版 |

+ 2 - 2
doc/产业数据模型及服务/科研开放数据接口/科研开放数据接口功能需求.md

@@ -304,9 +304,9 @@ sequenceDiagram
304
 | 路径 | `/three-assets-problem-reports` |
304
 | 路径 | `/three-assets-problem-reports` |
305
 | 鉴权 | Bearer Token |
305
 | 鉴权 | Bearer Token |
306
 | 分页 | 同 §6.2 |
306
 | 分页 | 同 §6.2 |
307
-| 筛选 | `townName`(乡镇模糊)、`villageName`(村模糊)、`problemType`(精确,`fund`/`asset`/`resource`/`other`)、`beginReportTime`+`endReportTime`(`yyyy-MM-dd`,**同时有值**时按上报日期区间过滤) |
307
+| 筛选 | `townName`(乡镇模糊)、`villageName`(村模糊)、`beginReportTime`+`endReportTime`(`yyyy-MM-dd`,**同时有值**时按上报日期区间过滤) |
308
 
308
 
309
-**返回字段**:`problemId`、`reportTime`、乡镇村、问题类型/等级、详情、处理结果。
309
+**返回字段**:`problemId`、`reportTime`、乡镇村、问题等级、详情、处理结果。
310
 
310
 
311
 **不返回**:部门 ID、创建人、备注等内部字段。
311
 **不返回**:部门 ID、创建人、备注等内部字段。
312
 
312
 

+ 5 - 5
doc/产业数据模型及服务/科研开放数据接口/科研开放数据接口技术方案.md

@@ -289,13 +289,13 @@ Authorization: Bearer <accessToken>
289
 ### 3.16 三资具体问题列表
289
 ### 3.16 三资具体问题列表
290
 
290
 
291
 ```
291
 ```
292
-GET /open-api/v1/research/three-assets-problem-reports?pageNum=1&pageSize=20&townName=&villageName=&problemType=fund&beginReportTime=2026-01-01&endReportTime=2026-12-31
292
+GET /open-api/v1/research/three-assets-problem-reports?pageNum=1&pageSize=20&townName=&villageName=&beginReportTime=2026-01-01&endReportTime=2026-12-31
293
 Authorization: Bearer <accessToken>
293
 Authorization: Bearer <accessToken>
294
 ```
294
 ```
295
 
295
 
296
-**查询参数:** `townName` / `villageName`(模糊);`problemType`(精确);`beginReportTime` / `endReportTime`(`yyyy-MM-dd`,**同时有值**才按上报日期区间过滤);分页同前。
296
+**查询参数:** `townName` / `villageName`(模糊);`beginReportTime` / `endReportTime`(`yyyy-MM-dd`,**同时有值**才按上报日期区间过滤);分页同前。
297
 
297
 
298
-**`records[]` 元素(ResearchThreeAssetsProblemReportVo):** 上报时间、乡镇村、问题类型/等级、详情、处理结果;**不含**部门 ID、操作人、备注。
298
+**`records[]` 元素(ResearchThreeAssetsProblemReportVo):** 上报时间、乡镇村、问题等级、详情、处理结果;**不含**部门 ID、操作人、备注。
299
 
299
 
300
 实现说明:直接查 `BizThreeAssetsProblemReportMapper`(清空 `params.dataScope`)。
300
 实现说明:直接查 `BizThreeAssetsProblemReportMapper`(清空 `params.dataScope`)。
301
 
301
 
@@ -345,7 +345,7 @@ Token 申请:`appKey`/`appSecret` 与配置项精确匹配后签发 JWT(HS51
345
 | 疫苗接种列表 | `BizVaccinationDataMapper.selectBizVaccinationDataList` | `biz_vaccination_data` | 年/月精确;乡镇/村名模糊;清空 `params.dataScope` |
345
 | 疫苗接种列表 | `BizVaccinationDataMapper.selectBizVaccinationDataList` | `biz_vaccination_data` | 年/月精确;乡镇/村名模糊;清空 `params.dataScope` |
346
 | 有无畜户列表 | `BizLivestockOwnershipHouseholdMapper.selectBizLivestockOwnershipHouseholdList` | `biz_livestock_ownership_household` | 年/月精确;乡镇/村名模糊;清空 `params.dataScope` |
346
 | 有无畜户列表 | `BizLivestockOwnershipHouseholdMapper.selectBizLivestockOwnershipHouseholdList` | `biz_livestock_ownership_household` | 年/月精确;乡镇/村名模糊;清空 `params.dataScope` |
347
 | 农村三资列表 | `BizRuralThreeAssetsMapper.selectBizRuralThreeAssetsList` | `biz_rural_three_assets` | 乡镇/村名模糊;清空 `params.dataScope` |
347
 | 农村三资列表 | `BizRuralThreeAssetsMapper.selectBizRuralThreeAssetsList` | `biz_rural_three_assets` | 乡镇/村名模糊;清空 `params.dataScope` |
348
-| 三资具体问题列表 | `BizThreeAssetsProblemReportMapper.selectBizThreeAssetsProblemReportList` | `biz_three_assets_problem_report` | 乡镇/村名模糊;类型精确;上报起止日期同时有值;清空 `params.dataScope` |
348
+| 三资具体问题列表 | `BizThreeAssetsProblemReportMapper.selectBizThreeAssetsProblemReportList` | `biz_three_assets_problem_report` | 乡镇/村名模糊;上报起止日期同时有值;清空 `params.dataScope` |
349
 | 科技服务人员详情 | `IBizTechServicePersonnelService.getCurrentConfig` | `biz_tech_service_personnel` | 单例 id=1;无筛选参数 |
349
 | 科技服务人员详情 | `IBizTechServicePersonnelService.getCurrentConfig` | `biz_tech_service_personnel` | 单例 id=1;无筛选参数 |
350
 
350
 
351
 实体 → VO:`ResearchOpenApiSupport.toPastureVo` / `toYakAssetVo` / `toYakHerdInventoryVo` / `toYakOutboundReportVo` / `toCooperativeDevelopmentVo` / `toLivestockProductOutputVo` / `toFamilyRanchVo` / `toDisposableIncomeVo` / `toFarmerHouseholdVo` / `toCommonProsperityProjectVo` / `toLargeLivestockFarmerVo` / `toVaccinationDataVo` / `toLivestockOwnershipHouseholdVo` / `toRuralThreeAssetsVo` / `toThreeAssetsProblemReportVo` / `toTechServicePersonnelVo`。
351
 实体 → VO:`ResearchOpenApiSupport.toPastureVo` / `toYakAssetVo` / `toYakHerdInventoryVo` / `toYakOutboundReportVo` / `toCooperativeDevelopmentVo` / `toLivestockProductOutputVo` / `toFamilyRanchVo` / `toDisposableIncomeVo` / `toFarmerHouseholdVo` / `toCommonProsperityProjectVo` / `toLargeLivestockFarmerVo` / `toVaccinationDataVo` / `toLivestockOwnershipHouseholdVo` / `toRuralThreeAssetsVo` / `toThreeAssetsProblemReportVo` / `toTechServicePersonnelVo`。
@@ -443,7 +443,7 @@ curl "http://localhost:8010/open-api/v1/research/rural-three-assets?pageNum=1&pa
443
   -H "Authorization: Bearer <accessToken>"
443
   -H "Authorization: Bearer <accessToken>"
444
 
444
 
445
 # 16. 三资具体问题
445
 # 16. 三资具体问题
446
-curl "http://localhost:8010/open-api/v1/research/three-assets-problem-reports?pageNum=1&pageSize=10&problemType=fund&beginReportTime=2026-01-01&endReportTime=2026-12-31" \
446
+curl "http://localhost:8010/open-api/v1/research/three-assets-problem-reports?pageNum=1&pageSize=10&beginReportTime=2026-01-01&endReportTime=2026-12-31" \
447
   -H "Authorization: Bearer <accessToken>"
447
   -H "Authorization: Bearer <accessToken>"
448
 
448
 
449
 # 17. 科技服务人员详情
449
 # 17. 科技服务人员详情

+ 1 - 1
doc/产业数据模型及服务/科研开放数据接口/科研开放数据接口测试用例.md

@@ -125,7 +125,7 @@ curl -s "$BASE/large-livestock-farmers?pageNum=1&pageSize=5&statYear=2026" -H "A
125
 curl -s "$BASE/vaccination-data?pageNum=1&pageSize=5&statYear=2026" -H "Authorization: Bearer $TOKEN"
125
 curl -s "$BASE/vaccination-data?pageNum=1&pageSize=5&statYear=2026" -H "Authorization: Bearer $TOKEN"
126
 curl -s "$BASE/livestock-ownership-households?pageNum=1&pageSize=5&statYear=2026" -H "Authorization: Bearer $TOKEN"
126
 curl -s "$BASE/livestock-ownership-households?pageNum=1&pageSize=5&statYear=2026" -H "Authorization: Bearer $TOKEN"
127
 curl -s "$BASE/rural-three-assets?pageNum=1&pageSize=5" -H "Authorization: Bearer $TOKEN"
127
 curl -s "$BASE/rural-three-assets?pageNum=1&pageSize=5" -H "Authorization: Bearer $TOKEN"
128
-curl -s "$BASE/three-assets-problem-reports?pageNum=1&pageSize=5&problemType=fund&beginReportTime=2026-01-01&endReportTime=2026-12-31" -H "Authorization: Bearer $TOKEN"
128
+curl -s "$BASE/three-assets-problem-reports?pageNum=1&pageSize=5&beginReportTime=2026-01-01&endReportTime=2026-12-31" -H "Authorization: Bearer $TOKEN"
129
 curl -s "$BASE/tech-service-personnel" -H "Authorization: Bearer $TOKEN"
129
 curl -s "$BASE/tech-service-personnel" -H "Authorization: Bearer $TOKEN"
130
 ```
130
 ```
131
 
131
 

+ 1 - 3
sql/biz_three_assets_problem_report.sql

@@ -7,7 +7,6 @@ CREATE TABLE `biz_three_assets_problem_report` (
7
   `town_name` varchar(64) NOT NULL COMMENT '乡镇名称',
7
   `town_name` varchar(64) NOT NULL COMMENT '乡镇名称',
8
   `village_dept_id` bigint(20) NOT NULL COMMENT '所属村dept_id',
8
   `village_dept_id` bigint(20) NOT NULL COMMENT '所属村dept_id',
9
   `village_name` varchar(128) NOT NULL COMMENT '所属村名称',
9
   `village_name` varchar(128) NOT NULL COMMENT '所属村名称',
10
-  `problem_type` varchar(32) NOT NULL COMMENT '问题类型:fund/asset/resource/other',
11
   `problem_level` varchar(16) NOT NULL COMMENT '问题等级:general/key/major',
10
   `problem_level` varchar(16) NOT NULL COMMENT '问题等级:general/key/major',
12
   `problem_detail` varchar(2000) NOT NULL COMMENT '问题详细描述',
11
   `problem_detail` varchar(2000) NOT NULL COMMENT '问题详细描述',
13
   `handle_result` varchar(2000) DEFAULT NULL COMMENT '处理结果',
12
   `handle_result` varchar(2000) DEFAULT NULL COMMENT '处理结果',
@@ -19,6 +18,5 @@ CREATE TABLE `biz_three_assets_problem_report` (
19
   PRIMARY KEY (`id`),
18
   PRIMARY KEY (`id`),
20
   KEY `idx_town_dept_id` (`town_dept_id`),
19
   KEY `idx_town_dept_id` (`town_dept_id`),
21
   KEY `idx_village_dept_id` (`village_dept_id`),
20
   KEY `idx_village_dept_id` (`village_dept_id`),
22
-  KEY `idx_report_time` (`report_time`),
23
-  KEY `idx_problem_type` (`problem_type`)
21
+  KEY `idx_report_time` (`report_time`)
24
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='三资具体问题上报';
22
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='三资具体问题上报';