fangmingyue 2 лет назад
Родитель
Сommit
d5fdff586a

+ 2
- 1
src/main/java/com/example/civilizedcity/controller/TaCheckController.java Просмотреть файл

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.example.civilizedcity.common.*;
7 7
 import com.example.civilizedcity.entity.SysUser;
8
+import com.example.civilizedcity.entity.TaCheckItem;
8 9
 import com.example.civilizedcity.service.TaCheckItemService;
9 10
 import io.swagger.annotations.Api;
10 11
 import io.swagger.annotations.ApiOperation;
@@ -155,7 +156,7 @@ public class TaCheckController extends BaseController {
155 156
             return ResponseBean.error("未找到模拟测评信息");
156 157
         }
157 158
 
158
-        taCheckService.calcScore(taCheck);
159
+//        TaCheckItem taCheckItem = taCheckItemService.getById(id);
159 160
         return ResponseBean.success(taCheck);
160 161
     }
161 162
 

+ 3
- 0
src/main/java/com/example/civilizedcity/mapper/TaCheckItemMapper.java Просмотреть файл

@@ -3,6 +3,7 @@ package com.example.civilizedcity.mapper;
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.example.civilizedcity.entity.SysUser;
6
+import com.example.civilizedcity.entity.TaCheck;
6 7
 import org.apache.ibatis.annotations.Mapper;
7 8
 import org.apache.ibatis.annotations.Param;
8 9
 import com.example.civilizedcity.entity.TaCheckItem;
@@ -28,4 +29,6 @@ public interface TaCheckItemMapper  extends BaseMapper<TaCheckItem>{
28 29
     long copyItems(@Param("oldCheckId") String oldCheckId, @Param("newCheckId") String newCheckId);
29 30
 
30 31
     double sumScore(@Param("checkId") String checkId, @Param("itemType") String itemType);
32
+
33
+    double sumEvlScore(@Param("itemId") String itemId);
31 34
 }

+ 3
- 2
src/main/java/com/example/civilizedcity/service/TaCheckService.java Просмотреть файл

@@ -1,15 +1,16 @@
1 1
 package com.example.civilizedcity.service;
2 2
 
3 3
 import com.example.civilizedcity.entity.TaCheck;
4
+import com.example.civilizedcity.entity.TaCheckItem;
4 5
 
5
- /**
6
+/**
6 7
  * 模拟测评;(ta_mock_check)表服务接口
7 8
  * @author : http://njyunzhi.com
8 9
  * @date : 2022-12-12
9 10
  */
10 11
 public interface TaCheckService extends IBaseService<TaCheck> {
11 12
 
12
-     TaCheck calcScore(TaCheck taCheck);
13
+     TaCheck calcScore(TaCheck taCheck,TaCheckItem taCheckItem );
13 14
 
14 15
      TaCheck copy(TaCheck taCheck);
15 16
  }

+ 9
- 0
src/main/java/com/example/civilizedcity/service/impl/TaCheckItemServiceImpl.java Просмотреть файл

@@ -27,6 +27,9 @@ public class TaCheckItemServiceImpl extends BaseServiceImpl<TaCheckItemMapper, T
27 27
     @Autowired
28 28
     TaCheckItemQuMapper taCheckItemQuMapper;
29 29
 
30
+    @Autowired
31
+    TaCheckItemMapper taCheckItemMapper;
32
+
30 33
     @Autowired
31 34
     TaCheckItemAnMapper taCheckItemAnMapper;
32 35
 
@@ -96,6 +99,12 @@ public class TaCheckItemServiceImpl extends BaseServiceImpl<TaCheckItemMapper, T
96 99
         // 并同步生成问题单
97 100
         double score = calcAnswerItems(sysUser, taCheckItem, taCheckAnswer, quList, answerItemList);
98 101
         taCheckAnswer.setScore(score);
102
+
103
+        //得到测评得分的值并且插入一条记录
104
+//        double evlScore = taCheckItemMapper.sumEvlScore(taCheckItem.getItemId());
105
+//        taCheckItem.setScore(evlScore);
106
+//        taCheckItemMapper.insert(taCheckItem);
107
+
99 108
         taCheckAnswerMapper.insert(taCheckAnswer);
100 109
     }
101 110
 

+ 6
- 1
src/main/java/com/example/civilizedcity/service/impl/TaCheckServiceImpl.java Просмотреть файл

@@ -35,7 +35,10 @@ public class TaCheckServiceImpl extends BaseServiceImpl<TaCheckMapper, TaCheck>
35 35
 
36 36
     @Transactional(rollbackFor = Exception.class)
37 37
     @Override
38
-    public TaCheck calcScore(TaCheck taCheck) {
38
+    public TaCheck calcScore(TaCheck taCheck,TaCheckItem taCheckItem) {
39
+
40
+        //计算测评得分
41
+//        double evlScore = taCheckItemMapper.sumEvlScore(taCheckItem.getItemId());
39 42
 
40 43
         // 调查问卷分数
41 44
         double surveyScore = taCheckItemMapper.sumScore(taCheck.getCheckId(), Constants.CHECK_OF_SURVEY);
@@ -46,6 +49,8 @@ public class TaCheckServiceImpl extends BaseServiceImpl<TaCheckMapper, TaCheck>
46 49
         taCheck.setLocScore(locScore);
47 50
         taCheck.setSurveyScore(surveyScore);
48 51
 
52
+//        taCheckItem.setScore(evlScore);
53
+
49 54
         updateById(taCheck);
50 55
         return taCheck;
51 56
     }

+ 37
- 3
src/main/resources/mapper/TaCheckItemMapper.xml Просмотреть файл

@@ -89,14 +89,48 @@
89 89
           AND t.item_type = #{itemType}
90 90
           AND t.`status` &gt; -1
91 91
     </select>
92
+    <select id="sumEvlScore" resultType="java.lang.Double">
93
+        SELECT
94
+        IF (
95
+            sum( m.cnt ) IS NULL OR sum( m.cnt ) = 0 , 0 , SUM( t.score ) / SUM( m.cnt )
96
+            ) as score
97
+        FROM
98
+        ta_check_item t
99
+            LEFT JOIN (
100
+                SELECT
101
+                    s.item_id,
102
+                    count(*) AS cnt
103
+                FROM
104
+                    ta_check_answer s
105
+                WHERE
106
+                    s.item_id = #{itemId}
107
+                ) m ON t.item_id = m.item_id
108
+        WHERE t.item_id = #{itemId};
109
+    </select>
92 110
     <select id="sumScore" resultType="java.lang.Double">
93 111
         SELECT
94
-            SUM(t.score)
112
+            IF (
113
+                sum( m.cnt ) IS NULL OR sum( m.cnt ) = 0 ,
114
+                0 ,
115
+                SUM( t.score ) / SUM( m.cnt )
116
+            )
95 117
         FROM
96 118
             ta_check_item t
119
+                LEFT JOIN (
120
+                SELECT
121
+                    s.item_id,
122
+                    count(*) AS cnt
123
+                FROM
124
+                    ta_check_answer s
125
+                WHERE
126
+                    s.`status` > - 1
127
+                GROUP BY
128
+                    s.item_id
129
+                ) m ON t.item_id = m.item_id
97 130
         WHERE
98 131
             t.check_id = #{checkId}
99 132
           AND t.item_type = #{itemType}
100
-          AND t.`status` &gt; -1
101
-    </select>
133
+          AND t.`status` > - 1;
134
+</select>
135
+
102 136
 </mapper>