Yansen 2 anni fa
parent
commit
227ac34632

db/.back_文明创办/文明创办-backup-202318151432.pdma.json → db/.back_文明创办/文明创办-backup-2023111150516.pdma.json Vedi File

@@ -4,7 +4,7 @@
4 4
   "avatar": "",
5 5
   "version": "4.1.4",
6 6
   "createdTime": "2022-12-12 09:36:12",
7
-  "updatedTime": "2023-1-7 20:25:36",
7
+  "updatedTime": "2023-1-11 15:04:02",
8 8
   "dbConns": [],
9 9
   "profile": {
10 10
     "default": {
@@ -5639,7 +5639,7 @@
5639 5639
       "env": {
5640 5640
         "base": {
5641 5641
           "nameSpace": "com.example.civilizedcity",
5642
-          "codeRoot": "TdQuestion"
5642
+          "codeRoot": "TdLocQuestion"
5643 5643
         },
5644 5644
         "template": {
5645 5645
           "JavaMybatisPlus": {
@@ -6291,6 +6291,23 @@
6291 6291
           "domain": "",
6292 6292
           "id": "DD228B07-C934-4B55-BFBD-844E4CBC0A75"
6293 6293
         },
6294
+        {
6295
+          "defKey": "fill_unit",
6296
+          "defName": "填空项单位",
6297
+          "comment": "",
6298
+          "type": "",
6299
+          "len": "",
6300
+          "scale": "",
6301
+          "primaryKey": false,
6302
+          "notNull": false,
6303
+          "autoIncrement": false,
6304
+          "defaultValue": "",
6305
+          "hideInGraph": false,
6306
+          "refDict": "",
6307
+          "extProps": {},
6308
+          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
6309
+          "id": "C81DEB4C-049A-4D1D-B506-21C920AE4286"
6310
+        },
6294 6311
         {
6295 6312
           "defKey": "stand",
6296 6313
           "defName": "评分标准",
@@ -6483,6 +6500,23 @@
6483 6500
           "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
6484 6501
           "id": "0B03C02D-84EC-4306-8CEA-2BAF04806409"
6485 6502
         },
6503
+        {
6504
+          "defKey": "answer_code",
6505
+          "defName": "答案选项",
6506
+          "comment": "",
6507
+          "type": "VARCHAR",
6508
+          "len": 10,
6509
+          "scale": "",
6510
+          "primaryKey": false,
6511
+          "notNull": false,
6512
+          "autoIncrement": false,
6513
+          "defaultValue": "",
6514
+          "hideInGraph": false,
6515
+          "refDict": "",
6516
+          "extProps": {},
6517
+          "domain": "",
6518
+          "id": "DD78B024-C9B8-4418-BD1B-8F033743F253"
6519
+        },
6486 6520
         {
6487 6521
           "defKey": "answer",
6488 6522
           "defName": "答案",
@@ -7358,6 +7392,23 @@
7358 7392
           "domain": "",
7359 7393
           "id": "EC9AB5F8-E387-4E40-B948-2581DA3E9D4D"
7360 7394
         },
7395
+        {
7396
+          "defKey": "report_issue",
7397
+          "defName": "上报问题",
7398
+          "comment": "",
7399
+          "type": "",
7400
+          "len": "",
7401
+          "scale": "",
7402
+          "primaryKey": false,
7403
+          "notNull": false,
7404
+          "autoIncrement": false,
7405
+          "defaultValue": "0",
7406
+          "hideInGraph": false,
7407
+          "refDict": "",
7408
+          "extProps": {},
7409
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
7410
+          "id": "18CF14DD-048B-4743-81D9-0D6428EDBF54"
7411
+        },
7361 7412
         {
7362 7413
           "defKey": "sort_no",
7363 7414
           "defName": "排序",

+ 35
- 1
db/文明创办.pdma.json Vedi File

@@ -4,7 +4,7 @@
4 4
   "avatar": "",
5 5
   "version": "4.1.4",
6 6
   "createdTime": "2022-12-12 09:36:12",
7
-  "updatedTime": "2023-1-8 19:41:30",
7
+  "updatedTime": "2023-1-11 15:05:16",
8 8
   "dbConns": [],
9 9
   "profile": {
10 10
     "default": {
@@ -6291,6 +6291,23 @@
6291 6291
           "domain": "",
6292 6292
           "id": "DD228B07-C934-4B55-BFBD-844E4CBC0A75"
6293 6293
         },
6294
+        {
6295
+          "defKey": "fill_unit",
6296
+          "defName": "填空题单位",
6297
+          "comment": "",
6298
+          "type": "",
6299
+          "len": "",
6300
+          "scale": "",
6301
+          "primaryKey": false,
6302
+          "notNull": false,
6303
+          "autoIncrement": false,
6304
+          "defaultValue": "",
6305
+          "hideInGraph": false,
6306
+          "refDict": "",
6307
+          "extProps": {},
6308
+          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
6309
+          "id": "C81DEB4C-049A-4D1D-B506-21C920AE4286"
6310
+        },
6294 6311
         {
6295 6312
           "defKey": "stand",
6296 6313
           "defName": "评分标准",
@@ -7375,6 +7392,23 @@
7375 7392
           "domain": "",
7376 7393
           "id": "EC9AB5F8-E387-4E40-B948-2581DA3E9D4D"
7377 7394
         },
7395
+        {
7396
+          "defKey": "report_issue",
7397
+          "defName": "上报问题",
7398
+          "comment": "",
7399
+          "type": "",
7400
+          "len": "",
7401
+          "scale": "",
7402
+          "primaryKey": false,
7403
+          "notNull": false,
7404
+          "autoIncrement": false,
7405
+          "defaultValue": "0",
7406
+          "hideInGraph": false,
7407
+          "refDict": "",
7408
+          "extProps": {},
7409
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
7410
+          "id": "18CF14DD-048B-4743-81D9-0D6428EDBF54"
7411
+        },
7378 7412
         {
7379 7413
           "defKey": "sort_no",
7380 7414
           "defName": "排序",

+ 41
- 18
src/main/java/com/example/civilizedcity/controller/TaCheckItemController.java Vedi File

@@ -43,6 +43,9 @@ public class TaCheckItemController extends BaseController {
43 43
     @Autowired
44 44
     private TaCheckItemQuService taCheckItemQuService;
45 45
 
46
+    @Autowired
47
+    private TaCheckAnswerItemService taCheckAnswerItemService;
48
+
46 49
     /**
47 50
      * 通过ID查询单条数据
48 51
      *
@@ -70,17 +73,27 @@ public class TaCheckItemController extends BaseController {
70 73
     @ApiOperation("通过测评以及点位查询数据")
71 74
     @GetMapping("/taCheck/{checkId}/item/{typeId}")
72 75
     public ResponseBean queryByCheckId(@ApiParam("测评ID") @PathVariable String checkId,
73
-                                       @ApiParam("点位ID") @PathVariable String typeId) throws Exception {
76
+                                       @ApiParam("点位ID 或者 调查问卷") @PathVariable String typeId) throws Exception {
77
+        TaCheckItem taCheckItem = getByCheckAndType(checkId, typeId);
78
+        if (null == taCheckItem || Constants.STATUS_DELETE == taCheckItem.getStatus()) {
79
+            return ResponseBean.error("未找到测评项目");
80
+        }
74 81
 
75
-        return ResponseBean.success(getByCheckAndType(checkId, typeId));
82
+        return ResponseBean.success(taCheckItem);
76 83
     }
77 84
 
78 85
     private TaCheckItem getByCheckAndType(String checkId, String typeId) {
79 86
         QueryWrapper<TaCheckItem> queryWrapper = new QueryWrapper<>();
80 87
         queryWrapper.eq("check_id", checkId);
81
-        queryWrapper.eq("item_type", Constants.CHECK_OF_LOC); // 只查点位
82
-        queryWrapper.eq("type_id", typeId);
88
+
89
+        if (Constants.CHECK_OF_SURVEY.equals(typeId)) {
90
+            queryWrapper.eq("item_type", Constants.CHECK_OF_SURVEY);
91
+        } else {
92
+            queryWrapper.eq("item_type", Constants.CHECK_OF_LOC); // 只查点位
93
+            queryWrapper.eq("type_id", typeId);
94
+        }
83 95
         queryWrapper.gt("status", Constants.STATUS_DELETE);
96
+        queryWrapper.last("limit 1");
84 97
 
85 98
         return taCheckItemService.getOne(queryWrapper);
86 99
     }
@@ -97,12 +110,11 @@ public class TaCheckItemController extends BaseController {
97 110
     public ResponseBean list(@ApiParam("页码") @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
98 111
                              @ApiParam("单页数据量") @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
99 112
                              @ApiParam("模拟测评ID") @RequestParam(value = "checkId") String checkId,
100
-                             @ApiParam("项目类型") @RequestParam(value = "itemType") String itemType,
101
-                             @ApiParam("是否校验") @RequestParam(value = "mustValid", defaultValue = "false") Boolean mustValid) throws Exception {
113
+                             @ApiParam("项目类型") @RequestParam(value = "itemType") String itemType) throws Exception {
102 114
 
103 115
         SysUser sysUser = currentUser();
104 116
         IPage<TaCheckItem> pg = new Page<>(pageNum, pageSize);
105
-        IPage<TaCheckItem> result = taCheckItemService.getPageBy(pg, checkId, itemType, mustValid, sysUser);
117
+        IPage<TaCheckItem> result = taCheckItemService.getPageBy(pg, checkId, itemType);
106 118
 
107 119
         return ResponseBean.success(result);
108 120
     }
@@ -175,15 +187,6 @@ public class TaCheckItemController extends BaseController {
175 187
             }});
176 188
         }
177 189
 
178
-        SysUser sysUser = currentUser();
179
-        int count = taCheckAnswerService.getCountByUser(taCheckItem.getItemId(), sysUser.getUserId());
180
-        if (count > 0) {
181
-            return ResponseBean.success(new HashMap<String, Object>(){{
182
-                put("errorCode", 2);
183
-                put("message", "本次测题您已作答完毕");
184
-            }});
185
-        }
186
-
187 190
         int cnt = taCheckAnswerService.countByItem(taCheckItem.getItemId());
188 191
         if (cnt >= taCheckItem.getNum()) {
189 192
             return ResponseBean.success(new HashMap<String, Object>(){{
@@ -198,6 +201,21 @@ public class TaCheckItemController extends BaseController {
198 201
         }});
199 202
     }
200 203
 
204
+    /**
205
+     * 获取回答
206
+     *
207
+     * @param id 实例对象
208
+     * @return 实例对象
209
+     */
210
+    @ApiOperation("更新数据")
211
+    @GetMapping("/taCheckItem/{id}/answer")
212
+    public ResponseBean getAnswer(@ApiParam("对象ID") @PathVariable String id) throws Exception {
213
+
214
+        SysUser sysUser = currentUser();
215
+        List<TaCheckAnswer> answerList = taCheckAnswerService.getByUser(id, sysUser.getUserId());
216
+        return ResponseBean.success(answerList);
217
+    }
218
+
201 219
     /**
202 220
      * 回答问题
203 221
      *
@@ -209,6 +227,7 @@ public class TaCheckItemController extends BaseController {
209 227
     public ResponseBean answer(@ApiParam("对象实体") @RequestBody TaCheckAnswer taCheckAnswer,
210 228
                                @ApiParam("对象ID") @PathVariable String id) throws Exception {
211 229
 
230
+        SysUser sysUser = currentUser();
212 231
         TaCheckItem taCheckItem = taCheckItemService.getById(id);
213 232
         if (null == taCheckItem || taCheckItem.getStatus() == Constants.STATUS_DELETE) {
214 233
             return ResponseBean.error("未找到有效的答题信息");
@@ -227,7 +246,11 @@ public class TaCheckItemController extends BaseController {
227 246
             return ResponseBean.error("测评地点详情或小区名称未填写");
228 247
         }
229 248
 
230
-        SysUser sysUser = currentUser();
249
+        int count = taCheckAnswerService.getCountByUser(id, sysUser.getUserId());
250
+        if (count > 0) {
251
+            return ResponseBean.error("您已完成测评作答");
252
+        }
253
+
231 254
         taCheckAnswer.setAnswerId(StringUtils.uuid());
232 255
         taCheckAnswer.setCheckId(taCheck.getCheckId());
233 256
         taCheckAnswer.setItemId(id);
@@ -237,7 +260,7 @@ public class TaCheckItemController extends BaseController {
237 260
         taCheckAnswer.setCreateDate(LocalDateTime.now());
238 261
 
239 262
         taCheckItemService.answer(taCheckItem, taCheckAnswer);
240
-        return null;
263
+        return ResponseBean.success(taCheckAnswer);
241 264
     }
242 265
 
243 266
     /**

+ 1
- 1
src/main/java/com/example/civilizedcity/entity/TaCheckItem.java Vedi File

@@ -85,5 +85,5 @@ public class TaCheckItem implements Serializable, Cloneable {
85 85
 
86 86
     @TableField(exist = false)
87 87
     @ApiModelProperty(name = "是否只读, 只读代表不需要答题")
88
-    private Boolean readonly;
88
+    private Integer answerNum;
89 89
 }

+ 2
- 0
src/main/java/com/example/civilizedcity/entity/TaCheckItemAn.java Vedi File

@@ -42,4 +42,6 @@ public class TaCheckItemAn implements Serializable,Cloneable{
42 42
     @ApiModelProperty(name = "排序",notes = "")
43 43
     private Integer sortNo ;
44 44
 
45
+     @ApiModelProperty(name = "上报问题",notes = "")
46
+    private Boolean reportIssue;
45 47
 }

+ 3
- 0
src/main/java/com/example/civilizedcity/entity/TaCheckItemQu.java Vedi File

@@ -54,6 +54,9 @@ public class TaCheckItemQu implements Serializable,Cloneable{
54 54
      @ApiModelProperty(name = "序号",notes = "")
55 55
      private Integer sortNo ;
56 56
 
57
+      @ApiModelProperty(name = "填空题单位",notes = "")
58
+     private String fillUnit;
59
+
57 60
       /**
58 61
        * 答案列表
59 62
        */

+ 2
- 0
src/main/java/com/example/civilizedcity/mapper/TaCheckAnswerItemMapper.java Vedi File

@@ -23,4 +23,6 @@ public interface TaCheckAnswerItemMapper extends BaseMapper<TaCheckAnswerItem> {
23 23
     List<TaCheckAnswerItem> getListByQu(@Param("quId") String quId,
24 24
                                         @Param("isMine") Boolean isMine,
25 25
                                         @Param("userId") String userId);
26
+
27
+    List<TaCheckAnswerItem> getListByAnswer(@Param("answerId") String answerId);
26 28
 }

+ 2
- 0
src/main/java/com/example/civilizedcity/mapper/TaCheckAnswerMapper.java Vedi File

@@ -23,4 +23,6 @@ public interface TaCheckAnswerMapper extends BaseMapper<TaCheckAnswer> {
23 23
     Double sumScore(@Param("itemId") String itemId, @Param("num") Integer num);
24 24
 
25 25
     int getCountByUser(@Param("itemId") String itemId, @Param("userId") String userId);
26
+
27
+    List<TaCheckAnswer> getByUser(@Param("itemId") String itemId, @Param("userId") String userId);
26 28
 }

+ 1
- 3
src/main/java/com/example/civilizedcity/mapper/TaCheckItemMapper.java Vedi File

@@ -19,9 +19,7 @@ public interface TaCheckItemMapper  extends BaseMapper<TaCheckItem>{
19 19
 
20 20
      IPage<TaCheckItem> getPageBy(IPage<TaCheckItem> pg,
21 21
                                   @Param("checkId") String checkId,
22
-                                  @Param("itemType") String itemType,
23
-                                  @Param("mustValid") Boolean mustValid,
24
-                                  @Param("userId") String userId);
22
+                                  @Param("itemType") String itemType);
25 23
 
26 24
      int createNewLocItems(@Param("checkId") String checkId);
27 25
 

+ 3
- 1
src/main/java/com/example/civilizedcity/service/TaCheckAnswerItemService.java Vedi File

@@ -13,4 +13,6 @@ import java.util.List;
13 13
 public interface TaCheckAnswerItemService extends IBaseService<TaCheckAnswerItem> {
14 14
 
15 15
      List<TaCheckAnswerItem> getListBy(String quId, Boolean isMine, SysUser sysUser);
16
- }
16
+
17
+    List<TaCheckAnswerItem> getListByAnswer(String answerId);
18
+}

+ 4
- 0
src/main/java/com/example/civilizedcity/service/TaCheckAnswerService.java Vedi File

@@ -3,6 +3,8 @@ package com.example.civilizedcity.service;
3 3
 import com.baomidou.mybatisplus.extension.service.IService;
4 4
 import com.example.civilizedcity.entity.TaCheckAnswer;
5 5
 
6
+import java.util.List;
7
+
6 8
 /**
7 9
  * 测评作答;(ta_check_answer)表服务接口
8 10
  *
@@ -14,4 +16,6 @@ public interface TaCheckAnswerService extends IBaseService<TaCheckAnswer> {
14 16
     int getCountByUser(String itemId, String userId);
15 17
 
16 18
     int countByItem(String itemId);
19
+
20
+    List<TaCheckAnswer> getByUser(String itemId, String userId);
17 21
 }

+ 1
- 1
src/main/java/com/example/civilizedcity/service/TaCheckItemService.java Vedi File

@@ -13,7 +13,7 @@ import com.example.civilizedcity.entity.TaCheckItem;
13 13
  */
14 14
 public interface TaCheckItemService extends IBaseService<TaCheckItem> {
15 15
 
16
-     IPage<TaCheckItem> getPageBy(IPage<TaCheckItem> pg, String checkId, String itemType, Boolean mustValid, SysUser sysUser);
16
+     IPage<TaCheckItem> getPageBy(IPage<TaCheckItem> pg, String checkId, String itemType);
17 17
 
18 18
      void createNewItems(TaCheck taCheck);
19 19
 

+ 5
- 0
src/main/java/com/example/civilizedcity/service/impl/TaCheckAnswerItemServiceImpl.java Vedi File

@@ -21,4 +21,9 @@ public class TaCheckAnswerItemServiceImpl extends BaseServiceImpl<TaCheckAnswerI
21 21
     public List<TaCheckAnswerItem> getListBy(String quId, Boolean isMine, SysUser sysUser) {
22 22
         return baseMapper.getListByQu(quId, isMine, sysUser.getUserId());
23 23
     }
24
+
25
+    @Override
26
+    public List<TaCheckAnswerItem> getListByAnswer(String answerId) {
27
+        return baseMapper.getListByAnswer(answerId);
28
+    }
24 29
 }

+ 7
- 0
src/main/java/com/example/civilizedcity/service/impl/TaCheckAnswerServiceImpl.java Vedi File

@@ -6,6 +6,8 @@ import com.example.civilizedcity.entity.TaCheckAnswer;
6 6
 import com.example.civilizedcity.mapper.TaCheckAnswerMapper;
7 7
 import com.example.civilizedcity.service.TaCheckAnswerService;
8 8
 
9
+import java.util.List;
10
+
9 11
 /**
10 12
  * 测评作答;(ta_check_answer)表服务实现类
11 13
  *
@@ -24,4 +26,9 @@ public class TaCheckAnswerServiceImpl extends BaseServiceImpl<TaCheckAnswerMappe
24 26
     public int countByItem(String itemId) {
25 27
         return baseMapper.countByItem(itemId);
26 28
     }
29
+
30
+    @Override
31
+    public List<TaCheckAnswer> getByUser(String itemId, String userId) {
32
+        return baseMapper.getByUser(itemId, userId);
33
+    }
27 34
 }

+ 2
- 2
src/main/java/com/example/civilizedcity/service/impl/TaCheckItemServiceImpl.java Vedi File

@@ -38,8 +38,8 @@ public class TaCheckItemServiceImpl extends BaseServiceImpl<TaCheckItemMapper, T
38 38
     TaAttachMapper taAttachMapper;
39 39
 
40 40
     @Override
41
-    public IPage<TaCheckItem> getPageBy(IPage<TaCheckItem> pg, String checkId, String itemType, Boolean mustValid, SysUser sysUser) {
42
-        return baseMapper.getPageBy(pg, checkId, itemType, mustValid, sysUser.getUserId());
41
+    public IPage<TaCheckItem> getPageBy(IPage<TaCheckItem> pg, String checkId, String itemType) {
42
+        return baseMapper.getPageBy(pg, checkId, itemType);
43 43
     }
44 44
 
45 45
     @Override

+ 1
- 1
src/main/resources/application.yml Vedi File

@@ -5,7 +5,7 @@ server:
5 5
 
6 6
 spring:
7 7
   datasource:
8
-    url: jdbc:mysql://110.40.183.156:3306/civilizedcity?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
8
+    url: jdbc:mysql://110.40.183.156:3306/civilizedcity?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&autoReconnect=true
9 9
     username: civilizedcity
10 10
     password: civilizedcity@ABCD1234
11 11
   mvc:

+ 9
- 0
src/main/resources/mapper/TaCheckAnswerItemMapper.xml Vedi File

@@ -36,4 +36,13 @@
36 36
         ORDER BY
37 37
             t.create_date ASC
38 38
     </select>
39
+    <select id="getListByAnswer" resultType="com.example.civilizedcity.entity.TaCheckAnswerItem">
40
+        SELECT
41
+            *
42
+        FROM
43
+            ta_check_answer_item t
44
+        WHERE
45
+            t.answer_id = #{answerId}
46
+          AND t.`status` &gt; -1
47
+    </select>
39 48
 </mapper>

+ 10
- 0
src/main/resources/mapper/TaCheckAnswerMapper.xml Vedi File

@@ -43,4 +43,14 @@
43 43
           AND t.create_user = #{userId}
44 44
           AND t.`status` &gt; -1
45 45
     </select>
46
+    <select id="getByUser" resultType="com.example.civilizedcity.entity.TaCheckAnswer">
47
+        SELECT
48
+            *
49
+        FROM
50
+            ta_check_answer t
51
+        WHERE
52
+            t.item_id = #{itemId}
53
+          AND t.create_user = #{userId}
54
+          AND t.`status` &gt; -1
55
+    </select>
46 56
 </mapper>

+ 12
- 20
src/main/resources/mapper/TaCheckItemMapper.xml Vedi File

@@ -20,12 +20,7 @@
20 20
 
21 21
     <select id="getPageBy" resultType="com.example.civilizedcity.entity.TaCheckItem">
22 22
         SELECT
23
-        <if test="null != mustValid and mustValid">
24
-            now() &lt; c.start_date
25
-            OR now() &gt; c.end_date
26
-            OR m.num &gt; t.num
27
-            OR IFNULL( m.answered, 0 ) &gt; 0 as readonly,
28
-        </if>
23
+            IFNULL(m.num, 0) as answer_num,
29 24
             t.*
30 25
         FROM
31 26
             ta_check_item t
@@ -33,20 +28,17 @@
33 28
             <if test="itemType != null and itemType == 'loc'">
34 29
                 INNER JOIN td_loc_type s ON t.type_id = s.type_id
35 30
             </if>
36
-            <if test="null != mustValid and mustValid">
37
-                LEFT JOIN (
38
-                    SELECT
39
-                        a.item_id,
40
-                        COUNT( * ) AS num,
41
-                        SUM( IF ( a.create_user = #{userId}, 1, 0 ) ) AS answered
42
-                    FROM
43
-                        ta_check_answer a
44
-                    WHERE
45
-                        a.check_id = #{checkId}
46
-                    GROUP BY
47
-                        a.item_id
48
-                ) m ON m.item_id = t.item_id
49
-            </if>
31
+            LEFT JOIN (
32
+                SELECT
33
+                    a.item_id,
34
+                    COUNT( * ) AS num
35
+                FROM
36
+                    ta_check_answer a
37
+                WHERE
38
+                    a.check_id = #{checkId}
39
+                GROUP BY
40
+                    a.item_id
41
+            ) m ON m.item_id = t.item_id
50 42
         WHERE
51 43
             t.check_id = #{checkId}
52 44
           AND t.item_type = #{itemType}