Browse Source

首页总览

zhangjiansheng 10 months ago
parent
commit
888136d236

+ 42 - 93
ruoyi-postcheck/src/main/java/com/ruoyi/postCheck/controller/PostCheckedHomePageController.java

@@ -3,7 +3,9 @@ package com.ruoyi.postCheck.controller;
3
 import com.ruoyi.common.core.controller.BaseController;
3
 import com.ruoyi.common.core.controller.BaseController;
4
 import com.ruoyi.common.core.domain.AjaxResult;
4
 import com.ruoyi.common.core.domain.AjaxResult;
5
 import com.ruoyi.common.utils.Arith;
5
 import com.ruoyi.common.utils.Arith;
6
+import com.ruoyi.postCheck.domain.PostAssessmentRating;
6
 import com.ruoyi.postCheck.domain.homePage.*;
7
 import com.ruoyi.postCheck.domain.homePage.*;
8
+import com.ruoyi.postCheck.service.IPostAssessmentRatingService;
7
 import com.ruoyi.postCheck.service.IPostCheckedProblemService;
9
 import com.ruoyi.postCheck.service.IPostCheckedProblemService;
8
 import io.swagger.annotations.Api;
10
 import io.swagger.annotations.Api;
9
 import io.swagger.annotations.ApiImplicitParam;
11
 import io.swagger.annotations.ApiImplicitParam;
@@ -14,6 +16,16 @@ import org.springframework.web.bind.annotation.*;
14
 
16
 
15
 import java.math.BigDecimal;
17
 import java.math.BigDecimal;
16
 import java.util.*;
18
 import java.util.*;
19
+import java.util.stream.Collectors;
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
17
 
29
 
18
 /**
30
 /**
19
  * 岗检问题表Controller
31
  * 岗检问题表Controller
@@ -27,7 +39,8 @@ import java.util.*;
27
 public class PostCheckedHomePageController extends BaseController {
39
 public class PostCheckedHomePageController extends BaseController {
28
     @Autowired
40
     @Autowired
29
     private IPostCheckedProblemService postCheckedProblemService;
41
     private IPostCheckedProblemService postCheckedProblemService;
30
-
42
+    @Autowired
43
+    private IPostAssessmentRatingService postAssessmentRatingService;
31
     /**
44
     /**
32
      * 1、责任制清单:post_list表
45
      * 1、责任制清单:post_list表
33
      * 2、检查出的问题:post_checked_problem表
46
      * 2、检查出的问题:post_checked_problem表
@@ -58,61 +71,21 @@ public class PostCheckedHomePageController extends BaseController {
58
     @GetMapping("/checkedProblem")
71
     @GetMapping("/checkedProblem")
59
     public AjaxResult checkedProblem() {
72
     public AjaxResult checkedProblem() {
60
 //        检查出的问题:post_checked_problem表 按 problem_attribute-问题属性(1-完整问题;2-有效性问题;3-适宜性问题;) 分组 count(id)
73
 //        检查出的问题:post_checked_problem表 按 problem_attribute-问题属性(1-完整问题;2-有效性问题;3-适宜性问题;) 分组 count(id)
61
-        List<PostCheckedProblemView> list = new ArrayList<>();
62
-        PostCheckedProblemView data = new PostCheckedProblemView();
63
-//        data.set
64
-//        data.set
65
-//        data.set
66
-        list.add(data);
67
-        return success(list);
74
+        return success(postCheckedProblemService.checkedProblem());
68
     }
75
     }
69
 
76
 
70
 
77
 
71
     @ApiOperation("3-人员数量")
78
     @ApiOperation("3-人员数量")
72
     @GetMapping("/userTotal")
79
     @GetMapping("/userTotal")
73
     public AjaxResult userTotal() {
80
     public AjaxResult userTotal() {
74
-//        查询人员表:sys_users
75
-        int userCount = 999;
76
-        return success(userCount);
81
+        return success(postCheckedProblemService.userTotal());
77
     }
82
     }
78
 
83
 
79
 
84
 
80
     @ApiOperation("4-岗检问题整改率(中间饼状图 统计的 岗检问题整改率 和 岗检部门整改率 tab 切换时前端自己计算,不需要提供接口)")
85
     @ApiOperation("4-岗检问题整改率(中间饼状图 统计的 岗检问题整改率 和 岗检部门整改率 tab 切换时前端自己计算,不需要提供接口)")
81
     @GetMapping("/problemRectification")
86
     @GetMapping("/problemRectification")
82
     public AjaxResult problemRectification() {
87
     public AjaxResult problemRectification() {
83
-//        查询问题表:post_checked_problem
84
-//        group by problem_attribute 问题属性(1-完整问题;2-有效性问题;3-适宜性问题;)
85
-//        最好给前端定义一个对象,用Map也可以
86
-        List<Map<Integer, BigDecimal>> dataList = new ArrayList<>();
87
-        Map<Integer, BigDecimal> data1 = new HashMap<>();
88
-        data1.put(0, new BigDecimal(Arith.round(new BigDecimal(0.9).doubleValue(), 2)));
89
-//        data1.put(1, new BigDecimal(0.95));//完整问题
90
-//        data1.put(2, new BigDecimal(0.88));//有效性问题
91
-//        data1.put(3, new BigDecimal(0.86));//适宜性问题
92
-        dataList.add(data1);
93
-
94
-        Map<Integer, BigDecimal> data2 = new HashMap<>();
95
-//        data2.put(0, new BigDecimal(0.9));
96
-        data2.put(1, new BigDecimal(Arith.round(new BigDecimal(0.95).doubleValue(), 2)));//完整问题
97
-//        data2.put(2, new BigDecimal(0.88));//有效性问题
98
-//        data2.put(3, new BigDecimal(0.86));//适宜性问题
99
-        dataList.add(data2);
100
-
101
-
102
-        Map<Integer, BigDecimal> data3 = new HashMap<>();
103
-//        data3.put(0, new BigDecimal(0.9));
104
-//        data3.put(1, new BigDecimal(0.95));//完整问题
105
-        data3.put(2, new BigDecimal(Arith.round(new BigDecimal(0.88).doubleValue(), 2)));//有效性问题
106
-//        data3.put(3, new BigDecimal(0.86));//适宜性问题
107
-        dataList.add(data3);
108
-
109
-        Map<Integer, BigDecimal> data4 = new HashMap<>();
110
-//        data4.put(0, new BigDecimal(0.9));
111
-//        data4.put(1, new BigDecimal(0.95));//完整问题
112
-//        data4.put(2, new BigDecimal(0.88));//有效性问题
113
-        data4.put(3, new BigDecimal(Arith.round(new BigDecimal(0.86).doubleValue(), 2)));//适宜性问题
114
-        dataList.add(data4);
115
-        return success(dataList);
88
+        return success(postCheckedProblemService.problemRectification());
116
     }
89
     }
117
 
90
 
118
 
91
 
@@ -122,25 +95,7 @@ public class PostCheckedHomePageController extends BaseController {
122
 //        查询问题表:post_checked_problem
95
 //        查询问题表:post_checked_problem
123
 //        group by checked_dept_id 整改责任部门ID(被检查部门ID)
96
 //        group by checked_dept_id 整改责任部门ID(被检查部门ID)
124
 //        最好给前端定义一个对象,用Map也可以
97
 //        最好给前端定义一个对象,用Map也可以
125
-        List<DeptProblemRectificationView> dataList = new ArrayList<>();
126
-        DeptProblemRectificationView data1 = new DeptProblemRectificationView();
127
-        data1.setDeptId(100l);
128
-        data1.setDeptName("测试部门V1");
129
-        data1.setProblemTotal(10);
130
-        data1.setProblemComplete(9);
131
-        data1.setProblemRectificationRate(new BigDecimal(Arith.round(new BigDecimal(0.9).doubleValue(), 2)));
132
-        dataList.add(data1);
133
-
134
-
135
-        DeptProblemRectificationView data2 = new DeptProblemRectificationView();
136
-        data2.setDeptId(101l);
137
-        data2.setDeptName("测试部门V2");
138
-        data2.setProblemTotal(8);
139
-        data2.setProblemComplete(4);
140
-        data2.setProblemRectificationRate(new BigDecimal(Arith.round(new BigDecimal(0.5).doubleValue(), 2)));
141
-        dataList.add(data2);
142
-
143
-        return success(dataList);
98
+        return success(postCheckedProblemService.deptProblemRectification());
144
     }
99
     }
145
 
100
 
146
 
101
 
@@ -163,15 +118,7 @@ public class PostCheckedHomePageController extends BaseController {
163
 //        select * from "public"."sys_users";
118
 //        select * from "public"."sys_users";
164
 //        select * from "public"."sys_user_post";
119
 //        select * from "public"."sys_user_post";
165
 
120
 
166
-        List<PostCheckedUnCheckedView> dataList = new ArrayList<>();
167
-        PostCheckedUnCheckedView data1 = new PostCheckedUnCheckedView();
168
-        data1.setDeptId(100l);
169
-        data1.setDeptName("测试部门V1");
170
-        data1.setPostId(1l);
171
-        data1.setPostName("内操岗位");
172
-        data1.setUserCount(99);
173
-        dataList.add(data1);
174
-        return success(dataList);
121
+        return success(postCheckedProblemService.postChecked(1));
175
     }
122
     }
176
 
123
 
177
 
124
 
@@ -194,15 +141,7 @@ public class PostCheckedHomePageController extends BaseController {
194
 //        select * from "public"."sys_users";
141
 //        select * from "public"."sys_users";
195
 //        select * from "public"."sys_user_post";
142
 //        select * from "public"."sys_user_post";
196
 
143
 
197
-        List<PostCheckedUnCheckedView> dataList = new ArrayList<>();
198
-        PostCheckedUnCheckedView data1 = new PostCheckedUnCheckedView();
199
-        data1.setDeptId(100l);
200
-        data1.setDeptName("测试部门V1");
201
-        data1.setPostId(1l);
202
-        data1.setPostName("内操岗位");
203
-        data1.setUserCount(99);
204
-        dataList.add(data1);
205
-        return success(dataList);
144
+        return success(postCheckedProblemService.postChecked(2));
206
     }
145
     }
207
 
146
 
208
 
147
 
@@ -218,18 +157,28 @@ public class PostCheckedHomePageController extends BaseController {
218
 
157
 
219
 //      部门得分 = (岗检分数 * 0.5 + 互评分数 * 0.5  )
158
 //      部门得分 = (岗检分数 * 0.5 + 互评分数 * 0.5  )
220
 //      根据部门得分进行排名计算
159
 //      根据部门得分进行排名计算
221
-
222
-
160
+        PostAssessmentRating postAssessmentRating1 = new PostAssessmentRating();
161
+        postAssessmentRating1.setType(1);
162
+        List<PostAssessmentRating> postAssessmentRatings1 = postAssessmentRatingService.selectPostAssessmentRatingList(postAssessmentRating1);
163
+        PostAssessmentRating postAssessmentRating2 = new PostAssessmentRating();
164
+        postAssessmentRating2.setType(2);
165
+        List<PostAssessmentRating> postAssessmentRatings2 = postAssessmentRatingService.selectPostAssessmentRatingList(postAssessmentRating2);
166
+        postAssessmentRatings1.addAll(postAssessmentRatings2);
223
         List<AssessmentRatingView> dataList = new ArrayList<>();
167
         List<AssessmentRatingView> dataList = new ArrayList<>();
224
-        AssessmentRatingView data1 = new AssessmentRatingView();
225
-        data1.setRating(1);
226
-        data1.setDeptId(100l);
227
-        data1.setDeptName("测试部门V1");
228
-//        data1.setPostId(1l);
229
-//        data1.setPostName("内操岗位");
230
-        data1.setPostCount(6);
231
-        data1.setScore(new BigDecimal(Arith.round(new BigDecimal(99.98).doubleValue(), 2)));
232
-        dataList.add(data1);
233
-        return success(dataList);
168
+        postAssessmentRatings1.forEach(x->{
169
+            AssessmentRatingView data1 = new AssessmentRatingView();
170
+            data1.setDeptId(x.getDeptId());
171
+            data1.setDeptName(x.getDeptIdStr());
172
+            data1.setPostCount(postCheckedProblemService.getPostCountByDeptId(x.getDeptId()));
173
+            data1.setScore(x.getDepartmentScore());
174
+            dataList.add(data1);
175
+        });
176
+        List<AssessmentRatingView> collect = dataList.stream().sorted(Comparator.comparing(AssessmentRatingView::getScore).reversed()).collect(Collectors.toList());
177
+        Integer i = 1;
178
+        for (AssessmentRatingView x : collect) {
179
+            x.setRating(i);
180
+            i++;
181
+        }
182
+        return success(collect);
234
     }
183
     }
235
 }
184
 }

+ 1 - 1
ruoyi-postcheck/src/main/java/com/ruoyi/postCheck/mapper/PostAssessmentRatingOtherMapper.java

@@ -69,6 +69,6 @@ public interface PostAssessmentRatingOtherMapper extends BaseMapper<PostAssessme
69
 
69
 
70
     List<Long> getDeptIdList(Long id);
70
     List<Long> getDeptIdList(Long id);
71
 
71
 
72
-    List<Map<String,String>> getDeptIdListByType(Integer type);
72
+    List<Map<String,Object>> getDeptIdListByType(Integer type);
73
 
73
 
74
 }
74
 }

+ 7 - 0
ruoyi-postcheck/src/main/java/com/ruoyi/postCheck/mapper/PostListMapper.java

@@ -6,6 +6,7 @@ import com.ruoyi.postCheck.domain.PostCheckedItems;
6
 import com.ruoyi.postCheck.domain.PostList;
6
 import com.ruoyi.postCheck.domain.PostList;
7
 import com.ruoyi.postCheck.domain.PostListInfo;
7
 import com.ruoyi.postCheck.domain.PostListInfo;
8
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
8
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
9
+import com.ruoyi.postCheck.domain.homePage.PostCheckedUnCheckedView;
9
 import org.apache.ibatis.annotations.Param;
10
 import org.apache.ibatis.annotations.Param;
10
 
11
 
11
 /**
12
 /**
@@ -89,4 +90,10 @@ public interface PostListMapper extends BaseMapper<PostList> {
89
     public int deletePostListInfoByPostListId(Long id);
90
     public int deletePostListInfoByPostListId(Long id);
90
 
91
 
91
     List<PostCheckedItems> contentListByType(@Param("deptId")Long deptId, @Param("postId")Long postId, @Param("type")Integer type);
92
     List<PostCheckedItems> contentListByType(@Param("deptId")Long deptId, @Param("postId")Long postId, @Param("type")Integer type);
93
+
94
+    Integer userTotal();
95
+
96
+    List<PostCheckedUnCheckedView> postChecked(Integer status);
97
+
98
+    Integer getPostCountByDeptId(Long deptId);
92
 }
99
 }

+ 17 - 0
ruoyi-postcheck/src/main/java/com/ruoyi/postCheck/service/IPostCheckedProblemService.java

@@ -1,13 +1,18 @@
1
 package com.ruoyi.postCheck.service;
1
 package com.ruoyi.postCheck.service;
2
 
2
 
3
+import java.math.BigDecimal;
3
 import java.util.Date;
4
 import java.util.Date;
4
 import java.util.List;
5
 import java.util.List;
6
+import java.util.Map;
5
 
7
 
6
 import com.ruoyi.common.annotation.Log;
8
 import com.ruoyi.common.annotation.Log;
7
 import com.ruoyi.common.core.domain.AjaxResult;
9
 import com.ruoyi.common.core.domain.AjaxResult;
8
 import com.ruoyi.common.enums.BusinessType;
10
 import com.ruoyi.common.enums.BusinessType;
9
 import com.ruoyi.postCheck.domain.PostCheckedProblem;
11
 import com.ruoyi.postCheck.domain.PostCheckedProblem;
10
 import com.baomidou.mybatisplus.extension.service.IService;
12
 import com.baomidou.mybatisplus.extension.service.IService;
13
+import com.ruoyi.postCheck.domain.homePage.DeptProblemRectificationView;
14
+import com.ruoyi.postCheck.domain.homePage.PostCheckedProblemView;
15
+import com.ruoyi.postCheck.domain.homePage.PostCheckedUnCheckedView;
11
 import com.ruoyi.postCheck.domain.homePage.PostTotalView;
16
 import com.ruoyi.postCheck.domain.homePage.PostTotalView;
12
 import io.swagger.annotations.ApiImplicitParam;
17
 import io.swagger.annotations.ApiImplicitParam;
13
 import io.swagger.annotations.ApiImplicitParams;
18
 import io.swagger.annotations.ApiImplicitParams;
@@ -154,4 +159,16 @@ public interface IPostCheckedProblemService extends IService<PostCheckedProblem>
154
 
159
 
155
 
160
 
156
     PostTotalView totalView();
161
     PostTotalView totalView();
162
+
163
+    PostCheckedProblemView checkedProblem();
164
+
165
+    Integer userTotal();
166
+
167
+    Map<Integer, BigDecimal> problemRectification();
168
+
169
+    List<DeptProblemRectificationView>  deptProblemRectification();
170
+
171
+    List<PostCheckedUnCheckedView> postChecked(Integer i);
172
+
173
+    Integer getPostCountByDeptId(Long deptId);
157
 }
174
 }

+ 16 - 10
ruoyi-postcheck/src/main/java/com/ruoyi/postCheck/service/impl/PostAssessmentRatingServiceImpl.java

@@ -1,7 +1,9 @@
1
 package com.ruoyi.postCheck.service.impl;
1
 package com.ruoyi.postCheck.service.impl;
2
 
2
 
3
 import java.math.BigDecimal;
3
 import java.math.BigDecimal;
4
+import java.math.RoundingMode;
4
 import java.util.ArrayList;
5
 import java.util.ArrayList;
6
+import java.util.Comparator;
5
 import java.util.List;
7
 import java.util.List;
6
 import java.util.Map;
8
 import java.util.Map;
7
 import java.util.Optional;
9
 import java.util.Optional;
@@ -77,11 +79,11 @@ public class PostAssessmentRatingServiceImpl extends ServiceImpl<PostAssessmentR
77
             type = 2;
79
             type = 2;
78
         }
80
         }
79
         List<PostAssessmentRating> postAssessmentRatings = new ArrayList<>();
81
         List<PostAssessmentRating> postAssessmentRatings = new ArrayList<>();
80
-        List<Map<String, String>> deptIdListByType = postAssessmentRatingOtherMapper.getDeptIdListByType(postAssessmentRating.getType());
82
+        List<Map<String, Object>> deptIdListByType = postAssessmentRatingOtherMapper.getDeptIdListByType(postAssessmentRating.getType());
81
         List<PostAssessmentRules> postAssessmentRules = postAssessmentRulesMapper.selectList(Wrappers.lambdaQuery());
83
         List<PostAssessmentRules> postAssessmentRules = postAssessmentRulesMapper.selectList(Wrappers.lambdaQuery());
82
-        for (Map<String, String> map : deptIdListByType) {
84
+        for (Map<String, Object> map : deptIdListByType) {
83
             PostAssessmentRating post = new PostAssessmentRating();
85
             PostAssessmentRating post = new PostAssessmentRating();
84
-            post.setDeptId(Long.parseLong(map.get("deptId")));
86
+            post.setDeptId(Long.parseLong(map.get("deptId").toString()));
85
             post.setDeptIdStr(String.valueOf(map.get("deptName")));
87
             post.setDeptIdStr(String.valueOf(map.get("deptName")));
86
             // 计算一个部门的岗检得分
88
             // 计算一个部门的岗检得分
87
             // 1 先查询问题
89
             // 1 先查询问题
@@ -98,14 +100,17 @@ public class PostAssessmentRatingServiceImpl extends ServiceImpl<PostAssessmentR
98
                     Optional<PostAssessmentRules> first = postAssessmentRules.stream().filter(d ->d.getType() == type && d.getDutyType().equals(postCheckedProblem.getDutyType())).findFirst();
100
                     Optional<PostAssessmentRules> first = postAssessmentRules.stream().filter(d ->d.getType() == type && d.getDutyType().equals(postCheckedProblem.getDutyType())).findFirst();
99
                     if (first.isPresent()){
101
                     if (first.isPresent()){
100
                         if (postCheckedProblem.getProblemLevel().equals("1")){
102
                         if (postCheckedProblem.getProblemLevel().equals("1")){
101
-                            postAfter = postAfter.subtract(new BigDecimal(String.valueOf(first.get().getProblemLevelOne())));
103
+                            postAfter = postAfter.subtract(new BigDecimal(String.valueOf(first.get().getProblemLevelOne()!=null?first.get().getProblemLevelOne():"0")));
102
                         }else{
104
                         }else{
103
-                            postAfter = postAfter.subtract(new BigDecimal(String.valueOf(first.get().getProblemLevelTwo())));
105
+                            postAfter = postAfter.subtract(new BigDecimal(String.valueOf(first.get().getProblemLevelTwo()!=null?first.get().getProblemLevelTwo():"0")));
104
                         }
106
                         }
105
                     }
107
                     }
106
                 }
108
                 }
109
+                BigDecimal divide = new BigDecimal("0");
110
+                if (postTotal != null){
111
+                    divide =  new BigDecimal(postCheckedProblems.size()).divide(postTotal.multiply(new BigDecimal(collect.size())),4, RoundingMode.HALF_UP);
112
+                }
107
                 // 计算系数 1-问题总数/需要查的问题数
113
                 // 计算系数 1-问题总数/需要查的问题数
108
-                BigDecimal divide = new BigDecimal(postCheckedProblems.size()).divide(postTotal.multiply(new BigDecimal(collect.size())));
109
                 if (divide.compareTo(new BigDecimal("1")) < 0 && divide.compareTo(new BigDecimal("0")) > 0 ){
114
                 if (divide.compareTo(new BigDecimal("1")) < 0 && divide.compareTo(new BigDecimal("0")) > 0 ){
110
                     postSouce = postAfter.multiply(new BigDecimal("1").subtract(divide));
115
                     postSouce = postAfter.multiply(new BigDecimal("1").subtract(divide));
111
                 }else{
116
                 }else{
@@ -119,7 +124,7 @@ public class PostAssessmentRatingServiceImpl extends ServiceImpl<PostAssessmentR
119
 
124
 
120
             List<PostAssessmentRatingOtherInfo> postAssessmentRatingOtherInfos = postAssessmentRatingOtherInfoMapper.selectList(Wrappers.<PostAssessmentRatingOtherInfo>lambdaQuery()
125
             List<PostAssessmentRatingOtherInfo> postAssessmentRatingOtherInfos = postAssessmentRatingOtherInfoMapper.selectList(Wrappers.<PostAssessmentRatingOtherInfo>lambdaQuery()
121
                     .eq(PostAssessmentRatingOtherInfo::getByDeptId,post.getDeptId())
126
                     .eq(PostAssessmentRatingOtherInfo::getByDeptId,post.getDeptId())
122
-                    .apply("and \"rating_other_id\" in (SELECT \"id\" FROM \"public\".\"post_assessment_rating_other\" WHERE \"type\"  = 1\n)")
127
+                    .apply(" \"rating_other_id\" in (SELECT \"id\" FROM \"public\".\"post_assessment_rating_other\" WHERE \"type\"  = 1\n)")
123
                     .orderByAsc(PostAssessmentRatingOtherInfo::getByDeptScore)
128
                     .orderByAsc(PostAssessmentRatingOtherInfo::getByDeptScore)
124
             );
129
             );
125
             BigDecimal peerEvaluationScore = new BigDecimal("100");
130
             BigDecimal peerEvaluationScore = new BigDecimal("100");
@@ -128,17 +133,18 @@ public class PostAssessmentRatingServiceImpl extends ServiceImpl<PostAssessmentR
128
                 postAssessmentRatingOtherInfos.remove(0);
133
                 postAssessmentRatingOtherInfos.remove(0);
129
                 BigDecimal sum = new BigDecimal("0");
134
                 BigDecimal sum = new BigDecimal("0");
130
                 postAssessmentRatingOtherInfos.forEach(x -> {
135
                 postAssessmentRatingOtherInfos.forEach(x -> {
131
-                    sum.add(x.getByDeptScore());
136
+                    sum.add(x.getByDeptScore()!=null?x.getByDeptScore():new BigDecimal("0"));
132
                 });
137
                 });
133
-                peerEvaluationScore = sum.divide(new BigDecimal(postAssessmentRatingOtherInfos.size()));
138
+                peerEvaluationScore = sum.divide(new BigDecimal(postAssessmentRatingOtherInfos.size()),4, RoundingMode.HALF_UP);
134
             }
139
             }
135
             post.setPeerEvaluationScore(peerEvaluationScore);
140
             post.setPeerEvaluationScore(peerEvaluationScore);
136
             postAssessmentRatings.add(post);
141
             postAssessmentRatings.add(post);
137
             // 计算总得分
142
             // 计算总得分
138
             post.setDepartmentScore(post.getPositionScore().add(post.getPeerEvaluationScore()).divide(new BigDecimal("2")));
143
             post.setDepartmentScore(post.getPositionScore().add(post.getPeerEvaluationScore()).divide(new BigDecimal("2")));
139
         }
144
         }
145
+        List<PostAssessmentRating> collect = postAssessmentRatings.stream().sorted(Comparator.comparing(PostAssessmentRating::getDepartmentScore).reversed()).collect(Collectors.toList());
140
         // 计算  岗检得分
146
         // 计算  岗检得分
141
-        return postAssessmentRatings;
147
+        return collect;
142
     }
148
     }
143
 
149
 
144
     /**
150
     /**

+ 136 - 14
ruoyi-postcheck/src/main/java/com/ruoyi/postCheck/service/impl/PostCheckedProblemServiceImpl.java

@@ -2,9 +2,14 @@ package com.ruoyi.postCheck.service.impl;
2
 
2
 
3
 import java.awt.dnd.DropTarget;
3
 import java.awt.dnd.DropTarget;
4
 import java.math.BigDecimal;
4
 import java.math.BigDecimal;
5
+import java.math.RoundingMode;
6
+import java.util.ArrayList;
5
 import java.util.Date;
7
 import java.util.Date;
8
+import java.util.HashMap;
6
 import java.util.List;
9
 import java.util.List;
10
+import java.util.Map;
7
 import java.util.Optional;
11
 import java.util.Optional;
12
+import java.util.stream.Collectors;
8
 
13
 
9
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
14
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
10
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
15
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -16,6 +21,9 @@ import com.ruoyi.postCheck.domain.PostAssessmentRules;
16
 import com.ruoyi.postCheck.domain.PostList;
21
 import com.ruoyi.postCheck.domain.PostList;
17
 import com.ruoyi.postCheck.domain.PostPlan;
22
 import com.ruoyi.postCheck.domain.PostPlan;
18
 import com.ruoyi.postCheck.domain.PostPlanInfo;
23
 import com.ruoyi.postCheck.domain.PostPlanInfo;
24
+import com.ruoyi.postCheck.domain.homePage.DeptProblemRectificationView;
25
+import com.ruoyi.postCheck.domain.homePage.PostCheckedProblemView;
26
+import com.ruoyi.postCheck.domain.homePage.PostCheckedUnCheckedView;
19
 import com.ruoyi.postCheck.domain.homePage.PostTotalView;
27
 import com.ruoyi.postCheck.domain.homePage.PostTotalView;
20
 import com.ruoyi.postCheck.domain.join.PostPlanJoinProblem;
28
 import com.ruoyi.postCheck.domain.join.PostPlanJoinProblem;
21
 import com.ruoyi.postCheck.mapper.PostAssessmentRatingMapper;
29
 import com.ruoyi.postCheck.mapper.PostAssessmentRatingMapper;
@@ -24,6 +32,7 @@ import com.ruoyi.postCheck.mapper.PostListMapper;
24
 import com.ruoyi.postCheck.mapper.PostPlanInfoMapper;
32
 import com.ruoyi.postCheck.mapper.PostPlanInfoMapper;
25
 import com.ruoyi.postCheck.mapper.PostPlanMapper;
33
 import com.ruoyi.postCheck.mapper.PostPlanMapper;
26
 import com.ruoyi.postCheck.service.IPostPlanJoinProblemService;
34
 import com.ruoyi.postCheck.service.IPostPlanJoinProblemService;
35
+import io.swagger.annotations.ApiModelProperty;
27
 import lombok.Data;
36
 import lombok.Data;
28
 import org.apache.commons.lang3.StringUtils;
37
 import org.apache.commons.lang3.StringUtils;
29
 import org.springframework.beans.factory.annotation.Autowired;
38
 import org.springframework.beans.factory.annotation.Autowired;
@@ -66,6 +75,7 @@ public class PostCheckedProblemServiceImpl extends ServiceImpl<PostCheckedProble
66
     private IPostPlanJoinProblemService postPlanJoinProblemService;
75
     private IPostPlanJoinProblemService postPlanJoinProblemService;
67
     @Autowired
76
     @Autowired
68
     private PostListMapper postListMapper;
77
     private PostListMapper postListMapper;
78
+
69
     /**
79
     /**
70
      * 查询岗检问题表
80
      * 查询岗检问题表
71
      *
81
      *
@@ -157,7 +167,7 @@ public class PostCheckedProblemServiceImpl extends ServiceImpl<PostCheckedProble
157
         PostPlanInfo postPlanInfo = postPlanInfoMapper.selectById(planInfoId);
167
         PostPlanInfo postPlanInfo = postPlanInfoMapper.selectById(planInfoId);
158
         PostPlan postPlan = postPlanMapper.selectById(postPlanInfo.getPostPlanId());
168
         PostPlan postPlan = postPlanMapper.selectById(postPlanInfo.getPostPlanId());
159
         List<PostCheckedProblem> postCheckedProblems = postCheckedProblemMapper.selectList(Wrappers.<PostCheckedProblem>lambdaQuery()
169
         List<PostCheckedProblem> postCheckedProblems = postCheckedProblemMapper.selectList(Wrappers.<PostCheckedProblem>lambdaQuery()
160
-                        .eq(PostCheckedProblem::getCheckedDeptId,departmentId)
170
+                .eq(PostCheckedProblem::getCheckedDeptId, departmentId)
161
                 .between(PostCheckedProblem::getCreateTime, postPlan.getStartTime(), postPlan.getEndTime())
171
                 .between(PostCheckedProblem::getCreateTime, postPlan.getStartTime(), postPlan.getEndTime())
162
 
172
 
163
         );
173
         );
@@ -173,37 +183,37 @@ public class PostCheckedProblemServiceImpl extends ServiceImpl<PostCheckedProble
173
             Optional<PostAssessmentRules> first = postAssessmentRules.stream().filter(d -> d.getDutyType().equals(postCheckedProblem.getDutyType())).findFirst();
183
             Optional<PostAssessmentRules> first = postAssessmentRules.stream().filter(d -> d.getDutyType().equals(postCheckedProblem.getDutyType())).findFirst();
174
             if (first.isPresent() && score.compareTo(new BigDecimal("0")) > 0) {
184
             if (first.isPresent() && score.compareTo(new BigDecimal("0")) > 0) {
175
                 // 计算岗检得分
185
                 // 计算岗检得分
176
-                if (postCheckedProblem.getProblemLevel().equals("1")){
186
+                if (postCheckedProblem.getProblemLevel().equals("1")) {
177
                     score = score.subtract(first.get().getProblemLevelOne());
187
                     score = score.subtract(first.get().getProblemLevelOne());
178
-                }else if(postCheckedProblem.getProblemLevel().equals("2")){
188
+                } else if (postCheckedProblem.getProblemLevel().equals("2")) {
179
                     score = score.subtract(first.get().getProblemLevelTwo());
189
                     score = score.subtract(first.get().getProblemLevelTwo());
180
                 }
190
                 }
181
             }
191
             }
182
         }
192
         }
183
 
193
 
184
         // todo 公式计算
194
         // todo 公式计算
185
-        if (postCheckedProblems.size()>0){
195
+        if (postCheckedProblems.size() > 0) {
186
             BigDecimal bigDecimal = new BigDecimal("1");
196
             BigDecimal bigDecimal = new BigDecimal("1");
187
             List<PostPlanInfo> postPlanInfos = postPlanInfoMapper.selectList(Wrappers.<PostPlanInfo>lambdaQuery()
197
             List<PostPlanInfo> postPlanInfos = postPlanInfoMapper.selectList(Wrappers.<PostPlanInfo>lambdaQuery()
188
-                    .eq(PostPlanInfo::getPostPlanId,postPlan.getId())
198
+                    .eq(PostPlanInfo::getPostPlanId, postPlan.getId())
189
             );
199
             );
190
-            if (postPlanInfos.size() <= 0){
200
+            if (postPlanInfos.size() <= 0) {
191
                 score = new BigDecimal("0");
201
                 score = new BigDecimal("0");
192
-            }else{
202
+            } else {
193
                 BigDecimal divide = new BigDecimal(postCheckedProblems.size()).divide(new BigDecimal(postPlanInfos.size()).multiply(new BigDecimal("6")));
203
                 BigDecimal divide = new BigDecimal(postCheckedProblems.size()).divide(new BigDecimal(postPlanInfos.size()).multiply(new BigDecimal("6")));
194
-                if (divide.compareTo(new BigDecimal("0"))<=0 || divide.compareTo(new BigDecimal("1")) > 0){
204
+                if (divide.compareTo(new BigDecimal("0")) <= 0 || divide.compareTo(new BigDecimal("1")) > 0) {
195
                     score = new BigDecimal("0");
205
                     score = new BigDecimal("0");
196
-                }else{
206
+                } else {
197
                     score = bigDecimal.subtract(divide);
207
                     score = bigDecimal.subtract(divide);
198
                 }
208
                 }
199
             }
209
             }
200
-        }else{
210
+        } else {
201
             score = new BigDecimal("0");
211
             score = new BigDecimal("0");
202
         }
212
         }
203
-        postAssessmentRatingMapper.update(null,Wrappers.<PostAssessmentRating>lambdaUpdate()
204
-                .set(PostAssessmentRating::getPositionScore,score)
205
-                .eq(PostAssessmentRating::getDeptId,departmentId)
206
-                .eq(PostAssessmentRating::getPlanId,postPlan.getId())
213
+        postAssessmentRatingMapper.update(null, Wrappers.<PostAssessmentRating>lambdaUpdate()
214
+                .set(PostAssessmentRating::getPositionScore, score)
215
+                .eq(PostAssessmentRating::getDeptId, departmentId)
216
+                .eq(PostAssessmentRating::getPlanId, postPlan.getId())
207
         );
217
         );
208
     }
218
     }
209
 
219
 
@@ -502,5 +512,117 @@ public class PostCheckedProblemServiceImpl extends ServiceImpl<PostCheckedProble
502
         postTotalView.setUncheckedPostCount(uncheckedPostCount);
512
         postTotalView.setUncheckedPostCount(uncheckedPostCount);
503
         return postTotalView;
513
         return postTotalView;
504
     }
514
     }
515
+
516
+    @Override
517
+    public PostCheckedProblemView checkedProblem() {
518
+        List<PostCheckedProblem> postCheckedProblems = postCheckedProblemMapper.selectList(Wrappers.lambdaQuery());
519
+        Integer problemComplete = 0;
520
+        Integer problemSuitable = 0;
521
+        Integer problemEffective = 0;
522
+        //(1-完整问题;2-有效性问题;3-适宜性问题;)
523
+        if (!postCheckedProblems.isEmpty())
524
+            for (PostCheckedProblem postCheckedProblem : postCheckedProblems) {
525
+                if (postCheckedProblem.getProblemAttribute()!=null && postCheckedProblem.getProblemAttribute() == 1)
526
+                    problemComplete++;
527
+                if (postCheckedProblem.getProblemAttribute()!=null && postCheckedProblem.getProblemAttribute() == 3)
528
+                    problemEffective++;
529
+                if (postCheckedProblem.getProblemAttribute()!=null && postCheckedProblem.getProblemAttribute() == 2)
530
+                    problemSuitable++;
531
+            }
532
+        PostCheckedProblemView post = new PostCheckedProblemView();
533
+        post.setProblemTotal(postCheckedProblems.size());
534
+        post.setProblemComplete(problemComplete);
535
+        post.setProblemSuitable(problemSuitable);
536
+        post.setProblemEffective(problemEffective);
537
+        return post;
538
+    }
539
+
540
+    @Override
541
+    public Integer userTotal() {
542
+        return postListMapper.userTotal();
543
+    }
544
+
545
+    @Override
546
+    public Map<Integer, BigDecimal> problemRectification() {
547
+        List<PostCheckedProblem> postCheckedProblems = postCheckedProblemMapper.selectList(Wrappers.lambdaQuery());
548
+        Integer problemComplete = 0;
549
+        Integer overproblemComplete = 0;
550
+        Integer problemSuitable = 0;
551
+        Integer overproblemSuitable = 0;
552
+        Integer problemEffective = 0;
553
+        Integer overproblemEffective = 0;
554
+        Integer total = 0;
555
+        Integer overtotal = 0;
556
+        //(1-完整问题;2-有效性问题;3-适宜性问题;4 总数)
557
+        if (!postCheckedProblems.isEmpty())
558
+            for (PostCheckedProblem postCheckedProblem : postCheckedProblems) {
559
+                if (postCheckedProblem.getProblemAttribute()!=null&&postCheckedProblem.getProblemAttribute() == 1) {
560
+                    problemComplete++;
561
+                    if (postCheckedProblem.getIsImmediatelyCorrected()!=null&&postCheckedProblem.getIsImmediatelyCorrected() == 1) {
562
+                        overproblemComplete++;
563
+                    }
564
+                }
565
+                if (postCheckedProblem.getProblemAttribute()!=null&&postCheckedProblem.getProblemAttribute() == 3) {
566
+                    problemEffective++;
567
+                    if (postCheckedProblem.getIsImmediatelyCorrected()!=null&&postCheckedProblem.getIsImmediatelyCorrected() == 1) {
568
+                        overproblemEffective++;
569
+                    }
570
+                }
571
+                if (postCheckedProblem.getProblemAttribute()!=null&&postCheckedProblem.getProblemAttribute() == 2) {
572
+                    problemSuitable++;
573
+                    if (postCheckedProblem.getIsImmediatelyCorrected()!=null&&postCheckedProblem.getIsImmediatelyCorrected() == 1) {
574
+                        overproblemSuitable++;
575
+                    }
576
+                }
577
+                total++;
578
+                if (postCheckedProblem.getIsImmediatelyCorrected()!=null&&postCheckedProblem.getIsImmediatelyCorrected() == 1) {
579
+                    overtotal++;
580
+                }
581
+            }
582
+        Map<Integer, BigDecimal> map = new HashMap<>();
583
+        map.put(1, new BigDecimal(overproblemComplete).divide(new BigDecimal(problemComplete),4, RoundingMode.HALF_UP));
584
+        map.put(2, new BigDecimal(overproblemSuitable).divide(new BigDecimal(problemSuitable),4, RoundingMode.HALF_UP));
585
+        map.put(3, new BigDecimal(overproblemEffective).divide(new BigDecimal(problemEffective),4, RoundingMode.HALF_UP));
586
+        map.put(4, new BigDecimal(overtotal).divide(new BigDecimal(total),4, RoundingMode.HALF_UP));
587
+        return map;
588
+
589
+    }
590
+
591
+    @Override
592
+    public List<DeptProblemRectificationView> deptProblemRectification() {
593
+        List<DeptProblemRectificationView> dataList = new ArrayList<>();
594
+        List<PostCheckedProblem> postCheckedProblems = postCheckedProblemMapper.selectList(Wrappers.lambdaQuery());
595
+        if (!postCheckedProblems.isEmpty()){
596
+            Map<Long, List<PostCheckedProblem>> postMapListMap = postCheckedProblems.stream().collect(Collectors.groupingBy(PostCheckedProblem::getCheckedDeptId));
597
+            for (Map.Entry<Long, List<PostCheckedProblem>> entry : postMapListMap.entrySet()) {
598
+                DeptProblemRectificationView data1 = new DeptProblemRectificationView();
599
+                data1.setDeptId(entry.getKey());
600
+                data1.setDeptName(postAssessmentRatingMapper.getSysDeptName(entry.getKey()));
601
+                Integer problemTotal = 0;
602
+                Integer problemComplete = 0;
603
+                for (PostCheckedProblem postCheckedProblem : entry.getValue()) {
604
+                    problemTotal++;
605
+                    if (postCheckedProblem.getIsRectificationCompleted()!=null&&postCheckedProblem.getIsRectificationCompleted() == 1){
606
+                        problemComplete++;
607
+                    }
608
+                }
609
+                data1.setProblemTotal(problemTotal);
610
+                data1.setProblemComplete(problemComplete);
611
+                data1.setProblemRectificationRate(new BigDecimal(problemComplete).divide(new BigDecimal(problemTotal),4, RoundingMode.HALF_UP));
612
+                dataList.add(data1);
613
+            }
614
+        }
615
+        return dataList;
616
+    }
617
+
618
+    @Override
619
+    public List<PostCheckedUnCheckedView> postChecked(Integer i) {
620
+        return postListMapper.postChecked(i);
621
+    }
622
+
623
+    @Override
624
+    public Integer getPostCountByDeptId(Long deptId) {
625
+        return postListMapper.getPostCountByDeptId(deptId);
626
+    }
505
 }
627
 }
506
 
628
 

+ 1 - 1
ruoyi-postcheck/src/main/resources/mapper/postCheck/PostAssessmentRatingOtherMapper.xml

@@ -178,6 +178,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
178
     </select>
178
     </select>
179
 
179
 
180
     <select id="getDeptIdListByType" resultType="java.util.Map">
180
     <select id="getDeptIdListByType" resultType="java.util.Map">
181
-        SELECT "dept_id" as deptId,"dept_name" as deptName FROM "public"."sys_dept" where "type" = #{type};
181
+        SELECT "dept_id" as deptId,"dept_name" as deptName FROM "public"."sys_dept" where "type" = #{type} group by "dept_id","dept_name"
182
     </select>
182
     </select>
183
 </mapper>
183
 </mapper>

+ 25 - 0
ruoyi-postcheck/src/main/resources/mapper/postCheck/PostListMapper.xml

@@ -293,4 +293,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
293
         AND t1."post_id" = #{postId}
293
         AND t1."post_id" = #{postId}
294
         AND t2."type" = #{type}
294
         AND t2."type" = #{type}
295
     </select>
295
     </select>
296
+
297
+    <select id="userTotal" resultType="java.lang.Integer">
298
+        SELECT count(0) FROM "public"."sys_users"
299
+    </select>
300
+
301
+    <select id="postChecked" resultType="com.ruoyi.postCheck.domain.homePage.PostCheckedUnCheckedView">
302
+        SELECT
303
+            t2."checked_dept_id" deptId ,
304
+            t2.checked_post_id postId,
305
+            (select a."post_name" from "public"."sys_post" a WHERE a."post_id" = t2.checked_post_id) AS postName,
306
+            (select aa."dept_name" from "public"."sys_dept" aa WHERE aa."dept_id" = t2.checked_dept_id) AS deptName,
307
+            (select count(0) from "public"."sys_user_post" a LEFT JOIN "public"."sys_users" b ON a."user_id" = b."user_id" WHERE a."post_id" = t2."checked_post_id") AS "userCount"
308
+        FROM "post_plan" t1
309
+                 INNER JOIN "post_plan_info" t2 ON t2."post_plan_id" = t1."id"
310
+        WHERE t1.status = 3 -- 状态:1-待审核;2-审核中;3-通过;4-驳回;
311
+          AND t2."status" = #{status} -- 岗检状态:1-未检;2-已检;
312
+        GROUP BY t2."checked_dept_id", t2."checked_post_id"
313
+        ORDER BY t2."checked_dept_id"
314
+    </select>
315
+
316
+    <select id="getPostCountByDeptId" resultType="java.lang.Integer">
317
+        SELECT COUNT(0) FROM "public"."sys_user_post" sup LEFT JOIN "public"."sys_user_role" sur ON sup."user_id" = sur."user_id"
318
+                                                          LEFT JOIN "public"."sys_role_dept" srd ON sur."role_id" = srd."role_id"
319
+        WHERE srd."dept_id" = #{deptId}
320
+    </select>
296
 </mapper>
321
 </mapper>