Commit d22abbcbc9e92ad79c86968d1e7feb505e6d37ea
Merge branch 'test' into 'main'
个人考评查看 个人考评查看 See merge request !133
Showing
15 changed files
with
306 additions
and
265 deletions
doc/2023-05-18_update.sql
... | ... | @@ -9,3 +9,26 @@ ALTER TABLE `fw_morax`.`eval_group_user` |
9 | 9 | ALTER TABLE `fw_morax`.`eval_group_indicator_target_hit_log` |
10 | 10 | ADD COLUMN `extra_reach_value` decimal(18, 4) NULL COMMENT '额外达成目标' AFTER `reach_value`, |
11 | 11 | ADD COLUMN `use_target` tinyint(4) NULL DEFAULT 1 COMMENT '考评使用目标; 1:无目标 2:第一目标 3:额外目标值' AFTER `extra_reach_value`; |
12 | + | |
13 | + | |
14 | +CREATE TABLE `eval_reward_dist` ( | |
15 | +`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', | |
16 | +`user_id` bigint(20) NOT NULL COMMENT '用户id', | |
17 | +`eval_group_rank_id` bigint(20) NOT NULL COMMENT '考评排名组id', | |
18 | +`eval_group_rank_stage_id` bigint(20) NOT NULL COMMENT '考评排名组阶段id', | |
19 | +`eval_group_id` bigint(20) NOT NULL COMMENT '考评组id', | |
20 | +`eval_group_rank_name` varchar(255) DEFAULT NULL COMMENT '考评排名组名称', | |
21 | +`eval_group_rank_stage_name` varchar(255) DEFAULT NULL COMMENT '考评排名组阶段名称', | |
22 | +`begin_time` date DEFAULT NULL COMMENT '阶段开始时间', | |
23 | +`over_time` date DEFAULT NULL COMMENT '阶段结束时间', | |
24 | +`eval_shop_pool_ids` varchar(512) NOT NULL COMMENT '门店考评池id', | |
25 | +`shop_ids` varchar(512) NOT NULL COMMENT '门店id', | |
26 | +`reward` decimal(18,2) NOT NULL COMMENT '考评奖惩', | |
27 | +`status` tinyint(4) DEFAULT NULL COMMENT '状态', | |
28 | +`group_id` bigint(20) NOT NULL COMMENT '集团id', | |
29 | +`yn` tinyint(1) DEFAULT '1' COMMENT '逻辑删除', | |
30 | +`create_time` datetime DEFAULT NULL COMMENT '创建时间', | |
31 | +`update_time` datetime DEFAULT NULL COMMENT '更新时间', | |
32 | +PRIMARY KEY (`id`), | |
33 | +KEY `eval_pool_salary_group_id_index` (`eval_shop_pool_ids`) | |
34 | +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='考评门店奖惩分配'; | |
12 | 35 | \ No newline at end of file | ... | ... |
fw-morax-common/src/main/java/cn/fw/morax/common/constant/Constant.java
... | ... | @@ -52,6 +52,11 @@ public class Constant { |
52 | 52 | public final static String SEPARATOR = "_"; |
53 | 53 | |
54 | 54 | /** |
55 | + * 时间分隔符 | |
56 | + */ | |
57 | + public final static String TIME_SEPARATOR = "—"; | |
58 | + | |
59 | + /** | |
55 | 60 | * 薪酬报表车系名称 |
56 | 61 | */ |
57 | 62 | public final static String REPORT_CAR_SERIES_NAME = "carSeriesName"; | ... | ... |
fw-morax-dao/src/main/resources/mapper/eval/EvalShopPoolDao.xml
... | ... | @@ -4,23 +4,31 @@ |
4 | 4 | |
5 | 5 | <!-- 通用查询映射结果 --> |
6 | 6 | <resultMap id="BaseResultMap" type="cn.fw.morax.domain.db.eval.EvalShopPool"> |
7 | - <result column="id" property="id"/> | |
8 | - <result column="egc" property="egc"/> | |
9 | - <result column="eval_group_id" property="evalGroupId"/> | |
10 | - <result column="shop_id" property="shopId"/> | |
11 | - <result column="shop_name" property="shopName"/> | |
12 | - <result column="reward" property="reward"/> | |
13 | - <result column="score" property="score"/> | |
14 | - <result column="score_ratio" property="scoreRatio"/> | |
15 | - <result column="monthly" property="monthly"/> | |
16 | - <result column="group_id" property="groupId"/> | |
17 | - <result column="yn" property="yn"/> | |
18 | - <result column="create_time" property="createTime"/> | |
19 | - <result column="update_time" property="updateTime"/> | |
7 | + <result column="id" property="id"/> | |
8 | + <result column="eval_group_rank_id" property="evalGroupRankId"/> | |
9 | + <result column="eval_group_rank_stage_id" property="evalGroupRankStageId"/> | |
10 | + <result column="egc" property="egc"/> | |
11 | + <result column="eval_group_id" property="evalGroupId"/> | |
12 | + <result column="shop_id" property="shopId"/> | |
13 | + <result column="shop_name" property="shopName"/> | |
14 | + <result column="reward" property="reward"/> | |
15 | + <result column="status" property="status"/> | |
16 | + <result column="score" property="score"/> | |
17 | + <result column="score_ratio" property="scoreRatio"/> | |
18 | + <result column="rank" property="rank"/> | |
19 | + <result column="data_date" property="dataDate"/> | |
20 | + <result column="monthly" property="monthly"/> | |
21 | + <result column="group_id" property="groupId"/> | |
22 | + <result column="yn" property="yn"/> | |
23 | + <result column="create_time" property="createTime"/> | |
24 | + <result column="update_time" property="updateTime"/> | |
20 | 25 | </resultMap> |
21 | 26 | |
22 | 27 | <sql id="all_columns"> |
23 | - id,eval_id,egc,eval_group_id,shop_id,shop_name,reward,status,score,score_ratio,monthly,group_id | |
28 | + id,eval_group_rank_id,eval_group_rank_stage_id | |
29 | + ,egc,eval_group_id,shop_id,shop_name,reward | |
30 | + ,status,score,score_ratio,rank,data_date | |
31 | + ,monthly,group_id,yn,create_time,update_time | |
24 | 32 | </sql> |
25 | 33 | |
26 | 34 | <select id="getLastPool" resultType="cn.fw.morax.domain.db.eval.EvalShopPool"> |
... | ... | @@ -45,18 +53,24 @@ |
45 | 53 | |
46 | 54 | <select id="queryPagePool" resultType="cn.fw.morax.domain.vo.eval.EvalShopPoolVO"> |
47 | 55 | SELECT |
48 | - id, | |
49 | - eval_id, | |
50 | - egc, | |
51 | - eval_group_id, | |
52 | - shop_id, | |
53 | - shop_name, | |
54 | - reward, | |
55 | - status, | |
56 | - score, | |
57 | - score_ratio, | |
58 | - monthly, | |
59 | - group_id | |
56 | + id | |
57 | + ,eval_group_rank_id | |
58 | + ,eval_group_rank_stage_id | |
59 | + ,egc | |
60 | + ,eval_group_id | |
61 | + ,shop_id | |
62 | + ,shop_name | |
63 | + ,reward | |
64 | + ,status | |
65 | + ,score | |
66 | + ,score_ratio | |
67 | + ,rank | |
68 | + ,data_date | |
69 | + ,monthly | |
70 | + ,group_id | |
71 | + ,yn | |
72 | + ,create_time | |
73 | + ,update_time | |
60 | 74 | from eval_shop_pool |
61 | 75 | where yn = 1 |
62 | 76 | and group_id = #{condition.groupId} | ... | ... |
fw-morax-dao/src/main/resources/mapper/eval/EvalUserPoolDao.xml
... | ... | @@ -4,43 +4,63 @@ |
4 | 4 | |
5 | 5 | <!-- 通用查询映射结果 --> |
6 | 6 | <resultMap id="BaseResultMap" type="cn.fw.morax.domain.db.eval.EvalUserPool"> |
7 | - <result column="id" property="id"/> | |
8 | - <result column="egc" property="egc"/> | |
9 | - <result column="eval_group_id" property="evalGroupId"/> | |
10 | - <result column="user_id" property="userId"/> | |
11 | - <result column="user_name" property="userName"/> | |
12 | - <result column="post_id" property="postId"/> | |
13 | - <result column="post_name" property="postName"/> | |
14 | - <result column="shop_id" property="shopId"/> | |
15 | - <result column="shop_name" property="shopName"/> | |
16 | - <result column="fund_shop_id" property="fundShopId"/> | |
17 | - <result column="fund_shop_name" property="fundShopName"/> | |
18 | - <result column="reward" property="reward"/> | |
19 | - <result column="score" property="score"/> | |
20 | - <result column="monthly" property="monthly"/> | |
21 | - <result column="group_id" property="groupId"/> | |
22 | - <result column="yn" property="yn"/> | |
23 | - <result column="create_time" property="createTime"/> | |
24 | - <result column="update_time" property="updateTime"/> | |
7 | + <result column="id" property="id"/> | |
8 | + <result column="eval_group_rank_id" property="evalGroupRankId"/> | |
9 | + <result column="eval_group_rank_stage_id" property="evalGroupRankStageId"/> | |
10 | + <result column="egc" property="egc"/> | |
11 | + <result column="eval_group_id" property="evalGroupId"/> | |
12 | + <result column="user_id" property="userId"/> | |
13 | + <result column="user_name" property="userName"/> | |
14 | + <result column="post_id" property="postId"/> | |
15 | + <result column="post_name" property="postName"/> | |
16 | + <result column="shop_id" property="shopId"/> | |
17 | + <result column="shop_name" property="shopName"/> | |
18 | + <result column="fund_shop_id" property="fundShopId"/> | |
19 | + <result column="fund_shop_name" property="fundShopName"/> | |
20 | + <result column="reward" property="reward"/> | |
21 | + <result column="score" property="score"/> | |
22 | + <result column="score_ratio" property="scoreRatio"/> | |
23 | + <result column="rank" property="rank"/> | |
24 | + <result column="inclusion" property="inclusion"/> | |
25 | + <result column="data_date" property="dataDate"/> | |
26 | + <result column="monthly" property="monthly"/> | |
27 | + <result column="group_id" property="groupId"/> | |
28 | + <result column="yn" property="yn"/> | |
29 | + <result column="create_time" property="createTime"/> | |
30 | + <result column="update_time" property="updateTime"/> | |
25 | 31 | </resultMap> |
26 | 32 | |
33 | + <sql id="all_columns"> | |
34 | + id,eval_group_rank_id,eval_group_rank_stage_id,egc,eval_group_id,user_id,user_name,post_id | |
35 | + ,post_name,shop_id,shop_name,fund_shop_id,fund_shop_name | |
36 | + ,reward,score,score_ratio,rank,inclusion,data_date | |
37 | + ,monthly,group_id,yn,create_time,update_time | |
38 | + | |
39 | + </sql> | |
40 | + | |
27 | 41 | <select id="getLastPool" resultType="cn.fw.morax.domain.db.eval.EvalUserPool"> |
28 | 42 | SELECT |
29 | - t1.id, | |
30 | - t1.egc, | |
31 | - t1.eval_group_id, | |
32 | - t1.user_id, | |
33 | - t1.user_name, | |
34 | - t1.post_id, | |
35 | - t1.post_name, | |
36 | - t1.shop_id, | |
37 | - t1.shop_name, | |
38 | - t1.fund_shop_id, | |
39 | - t1.fund_shop_name, | |
40 | - t1.reward, | |
41 | - t1.score, | |
42 | - t1.monthly, | |
43 | - t1.group_id | |
43 | + t1.id | |
44 | + ,t1.eval_group_rank_id | |
45 | + ,t1.eval_group_rank_stage_id | |
46 | + ,t1.egc | |
47 | + ,t1.eval_group_id | |
48 | + ,t1.user_id | |
49 | + ,t1.user_name | |
50 | + ,t1.post_id | |
51 | + ,t1.post_name | |
52 | + ,t1.shop_id | |
53 | + ,t1.shop_name | |
54 | + ,t1.fund_shop_id | |
55 | + ,t1.fund_shop_name | |
56 | + ,t1.reward | |
57 | + ,t1.score | |
58 | + ,t1.score_ratio | |
59 | + ,t1.rank | |
60 | + ,t1.inclusion | |
61 | + ,t1.data_date | |
62 | + ,t1.monthly | |
63 | + ,t1.group_id | |
44 | 64 | FROM |
45 | 65 | eval_user_pool t1, |
46 | 66 | ( |
... | ... | @@ -61,7 +81,7 @@ |
61 | 81 | |
62 | 82 | <select id="queryPagePool" resultType="cn.fw.morax.domain.vo.eval.EvalUserPoolVO"> |
63 | 83 | SELECT |
64 | - * | |
84 | + <include refid="all_columns"/> | |
65 | 85 | from eval_user_pool |
66 | 86 | where yn = 1 |
67 | 87 | and group_id = #{condition.groupId} | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/bo/eval/EvalGroupUserShop.java
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalRewardDist.java
... | ... | @@ -13,6 +13,7 @@ import lombok.experimental.Accessors; |
13 | 13 | |
14 | 14 | import java.io.Serializable; |
15 | 15 | import java.math.BigDecimal; |
16 | +import java.time.LocalDate; | |
16 | 17 | import java.time.LocalDateTime; |
17 | 18 | import java.util.List; |
18 | 19 | |
... | ... | @@ -36,31 +37,37 @@ public class EvalRewardDist extends BaseAuditableTimeEntity<EvalRewardDist, Long |
36 | 37 | * 用户id |
37 | 38 | */ |
38 | 39 | private Long userId; |
39 | - | |
40 | 40 | /** |
41 | - * 考评id | |
41 | + * 考评组id | |
42 | 42 | */ |
43 | - private Long evalId; | |
44 | - | |
43 | + private Long evalGroupId; | |
45 | 44 | /** |
46 | - * 考评组编码 | |
45 | + * 考评排名组id | |
47 | 46 | */ |
48 | - private Long evalGroupId; | |
47 | + private Long evalGroupRankId; | |
48 | + /** | |
49 | + * 考评排名组阶段id | |
50 | + */ | |
51 | + private Long evalGroupRankStageId; | |
52 | + /** | |
53 | + * 考评排名组名称 | |
54 | + */ | |
55 | + private String evalGroupRankName; | |
49 | 56 | |
50 | 57 | /** |
51 | - * 考评类型; 1:活动考评 2:其他考评 | |
58 | + * 考评排名组阶段名称 | |
52 | 59 | */ |
53 | - private EvalTypeEnum evalType; | |
60 | + private String evalGroupRankStageName; | |
54 | 61 | |
55 | 62 | /** |
56 | - * 考评 | |
63 | + * 生效时间 | |
57 | 64 | */ |
58 | - private String evalName; | |
65 | + private LocalDate beginTime; | |
59 | 66 | |
60 | 67 | /** |
61 | - * 考评组 | |
68 | + * 结束时间 | |
62 | 69 | */ |
63 | - private String evalGroupName; | |
70 | + private LocalDate overTime; | |
64 | 71 | |
65 | 72 | /** |
66 | 73 | * 考评组id | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalShopPool.java
... | ... | @@ -30,11 +30,6 @@ public class EvalShopPool extends BaseAuditableTimeEntity<EvalShopPool, Long> { |
30 | 30 | * 考评组编码 |
31 | 31 | */ |
32 | 32 | private String egc; |
33 | - | |
34 | - /** | |
35 | - * 考评id | |
36 | - */ | |
37 | - private Long evalId; | |
38 | 33 | /** |
39 | 34 | * 考评组id |
40 | 35 | */ |
... | ... | @@ -48,26 +43,6 @@ public class EvalShopPool extends BaseAuditableTimeEntity<EvalShopPool, Long> { |
48 | 43 | */ |
49 | 44 | private Long evalGroupRankStageId; |
50 | 45 | |
51 | -// /** | |
52 | -// * 用户id | |
53 | -// */ | |
54 | -// private Long userId; | |
55 | -// | |
56 | -// /** | |
57 | -// * 用户名称 | |
58 | -// */ | |
59 | -// private String userName; | |
60 | - | |
61 | -// /** | |
62 | -// * 岗位id | |
63 | -// */ | |
64 | -// private Long postId; | |
65 | -// | |
66 | -// /** | |
67 | -// * 岗位名称 | |
68 | -// */ | |
69 | -// private String postName; | |
70 | - | |
71 | 46 | /** |
72 | 47 | * 门店id |
73 | 48 | */ |
... | ... | @@ -78,16 +53,6 @@ public class EvalShopPool extends BaseAuditableTimeEntity<EvalShopPool, Long> { |
78 | 53 | */ |
79 | 54 | private String shopName; |
80 | 55 | |
81 | -// /** | |
82 | -// * 社保公积金门店id | |
83 | -// */ | |
84 | -// private Long fundShopId; | |
85 | -// | |
86 | -// /** | |
87 | -// * 社保公积金门店名称 | |
88 | -// */ | |
89 | -// private String fundShopName; | |
90 | - | |
91 | 56 | /** |
92 | 57 | * 考评奖惩 |
93 | 58 | */ | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalRewardDistVO.java
... | ... | @@ -12,6 +12,7 @@ import lombok.EqualsAndHashCode; |
12 | 12 | import lombok.experimental.Accessors; |
13 | 13 | |
14 | 14 | import java.math.BigDecimal; |
15 | +import java.time.LocalDate; | |
15 | 16 | import java.util.List; |
16 | 17 | |
17 | 18 | /** |
... | ... | @@ -37,31 +38,37 @@ public class EvalRewardDistVO { |
37 | 38 | * 用户id |
38 | 39 | */ |
39 | 40 | private Long userId; |
40 | - | |
41 | 41 | /** |
42 | - * 考评id | |
42 | + * 考评组id | |
43 | 43 | */ |
44 | - private Long evalId; | |
45 | - | |
44 | + private Long evalGroupId; | |
46 | 45 | /** |
47 | - * 考评组编码 | |
46 | + * 考评排名组id | |
48 | 47 | */ |
49 | - private Long evalGroupId; | |
48 | + private Long evalGroupRankId; | |
49 | + /** | |
50 | + * 考评排名组阶段id | |
51 | + */ | |
52 | + private Long evalGroupRankStageId; | |
53 | + /** | |
54 | + * 考评排名组名称 | |
55 | + */ | |
56 | + private String evalGroupRankName; | |
50 | 57 | |
51 | 58 | /** |
52 | - * 考评类型; 1:活动考评 2:其他考评 | |
59 | + * 考评排名组阶段名称 | |
53 | 60 | */ |
54 | - private EvalTypeEnum evalType; | |
61 | + private String evalGroupRankStageName; | |
55 | 62 | |
56 | 63 | /** |
57 | - * 考评 | |
64 | + * 生效时间 | |
58 | 65 | */ |
59 | - private String evalName; | |
66 | + private LocalDate beginTime; | |
60 | 67 | |
61 | 68 | /** |
62 | - * 考评组 | |
69 | + * 结束时间 | |
63 | 70 | */ |
64 | - private String evalGroupName; | |
71 | + private LocalDate overTime; | |
65 | 72 | |
66 | 73 | /** |
67 | 74 | * 考评组id | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalShopPoolVO.java
... | ... | @@ -12,6 +12,7 @@ import lombok.EqualsAndHashCode; |
12 | 12 | |
13 | 13 | import java.math.BigDecimal; |
14 | 14 | import java.time.LocalDate; |
15 | +import java.time.YearMonth; | |
15 | 16 | import java.util.List; |
16 | 17 | |
17 | 18 | /** |
... | ... | @@ -27,56 +28,26 @@ import java.util.List; |
27 | 28 | public class EvalShopPoolVO { |
28 | 29 | |
29 | 30 | private static final long serialVersionUID = 1L; |
30 | - | |
31 | 31 | /** |
32 | - * 考评池id | |
32 | + * id | |
33 | 33 | */ |
34 | 34 | private Long id; |
35 | - | |
36 | 35 | /** |
37 | 36 | * 考评组编码 |
38 | 37 | */ |
39 | 38 | private String egc; |
40 | - | |
41 | - /** | |
42 | - * 考评组 | |
43 | - */ | |
44 | - private String evalGroupName; | |
45 | - | |
46 | - /** | |
47 | - * 考评id | |
48 | - */ | |
49 | - private Long evalId; | |
50 | 39 | /** |
51 | 40 | * 考评组id |
52 | 41 | */ |
53 | 42 | private Long evalGroupId; |
54 | - | |
55 | - | |
56 | 43 | /** |
57 | - * 考评类型; 1:活动考评 2:其他考评 | |
44 | + * 考评排名组id | |
58 | 45 | */ |
59 | - private EvalTypeEnum evalType; | |
60 | - | |
61 | -// /** | |
62 | -// * 用户id | |
63 | -// */ | |
64 | -// private Long userId; | |
65 | -// | |
66 | -// /** | |
67 | -// * 用户名称 | |
68 | -// */ | |
69 | -// private String userName; | |
70 | - | |
71 | -// /** | |
72 | -// * 岗位id | |
73 | -// */ | |
74 | -// private Long postId; | |
75 | -// | |
76 | -// /** | |
77 | -// * 岗位名称 | |
78 | -// */ | |
79 | -// private String postName; | |
46 | + private Long evalGroupRankId; | |
47 | + /** | |
48 | + * 考评排名组阶段id | |
49 | + */ | |
50 | + private Long evalGroupRankStageId; | |
80 | 51 | |
81 | 52 | /** |
82 | 53 | * 门店id |
... | ... | @@ -88,16 +59,6 @@ public class EvalShopPoolVO { |
88 | 59 | */ |
89 | 60 | private String shopName; |
90 | 61 | |
91 | -// /** | |
92 | -// * 社保公积金门店id | |
93 | -// */ | |
94 | -// private Long fundShopId; | |
95 | -// | |
96 | -// /** | |
97 | -// * 社保公积金门店名称 | |
98 | -// */ | |
99 | -// private String fundShopName; | |
100 | - | |
101 | 62 | /** |
102 | 63 | * 考评奖惩 |
103 | 64 | */ |
... | ... | @@ -124,10 +85,14 @@ public class EvalShopPoolVO { |
124 | 85 | private String scoreRatioFormat; |
125 | 86 | |
126 | 87 | /** |
127 | - * 月度 | |
88 | + * 排名 | |
128 | 89 | */ |
129 | - private String monthly; | |
90 | + private Integer rank; | |
130 | 91 | |
92 | + /** | |
93 | + * 月度 | |
94 | + */ | |
95 | + private YearMonth monthly; | |
131 | 96 | |
132 | 97 | /** |
133 | 98 | * 数据日期 | ... | ... |
fw-morax-server/src/main/java/cn/fw/morax/server/controller/app/EvalPoolController.java
... | ... | @@ -90,28 +90,19 @@ public class EvalPoolController { |
90 | 90 | if (Objects.isNull(userId)) { |
91 | 91 | userId = user.getUserId(); |
92 | 92 | } |
93 | -// return success(evalGroupPoolService.evalPoolSelector(userId, monthly)); | |
94 | - return success(); | |
93 | + return success(evalGroupPoolService.evalPoolSelector(userId, monthly)); | |
95 | 94 | } |
96 | 95 | |
97 | -// /** | |
98 | -// * 考评详情查询 (查看自己考评详情) | |
99 | -// */ | |
100 | -// @GetMapping("/own-detail") | |
101 | -// @ControllerMethod("考评详情查询") | |
102 | -// public Message<List<EvalUserRankStageVO>> evalPoolOwnDetail(@CurrentUser Long userId, | |
103 | -// @Valid EvalUserRankDTO dto) { | |
104 | -// dto.initMonthly(); | |
105 | -// dto.setUserId(userId); | |
106 | -// return success(evalGroupPoolService.queryRankStagePools(dto)); | |
107 | -// } | |
108 | 96 | /** |
109 | 97 | * 考评详情查询 (查看自己考评详情) |
110 | 98 | */ |
111 | 99 | @GetMapping("/own-detail") |
112 | 100 | @ControllerMethod("考评详情查询") |
113 | - public Message<List<EvalUserRankStageVO>> evalPoolOwnDetail(@CurrentUser Long userId) { | |
114 | - return success(); | |
101 | + public Message<List<EvalUserRankStageVO>> evalPoolOwnDetail(@CurrentUser Long userId, | |
102 | + @Valid EvalUserRankDTO dto) { | |
103 | + dto.initMonthly(); | |
104 | + dto.setUserId(userId); | |
105 | + return success(evalGroupPoolService.queryRankStagePools(dto)); | |
115 | 106 | } |
116 | 107 | |
117 | 108 | /** |
... | ... | @@ -120,22 +111,13 @@ public class EvalPoolController { |
120 | 111 | */ |
121 | 112 | @GetMapping("/detail") |
122 | 113 | @ControllerMethod("考评详情查询") |
123 | - public Message<List<EvalUserRankStageVO>> evalPoolDetail() { | |
124 | - return success(); | |
114 | + public Message<List<EvalUserRankStageVO>> evalPoolDetail(@Valid EvalUserRankDTO dto) { | |
115 | + dto.initMonthly(); | |
116 | + if (PublicUtil.isEmpty(dto.getUserId())) { | |
117 | + throw new BusinessException("人员信息不能为空"); | |
118 | + } | |
119 | + return success(evalGroupPoolService.queryRankStagePools(dto)); | |
125 | 120 | } |
126 | -// /** | |
127 | -// * 考评详情查询 (查看他人考评详情) | |
128 | -// * | |
129 | -// */ | |
130 | -// @GetMapping("/detail") | |
131 | -// @ControllerMethod("考评详情查询") | |
132 | -// public Message<List<EvalUserRankStageVO>> evalPoolDetail(@Valid EvalUserRankDTO dto) { | |
133 | -// dto.initMonthly(); | |
134 | -// if (PublicUtil.isEmpty(dto.getUserId())) { | |
135 | -// throw new BusinessException("人员信息不能为空"); | |
136 | -// } | |
137 | -// return success(evalGroupPoolService.queryRankStagePools(dto)); | |
138 | -// } | |
139 | 121 | |
140 | 122 | /** |
141 | 123 | * 员工考评得分详情 | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/ApprovalBizService.java
... | ... | @@ -517,6 +517,7 @@ public class ApprovalBizService { |
517 | 517 | InitiateApprovalParam.Condition shopCondition = new InitiateApprovalParam.Condition(); |
518 | 518 | shopCondition.setParamName("shopId"); |
519 | 519 | shopCondition.setValue(staffInfo.getShopId().toString()); |
520 | + conditions.add(shopCondition); | |
520 | 521 | Map extDataMap = new HashMap<String, Object>() {{ |
521 | 522 | put("id", rewardDist.getId().toString()); |
522 | 523 | }}; |
... | ... | @@ -525,9 +526,8 @@ public class ApprovalBizService { |
525 | 526 | .approvalNo(flowVal.getEvalShopReward()) |
526 | 527 | .briefContent(Lists.newArrayList( |
527 | 528 | "申请人:" + user.getUserName(), |
528 | - "考评/活动名称:" + user.getUserName(), | |
529 | - "考评类型:" + rewardDist.getEvalType().getName(), | |
530 | - "考评组:" + rewardDist.getEvalGroupName(), | |
529 | + "考评排名组:" + rewardDist.getEvalGroupRankName(), | |
530 | + "考评排名组阶段:" + rewardDist.getEvalGroupRankStageName(), | |
531 | 531 | "门店奖惩金额:" + rewardDist.getReward(), |
532 | 532 | "申请时间:" + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").format(LocalDateTime.now()) |
533 | 533 | )) | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/calculator/eval/kpi/EvalKpiBaseCalculator.java
... | ... | @@ -169,10 +169,11 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS |
169 | 169 | useTarget = EvalUseTargetEnum.FIRST_TARGET; |
170 | 170 | indicatorValue = reachValue; |
171 | 171 | } |
172 | + //额外计算类型只能为空 或者 时间进度 | |
172 | 173 | if (PublicUtil.isNotEmpty(extraTargetType) && (!TargetTypeEnum.NO.equals(extraTargetType))) { |
173 | 174 | extraReachValue = calcTarget(param.getExtraTargetCalcType(), originValue, param.getExtraTargetValue()); |
174 | - //额外计算类型值 原始计算类型值 用大的那个值 | |
175 | - if (PublicUtil.isEmpty(reachValue) || (extraReachValue.compareTo(reachValue) > 0)) { | |
175 | + //只配置了时间进度 时间进度大于阶段目标 并且 时间进度大于1,取时间进度 | |
176 | + if (PublicUtil.isEmpty(reachValue) || ((extraReachValue.compareTo(reachValue) > 0) && (extraReachValue.compareTo(BigDecimal.ONE) >= 0))) { | |
176 | 177 | indicatorValue = extraReachValue; |
177 | 178 | useTarget = EvalUseTargetEnum.EXTRA_TARGET; |
178 | 179 | } |
... | ... | @@ -225,20 +226,37 @@ public abstract class EvalKpiBaseCalculator implements Calculator<EvalGroupUserS |
225 | 226 | protected Optional<BigDecimal> queryValue(EvalGroupUserShop obj, IndicatorCodeTypeEnum codeType, String indicatorCode) { |
226 | 227 | DimensionTypeEnum dimensionType = EvalScopeEnum.STAFF.equals(obj.getScopeType()) ? DimensionTypeEnum.STAFF : DimensionTypeEnum.SHOP; |
227 | 228 | if (IndicatorCodeTypeEnum.INDICATOR.equals(codeType)) { |
228 | - LambdaQueryWrapper<IndicatorUserStageValue> queryWrapper = Wrappers.<IndicatorUserStageValue>lambdaQuery() | |
229 | - .eq(IndicatorUserStageValue::getIndicatorCode, indicatorCode) | |
230 | - .eq(IndicatorUserStageValue::getBeginDate, obj.getBeginDate()) | |
231 | - .eq(IndicatorUserStageValue::getEndDate, obj.getDataDate()) | |
232 | - .eq(IndicatorUserStageValue::getDimensionType, dimensionType) | |
233 | - .eq(IndicatorUserStageValue::getYn, Boolean.TRUE) | |
234 | - .eq(IndicatorUserStageValue::getGroupId, obj.getGroupId()); | |
229 | + //多阶段查询 | |
230 | + if (Boolean.TRUE.equals(obj.getMultiStage())) { | |
231 | + LambdaQueryWrapper<IndicatorUserStageValue> queryWrapper = Wrappers.<IndicatorUserStageValue>lambdaQuery() | |
232 | + .eq(IndicatorUserStageValue::getIndicatorCode, indicatorCode) | |
233 | + .eq(IndicatorUserStageValue::getBeginDate, obj.getBeginDate()) | |
234 | + .eq(IndicatorUserStageValue::getEndDate, obj.getDataDate()) | |
235 | + .eq(IndicatorUserStageValue::getDimensionType, dimensionType) | |
236 | + .eq(IndicatorUserStageValue::getYn, Boolean.TRUE) | |
237 | + .eq(IndicatorUserStageValue::getGroupId, obj.getGroupId()); | |
238 | + if (EvalScopeEnum.STAFF.equals(obj.getScopeType())) { | |
239 | + queryWrapper.eq(IndicatorUserStageValue::getUserId, obj.getReferId()); | |
240 | + } else { | |
241 | + queryWrapper.eq(IndicatorUserStageValue::getShopId, obj.getReferId()); | |
242 | + } | |
243 | + IndicatorUserStageValue indicatorUserStageValue = indicatorUserStageValueService.getOne(queryWrapper, Boolean.FALSE); | |
244 | + return queryKpiIndicatorValue(indicatorUserStageValue); | |
245 | + } | |
246 | + //单阶段查询 | |
247 | + LambdaQueryWrapper<IndicatorUserValue> queryWrapper = Wrappers.<IndicatorUserValue>lambdaQuery() | |
248 | + .eq(IndicatorUserValue::getIndicatorCode, indicatorCode) | |
249 | + .eq(IndicatorUserValue::getDataDate, obj.getDataDate()) | |
250 | + .eq(IndicatorUserValue::getDimensionType, dimensionType) | |
251 | + .eq(IndicatorUserValue::getYn, Boolean.TRUE) | |
252 | + .eq(IndicatorUserValue::getGroupId, obj.getGroupId()); | |
235 | 253 | if (EvalScopeEnum.STAFF.equals(obj.getScopeType())) { |
236 | - queryWrapper.eq(IndicatorUserStageValue::getUserId, obj.getReferId()); | |
254 | + queryWrapper.eq(IndicatorUserValue::getUserId, obj.getReferId()); | |
237 | 255 | } else { |
238 | - queryWrapper.eq(IndicatorUserStageValue::getShopId, obj.getReferId()); | |
256 | + queryWrapper.eq(IndicatorUserValue::getShopId, obj.getReferId()); | |
239 | 257 | } |
240 | - IndicatorUserStageValue indicatorUserStageValue = indicatorUserStageValueService.getOne(queryWrapper, Boolean.FALSE); | |
241 | - return queryKpiIndicatorValue(indicatorUserStageValue); | |
258 | + IndicatorUserValue indicatorUserValue = indicatorUserValueService.getOne(queryWrapper, Boolean.FALSE); | |
259 | + return queryKpiIndicatorValue(indicatorUserValue); | |
242 | 260 | } |
243 | 261 | |
244 | 262 | EvalIndicatorValue evalIndicatorValue = evalIndicatorValueService.queryLastValue(obj.getReferId(), | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalCalculateService.java
... | ... | @@ -183,7 +183,12 @@ public class EvalCalculateService { |
183 | 183 | log.error("考评排名组阶段[{}]不存在,终止计算!", JSON.toJSONString(evalGroup)); |
184 | 184 | return; |
185 | 185 | } |
186 | - List<EvalGroupUserShop> userShops = this.buildEvalGroupObj(evalGroup, evalGroupRankStage, localDate, scopeType); | |
186 | + EvalGroupRank evalGroupRank = evalGroupRankService.getById(evalGroup.getEvalGroupRankId()); | |
187 | + if (Objects.isNull(evalGroupRank)) { | |
188 | + log.error("考评组[{}]排名组不存在,终止计算!", evalGroup.getEvalGroupRankId()); | |
189 | + return; | |
190 | + } | |
191 | + List<EvalGroupUserShop> userShops = this.buildEvalGroupObj(evalGroup, evalGroupRank, evalGroupRankStage, localDate, scopeType); | |
187 | 192 | if (CollectionUtils.isEmpty(userShops)) { |
188 | 193 | log.error("考评组[{}]人员为空,终止计算!", evalGroupId); |
189 | 194 | return; |
... | ... | @@ -269,8 +274,7 @@ public class EvalCalculateService { |
269 | 274 | } |
270 | 275 | |
271 | 276 | |
272 | - public List<EvalGroupUserShop> buildEvalGroupObj(EvalGroup evalGroup, EvalGroupRankStage evalGroupRankStage, LocalDate localDate, EvalScopeEnum scopeType) { | |
273 | - LocalDate beginDate = evalGroupRankStage.getBeginTime(); | |
277 | + public List<EvalGroupUserShop> buildEvalGroupObj(EvalGroup evalGroup, EvalGroupRank evalGroupRank, EvalGroupRankStage evalGroupRankStage, LocalDate localDate, EvalScopeEnum scopeType) { | |
274 | 278 | List<EvalGroupUserShop> userShops = new ArrayList<>(); |
275 | 279 | if (EvalScopeEnum.STAFF.equals(scopeType)) { |
276 | 280 | List<EvalGroupUser> users = evalGroupUserService.list(Wrappers.<EvalGroupUser>lambdaQuery() |
... | ... | @@ -282,7 +286,7 @@ public class EvalCalculateService { |
282 | 286 | Map<Long, EvalUserPool> userPoolMap = evalPoolCommonService.inspectionUserPoolMap(evalGroup, evalGroupRankStage, users, localDate); |
283 | 287 | for (EvalGroupUser user : users) { |
284 | 288 | EvalUserPool userPool = userPoolMap.get(user.getUserId()); |
285 | - userShops.add(convertBO(user, userPool)); | |
289 | + userShops.add(convertBO(user, userPool, evalGroupRank, evalGroupRankStage)); | |
286 | 290 | } |
287 | 291 | return userShops; |
288 | 292 | } |
... | ... | @@ -291,7 +295,7 @@ public class EvalCalculateService { |
291 | 295 | for (Long shopId : evalGroup.getShopIds()) { |
292 | 296 | EvalShopPool shopPool = shopPoolBOMap.get(shopId); |
293 | 297 | Boolean ignored = ! distShopIds.contains(shopId); |
294 | - userShops.add(convertBO(shopPool, evalGroup, beginDate, localDate, ignored)); | |
298 | + userShops.add(convertBO(shopPool, evalGroup, evalGroupRank, evalGroupRankStage, localDate, ignored)); | |
295 | 299 | } |
296 | 300 | return userShops; |
297 | 301 | } |
... | ... | @@ -619,7 +623,7 @@ public class EvalCalculateService { |
619 | 623 | return poolDetail; |
620 | 624 | } |
621 | 625 | |
622 | - public EvalGroupUserShop convertBO(EvalGroupUser user, EvalUserPool userPool) { | |
626 | + public EvalGroupUserShop convertBO(EvalGroupUser user, EvalUserPool userPool, EvalGroupRank evalGroupRank, EvalGroupRankStage evalGroupRankStage) { | |
623 | 627 | EvalGroupUserShop userShop = new EvalGroupUserShop(); |
624 | 628 | userShop.setName(user.getUserName()); |
625 | 629 | userShop.setScopeType(EvalScopeEnum.STAFF); |
... | ... | @@ -628,7 +632,9 @@ public class EvalCalculateService { |
628 | 632 | userShop.setPostId(userPool.getPostId()); |
629 | 633 | userShop.setShopId(userPool.getShopId()); |
630 | 634 | userShop.setReferId(user.getUserId()); |
635 | + userShop.setBeginDate(evalGroupRankStage.getBeginTime()); | |
631 | 636 | userShop.setDataDate(user.getDataDate()); |
637 | + userShop.setMultiStage(evalGroupRank.getMultiStage()); | |
632 | 638 | userShop.setGroupId(user.getGroupId()); |
633 | 639 | userShop.setScore(BigDecimal.ZERO); |
634 | 640 | userShop.setReward(BigDecimal.ZERO); |
... | ... | @@ -636,7 +642,7 @@ public class EvalCalculateService { |
636 | 642 | return userShop; |
637 | 643 | } |
638 | 644 | |
639 | - public EvalGroupUserShop convertBO(EvalShopPool shopPool, EvalGroup evalGroup, LocalDate beginDate, LocalDate dataDate, Boolean ignored) { | |
645 | + public EvalGroupUserShop convertBO(EvalShopPool shopPool, EvalGroup evalGroup, EvalGroupRank evalGroupRank, EvalGroupRankStage evalGroupRankStage, LocalDate dataDate, Boolean ignored) { | |
640 | 646 | EvalGroupUserShop userShop = new EvalGroupUserShop(); |
641 | 647 | userShop.setName(shopPool.getShopName()); |
642 | 648 | userShop.setReferId(shopPool.getShopId()); |
... | ... | @@ -645,8 +651,9 @@ public class EvalCalculateService { |
645 | 651 | userShop.setScopeType(EvalScopeEnum.SHOP); |
646 | 652 | userShop.setEvalId(userShop.getEvalId()); |
647 | 653 | userShop.setEvalGroupId(evalGroup.getId()); |
648 | - userShop.setBeginDate(beginDate); | |
654 | + userShop.setBeginDate(evalGroupRankStage.getBeginTime()); | |
649 | 655 | userShop.setDataDate(dataDate); |
656 | + userShop.setMultiStage(evalGroupRank.getMultiStage()); | |
650 | 657 | userShop.setGroupId(evalGroup.getGroupId()); |
651 | 658 | userShop.setIgnored(ignored); |
652 | 659 | userShop.setScore(BigDecimal.ZERO); | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupPoolService.java
... | ... | @@ -94,10 +94,6 @@ public class EvalGroupPoolService { |
94 | 94 | this.setShopRewardDetails(evalShopPoolVO, dataDate); |
95 | 95 | evalShopPoolVO.setDataDate(dataDate); |
96 | 96 | |
97 | - Eval eval = evalService.getById(pool.getEvalId()); | |
98 | - BV.notNull(pool, "考评池不存在"); | |
99 | - evalShopPoolVO.setEvalType(eval.getType()); | |
100 | - | |
101 | 97 | return evalShopPoolVO; |
102 | 98 | } |
103 | 99 | |
... | ... | @@ -289,14 +285,14 @@ public class EvalGroupPoolService { |
289 | 285 | //排名维度 |
290 | 286 | for (Map.Entry<Long, List<EvalUserPool>> rankEntry : rankPools.entrySet()) { |
291 | 287 | List<EvalUserPool> userRankPools = rankEntry.getValue(); |
292 | - double averageKpiScoreRatio = userRankPools.stream() | |
288 | + Double averageKpiScoreRatio = userRankPools.stream() | |
293 | 289 | .mapToDouble(r -> Optional.ofNullable(r.getScoreRatio()).orElse(BigDecimal.ZERO).doubleValue()) |
294 | 290 | .average() |
295 | 291 | .orElse(0); |
296 | 292 | BigDecimal reward = userRankPools.stream().map(EvalUserPool::getReward).reduce(BigDecimal.ZERO, BigDecimal::add); |
297 | 293 | EvalUserGroupRankVO rank = new EvalUserGroupRankVO(); |
298 | 294 | rank.setEvalGroupRankName(rankNameMap.getOrDefault(rankEntry.getKey(), "")); |
299 | - rank.setScoreRatio(new BigDecimal(averageKpiScoreRatio).multiply(Constant.ONE_HUNDRED)); | |
295 | + rank.setScoreRatio(new BigDecimal(averageKpiScoreRatio.toString()).multiply(Constant.ONE_HUNDRED)); | |
300 | 296 | rank.setReward(reward); |
301 | 297 | rank.setEvalGroupRankId(rankEntry.getKey()); |
302 | 298 | ranks.add(rank); |
... | ... | @@ -500,6 +496,10 @@ public class EvalGroupPoolService { |
500 | 496 | if (! TargetTypeEnum.NO.equals(paramVO.getTargetType())) { |
501 | 497 | paramVO.setReachValue(Optional.ofNullable(paramVO.getReachValue()).orElse(BigDecimal.ZERO).multiply(Constant.ONE_HUNDRED)); |
502 | 498 | } |
499 | + //有目标 | |
500 | + if (PublicUtil.isNotEmpty(paramVO.getExtraTargetType()) && (! TargetTypeEnum.NO.equals(paramVO.getExtraTargetType()))) { | |
501 | + paramVO.setExtraReachValue(Optional.ofNullable(paramVO.getExtraReachValue()).orElse(BigDecimal.ZERO).multiply(Constant.ONE_HUNDRED)); | |
502 | + } | |
503 | 503 | } |
504 | 504 | |
505 | 505 | for (EvalGroupIndicatorParamVO paramVO : Optional.ofNullable(detail.getLadderParams()).orElse(new ArrayList<>())) { |
... | ... | @@ -511,6 +511,10 @@ public class EvalGroupPoolService { |
511 | 511 | if (! TargetTypeEnum.NO.equals(paramVO.getTargetType())) { |
512 | 512 | paramVO.setReachValue(Optional.ofNullable(paramVO.getReachValue()).orElse(BigDecimal.ZERO).multiply(Constant.ONE_HUNDRED)); |
513 | 513 | } |
514 | + //有目标 | |
515 | + if (PublicUtil.isNotEmpty(paramVO.getExtraTargetType()) && (! TargetTypeEnum.NO.equals(paramVO.getExtraTargetType()))) { | |
516 | + paramVO.setExtraReachValue(Optional.ofNullable(paramVO.getExtraReachValue()).orElse(BigDecimal.ZERO).multiply(Constant.ONE_HUNDRED)); | |
517 | + } | |
514 | 518 | } |
515 | 519 | |
516 | 520 | for (EvalGroupIndicatorPreconditionVO preconditionVO : Optional.ofNullable(detail.getConds()).orElse(new ArrayList<>())) { |
... | ... | @@ -543,7 +547,6 @@ public class EvalGroupPoolService { |
543 | 547 | scopeType, dataDate, paramVos); |
544 | 548 | |
545 | 549 | for (EvalGroupIndicatorParamVO paramVO : paramVos) { |
546 | - String code = paramVO.getCode(); | |
547 | 550 | Long paramId = paramVO.getId(); |
548 | 551 | //无目标 |
549 | 552 | // if (TargetTypeEnum.NO.equals(paramVO.getTargetType())) { |
... | ... | @@ -556,8 +559,15 @@ public class EvalGroupPoolService { |
556 | 559 | Optional<EvalGroupIndicatorTargetHitLog> hitLogOptional = Optional.ofNullable(paramTargetHitLogMap.get(paramId)); |
557 | 560 | paramVO.setIndicatorValue(hitLogOptional.map(EvalGroupIndicatorTargetHitLog::getValue).orElse(BigDecimal.ZERO)); |
558 | 561 | paramVO.setReachValue(hitLogOptional.map(EvalGroupIndicatorTargetHitLog::getReachValue).orElse(BigDecimal.ZERO)); |
559 | - paramVO.setExtraReachValue(hitLogOptional.map(EvalGroupIndicatorTargetHitLog::getReachValue).orElse(BigDecimal.ZERO)); | |
562 | + paramVO.setExtraReachValue(hitLogOptional.map(EvalGroupIndicatorTargetHitLog::getExtraReachValue).orElse(BigDecimal.ZERO)); | |
560 | 563 | paramVO.setUseTarget(hitLogOptional.map(EvalGroupIndicatorTargetHitLog::getUseTarget).orElse(EvalUseTargetEnum.NO)); |
564 | + | |
565 | +// paramVO.setTargetCalcType(paramVO.getTargetCalcType()); | |
566 | +// paramVO.setTargetType(paramVO.getTargetType()); | |
567 | +// paramVO.setTargetValue(paramVO.getTargetValue()); | |
568 | +// paramVO.setExtraTargetCalcType(paramVO.getExtraTargetCalcType()); | |
569 | +// paramVO.setExtraTargetType(paramVO.getExtraTargetType()); | |
570 | +// paramVO.setExtraTargetValue(paramVO.getExtraTargetValue()); | |
561 | 571 | } |
562 | 572 | |
563 | 573 | Map<ParamTypeEnum, List<EvalGroupIndicatorParamVO>> indicatorParamMap = paramVos.stream() | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalRewardService.java
... | ... | @@ -5,6 +5,7 @@ import cn.fw.common.cache.locker.DistributedLocker; |
5 | 5 | import cn.fw.common.exception.BusinessException; |
6 | 6 | import cn.fw.common.web.auth.LoginAuthBean; |
7 | 7 | import cn.fw.morax.common.config.TodoVal; |
8 | +import cn.fw.morax.common.constant.Constant; | |
8 | 9 | import cn.fw.morax.common.pojo.event.ApprovalResultEvent; |
9 | 10 | import cn.fw.morax.common.utils.DateUtil; |
10 | 11 | import cn.fw.morax.common.utils.PublicUtil; |
... | ... | @@ -44,9 +45,11 @@ import org.springframework.stereotype.Service; |
44 | 45 | import org.springframework.transaction.annotation.Transactional; |
45 | 46 | |
46 | 47 | import java.math.BigDecimal; |
48 | +import java.text.DateFormat; | |
47 | 49 | import java.text.DecimalFormat; |
48 | 50 | import java.time.LocalDate; |
49 | 51 | import java.time.LocalDateTime; |
52 | +import java.time.format.DateTimeFormatter; | |
50 | 53 | import java.util.*; |
51 | 54 | import java.util.concurrent.RejectedExecutionException; |
52 | 55 | import java.util.concurrent.ThreadPoolExecutor; |
... | ... | @@ -169,7 +172,7 @@ public class EvalRewardService { |
169 | 172 | log.error("考评奖惩没有门店:{}", JSON.toJSONString(evalGroup)); |
170 | 173 | return; |
171 | 174 | } |
172 | -// sendDistRewardTodo(shopRewardDims, evalGroup, evalGroupRank, evalGroupRankStage); | |
175 | + sendDistRewardTodo(shopRewardDims, evalGroup, evalGroupRank, evalGroupRankStage); | |
173 | 176 | } |
174 | 177 | |
175 | 178 | /** |
... | ... | @@ -180,13 +183,8 @@ public class EvalRewardService { |
180 | 183 | @Transactional(rollbackFor = Exception.class) |
181 | 184 | public void sendDistRewardTodo(List<EvalGroupRewardDim> shopRewardDims, EvalGroup evalGroup, |
182 | 185 | EvalGroupRank evalGroupRank, EvalGroupRankStage evalGroupRankStage) { |
183 | - String evalGroupRankName = evalGroupRank.getName(); | |
184 | - String evalGroupRankStageName = evalGroupRankStage.getName(); | |
185 | - DecimalFormat decimalFormat = new DecimalFormat("##########.##"); | |
186 | 186 | List<BacklogBatchPlanItemReqDTO> itemList = new ArrayList<>(); |
187 | - | |
188 | 187 | List<Long> distPoolIds = new ArrayList<>(); |
189 | - final Date expireTime = DateUtil.localDateTime2Date(LocalDateTime.now().plusDays(2L)); | |
190 | 188 | for (EvalGroupRewardDim rewardDim : shopRewardDims) { |
191 | 189 | final String roleCode = rewardDim.getDistRoleCode(); |
192 | 190 | List<EvalShopPool> pools = evalShopPoolService.list(Wrappers.<EvalShopPool>lambdaQuery() |
... | ... | @@ -219,33 +217,15 @@ public class EvalRewardService { |
219 | 217 | } |
220 | 218 | //奖惩为0不分配 |
221 | 219 | if (BigDecimal.ZERO.compareTo(reward) == 0) { |
222 | - return; | |
220 | + continue; | |
223 | 221 | } |
224 | 222 | |
225 | - EvalRewardDist rewardDist = transferPo(evalGroup); | |
223 | + EvalRewardDist rewardDist = this.convertRewardDist(evalGroup, evalGroupRank, evalGroupRankStage, poolIds, manageShopIds); | |
226 | 224 | rewardDist.setUserId(user.getUserId()); |
227 | - rewardDist.setEvalShopPoolIds(poolIds); | |
228 | - rewardDist.setShopIds(manageShopIds); | |
229 | - rewardDist.setEvalName(evalGroupRankName); | |
230 | -// rewardDist.setEvalType(evalType); | |
231 | 225 | rewardDist.setReward(reward); |
232 | 226 | evalRewardDistService.save(rewardDist); |
233 | - | |
234 | - BacklogBatchPlanItemReqDTO planItemReq = new BacklogBatchPlanItemReqDTO(); | |
235 | - planItemReq.setDataId(rewardDist.getId().toString()); | |
236 | - planItemReq.setUserId(user.getUserId()); | |
237 | - planItemReq.setPlanTime(new Date()); | |
238 | - planItemReq.setExpireTime(expireTime); | |
239 | - | |
240 | - Map<String, String> dynamicMap = new HashMap<>(8); | |
241 | - dynamicMap.put("evalGroupName", evalGroupRankName); | |
242 | - dynamicMap.put("evalName", evalGroupRankStageName); | |
243 | -// dynamicMap.put("evalType", evalType.getName()); | |
244 | - dynamicMap.put("amount", decimalFormat.format(rewardDist.getReward())); | |
245 | - planItemReq.setDynamicMap(dynamicMap); | |
246 | - | |
247 | - Map<String, Object> extraData = new HashMap<>(); | |
248 | - planItemReq.setExtraData(extraData); | |
227 | + BacklogBatchPlanItemReqDTO planItemReq = this.createBacklog(rewardDist, user.getUserId()); | |
228 | + planItemReq.setDynamicMap(rewardDistDynamicMap(rewardDist, evalGroupRank, evalGroupRankStage)); | |
249 | 229 | itemList.add(planItemReq); |
250 | 230 | } |
251 | 231 | } |
... | ... | @@ -269,11 +249,49 @@ public class EvalRewardService { |
269 | 249 | } |
270 | 250 | } |
271 | 251 | |
272 | - public EvalRewardDist transferPo(EvalGroup evalGroup) { | |
252 | + | |
253 | + public BacklogBatchPlanItemReqDTO createBacklog(EvalRewardDist rewardDist, Long userId) { | |
254 | + Date expireTime = DateUtil.localDateTime2Date(LocalDateTime.now().plusDays(2L)); | |
255 | + BacklogBatchPlanItemReqDTO planItemReq = new BacklogBatchPlanItemReqDTO(); | |
256 | + planItemReq.setDataId(rewardDist.getId().toString()); | |
257 | + planItemReq.setUserId(userId); | |
258 | + planItemReq.setPlanTime(new Date()); | |
259 | + planItemReq.setExpireTime(expireTime); | |
260 | + planItemReq.setExtraData(new HashMap<>()); | |
261 | + return planItemReq; | |
262 | + } | |
263 | + | |
264 | + public Map<String, String> rewardDistDynamicMap(EvalRewardDist rewardDist, EvalGroupRank evalGroupRank, EvalGroupRankStage evalGroupRankStage) { | |
265 | + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); | |
266 | + String beginTimeStr = dtf.format(rewardDist.getBeginTime()); | |
267 | + String endTimeStr = dtf.format(rewardDist.getOverTime()); | |
268 | + String timeStr = beginTimeStr + Constant.TIME_SEPARATOR + endTimeStr; | |
269 | + String evalGroupRankStageName = (evalGroupRank.getMultiStage()) ? evalGroupRankStage.getName() : "---"; | |
270 | + | |
271 | + DecimalFormat decimalFormat = new DecimalFormat("##########.##"); | |
272 | + Map<String, String> dynamicMap = new HashMap<>(8); | |
273 | + dynamicMap.put("evalGroupRankName", evalGroupRank.getName()); | |
274 | + dynamicMap.put("evalGroupRankStageName", evalGroupRankStageName); | |
275 | + dynamicMap.put("evalGroupRankStageTime", timeStr); | |
276 | + dynamicMap.put("amount", decimalFormat.format(rewardDist.getReward())); | |
277 | + return dynamicMap; | |
278 | + } | |
279 | + | |
280 | + public EvalRewardDist convertRewardDist(EvalGroup evalGroup, EvalGroupRank evalGroupRank, EvalGroupRankStage evalGroupRankStage, | |
281 | + List<Long> poolIds, List<Long> manageShopIds) { | |
273 | 282 | EvalRewardDist rewardDist = new EvalRewardDist(); |
274 | - rewardDist.setEvalId(evalGroup.getEvalGroupRankId()); | |
275 | 283 | rewardDist.setEvalGroupId(evalGroup.getId()); |
276 | -// rewardDist.setEvalGroupName(evalGroup.getName()); | |
284 | + rewardDist.setEvalGroupRankId(evalGroupRank.getId()); | |
285 | + rewardDist.setEvalGroupRankStageId(evalGroupRankStage.getId()); | |
286 | + rewardDist.setEvalGroupRankName(evalGroupRank.getName()); | |
287 | + String evalGroupRankStageName = (PublicUtil.isNotEmpty(evalGroupRankStage.getName()) ? evalGroupRankStage.getName() : "---"); | |
288 | + rewardDist.setEvalGroupRankStageName(evalGroupRankStageName); | |
289 | + rewardDist.setBeginTime(evalGroupRankStage.getBeginTime()); | |
290 | + rewardDist.setOverTime(evalGroupRankStage.getOverTime()); | |
291 | + rewardDist.setEvalShopPoolIds(poolIds); | |
292 | + rewardDist.setShopIds(manageShopIds); | |
293 | + | |
294 | + rewardDist.setEvalGroupId(evalGroup.getId()); | |
277 | 295 | rewardDist.setStatus(EvalRewardDistStatusEnum.NO_DIST); |
278 | 296 | rewardDist.setGroupId(evalGroup.getGroupId()); |
279 | 297 | rewardDist.setYn(Boolean.TRUE); | ... | ... |