Commit 81a8a91ce260e64deffb9d6a32f69f5280b8095b
1 parent
8945afe5
feature(*): 考评保存修改
考评保存修改
Showing
10 changed files
with
38 additions
and
162 deletions
fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalDTO.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.common.data.entity.BaseAuditableTimeEntity; | |
4 | -import cn.fw.common.data.mybatis.handler.StringListTypeHandler; | |
5 | -import cn.fw.common.web.annotation.LoginContextField; | |
6 | -import cn.fw.morax.domain.enums.EvalScopeEnum; | |
7 | -import cn.fw.morax.domain.enums.EvalTypeEnum; | |
8 | -import com.baomidou.mybatisplus.annotation.TableField; | |
9 | -import com.baomidou.mybatisplus.annotation.TableLogic; | |
10 | -import com.baomidou.mybatisplus.annotation.TableName; | |
11 | 3 | import lombok.Data; |
12 | 4 | import lombok.EqualsAndHashCode; |
13 | -import org.hibernate.validator.constraints.Length; | |
14 | 5 | |
15 | 6 | import javax.validation.Valid; |
16 | -import javax.validation.constraints.Future; | |
17 | -import javax.validation.constraints.NotBlank; | |
18 | 7 | import javax.validation.constraints.NotNull; |
19 | 8 | import javax.validation.constraints.Size; |
20 | -import java.time.LocalDate; | |
21 | 9 | import java.util.List; |
22 | 10 | |
23 | 11 | /** |
... | ... | @@ -39,41 +27,6 @@ public class EvalGroupDTO { |
39 | 27 | private Long id; |
40 | 28 | |
41 | 29 | /** |
42 | - * 考评组编码 | |
43 | - */ | |
44 | - private String egc; | |
45 | - | |
46 | - /** | |
47 | - * 考评,活动名称 | |
48 | - */ | |
49 | -// @NotBlank(message = "名称不能为空") | |
50 | -// @Length(max = 255, message = "名称超出最大限制") | |
51 | - private String name; | |
52 | - | |
53 | - /** | |
54 | - * 考评范围; 1:门店考评 2:人员考评 | |
55 | - */ | |
56 | - @NotNull(message = "考评范围不能为空") | |
57 | - private EvalScopeEnum scopeType; | |
58 | - | |
59 | - /** | |
60 | - * 门店奖惩分配角色编码 | |
61 | - */ | |
62 | - @TableField(typeHandler = StringListTypeHandler.class) | |
63 | - private List<String> roleCodes; | |
64 | - /** | |
65 | - * 门店奖惩分配角色名称 | |
66 | - */ | |
67 | - @TableField(typeHandler = StringListTypeHandler.class) | |
68 | - private List<String> roleNames; | |
69 | - | |
70 | -// /** | |
71 | -// * 考评类型; 1:活动考评 2:其他考评 | |
72 | -// */ | |
73 | -// @NotNull(message = "考评类型不能为空") | |
74 | -// private EvalTypeEnum type; | |
75 | - | |
76 | - /** | |
77 | 30 | * 岗位id |
78 | 31 | */ |
79 | 32 | // @NotNull(message = "岗位id不能为空") |
... | ... | @@ -100,38 +53,6 @@ public class EvalGroupDTO { |
100 | 53 | private List<String> shopNames; |
101 | 54 | |
102 | 55 | /** |
103 | - * 集团id | |
104 | - force */ | |
105 | - @LoginContextField(LoginContextField.Name.GROUP_ID) | |
106 | - private Long groupId; | |
107 | - | |
108 | - /** | |
109 | - * 用户名 | |
110 | - force */ | |
111 | - @LoginContextField(LoginContextField.Name.USER_NAME) | |
112 | - private String userName; | |
113 | - | |
114 | - /** | |
115 | - * 用户名 | |
116 | - force */ | |
117 | - @LoginContextField(LoginContextField.Name.USER_ID) | |
118 | - private Long userId; | |
119 | -// | |
120 | -// /** | |
121 | -// * 生效时间 | |
122 | -// */ | |
123 | -//// @Future(message = "生效时间不能在当前时间之前") | |
124 | -// @NotNull(message = "生效时间不能为空") | |
125 | -// private LocalDate beginTime; | |
126 | -// | |
127 | -// /** | |
128 | -// * 结束时间 | |
129 | -// */ | |
130 | -// @NotNull(message = "结束时间不能为空") | |
131 | -// @Future(message = "结束时间不能在当前时间之前") | |
132 | -// private LocalDate overTime; | |
133 | - | |
134 | - /** | |
135 | 56 | * 考评指标 |
136 | 57 | */ |
137 | 58 | @Valid |
... | ... | @@ -143,14 +64,4 @@ public class EvalGroupDTO { |
143 | 64 | @Valid |
144 | 65 | private List<EvalGroupRewardDTO> rewards; |
145 | 66 | |
146 | -// /** | |
147 | -// * 状态;1:审批中 2:审批拒绝 3:生效中 4:草稿 | |
148 | -// */ | |
149 | -// private Integer status; | |
150 | -// | |
151 | -// /** | |
152 | -// * 包含指标数量 | |
153 | -// */ | |
154 | -// private Integer indicatorNum; | |
155 | - | |
156 | 67 | } | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalGroupIndicatorDTO.java
... | ... | @@ -32,11 +32,6 @@ public class EvalGroupIndicatorDTO { |
32 | 32 | |
33 | 33 | private static final long serialVersionUID = 1L; |
34 | 34 | |
35 | -// /** | |
36 | -// * 考评组配置id | |
37 | -// */ | |
38 | -// private Long evalGroupId; | |
39 | - | |
40 | 35 | /** |
41 | 36 | * 指标名称 |
42 | 37 | */ |
... | ... | @@ -45,13 +40,6 @@ public class EvalGroupIndicatorDTO { |
45 | 40 | private String name; |
46 | 41 | |
47 | 42 | /** |
48 | - * 考评项别名 | |
49 | - */ | |
50 | -// @NotBlank(message = "考评项别名不能为空") | |
51 | -// @Length(max = 255, message = "考评项别名超出最大长度限制") | |
52 | -// private String paramAlias; | |
53 | - | |
54 | - /** | |
55 | 43 | * 基础绩效分 |
56 | 44 | */ |
57 | 45 | @NotNull(message = "基础绩效分不能为空") |
... | ... | @@ -95,23 +83,6 @@ public class EvalGroupIndicatorDTO { |
95 | 83 | @NotNull(message = "编码类型不能为空") |
96 | 84 | private IndicatorCodeTypeEnum codeType; |
97 | 85 | |
98 | -// /** | |
99 | -// * 台阶指标编码 | |
100 | -// */ | |
101 | -// public String ladderCode; | |
102 | -// /** | |
103 | -// * 指标类型(1.指标,2,考评指标 3,组合指标) | |
104 | -// */ | |
105 | -// public IndicatorCodeTypeEnum ladderCodeType; | |
106 | -// /** | |
107 | -// * 提成指标编码 | |
108 | -// */ | |
109 | -// public String commissionCode; | |
110 | -// /** | |
111 | -// * 指标类型(1.指标,2,考评指标 3,组合指标) | |
112 | -// */ | |
113 | -// public IndicatorCodeTypeEnum commissionCodeType; | |
114 | - | |
115 | 86 | /** |
116 | 87 | * 提成参数 |
117 | 88 | */ | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalGroupIndicatorParamDTO.java
fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalGroupRankDTO.java
1 | 1 | package cn.fw.morax.domain.dto.eval; |
2 | 2 | |
3 | 3 | import cn.fw.common.web.annotation.LoginContextField; |
4 | -import cn.fw.morax.domain.dto.kpi.KpiGroupRankStarLaddersDTO; | |
5 | -import cn.fw.morax.domain.enums.EvalScopeEnum; | |
6 | 4 | import cn.fw.morax.domain.enums.SettingDraftStatusEnum; |
7 | -import cn.fw.morax.domain.enums.StarEvaluationEnum; | |
8 | 5 | import lombok.AllArgsConstructor; |
9 | 6 | import lombok.Builder; |
10 | 7 | import lombok.Data; |
... | ... | @@ -16,7 +13,6 @@ import javax.validation.constraints.Future; |
16 | 13 | import javax.validation.constraints.NotBlank; |
17 | 14 | import javax.validation.constraints.NotNull; |
18 | 15 | import javax.validation.constraints.Size; |
19 | -import java.math.BigDecimal; | |
20 | 16 | import java.time.LocalDate; |
21 | 17 | import java.util.List; |
22 | 18 | |
... | ... | @@ -77,7 +73,7 @@ public class EvalGroupRankDTO { |
77 | 73 | @NotNull(message = "考评阶段不能为空") |
78 | 74 | @Size(min = 1, message = "考评阶段不能为空") |
79 | 75 | @Valid |
80 | - private List<EvalStageDTO> stages; | |
76 | + private List<EvalGroupRankStageDTO> stages; | |
81 | 77 | |
82 | 78 | /** |
83 | 79 | * 审批单号 | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalStageDTO.java renamed to fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalGroupRankStageDTO.java
1 | 1 | package cn.fw.morax.domain.dto.eval; |
2 | 2 | |
3 | -import cn.fw.common.web.annotation.LoginContextField; | |
4 | -import cn.fw.morax.domain.enums.EvalTypeEnum; | |
5 | -import cn.fw.morax.domain.enums.SettingDraftStatusEnum; | |
6 | 3 | import lombok.Data; |
7 | 4 | import lombok.EqualsAndHashCode; |
8 | 5 | import org.hibernate.validator.constraints.Length; |
... | ... | @@ -25,7 +22,7 @@ import java.util.List; |
25 | 22 | */ |
26 | 23 | @Data |
27 | 24 | @EqualsAndHashCode(callSuper = false) |
28 | -public class EvalStageDTO { | |
25 | +public class EvalGroupRankStageDTO { | |
29 | 26 | |
30 | 27 | /** |
31 | 28 | * 考评组id(前一次) | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/enums/TargetCalcTypeEnum.java
fw-morax-domain/src/main/java/cn/fw/morax/domain/enums/TargetTypeEnum.java
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupBizService.java
... | ... | @@ -78,7 +78,7 @@ public class EvalGroupBizService { |
78 | 78 | AtomicInteger evalGroupSize = new AtomicInteger(); |
79 | 79 | LocalDate lastStageOverTime = null; |
80 | 80 | Boolean multiStage = evalGroupRankDto.getMultiStage(); |
81 | - for (EvalStageDTO stage : evalGroupRankDto.getStages()) { | |
81 | + for (EvalGroupRankStageDTO stage : evalGroupRankDto.getStages()) { | |
82 | 82 | this.checkStageTime(evalGroupRankDto, stage, lastStageOverTime); |
83 | 83 | for (EvalGroupDTO evalGroupDTO : stage.getEvalGroups()) { |
84 | 84 | initEvalGroupDTO(evalGroupDTO); |
... | ... | @@ -101,7 +101,7 @@ public class EvalGroupBizService { |
101 | 101 | approvalBizService.applyApproveEvalDraft(evalGroupRankDto, evalGroupSize.get(), settingDraft, user); |
102 | 102 | } |
103 | 103 | |
104 | - public void checkStageTime(EvalGroupRankDTO eval, EvalStageDTO stage, LocalDate lastStageOverTime) { | |
104 | + public void checkStageTime(EvalGroupRankDTO eval, EvalGroupRankStageDTO stage, LocalDate lastStageOverTime) { | |
105 | 105 | if (stage.getBeginTime().isBefore(eval.getBeginTime())) { |
106 | 106 | throw new BusinessException("阶段开始时间不能在考评时间之前"); |
107 | 107 | } |
... | ... | @@ -488,14 +488,16 @@ public class EvalGroupBizService { |
488 | 488 | (PublicUtil.isEmpty(paramDTO.getTargetType()) || PublicUtil.isEmpty(paramDTO.getTargetValue()))) { |
489 | 489 | paramDTO.setTargetType(TargetTypeEnum.NO); |
490 | 490 | } |
491 | - if (multiStage) { | |
492 | - if (TargetTypeEnum.RATIO.equals(paramDTO.getTargetType()) || | |
493 | - TargetTypeEnum.MONEY.equals(paramDTO.getTargetType())) { | |
494 | - throw new BusinessException("多阶段目标只能选择阶段目标或时间进度"); | |
491 | + if (PublicUtil.isNotEmpty(paramDTO.getTargetCalcType())) { | |
492 | + if (multiStage) { | |
493 | + if (TargetCalcTypeEnum.STAGE_TARGET.equals(paramDTO.getTargetCalcType()) || | |
494 | + TargetCalcTypeEnum.TIME_SCHEDULE.equals(paramDTO.getTargetCalcType())) { | |
495 | + throw new BusinessException("多阶段目标只能选择阶段目标或时间进度"); | |
496 | + } | |
497 | + } else if (TargetCalcTypeEnum.TARGET_VALUE.equals(paramDTO.getTargetCalcType()) || | |
498 | + TargetCalcTypeEnum.MINIMUM.equals(paramDTO.getTargetCalcType())) { | |
499 | + throw new BusinessException("非多阶段目标只能选择百分比或数量"); | |
495 | 500 | } |
496 | - } else if (TargetTypeEnum.STAGE_TARGET.equals(paramDTO.getTargetType()) || | |
497 | - TargetTypeEnum.TIME_SCHEDULE.equals(paramDTO.getTargetType())) { | |
498 | - throw new BusinessException("非多阶段目标只能选择百分比或数量"); | |
499 | 501 | } |
500 | 502 | } |
501 | 503 | } |
... | ... | @@ -512,14 +514,16 @@ public class EvalGroupBizService { |
512 | 514 | paramDTO.setTargetType(TargetTypeEnum.NO); |
513 | 515 | continue; |
514 | 516 | } |
515 | - if (multiStage) { | |
516 | - if (TargetTypeEnum.RATIO.equals(paramDTO.getTargetType()) || | |
517 | - TargetTypeEnum.MONEY.equals(paramDTO.getTargetType())) { | |
518 | - throw new BusinessException("多阶段目标只能选择阶段目标或时间进度"); | |
517 | + if (PublicUtil.isNotEmpty(paramDTO.getTargetCalcType())) { | |
518 | + if (multiStage) { | |
519 | + if (TargetCalcTypeEnum.STAGE_TARGET.equals(paramDTO.getTargetCalcType()) || | |
520 | + TargetCalcTypeEnum.TIME_SCHEDULE.equals(paramDTO.getTargetCalcType())) { | |
521 | + throw new BusinessException("多阶段目标只能选择阶段目标或时间进度"); | |
522 | + } | |
523 | + } else if (TargetCalcTypeEnum.TARGET_VALUE.equals(paramDTO.getTargetCalcType()) || | |
524 | + TargetCalcTypeEnum.MINIMUM.equals(paramDTO.getTargetCalcType())) { | |
525 | + throw new BusinessException("非多阶段目标只能选择百分比或数量"); | |
519 | 526 | } |
520 | - } else if (TargetTypeEnum.STAGE_TARGET.equals(paramDTO.getTargetType()) || | |
521 | - TargetTypeEnum.TIME_SCHEDULE.equals(paramDTO.getTargetType())) { | |
522 | - throw new BusinessException("非多阶段目标只能选择百分比或数量"); | |
523 | 527 | } |
524 | 528 | } |
525 | 529 | } |
... | ... | @@ -982,9 +986,9 @@ public class EvalGroupBizService { |
982 | 986 | log.info("收到岗位最低收入补偿审批信息:{}", JSON.toJSONString(approvalRecord)); |
983 | 987 | EvalGroupRankDTO evalGroupRankDto = JSON.parseObject(settingDraft.getContent(), EvalGroupRankDTO.class); |
984 | 988 | EvalGroupRank evalGroupRank = evalGroupDataService.saveEvalGroupRank(evalGroupRankDto); |
985 | - for (EvalStageDTO evalStageDTO : evalGroupRankDto.getStages()) { | |
986 | - EvalGroupRankStage evalGroupRankStage = evalGroupDataService.saveEvalStage(evalStageDTO, evalGroupRank); | |
987 | - for (EvalGroupDTO evalGroupDTO : evalStageDTO.getEvalGroups()) { | |
989 | + for (EvalGroupRankStageDTO evalGroupRankStageDTO : evalGroupRankDto.getStages()) { | |
990 | + EvalGroupRankStage evalGroupRankStage = evalGroupDataService.saveEvalStage(evalGroupRankStageDTO, evalGroupRank); | |
991 | + for (EvalGroupDTO evalGroupDTO : evalGroupRankStageDTO.getEvalGroups()) { | |
988 | 992 | EvalGroup evalGroup = evalGroupDataService.saveEvalGroup(evalGroupDTO, evalGroupRank, evalGroupRankStage); |
989 | 993 | evalGroupDataService.saveEvalGroupIndicator(evalGroup, evalGroupDTO.getIndicators()); |
990 | 994 | evalGroupDataService.saveEvalGroupReward(evalGroup, evalGroupDTO.getRewards()); | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupDataService.java
... | ... | @@ -96,7 +96,7 @@ public class EvalGroupDataService { |
96 | 96 | * @param dto |
97 | 97 | */ |
98 | 98 | @Transactional(rollbackFor = Exception.class) |
99 | - public EvalGroupRankStage saveEvalStage(EvalStageDTO dto, EvalGroupRank evalGroupRank) { | |
99 | + public EvalGroupRankStage saveEvalStage(EvalGroupRankStageDTO dto, EvalGroupRank evalGroupRank) { | |
100 | 100 | EvalGroupRankStage evalGroupRankStage = PublicUtil.copy(dto, EvalGroupRankStage.class); |
101 | 101 | evalGroupRankStage.setEvalGroupRankId(evalGroupRank.getId()); |
102 | 102 | evalGroupRankStageService.save(evalGroupRankStage); |
... | ... | @@ -112,11 +112,7 @@ public class EvalGroupDataService { |
112 | 112 | public EvalGroup saveEvalGroup(EvalGroupDTO dto, EvalGroupRank evalGroupRank, EvalGroupRankStage evalGroupRankStage) { |
113 | 113 | EvalGroup evalGroup = PublicUtil.copy(dto, EvalGroup.class); |
114 | 114 | evalGroup.setIndicatorNum(dto.getIndicators().size()); |
115 | - if (PublicUtil.isNotEmpty(dto.getId())) { | |
116 | - evalGroup.setEgc(dto.getEgc()); | |
117 | - } else { | |
118 | - evalGroup.setEgc(PublicUtil.getUUID()); | |
119 | - } | |
115 | + evalGroup.setEgc(PublicUtil.getUUID()); | |
120 | 116 | evalGroup.setGroupId(evalGroupRank.getGroupId()); |
121 | 117 | evalGroup.setEvalGroupRankId(evalGroupRank.getId()); |
122 | 118 | evalGroup.setEvalGroupRankStageId(evalGroupRankStage.getId()); | ... | ... |