Commit 81a8a91ce260e64deffb9d6a32f69f5280b8095b

Authored by 姜超
1 parent 8945afe5

feature(*): 考评保存修改

考评保存修改
fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/eval/EvalDTO.java
... ... @@ -88,7 +88,7 @@ public class EvalDTO {
88 88 @NotNull(message = "考评阶段不能为空")
89 89 @Size(min = 1, message = "考评阶段不能为空")
90 90 @Valid
91   - private List<EvalStageDTO> stages;
  91 + private List<EvalGroupRankStageDTO> stages;
92 92  
93 93 /**
94 94 * 审批单号
... ...
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
... ... @@ -65,7 +65,7 @@ public class EvalGroupIndicatorParamDTO {
65 65 private Boolean cap;
66 66  
67 67 /**
68   - * 目标计算类型;1: 目标值计算 2:最低要求计算
  68 + * 目标计算类型;1: 目标值计算 2:最低要求计算 3:阶段目标 4:时间进度
69 69 */
70 70 private TargetCalcTypeEnum targetCalcType;
71 71  
... ...
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
... ... @@ -20,6 +20,14 @@ public enum TargetCalcTypeEnum implements IEnum&lt;Integer&gt; {
20 20 * 最低要求计算
21 21 */
22 22 MINIMUM(2, "最低要求计算"),
  23 + /**
  24 + * 阶段目标
  25 + */
  26 + STAGE_TARGET(3, "阶段目标"),
  27 + /**
  28 + * 时间进度
  29 + */
  30 + TIME_SCHEDULE(4, "时间进度"),
23 31 ;
24 32  
25 33 /**
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/enums/TargetTypeEnum.java
... ... @@ -27,14 +27,7 @@ public enum TargetTypeEnum implements IEnum&lt;Integer&gt; {
27 27 * 金额
28 28 */
29 29 MONEY(3, "金额"),
30   - /**
31   - * 阶段目标
32   - */
33   - STAGE_TARGET(4, "阶段目标"),
34   - /**
35   - * 时间进度
36   - */
37   - TIME_SCHEDULE(5, "时间进度"),
  30 +
38 31 ;
39 32  
40 33 /**
... ...
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());
... ...