Commit 1b9fa64de429c40f18cbe88b6cffbc3f6daea3a8

Authored by 姜超
1 parent 3cbc22e1

feature(*): 考评排名组保存修改

考评排名组保存修改
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&lt;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
... ... @@ -23,6 +23,11 @@ public class EvalConfigPostIndicatorsDTO {
23 23 private Boolean withCombination;
24 24  
25 25 /**
  26 + * 是否是奖惩:true 奖惩使用,false 指标使用
  27 + */
  28 + private Boolean reward;
  29 +
  30 + /**
26 31 * 集团id
27 32 *
28 33 * @ignore
... ...
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 +}
... ...