Commit 1b9fa64de429c40f18cbe88b6cffbc3f6daea3a8
1 parent
3cbc22e1
feature(*): 考评排名组保存修改
考评排名组保存修改
Showing
17 changed files
with
590 additions
and
193 deletions
fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalGroupRewardDimDao.java
0 → 100644
1 | +package cn.fw.morax.dao.eval; | |
2 | + | |
3 | + | |
4 | +import cn.fw.morax.domain.db.eval.EvalGroupRewardDim; | |
5 | +import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |
6 | + | |
7 | +/** | |
8 | + * <p> | |
9 | + * 考评奖惩 Mapper 接口 | |
10 | + * </p> | |
11 | + * | |
12 | + * @author jiangchao | |
13 | + * @since 2022-12-09 | |
14 | + */ | |
15 | +public interface EvalGroupRewardDimDao extends BaseMapper<EvalGroupRewardDim> { | |
16 | + | |
17 | +} | ... | ... |
fw-morax-dao/src/main/resources/mapper/eval/EvalGroupRewardDimDao.xml
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
3 | +<mapper namespace="cn.fw.morax.dao.eval.EvalGroupRewardDimDao"> | |
4 | + | |
5 | + <!-- 通用查询映射结果 --> | |
6 | + <resultMap id="BaseResultMap" type="cn.fw.morax.domain.db.eval.EvalGroupRewardDim"> | |
7 | + <result column="id" property="id"/> | |
8 | + <result column="eval_group_id" property="evalGroupId"/> | |
9 | + <result column="eval_stage_id" property="evalStageId"/> | |
10 | + <result column="type" property="type"/> | |
11 | + <result column="shop_ids" property="shopIds" typeHandler="cn.fw.common.data.mybatis.handler.LongListTypeHandler"/> | |
12 | + <result column="shop_names" property="shopNames" typeHandler="cn.fw.common.data.mybatis.handler.StringListTypeHandler"/> | |
13 | + <result column="post_ids" property="postIds" typeHandler="cn.fw.common.data.mybatis.handler.LongListTypeHandler"/> | |
14 | + <result column="post_names" property="postNames" typeHandler="cn.fw.common.data.mybatis.handler.StringListTypeHandler"/> | |
15 | + <result column="dist_role_code" property="distRoleCode"/> | |
16 | + <result column="dist_role_name" property="distRoleName"/> | |
17 | + <result column="yn" property="yn"/> | |
18 | + <result column="create_time" property="createTime"/> | |
19 | + <result column="update_time" property="updateTime"/> | |
20 | + </resultMap> | |
21 | + | |
22 | + | |
23 | +</mapper> | |
0 | 24 | \ No newline at end of file | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalGroupReward.java
... | ... | @@ -48,6 +48,11 @@ public class EvalGroupReward extends BaseAuditableTimeEntity<EvalGroupReward, Lo |
48 | 48 | private Long evalStageId; |
49 | 49 | |
50 | 50 | /** |
51 | + * 维度id | |
52 | + */ | |
53 | + private Long evalGroupDimId; | |
54 | + | |
55 | + /** | |
51 | 56 | * 岗位id |
52 | 57 | */ |
53 | 58 | @TableField(typeHandler = LongListTypeHandler.class) | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalGroupRewardDim.java
0 → 100644
1 | +package cn.fw.morax.domain.db.eval; | |
2 | + | |
3 | +import cn.fw.common.data.entity.BaseAuditableTimeEntity; | |
4 | +import cn.fw.common.data.mybatis.handler.LongListTypeHandler; | |
5 | +import cn.fw.common.data.mybatis.handler.StringListTypeHandler; | |
6 | +import cn.fw.morax.domain.enums.EvalScopeEnum; | |
7 | +import com.baomidou.mybatisplus.annotation.TableField; | |
8 | +import com.baomidou.mybatisplus.annotation.TableName; | |
9 | +import lombok.Data; | |
10 | +import lombok.EqualsAndHashCode; | |
11 | +import lombok.experimental.Accessors; | |
12 | + | |
13 | +import java.util.List; | |
14 | + | |
15 | +/** | |
16 | + * <p> | |
17 | + * 考评奖惩 | |
18 | + * </p> | |
19 | + * | |
20 | + * @author jiangchao | |
21 | + * @since 2023-05-13 | |
22 | + */ | |
23 | +@Data | |
24 | +@EqualsAndHashCode(callSuper = false) | |
25 | +@Accessors(chain = true) | |
26 | +@TableName(autoResultMap = true) | |
27 | +public class EvalGroupRewardDim extends BaseAuditableTimeEntity<EvalGroupRewardDim, Long> { | |
28 | + | |
29 | + private static final long serialVersionUID = 1L; | |
30 | + | |
31 | + /** | |
32 | + * 考评组配置id | |
33 | + */ | |
34 | + private Long evalGroupId; | |
35 | + | |
36 | + /** | |
37 | + * 考评阶段id | |
38 | + */ | |
39 | + private Long evalStageId; | |
40 | + | |
41 | + /** | |
42 | + * 维度类型 1:人员 2:门店 | |
43 | + */ | |
44 | + private EvalScopeEnum type; | |
45 | + | |
46 | + /** | |
47 | + * 适用岗位ids | |
48 | + */ | |
49 | + @TableField(typeHandler = LongListTypeHandler.class) | |
50 | + private List<Long> postIds; | |
51 | + | |
52 | + /** | |
53 | + * 适用岗位名称 | |
54 | + */ | |
55 | + @TableField(typeHandler = StringListTypeHandler.class) | |
56 | + private List<String> postNames; | |
57 | + | |
58 | + /** | |
59 | + * 适用门店ids | |
60 | + */ | |
61 | + @TableField(typeHandler = LongListTypeHandler.class) | |
62 | + private List<Long> shopIds; | |
63 | + | |
64 | + /** | |
65 | + * 适用门店名称 | |
66 | + */ | |
67 | + @TableField(typeHandler = StringListTypeHandler.class) | |
68 | + private List<String> shopNames; | |
69 | + | |
70 | + /** | |
71 | + * 门店奖惩分配角色 | |
72 | + */ | |
73 | + private String distRoleCode; | |
74 | + | |
75 | + /** | |
76 | + * 门店奖惩分配角色名称 | |
77 | + */ | |
78 | + private String distRoleName; | |
79 | + | |
80 | + /** | |
81 | + * 逻辑删除 | |
82 | + */ | |
83 | + private Boolean yn; | |
84 | + | |
85 | +} | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalConfigPostIndicatorsDTO.java
fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalGroupDTO.java
1 | 1 | package cn.fw.morax.domain.dto.eval; |
2 | 2 | |
3 | +import cn.fw.morax.domain.vo.eval.EvalGroupRewardDimVO; | |
3 | 4 | import lombok.Data; |
4 | 5 | import lombok.EqualsAndHashCode; |
5 | 6 | |
... | ... | @@ -59,9 +60,22 @@ public class EvalGroupDTO { |
59 | 60 | private List<EvalGroupIndicatorDTO> indicators; |
60 | 61 | |
61 | 62 | /** |
62 | - * 考评奖惩 | |
63 | + * 考评奖惩维度 | |
64 | + */ | |
65 | +// @Valid | |
66 | +// private List<EvalGroupRewardDimDTO> dims; | |
67 | + | |
68 | + /** | |
69 | + * 人员考评奖惩 | |
70 | + */ | |
71 | + @Valid | |
72 | + private List<EvalGroupRewardDimDTO> staffRewardDims; | |
73 | + | |
74 | + /** | |
75 | + * 门店考评奖惩 | |
63 | 76 | */ |
64 | 77 | @Valid |
65 | - private List<EvalGroupRewardDTO> rewards; | |
78 | + private List<EvalGroupRewardDimDTO> shopRewardDims; | |
79 | + | |
66 | 80 | |
67 | 81 | } | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalGroupRewardDTO.java
... | ... | @@ -30,19 +30,19 @@ public class EvalGroupRewardDTO { |
30 | 30 | |
31 | 31 | private static final long serialVersionUID = 1L; |
32 | 32 | |
33 | - /** | |
34 | - * 岗位id | |
35 | - */ | |
36 | - @NotNull(message = "岗位id不能为空") | |
37 | - @Size(min = 1, message = "岗位id不能为空") | |
38 | - private List<Long> postIds; | |
39 | - | |
40 | - /** | |
41 | - * 岗位名称 | |
42 | - */ | |
43 | - @NotNull(message = "岗位名称不能为空") | |
44 | - @Size(min = 1, message = "岗位名称不能为空") | |
45 | - private List<String> postNames; | |
33 | +// /** | |
34 | +// * 岗位id | |
35 | +// */ | |
36 | +// @NotNull(message = "岗位id不能为空") | |
37 | +// @Size(min = 1, message = "岗位id不能为空") | |
38 | +// private List<Long> postIds; | |
39 | +// | |
40 | +// /** | |
41 | +// * 岗位名称 | |
42 | +// */ | |
43 | +// @NotNull(message = "岗位名称不能为空") | |
44 | +// @Size(min = 1, message = "岗位名称不能为空") | |
45 | +// private List<String> postNames; | |
46 | 46 | |
47 | 47 | /** |
48 | 48 | * 考评奖惩指标名称 | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalGroupRewardDimDTO.java
0 → 100644
1 | +package cn.fw.morax.domain.dto.eval; | |
2 | + | |
3 | +import cn.fw.morax.domain.enums.EvalScopeEnum; | |
4 | +import lombok.Data; | |
5 | +import lombok.EqualsAndHashCode; | |
6 | +import lombok.experimental.Accessors; | |
7 | + | |
8 | +import javax.validation.Valid; | |
9 | +import javax.validation.constraints.NotNull; | |
10 | +import java.util.List; | |
11 | + | |
12 | +/** | |
13 | + * <p> | |
14 | + * 考评奖惩 | |
15 | + * </p> | |
16 | + * | |
17 | + * @author jiangchao | |
18 | + * @since 2023-05-13 | |
19 | + */ | |
20 | +@Data | |
21 | +@EqualsAndHashCode(callSuper = false) | |
22 | +@Accessors(chain = true) | |
23 | +public class EvalGroupRewardDimDTO { | |
24 | + | |
25 | + private static final long serialVersionUID = 1L; | |
26 | + | |
27 | + /** | |
28 | + * 维度类型 1:人员 2:门店 | |
29 | + */ | |
30 | +// @NotNull(message = "维度不能为空") | |
31 | +// private EvalScopeEnum type; | |
32 | + | |
33 | + /** | |
34 | + * 适用岗位ids | |
35 | + */ | |
36 | + private List<Long> postIds; | |
37 | + | |
38 | + /** | |
39 | + * 适用岗位名称 | |
40 | + */ | |
41 | + private List<String> postNames; | |
42 | + | |
43 | + /** | |
44 | + * 适用门店ids | |
45 | + */ | |
46 | + private List<Long> shopIds; | |
47 | + | |
48 | + /** | |
49 | + * 适用门店名称 | |
50 | + */ | |
51 | + private List<String> shopNames; | |
52 | + | |
53 | + /** | |
54 | + * 门店奖惩分配角色 | |
55 | + */ | |
56 | + private String distRoleCode; | |
57 | + | |
58 | + /** | |
59 | + * 门店奖惩分配角色名称 | |
60 | + */ | |
61 | + private String distRoleName; | |
62 | + | |
63 | + /** | |
64 | + * 考评奖惩 | |
65 | + */ | |
66 | + @Valid | |
67 | + private List<EvalGroupRewardDTO> rewards; | |
68 | + | |
69 | +} | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalGroupRewardDimVO.java
0 → 100644
1 | +package cn.fw.morax.domain.vo.eval; | |
2 | + | |
3 | +import cn.fw.common.data.mybatis.handler.LongListTypeHandler; | |
4 | +import cn.fw.common.data.mybatis.handler.StringListTypeHandler; | |
5 | +import cn.fw.morax.domain.enums.EvalScopeEnum; | |
6 | +import com.baomidou.mybatisplus.annotation.TableField; | |
7 | +import lombok.Data; | |
8 | +import lombok.EqualsAndHashCode; | |
9 | +import lombok.experimental.Accessors; | |
10 | + | |
11 | +import java.util.List; | |
12 | + | |
13 | +/** | |
14 | + * <p> | |
15 | + * 考评奖惩 | |
16 | + * </p> | |
17 | + * | |
18 | + * @author jiangchao | |
19 | + * @since 2023-05-13 | |
20 | + */ | |
21 | +@Data | |
22 | +@EqualsAndHashCode(callSuper = false) | |
23 | +@Accessors(chain = true) | |
24 | +public class EvalGroupRewardDimVO { | |
25 | + | |
26 | + private static final long serialVersionUID = 1L; | |
27 | + | |
28 | + /** | |
29 | + * id | |
30 | + */ | |
31 | + private Long id; | |
32 | + | |
33 | + /** | |
34 | + * 考评组配置id | |
35 | + */ | |
36 | + private Long evalGroupId; | |
37 | + | |
38 | + /** | |
39 | + * 考评阶段id | |
40 | + */ | |
41 | + private Long evalStageId; | |
42 | + | |
43 | + /** | |
44 | + * 维度类型 1:人员 2:门店 | |
45 | + */ | |
46 | + private EvalScopeEnum type; | |
47 | + | |
48 | + /** | |
49 | + * 适用岗位ids | |
50 | + */ | |
51 | + @TableField(typeHandler = LongListTypeHandler.class) | |
52 | + private List<Long> postIds; | |
53 | + | |
54 | + /** | |
55 | + * 适用岗位名称 | |
56 | + */ | |
57 | + @TableField(typeHandler = StringListTypeHandler.class) | |
58 | + private List<String> postNames; | |
59 | + | |
60 | + /** | |
61 | + * 适用门店ids | |
62 | + */ | |
63 | + @TableField(typeHandler = LongListTypeHandler.class) | |
64 | + private List<Long> shopIds; | |
65 | + | |
66 | + /** | |
67 | + * 适用门店名称 | |
68 | + */ | |
69 | + @TableField(typeHandler = StringListTypeHandler.class) | |
70 | + private List<String> shopNames; | |
71 | + | |
72 | + /** | |
73 | + * 门店奖惩分配角色 | |
74 | + */ | |
75 | + private String distRoleCode; | |
76 | + | |
77 | + /** | |
78 | + * 门店奖惩分配角色名称 | |
79 | + */ | |
80 | + private String distRoleName; | |
81 | + | |
82 | + /** | |
83 | + * 考评奖惩 | |
84 | + */ | |
85 | + private List<EvalGroupRewardVO> rewards; | |
86 | +} | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalGroupVO.java
... | ... | @@ -2,15 +2,11 @@ package cn.fw.morax.domain.vo.eval; |
2 | 2 | |
3 | 3 | import cn.fw.common.data.mybatis.handler.LongListTypeHandler; |
4 | 4 | import cn.fw.common.data.mybatis.handler.StringListTypeHandler; |
5 | -import cn.fw.morax.domain.enums.EvalScopeEnum; | |
6 | -import cn.fw.morax.domain.enums.SettingStatusEnum; | |
7 | 5 | import com.baomidou.mybatisplus.annotation.TableField; |
8 | -import com.baomidou.mybatisplus.annotation.TableLogic; | |
9 | 6 | import com.baomidou.mybatisplus.annotation.TableName; |
10 | 7 | import lombok.Data; |
11 | 8 | import lombok.EqualsAndHashCode; |
12 | 9 | |
13 | -import java.time.LocalDate; | |
14 | 10 | import java.util.List; |
15 | 11 | |
16 | 12 | /** |
... | ... | @@ -83,8 +79,14 @@ public class EvalGroupVO { |
83 | 79 | private List<EvalGroupIndicatorVO> indicators; |
84 | 80 | |
85 | 81 | /** |
86 | - * 考评奖惩 | |
82 | + * 人员考评奖惩 | |
87 | 83 | */ |
88 | - private List<EvalGroupRewardVO> rewards; | |
84 | + private List<EvalGroupRewardDimVO> staffRewardDims; | |
85 | + | |
86 | + /** | |
87 | + * 门店考评奖惩 | |
88 | + */ | |
89 | + private List<EvalGroupRewardDimVO> shopRewardDims; | |
90 | + | |
89 | 91 | |
90 | 92 | } | ... | ... |
fw-morax-server/src/main/java/cn/fw/morax/server/controller/erp/EvalConfigController.java
... | ... | @@ -99,15 +99,15 @@ public class EvalConfigController { |
99 | 99 | } |
100 | 100 | |
101 | 101 | /** |
102 | - * 获取岗位下的指标 | |
102 | + * 获取指标 | |
103 | 103 | * |
104 | 104 | * @param dto |
105 | 105 | * @return |
106 | 106 | */ |
107 | - @GetMapping("/post/indicator") | |
108 | - @ControllerMethod("获取岗位下的指标") | |
109 | - public Message<List<CompositeIndicatorVO>> getPostIndicators(@Validated EvalConfigPostIndicatorsDTO dto) { | |
110 | - return success(evalIndicatorBizService.getPostIndicators(dto, ApplicableTypeEnum.EVAL)); | |
107 | + @GetMapping("/indicator") | |
108 | + @ControllerMethod("获取指标") | |
109 | + public Message<List<CompositeIndicatorVO>> getIndicators(@Validated EvalConfigPostIndicatorsDTO dto) { | |
110 | + return success(evalIndicatorBizService.getIndicators(dto, ApplicableTypeEnum.EVAL)); | |
111 | 111 | } |
112 | 112 | |
113 | 113 | /** | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupBizService.java
1 | 1 | package cn.fw.morax.service.biz.eval; |
2 | 2 | |
3 | 3 | import cn.fw.common.data.mybatis.pagination.PageData; |
4 | -import cn.fw.common.exception.BusinessException; | |
5 | 4 | import cn.fw.common.page.AppPage; |
6 | -import cn.fw.common.web.annotation.DisLock; | |
7 | 5 | import cn.fw.common.web.auth.LoginAuthBean; |
8 | 6 | import cn.fw.morax.common.constant.Constant; |
9 | 7 | import cn.fw.morax.common.utils.PublicUtil; |
... | ... | @@ -15,24 +13,17 @@ import cn.fw.morax.domain.dto.query.EvalGroupQueryDTO; |
15 | 13 | import cn.fw.morax.domain.enums.*; |
16 | 14 | import cn.fw.morax.domain.vo.eval.*; |
17 | 15 | import cn.fw.morax.service.biz.ApprovalBizService; |
18 | -import cn.fw.morax.service.biz.CommonService; | |
19 | 16 | import cn.fw.morax.service.data.SettingDraftService; |
20 | 17 | import cn.fw.morax.service.data.eval.*; |
21 | 18 | import com.alibaba.fastjson.JSON; |
22 | -import com.alibaba.fastjson.JSONObject; | |
23 | 19 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
24 | -import lombok.Getter; | |
25 | 20 | import lombok.RequiredArgsConstructor; |
26 | 21 | import lombok.extern.slf4j.Slf4j; |
27 | -import org.springframework.beans.factory.annotation.Value; | |
28 | 22 | import org.springframework.stereotype.Service; |
29 | 23 | import org.springframework.transaction.annotation.Transactional; |
30 | 24 | |
31 | -import java.math.BigDecimal; | |
32 | 25 | import java.math.RoundingMode; |
33 | -import java.time.LocalDate; | |
34 | 26 | import java.util.*; |
35 | -import java.util.concurrent.atomic.AtomicInteger; | |
36 | 27 | import java.util.stream.Collectors; |
37 | 28 | |
38 | 29 | import static cn.fw.common.businessvalidator.Validator.BV; |
... | ... | @@ -52,6 +43,7 @@ public class EvalGroupBizService { |
52 | 43 | private final EvalGroupIndicatorService evalGroupIndicatorService; |
53 | 44 | private final EvalGroupRankStageService evalGroupRankStageService; |
54 | 45 | private final EvalGroupRewardService evalGroupRewardService; |
46 | + private final EvalGroupRewardDimService evalGroupDimService; | |
55 | 47 | private final EvalGroupDataService evalGroupDataService; |
56 | 48 | private final EvalGroupRankService evalGroupRankService; |
57 | 49 | private final EvalUserPoolService evalUserPoolService; |
... | ... | @@ -100,36 +92,36 @@ public class EvalGroupBizService { |
100 | 92 | } |
101 | 93 | } |
102 | 94 | |
103 | - if (PublicUtil.isNotEmpty(evalGroupVO.getRewards())) { | |
104 | - for (EvalGroupRewardVO rewardDTO : evalGroupVO.getRewards()) { | |
105 | - List<EvalGroupRewardParamVO> ladderParams = Optional.ofNullable(rewardDTO.getLadderParams()).orElse(new ArrayList<>()); | |
106 | - List<EvalGroupRewardParamVO> commissionParams = Optional.ofNullable(rewardDTO.getCommissionParams()).orElse(new ArrayList<>()); | |
107 | - List<EvalGroupRewardPreconditionVO> conds = Optional.ofNullable(rewardDTO.getConds()).orElse(new ArrayList<>()); | |
108 | - | |
109 | - List<EvalGroupIndicatorTargetVO> targetVOS = new ArrayList<>(); | |
110 | - for (EvalGroupRewardParamVO paramDTO : ladderParams) { | |
111 | - if (PublicUtil.isNotEmpty(paramDTO.getTargetType()) && (! TargetTypeEnum.NO.equals(paramDTO.getTargetType()))) { | |
112 | - EvalGroupIndicatorTargetVO targetVO = PublicUtil.copy(paramDTO, EvalGroupIndicatorTargetVO.class); | |
113 | - targetVOS.add(targetVO); | |
114 | - } | |
115 | - } | |
116 | - | |
117 | - for (EvalGroupRewardParamVO paramDTO : commissionParams) { | |
118 | - if (PublicUtil.isNotEmpty(paramDTO.getTargetType()) && (! TargetTypeEnum.NO.equals(paramDTO.getTargetType()))) { | |
119 | - EvalGroupIndicatorTargetVO targetVO = PublicUtil.copy(paramDTO, EvalGroupIndicatorTargetVO.class); | |
120 | - targetVOS.add(targetVO); | |
121 | - } | |
122 | - } | |
123 | - | |
124 | - for (EvalGroupRewardPreconditionVO preconditionDTO : conds) { | |
125 | - if (PublicUtil.isNotEmpty(preconditionDTO.getTargetType()) && (! TargetTypeEnum.NO.equals(preconditionDTO.getTargetType()))) { | |
126 | - EvalGroupIndicatorTargetVO targetVO = PublicUtil.copy(preconditionDTO, EvalGroupIndicatorTargetVO.class); | |
127 | - targetVOS.add(targetVO); | |
128 | - } | |
129 | - } | |
130 | - rewardDTO.setTargets(targetVOS); | |
131 | - } | |
132 | - } | |
95 | +// if (PublicUtil.isNotEmpty(evalGroupVO.getRewards())) { | |
96 | +// for (EvalGroupRewardVO rewardDTO : evalGroupVO.getRewards()) { | |
97 | +// List<EvalGroupRewardParamVO> ladderParams = Optional.ofNullable(rewardDTO.getLadderParams()).orElse(new ArrayList<>()); | |
98 | +// List<EvalGroupRewardParamVO> commissionParams = Optional.ofNullable(rewardDTO.getCommissionParams()).orElse(new ArrayList<>()); | |
99 | +// List<EvalGroupRewardPreconditionVO> conds = Optional.ofNullable(rewardDTO.getConds()).orElse(new ArrayList<>()); | |
100 | +// | |
101 | +// List<EvalGroupIndicatorTargetVO> targetVOS = new ArrayList<>(); | |
102 | +// for (EvalGroupRewardParamVO paramDTO : ladderParams) { | |
103 | +// if (PublicUtil.isNotEmpty(paramDTO.getTargetType()) && (! TargetTypeEnum.NO.equals(paramDTO.getTargetType()))) { | |
104 | +// EvalGroupIndicatorTargetVO targetVO = PublicUtil.copy(paramDTO, EvalGroupIndicatorTargetVO.class); | |
105 | +// targetVOS.add(targetVO); | |
106 | +// } | |
107 | +// } | |
108 | +// | |
109 | +// for (EvalGroupRewardParamVO paramDTO : commissionParams) { | |
110 | +// if (PublicUtil.isNotEmpty(paramDTO.getTargetType()) && (! TargetTypeEnum.NO.equals(paramDTO.getTargetType()))) { | |
111 | +// EvalGroupIndicatorTargetVO targetVO = PublicUtil.copy(paramDTO, EvalGroupIndicatorTargetVO.class); | |
112 | +// targetVOS.add(targetVO); | |
113 | +// } | |
114 | +// } | |
115 | +// | |
116 | +// for (EvalGroupRewardPreconditionVO preconditionDTO : conds) { | |
117 | +// if (PublicUtil.isNotEmpty(preconditionDTO.getTargetType()) && (! TargetTypeEnum.NO.equals(preconditionDTO.getTargetType()))) { | |
118 | +// EvalGroupIndicatorTargetVO targetVO = PublicUtil.copy(preconditionDTO, EvalGroupIndicatorTargetVO.class); | |
119 | +// targetVOS.add(targetVO); | |
120 | +// } | |
121 | +// } | |
122 | +// rewardDTO.setTargets(targetVOS); | |
123 | +// } | |
124 | +// } | |
133 | 125 | } |
134 | 126 | |
135 | 127 | |
... | ... | @@ -216,10 +208,10 @@ public class EvalGroupBizService { |
216 | 208 | stageVO.setEvalGroups(evalGroupStageMap.getOrDefault(stageVO.getId(), new ArrayList<>())); |
217 | 209 | for (EvalGroupVO evalGroupVO : stageVO.getEvalGroups()) { |
218 | 210 | this.setEvalGroupIndicator(evalGroupVO); |
219 | - this.setEvalGroupReward(evalGroupVO); | |
211 | + this.setEvalGroupReward(evalGroupVO, EvalScopeEnum.STAFF); | |
212 | + this.setEvalGroupReward(evalGroupVO, EvalScopeEnum.SHOP); | |
220 | 213 | this.setTargetVos(evalGroupVO); |
221 | 214 | } |
222 | - | |
223 | 215 | } |
224 | 216 | return evalGroupRankVO; |
225 | 217 | } |
... | ... | @@ -237,7 +229,8 @@ public class EvalGroupBizService { |
237 | 229 | List<EvalGroupVO> evalGroupVOs = PublicUtil.copyList(evalGroups, EvalGroupVO.class); |
238 | 230 | for (EvalGroupVO evalGroupVO : evalGroupVOs) { |
239 | 231 | this.setEvalGroupIndicator(evalGroupVO); |
240 | - this.setEvalGroupReward(evalGroupVO); | |
232 | + this.setEvalGroupReward(evalGroupVO, EvalScopeEnum.SHOP); | |
233 | + this.setEvalGroupReward(evalGroupVO, EvalScopeEnum.STAFF); | |
241 | 234 | this.setTargetVos(evalGroupVO); |
242 | 235 | } |
243 | 236 | return evalGroupVOs; |
... | ... | @@ -249,43 +242,61 @@ public class EvalGroupBizService { |
249 | 242 | * |
250 | 243 | * @param evalGroupVO |
251 | 244 | */ |
252 | - public void setEvalGroupReward(EvalGroupVO evalGroupVO) { | |
245 | + public void setEvalGroupReward(EvalGroupVO evalGroupVO, EvalScopeEnum scopeType) { | |
246 | + List<EvalGroupRewardDimVO> rewardDimVOS = new ArrayList<>(); | |
247 | + if (EvalScopeEnum.SHOP.equals(scopeType)) { | |
248 | + evalGroupVO.setShopRewardDims(rewardDimVOS); | |
249 | + } else { | |
250 | + evalGroupVO.setStaffRewardDims(rewardDimVOS); | |
251 | + } | |
252 | + | |
253 | 253 | Long evalGroupId = evalGroupVO.getId(); |
254 | - List<EvalGroupReward> rewards = evalGroupRewardService.list(Wrappers.<EvalGroupReward>lambdaQuery() | |
255 | - .eq(EvalGroupReward::getEvalGroupId, evalGroupId) | |
256 | - .eq(EvalGroupReward::getYn, Boolean.TRUE) | |
254 | + List<EvalGroupRewardDim> dims = evalGroupDimService.list(Wrappers.<EvalGroupRewardDim>lambdaQuery() | |
255 | + .in(EvalGroupRewardDim::getEvalGroupId, evalGroupVO.getId()) | |
256 | + .eq(EvalGroupRewardDim::getType, scopeType) | |
257 | + .eq(EvalGroupRewardDim::getYn, Boolean.TRUE) | |
257 | 258 | ); |
258 | - if (PublicUtil.isNotEmpty(rewards)) { | |
259 | - List<EvalGroupRewardVO> rewardVOS = PublicUtil.copyList(rewards, EvalGroupRewardVO.class); | |
260 | - evalGroupVO.setRewards(rewardVOS); | |
261 | - | |
262 | - Map<Long, List<EvalGroupRewardParamVO>> rewardParamMap = this.getEvalGroupRewardParamVO(evalGroupId); | |
263 | - Map<Long, List<EvalGroupRewardPreconditionVO>> rewardCondMap = this.getEvalGroupRewardPreconditionVO(evalGroupId); | |
264 | - | |
265 | - for (EvalGroupRewardVO reward : rewardVOS) { | |
266 | - Long rewardId = reward.getId(); | |
267 | - | |
268 | - List<EvalGroupRewardParamVO> rewardParamVOS = rewardParamMap.getOrDefault(rewardId, new ArrayList<>()); | |
269 | - Map<ParamTypeEnum, List<EvalGroupRewardParamVO>> paramTypeMap = rewardParamVOS.stream() | |
270 | - .collect(Collectors.groupingBy(EvalGroupRewardParamVO::getParamType)); | |
271 | - reward.setCommissionParams(paramTypeMap.getOrDefault(ParamTypeEnum.COMMISSION, new ArrayList<>())); | |
272 | - reward.setLadderParams(paramTypeMap.getOrDefault(ParamTypeEnum.LADDER, new ArrayList<>())); | |
273 | - reward.setConds(rewardCondMap.getOrDefault(rewardId, new ArrayList<>())); | |
274 | - | |
275 | - List<EvalGroupRewardLadders> rewardLadders = evalGroupRewardLaddersService.list(Wrappers.<EvalGroupRewardLadders>lambdaQuery() | |
276 | - .eq(EvalGroupRewardLadders::getEvalGroupRewardId, rewardId) | |
277 | - .eq(EvalGroupRewardLadders::getYn, Boolean.TRUE) | |
278 | - .last("order by rank_order_type ASC, lower ASC") | |
279 | - ); | |
280 | - List<EvalGroupRewardLaddersVO> rewardLaddersVOS = new ArrayList<>(); | |
281 | - for (EvalGroupRewardLadders rewardLadder : rewardLadders) { | |
282 | - EvalGroupRewardLaddersVO rewardLaddersVO = PublicUtil.copy(rewardLadder, EvalGroupRewardLaddersVO.class); | |
283 | - rewardLaddersVO.processPercent(reward.getCalMethod(), reward.getRankType(), reward.getLaddersType()); | |
284 | - rewardLaddersVOS.add(rewardLaddersVO); | |
285 | - } | |
286 | - reward.setLadders(rewardLaddersVOS); | |
287 | 259 | |
288 | - setRewardTargetVos(reward); | |
260 | + for (EvalGroupRewardDim dim : dims) { | |
261 | + EvalGroupRewardDimVO dimVO = PublicUtil.copy(dim, EvalGroupRewardDimVO.class); | |
262 | + rewardDimVOS.add(dimVO); | |
263 | + Long dimId = dim.getId(); | |
264 | + List<EvalGroupReward> rewards = evalGroupRewardService.list(Wrappers.<EvalGroupReward>lambdaQuery() | |
265 | + .eq(EvalGroupReward::getEvalGroupDimId, dimId) | |
266 | + .eq(EvalGroupReward::getYn, Boolean.TRUE) | |
267 | + ); | |
268 | + if (PublicUtil.isNotEmpty(rewards)) { | |
269 | + List<EvalGroupRewardVO> rewardVOS = PublicUtil.copyList(rewards, EvalGroupRewardVO.class); | |
270 | + dimVO.setRewards(rewardVOS); | |
271 | + | |
272 | + Map<Long, List<EvalGroupRewardParamVO>> rewardParamMap = this.getEvalGroupRewardParamVO(evalGroupId); | |
273 | + Map<Long, List<EvalGroupRewardPreconditionVO>> rewardCondMap = this.getEvalGroupRewardPreconditionVO(evalGroupId); | |
274 | + | |
275 | + for (EvalGroupRewardVO reward : rewardVOS) { | |
276 | + Long rewardId = reward.getId(); | |
277 | + | |
278 | + List<EvalGroupRewardParamVO> rewardParamVOS = rewardParamMap.getOrDefault(rewardId, new ArrayList<>()); | |
279 | + Map<ParamTypeEnum, List<EvalGroupRewardParamVO>> paramTypeMap = rewardParamVOS.stream() | |
280 | + .collect(Collectors.groupingBy(EvalGroupRewardParamVO::getParamType)); | |
281 | + reward.setCommissionParams(paramTypeMap.getOrDefault(ParamTypeEnum.COMMISSION, new ArrayList<>())); | |
282 | + reward.setLadderParams(paramTypeMap.getOrDefault(ParamTypeEnum.LADDER, new ArrayList<>())); | |
283 | + reward.setConds(rewardCondMap.getOrDefault(rewardId, new ArrayList<>())); | |
284 | + | |
285 | + List<EvalGroupRewardLadders> rewardLadders = evalGroupRewardLaddersService.list(Wrappers.<EvalGroupRewardLadders>lambdaQuery() | |
286 | + .eq(EvalGroupRewardLadders::getEvalGroupRewardId, rewardId) | |
287 | + .eq(EvalGroupRewardLadders::getYn, Boolean.TRUE) | |
288 | + .last("order by rank_order_type ASC, lower ASC") | |
289 | + ); | |
290 | + List<EvalGroupRewardLaddersVO> rewardLaddersVOS = new ArrayList<>(); | |
291 | + for (EvalGroupRewardLadders rewardLadder : rewardLadders) { | |
292 | + EvalGroupRewardLaddersVO rewardLaddersVO = PublicUtil.copy(rewardLadder, EvalGroupRewardLaddersVO.class); | |
293 | + rewardLaddersVO.processPercent(reward.getCalMethod(), reward.getRankType(), reward.getLaddersType()); | |
294 | + rewardLaddersVOS.add(rewardLaddersVO); | |
295 | + } | |
296 | + reward.setLadders(rewardLaddersVOS); | |
297 | + | |
298 | + setRewardTargetVos(reward); | |
299 | + } | |
289 | 300 | } |
290 | 301 | } |
291 | 302 | } |
... | ... | @@ -559,10 +570,10 @@ public class EvalGroupBizService { |
559 | 570 | for (EvalGroupDTO evalGroupDTO : evalGroupRankStageDTO.getEvalGroups()) { |
560 | 571 | EvalGroup evalGroup = evalGroupDataService.saveEvalGroup(evalGroupDTO, evalGroupRank, evalGroupRankStage); |
561 | 572 | evalGroupDataService.saveEvalGroupIndicator(evalGroup, evalGroupDTO.getIndicators()); |
562 | - evalGroupDataService.saveEvalGroupReward(evalGroup, evalGroupDTO.getRewards()); | |
573 | + evalGroupDataService.saveEvalGroupReward(evalGroup, evalGroupDTO.getStaffRewardDims(), EvalScopeEnum.STAFF); | |
574 | + evalGroupDataService.saveEvalGroupReward(evalGroup, evalGroupDTO.getShopRewardDims(), EvalScopeEnum.SHOP); | |
563 | 575 | } |
564 | 576 | } |
565 | - | |
566 | 577 | settingDraftService.update(Wrappers.<SettingDraft>lambdaUpdate() |
567 | 578 | .set(SettingDraft::getUnionId, evalGroupRank.getId()) |
568 | 579 | .set(SettingDraft::getUpdateTime, new Date()) | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupDataService.java
... | ... | @@ -15,7 +15,6 @@ import org.springframework.stereotype.Service; |
15 | 15 | import org.springframework.transaction.annotation.Transactional; |
16 | 16 | |
17 | 17 | import java.math.RoundingMode; |
18 | -import java.time.LocalDate; | |
19 | 18 | import java.util.*; |
20 | 19 | import java.util.stream.Collectors; |
21 | 20 | |
... | ... | @@ -33,6 +32,7 @@ public class EvalGroupDataService { |
33 | 32 | private final EvalGroupRewardParamService evalGroupRewardParamService; |
34 | 33 | private final EvalGroupIndicatorService evalGroupIndicatorService; |
35 | 34 | private final EvalGroupRewardService evalGroupRewardService; |
35 | + private final EvalGroupRewardDimService evalGroupDimService; | |
36 | 36 | private final EvalGroupRankService evalGroupRankService; |
37 | 37 | private final EvalUserPoolService evalUserPoolService; |
38 | 38 | private final EvalShopPoolService evalShopPoolService; |
... | ... | @@ -207,52 +207,59 @@ public class EvalGroupDataService { |
207 | 207 | * 保存考评组奖励 |
208 | 208 | * |
209 | 209 | * @param evalGroup |
210 | - * @param rewardDTOS | |
210 | + * @param dims | |
211 | 211 | */ |
212 | 212 | @Transactional(rollbackFor = Exception.class) |
213 | - public void saveEvalGroupReward(EvalGroup evalGroup, List<EvalGroupRewardDTO> rewardDTOS) { | |
213 | + public void saveEvalGroupReward(EvalGroup evalGroup, List<EvalGroupRewardDimDTO> dims, EvalScopeEnum type) { | |
214 | 214 | Long evalGroupId = evalGroup.getId(); |
215 | 215 | LinkedList<EvalGroupRewardParam> rewardParams = Lists.newLinkedList(); |
216 | 216 | LinkedList<EvalGroupRewardLadders> rewardLadders = Lists.newLinkedList(); |
217 | 217 | LinkedList<EvalGroupRewardPrecondition> rewardPreconditions = Lists.newLinkedList(); |
218 | - for (EvalGroupRewardDTO rewardDTO : rewardDTOS) { | |
219 | - EvalGroupReward reward = PublicUtil.copy(rewardDTO, EvalGroupReward.class); | |
220 | - reward.setEvalGroupId(evalGroupId); | |
221 | - evalGroupRewardService.save(reward); | |
222 | - Long rewardId = reward.getId(); | |
223 | - //没有配置计算方式 | |
224 | - if (PublicUtil.isEmpty(rewardDTO.getCalMethod())) { | |
225 | - continue; | |
226 | - } | |
218 | + for (EvalGroupRewardDimDTO dimDTO : dims) { | |
219 | + EvalGroupRewardDim dim = PublicUtil.copy(dimDTO, EvalGroupRewardDim.class); | |
220 | + dim.setType(type); | |
221 | + evalGroupDimService.save(dim); | |
222 | + final Long dimId = dim.getId(); | |
223 | + for (EvalGroupRewardDTO rewardDTO : dimDTO.getRewards()) { | |
224 | + EvalGroupReward reward = PublicUtil.copy(rewardDTO, EvalGroupReward.class); | |
225 | + reward.setEvalGroupId(evalGroupId); | |
226 | + reward.setEvalGroupDimId(dimId); | |
227 | + evalGroupRewardService.save(reward); | |
228 | + Long rewardId = reward.getId(); | |
229 | + //没有配置计算方式 | |
230 | + if (PublicUtil.isEmpty(rewardDTO.getCalMethod())) { | |
231 | + continue; | |
232 | + } | |
227 | 233 | |
228 | - for (EvalGroupRewardParamDTO rewardParamDTO : Optional.ofNullable(rewardDTO.getLadderParams()).orElse(new ArrayList<>())) { | |
229 | - EvalGroupRewardParam rewardParam = PublicUtil.copy(rewardParamDTO, EvalGroupRewardParam.class); | |
230 | - rewardParam.setEvalGroupId(evalGroupId); | |
231 | - rewardParam.setEvalGroupRewardId(rewardId); | |
232 | - rewardParam.setParamType(ParamTypeEnum.LADDER); | |
233 | - rewardParams.add(rewardParam); | |
234 | - } | |
234 | + for (EvalGroupRewardParamDTO rewardParamDTO : Optional.ofNullable(rewardDTO.getLadderParams()).orElse(new ArrayList<>())) { | |
235 | + EvalGroupRewardParam rewardParam = PublicUtil.copy(rewardParamDTO, EvalGroupRewardParam.class); | |
236 | + rewardParam.setEvalGroupId(evalGroupId); | |
237 | + rewardParam.setEvalGroupRewardId(rewardId); | |
238 | + rewardParam.setParamType(ParamTypeEnum.LADDER); | |
239 | + rewardParams.add(rewardParam); | |
240 | + } | |
235 | 241 | |
236 | - for (EvalGroupRewardParamDTO rewardParamDTO : Optional.ofNullable(rewardDTO.getCommissionParams()).orElse(new ArrayList<>())) { | |
237 | - EvalGroupRewardParam rewardParam = PublicUtil.copy(rewardParamDTO, EvalGroupRewardParam.class); | |
238 | - rewardParam.setEvalGroupId(evalGroupId); | |
239 | - rewardParam.setEvalGroupRewardId(rewardId); | |
240 | - rewardParam.setParamType(ParamTypeEnum.COMMISSION); | |
241 | - rewardParams.add(rewardParam); | |
242 | - } | |
242 | + for (EvalGroupRewardParamDTO rewardParamDTO : Optional.ofNullable(rewardDTO.getCommissionParams()).orElse(new ArrayList<>())) { | |
243 | + EvalGroupRewardParam rewardParam = PublicUtil.copy(rewardParamDTO, EvalGroupRewardParam.class); | |
244 | + rewardParam.setEvalGroupId(evalGroupId); | |
245 | + rewardParam.setEvalGroupRewardId(rewardId); | |
246 | + rewardParam.setParamType(ParamTypeEnum.COMMISSION); | |
247 | + rewardParams.add(rewardParam); | |
248 | + } | |
243 | 249 | |
244 | - for (EvalGroupRewardLaddersDTO rewardLaddersDTO : Optional.ofNullable(rewardDTO.getLadders()).orElse(new ArrayList<>())) { | |
245 | - EvalGroupRewardLadders rewardLadder = this.convertRewardLaddersDB(rewardDTO, rewardLaddersDTO); | |
246 | - rewardLadder.setEvalGroupId(evalGroupId); | |
247 | - rewardLadder.setEvalGroupRewardId(rewardId); | |
248 | - rewardLadders.add(rewardLadder); | |
249 | - } | |
250 | + for (EvalGroupRewardLaddersDTO rewardLaddersDTO : Optional.ofNullable(rewardDTO.getLadders()).orElse(new ArrayList<>())) { | |
251 | + EvalGroupRewardLadders rewardLadder = this.convertRewardLaddersDB(rewardDTO, rewardLaddersDTO); | |
252 | + rewardLadder.setEvalGroupId(evalGroupId); | |
253 | + rewardLadder.setEvalGroupRewardId(rewardId); | |
254 | + rewardLadders.add(rewardLadder); | |
255 | + } | |
250 | 256 | |
251 | - for (EvalGroupRewardPreconditionDTO rewardPreconditionDTO : Optional.ofNullable(rewardDTO.getConds()).orElse(new ArrayList<>())) { | |
252 | - EvalGroupRewardPrecondition rewardPrecondition = PublicUtil.copy(rewardPreconditionDTO, EvalGroupRewardPrecondition.class); | |
253 | - rewardPrecondition.setEvalGroupId(evalGroupId); | |
254 | - rewardPrecondition.setEvalGroupRewardId(rewardId); | |
255 | - rewardPreconditions.add(rewardPrecondition); | |
257 | + for (EvalGroupRewardPreconditionDTO rewardPreconditionDTO : Optional.ofNullable(rewardDTO.getConds()).orElse(new ArrayList<>())) { | |
258 | + EvalGroupRewardPrecondition rewardPrecondition = PublicUtil.copy(rewardPreconditionDTO, EvalGroupRewardPrecondition.class); | |
259 | + rewardPrecondition.setEvalGroupId(evalGroupId); | |
260 | + rewardPrecondition.setEvalGroupRewardId(rewardId); | |
261 | + rewardPreconditions.add(rewardPrecondition); | |
262 | + } | |
256 | 263 | } |
257 | 264 | } |
258 | 265 | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupRankBizService.java
... | ... | @@ -185,15 +185,23 @@ public class EvalGroupRankBizService { |
185 | 185 | for (EvalGroupDTO evalGroupDTO : stage.getEvalGroups()) { |
186 | 186 | initEvalGroupDTO(evalGroupDTO); |
187 | 187 | checkIndicator(evalGroupDTO, multiStage); |
188 | - checkReward(evalGroupDTO); | |
189 | 188 | checkEvalIndicatorLadders(evalGroupDTO.getIndicators()); |
190 | - checkEvalRewardLadders(evalGroupDTO.getRewards()); | |
191 | - sortRewardRankLadders(evalGroupDTO.getRewards()); | |
189 | + | |
190 | + for (EvalGroupRewardDimDTO dimDTO : evalGroupDTO.getStaffRewardDims()) { | |
191 | + checkReward(dimDTO.getRewards()); | |
192 | + checkEvalRewardLadders(dimDTO.getRewards()); | |
193 | + sortRewardRankLadders(dimDTO.getRewards()); | |
194 | + } | |
195 | + for (EvalGroupRewardDimDTO dimDTO : evalGroupDTO.getShopRewardDims()) { | |
196 | + checkReward(dimDTO.getRewards()); | |
197 | + checkEvalRewardLadders(dimDTO.getRewards()); | |
198 | + sortRewardRankLadders(dimDTO.getRewards()); | |
199 | + } | |
192 | 200 | this.setTargetVos(evalGroupDTO); |
193 | 201 | evalGroupSize.incrementAndGet(); |
194 | - List<Long> postIds = evalGroupDTO.getRewards().stream().flatMap(reward -> reward.getPostIds().stream()) | |
202 | + List<Long> postIds = evalGroupDTO.getStaffRewardDims().stream().flatMap(reward -> reward.getPostIds().stream()) | |
195 | 203 | .distinct().collect(Collectors.toList()); |
196 | - List<String> postNames = evalGroupDTO.getRewards().stream().flatMap(reward -> reward.getPostNames().stream()) | |
204 | + List<String> postNames = evalGroupDTO.getStaffRewardDims().stream().flatMap(reward -> reward.getPostNames().stream()) | |
197 | 205 | .distinct().collect(Collectors.toList()); |
198 | 206 | evalGroupDTO.setPostIds(postIds); |
199 | 207 | evalGroupDTO.setPostNames(postNames); |
... | ... | @@ -425,10 +433,10 @@ public class EvalGroupRankBizService { |
425 | 433 | /** |
426 | 434 | * 检查考评组指标 |
427 | 435 | * |
428 | - * @param evalGroupDTO | |
436 | + * @param rewards | |
429 | 437 | */ |
430 | - public void checkReward(EvalGroupDTO evalGroupDTO) { | |
431 | - for (EvalGroupRewardDTO reward : evalGroupDTO.getRewards()) { | |
438 | + public void checkReward(List<EvalGroupRewardDTO> rewards) { | |
439 | + for (EvalGroupRewardDTO reward : rewards) { | |
432 | 440 | String rewardName = reward.getName(); |
433 | 441 | |
434 | 442 | if (EvalRewardCalMethodEnum.LADDER.equals(reward.getCalMethod()) || |
... | ... | @@ -485,8 +493,11 @@ public class EvalGroupRankBizService { |
485 | 493 | if (PublicUtil.isEmpty(dto.getIndicators())) { |
486 | 494 | dto.setIndicators(new ArrayList<>()); |
487 | 495 | } |
488 | - if (PublicUtil.isEmpty(dto.getRewards())) { | |
489 | - dto.setRewards(new ArrayList<>()); | |
496 | + if (PublicUtil.isEmpty(dto.getShopRewardDims())) { | |
497 | + dto.setShopRewardDims(new ArrayList<>()); | |
498 | + } | |
499 | + if (PublicUtil.isEmpty(dto.getStaffRewardDims())) { | |
500 | + dto.setStaffRewardDims(new ArrayList<>()); | |
490 | 501 | } |
491 | 502 | for (EvalGroupIndicatorDTO indicatorDTO : dto.getIndicators()) { |
492 | 503 | if (PublicUtil.isEmpty(indicatorDTO.getLadderParams())) { |
... | ... | @@ -502,18 +513,36 @@ public class EvalGroupRankBizService { |
502 | 513 | indicatorDTO.setConds(new ArrayList<>()); |
503 | 514 | } |
504 | 515 | } |
505 | - for (EvalGroupRewardDTO rewardDTO : dto.getRewards()) { | |
506 | - if (PublicUtil.isEmpty(rewardDTO.getLadderParams())) { | |
507 | - rewardDTO.setLadderParams(new ArrayList<>()); | |
508 | - } | |
509 | - if (PublicUtil.isEmpty(rewardDTO.getCommissionParams())) { | |
510 | - rewardDTO.setCommissionParams(new ArrayList<>()); | |
511 | - } | |
512 | - if (PublicUtil.isEmpty(rewardDTO.getLadders())) { | |
513 | - rewardDTO.setLadders(new ArrayList<>()); | |
516 | + for (EvalGroupRewardDimDTO dimDTO : dto.getStaffRewardDims()) { | |
517 | + for (EvalGroupRewardDTO rewardDTO : dimDTO.getRewards()) { | |
518 | + if (PublicUtil.isEmpty(rewardDTO.getLadderParams())) { | |
519 | + rewardDTO.setLadderParams(new ArrayList<>()); | |
520 | + } | |
521 | + if (PublicUtil.isEmpty(rewardDTO.getCommissionParams())) { | |
522 | + rewardDTO.setCommissionParams(new ArrayList<>()); | |
523 | + } | |
524 | + if (PublicUtil.isEmpty(rewardDTO.getLadders())) { | |
525 | + rewardDTO.setLadders(new ArrayList<>()); | |
526 | + } | |
527 | + if (PublicUtil.isEmpty(rewardDTO.getConds())) { | |
528 | + rewardDTO.setConds(new ArrayList<>()); | |
529 | + } | |
514 | 530 | } |
515 | - if (PublicUtil.isEmpty(rewardDTO.getConds())) { | |
516 | - rewardDTO.setConds(new ArrayList<>()); | |
531 | + } | |
532 | + for (EvalGroupRewardDimDTO dimDTO : dto.getShopRewardDims()) { | |
533 | + for (EvalGroupRewardDTO rewardDTO : dimDTO.getRewards()) { | |
534 | + if (PublicUtil.isEmpty(rewardDTO.getLadderParams())) { | |
535 | + rewardDTO.setLadderParams(new ArrayList<>()); | |
536 | + } | |
537 | + if (PublicUtil.isEmpty(rewardDTO.getCommissionParams())) { | |
538 | + rewardDTO.setCommissionParams(new ArrayList<>()); | |
539 | + } | |
540 | + if (PublicUtil.isEmpty(rewardDTO.getLadders())) { | |
541 | + rewardDTO.setLadders(new ArrayList<>()); | |
542 | + } | |
543 | + if (PublicUtil.isEmpty(rewardDTO.getConds())) { | |
544 | + rewardDTO.setConds(new ArrayList<>()); | |
545 | + } | |
517 | 546 | } |
518 | 547 | } |
519 | 548 | } |
... | ... | @@ -555,34 +584,36 @@ public class EvalGroupRankBizService { |
555 | 584 | indicatorDTO.setTargets(targetVOS); |
556 | 585 | } |
557 | 586 | |
558 | - for (EvalGroupRewardDTO rewardDTO : evalGroupDTO.getRewards()) { | |
559 | - List<EvalGroupRewardParamDTO> ladderParams = Optional.ofNullable(rewardDTO.getLadderParams()).orElse(new ArrayList<>()); | |
560 | - List<EvalGroupRewardParamDTO> commissionParams = Optional.ofNullable(rewardDTO.getCommissionParams()).orElse(new ArrayList<>()); | |
561 | - List<EvalGroupRewardPreconditionDTO> conds = Optional.ofNullable(rewardDTO.getConds()).orElse(new ArrayList<>()); | |
562 | - | |
563 | - List<EvalGroupIndicatorTargetVO> targetVOS = new ArrayList<>(); | |
564 | - for (EvalGroupRewardParamDTO paramDTO : ladderParams) { | |
565 | - if (PublicUtil.isNotEmpty(paramDTO.getTargetType()) && (! TargetTypeEnum.NO.equals(paramDTO.getTargetType()))) { | |
566 | - EvalGroupIndicatorTargetVO targetVO = PublicUtil.copy(paramDTO, EvalGroupIndicatorTargetVO.class); | |
567 | - targetVOS.add(targetVO); | |
568 | - } | |
569 | - } | |
570 | - | |
571 | - for (EvalGroupRewardParamDTO paramDTO : commissionParams) { | |
572 | - if (PublicUtil.isNotEmpty(paramDTO.getTargetType()) && (! TargetTypeEnum.NO.equals(paramDTO.getTargetType()))) { | |
573 | - EvalGroupIndicatorTargetVO targetVO = PublicUtil.copy(paramDTO, EvalGroupIndicatorTargetVO.class); | |
574 | - targetVOS.add(targetVO); | |
575 | - } | |
576 | - } | |
577 | - | |
578 | - for (EvalGroupRewardPreconditionDTO preconditionDTO : conds) { | |
579 | - if (PublicUtil.isNotEmpty(preconditionDTO.getTargetType()) && (! TargetTypeEnum.NO.equals(preconditionDTO.getTargetType()))) { | |
580 | - EvalGroupIndicatorTargetVO targetVO = PublicUtil.copy(preconditionDTO, EvalGroupIndicatorTargetVO.class); | |
581 | - targetVOS.add(targetVO); | |
582 | - } | |
583 | - } | |
584 | - rewardDTO.setTargets(targetVOS); | |
585 | - } | |
587 | +// for (EvalGroupRewardDimDTO dimDTO : evalGroupDTO.getDims()) { | |
588 | +// for (EvalGroupRewardDTO rewardDTO : dimDTO.getRewards()) { | |
589 | +// List<EvalGroupRewardParamDTO> ladderParams = Optional.ofNullable(rewardDTO.getLadderParams()).orElse(new ArrayList<>()); | |
590 | +// List<EvalGroupRewardParamDTO> commissionParams = Optional.ofNullable(rewardDTO.getCommissionParams()).orElse(new ArrayList<>()); | |
591 | +// List<EvalGroupRewardPreconditionDTO> conds = Optional.ofNullable(rewardDTO.getConds()).orElse(new ArrayList<>()); | |
592 | +// | |
593 | +// List<EvalGroupIndicatorTargetVO> targetVOS = new ArrayList<>(); | |
594 | +// for (EvalGroupRewardParamDTO paramDTO : ladderParams) { | |
595 | +// if (PublicUtil.isNotEmpty(paramDTO.getTargetType()) && (! TargetTypeEnum.NO.equals(paramDTO.getTargetType()))) { | |
596 | +// EvalGroupIndicatorTargetVO targetVO = PublicUtil.copy(paramDTO, EvalGroupIndicatorTargetVO.class); | |
597 | +// targetVOS.add(targetVO); | |
598 | +// } | |
599 | +// } | |
600 | +// | |
601 | +// for (EvalGroupRewardParamDTO paramDTO : commissionParams) { | |
602 | +// if (PublicUtil.isNotEmpty(paramDTO.getTargetType()) && (! TargetTypeEnum.NO.equals(paramDTO.getTargetType()))) { | |
603 | +// EvalGroupIndicatorTargetVO targetVO = PublicUtil.copy(paramDTO, EvalGroupIndicatorTargetVO.class); | |
604 | +// targetVOS.add(targetVO); | |
605 | +// } | |
606 | +// } | |
607 | +// | |
608 | +// for (EvalGroupRewardPreconditionDTO preconditionDTO : conds) { | |
609 | +// if (PublicUtil.isNotEmpty(preconditionDTO.getTargetType()) && (! TargetTypeEnum.NO.equals(preconditionDTO.getTargetType()))) { | |
610 | +// EvalGroupIndicatorTargetVO targetVO = PublicUtil.copy(preconditionDTO, EvalGroupIndicatorTargetVO.class); | |
611 | +// targetVOS.add(targetVO); | |
612 | +// } | |
613 | +// } | |
614 | +// rewardDTO.setTargets(targetVOS); | |
615 | +// } | |
616 | +// } | |
586 | 617 | } |
587 | 618 | |
588 | 619 | /** | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalIndicatorBizService.java
... | ... | @@ -7,6 +7,7 @@ import cn.fw.common.web.annotation.DisLock; |
7 | 7 | import cn.fw.common.web.auth.LoginAuthBean; |
8 | 8 | import cn.fw.ehr.sdk.api.result.PostRoleVo; |
9 | 9 | import cn.fw.morax.common.config.FlowVal; |
10 | +import cn.fw.morax.common.config.SpecialIndicatorCodeVal; | |
10 | 11 | import cn.fw.morax.common.utils.MessageFormatUtil; |
11 | 12 | import cn.fw.morax.common.utils.PublicUtil; |
12 | 13 | import cn.fw.morax.domain.db.eval.*; |
... | ... | @@ -56,6 +57,7 @@ import static cn.fw.common.businessvalidator.Validator.BV; |
56 | 57 | @RequiredArgsConstructor |
57 | 58 | public class EvalIndicatorBizService { |
58 | 59 | |
60 | + private final SpecialIndicatorCodeVal specialIndicatorCodeVal; | |
59 | 61 | private final EvalIndicatorService evalIndicatorService; |
60 | 62 | private final IndicatorsService indicatorsService; |
61 | 63 | private final CommonService commonService; |
... | ... | @@ -302,7 +304,7 @@ public class EvalIndicatorBizService { |
302 | 304 | * @param applicableType |
303 | 305 | * @return |
304 | 306 | */ |
305 | - public List<CompositeIndicatorVO> getPostIndicators(EvalConfigPostIndicatorsDTO evalConfigPostIndicatorsDTO, ApplicableTypeEnum applicableType) { | |
307 | + public List<CompositeIndicatorVO> getIndicators(EvalConfigPostIndicatorsDTO evalConfigPostIndicatorsDTO, ApplicableTypeEnum applicableType) { | |
306 | 308 | //考评指标 |
307 | 309 | List<EvalIndicator> evalIndicators = evalIndicatorService.list(Wrappers.<EvalIndicator>lambdaQuery() |
308 | 310 | .eq(EvalIndicator::getYn, Boolean.TRUE) |
... | ... | @@ -320,10 +322,12 @@ public class EvalIndicatorBizService { |
320 | 322 | // Boolean queryManagerRole = commonService.hasManagerRole(roleCodes); |
321 | 323 | // IndicatorPostQueryDTO dto = new IndicatorPostQueryDTO(roleCodes, queryManagerRole); |
322 | 324 | // dto.setApplicableType(applicableType); |
323 | - //绩效指标 | |
325 | + //绩效指标 如果是指标考核需要过滤掉考评指标 | |
324 | 326 | List<Indicators> indicators = indicatorsService.list(Wrappers.<Indicators>lambdaQuery() |
325 | - .eq(Indicators::getYn, Boolean.TRUE) | |
327 | + .apply(MessageFormatUtil.transferWithQuotationMarks("FIND_IN_SET({0}, apply_types)", applicableType.getValue())) | |
328 | + .ne(evalConfigPostIndicatorsDTO.getReward(), Indicators::getIndicatorCode, specialIndicatorCodeVal.getEvalRatio()) | |
326 | 329 | .eq(Indicators::getEnable, Boolean.TRUE) |
330 | + .eq(Indicators::getYn, Boolean.TRUE) | |
327 | 331 | ); |
328 | 332 | List<IndicatorsVO> indicatorsVOS = null; |
329 | 333 | if (PublicUtil.isNotEmpty(indicators)) { | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalGroupRewardDimService.java
0 → 100644
1 | +package cn.fw.morax.service.data.eval; | |
2 | + | |
3 | + | |
4 | +import cn.fw.morax.domain.db.eval.EvalGroupRewardDim; | |
5 | +import com.baomidou.mybatisplus.extension.service.IService; | |
6 | + | |
7 | +/** | |
8 | + * <p> | |
9 | + * 考评奖惩 服务类 | |
10 | + * </p> | |
11 | + * | |
12 | + * @author jiangchao | |
13 | + * @since 2022-12-09 | |
14 | + */ | |
15 | +public interface EvalGroupRewardDimService extends IService<EvalGroupRewardDim> { | |
16 | + | |
17 | +} | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalGroupRewardDimServiceImpl.java
0 → 100644
1 | +package cn.fw.morax.service.data.eval.impl; | |
2 | + | |
3 | + | |
4 | +import cn.fw.morax.dao.eval.EvalGroupRewardDimDao; | |
5 | +import cn.fw.morax.domain.db.eval.EvalGroupRewardDim; | |
6 | +import cn.fw.morax.service.data.eval.EvalGroupRewardDimService; | |
7 | +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |
8 | +import org.springframework.stereotype.Service; | |
9 | + | |
10 | +/** | |
11 | + * <p> | |
12 | + * 考评奖惩 服务实现类 | |
13 | + * </p> | |
14 | + * | |
15 | + * @author jiangchao | |
16 | + * @since 2022-12-09 | |
17 | + */ | |
18 | +@Service | |
19 | +public class EvalGroupRewardDimServiceImpl extends ServiceImpl<EvalGroupRewardDimDao, EvalGroupRewardDim> | |
20 | + implements EvalGroupRewardDimService { | |
21 | +} | ... | ... |