Commit 9cabf1b9295576705a886b77f5bc8823e55d8893
1 parent
477ad267
feature(salaryGroup): 薪酬组添加名称
薪酬组添加名称
Showing
8 changed files
with
58 additions
and
11 deletions
doc/ddl.sql
... | ... | @@ -641,4 +641,7 @@ ALTER TABLE `fw_morax`.`kpi_pool` |
641 | 641 | |
642 | 642 | ALTER TABLE `fw_morax`.`kpi_group` |
643 | 643 | ADD COLUMN `name` varchar(255) NULL COMMENT '绩效组名称' AFTER `id`, |
644 | -ADD COLUMN `revoked_score_ratio` decimal(10, 4) NULL COMMENT '人员百分比,撤销D级得分率' AFTER `star_evaluation_type`; | |
645 | 644 | \ No newline at end of file |
645 | +ADD COLUMN `revoked_score_ratio` decimal(10, 4) NULL COMMENT '人员百分比,撤销D级得分率' AFTER `star_evaluation_type`; | |
646 | + | |
647 | +ALTER TABLE `fw_morax`.`salary_group` | |
648 | + ADD COLUMN `name` varchar(255) NULL COMMENT '薪酬组名称' AFTER `id`; | |
646 | 649 | \ No newline at end of file | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/salary/SalaryGroup.java
fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/SalaryGroupDTO.java
... | ... | @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
8 | 8 | import com.fasterxml.jackson.datatype.jsr310.deser.YearMonthDeserializer; |
9 | 9 | import com.fasterxml.jackson.datatype.jsr310.ser.YearMonthSerializer; |
10 | 10 | import lombok.Data; |
11 | +import org.hibernate.validator.constraints.Length; | |
11 | 12 | |
12 | 13 | import javax.validation.Valid; |
13 | 14 | import javax.validation.constraints.NotBlank; |
... | ... | @@ -28,6 +29,12 @@ import java.util.List; |
28 | 29 | public class SalaryGroupDTO { |
29 | 30 | private Long id; |
30 | 31 | /** |
32 | + * 名称 | |
33 | + */ | |
34 | + @NotBlank(message = "名称不能为空") | |
35 | + @Length(max = 255, message = "名称超出最大限制") | |
36 | + private String name; | |
37 | + /** | |
31 | 38 | * 薪酬组编码 |
32 | 39 | */ |
33 | 40 | private String sgc; | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/kpi/KpiGroupRankVO.java
... | ... | @@ -5,6 +5,7 @@ import lombok.Data; |
5 | 5 | |
6 | 6 | import java.math.BigDecimal; |
7 | 7 | import java.util.List; |
8 | +import java.util.Set; | |
8 | 9 | |
9 | 10 | /** |
10 | 11 | * @author : kurisu |
... | ... | @@ -30,7 +31,7 @@ public class KpiGroupRankVO { |
30 | 31 | /** |
31 | 32 | * 岗位名称 |
32 | 33 | */ |
33 | - private List<String> postNames; | |
34 | + private Set<String> postNames; | |
34 | 35 | /** |
35 | 36 | * 适用门店ids |
36 | 37 | */ |
... | ... | @@ -38,13 +39,18 @@ public class KpiGroupRankVO { |
38 | 39 | /** |
39 | 40 | * 适用门店名称 |
40 | 41 | */ |
41 | - private List<String> shopNames; | |
42 | + private Set<String> shopNames; | |
42 | 43 | /** |
43 | 44 | * 绩效组编码 |
44 | 45 | */ |
45 | 46 | private List<String> kgcs; |
46 | 47 | |
47 | 48 | /** |
49 | + * 绩效组名称 | |
50 | + */ | |
51 | + private List<String> kpiGroupNames; | |
52 | + | |
53 | + /** | |
48 | 54 | * 星级评定方式;1:绩效得分率 2:人员百分比 |
49 | 55 | */ |
50 | 56 | private StarEvaluationEnum starEvaluationType; | ... | ... |
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/salary/SalaryGroupVO.java
... | ... | @@ -20,6 +20,10 @@ public class SalaryGroupVO { |
20 | 20 | */ |
21 | 21 | private Long id; |
22 | 22 | /** |
23 | + * 名称 | |
24 | + */ | |
25 | + private String name; | |
26 | + /** | |
23 | 27 | * 岗位id |
24 | 28 | */ |
25 | 29 | private Long postId; |
... | ... | @@ -68,6 +72,7 @@ public class SalaryGroupVO { |
68 | 72 | public static SalaryGroupVO convertSalaryGroup(SalaryGroup salaryGroup) { |
69 | 73 | SalaryGroupVO salaryGroupVo = new SalaryGroupVO(); |
70 | 74 | salaryGroupVo.setId(salaryGroup.getId()); |
75 | + salaryGroupVo.setName(salaryGroup.getName()); | |
71 | 76 | salaryGroupVo.setPostId(salaryGroup.getPostId()); |
72 | 77 | salaryGroupVo.setPostName(salaryGroup.getPostName()); |
73 | 78 | salaryGroupVo.setShopIds(salaryGroup.getShopIds()); | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupBizService.java
... | ... | @@ -164,7 +164,7 @@ public class KpiGroupBizService { |
164 | 164 | * @param dto |
165 | 165 | */ |
166 | 166 | public void checkKpi(KpiGroupDTO dto) { |
167 | - checkNameRepetition(dto.getName(), dto.getId()); | |
167 | + checkNameRepetition(dto.getId(), dto.getName()); | |
168 | 168 | Long postId = dto.getPostId(); |
169 | 169 | List<Long> shopIds = dto.getShopIds(); |
170 | 170 | List<KpiGroup> effectKpis = kpiGroupService.getApprovingKpis(postId, shopIds, dto.getId(), dto.getBeginTime()); |
... | ... | @@ -214,10 +214,10 @@ public class KpiGroupBizService { |
214 | 214 | /** |
215 | 215 | * 检查绩效组排名名称是否重复 |
216 | 216 | * |
217 | - * @param name | |
218 | 217 | * @param id |
218 | + * @param name | |
219 | 219 | */ |
220 | - public void checkNameRepetition(String name, Long id) { | |
220 | + public void checkNameRepetition(Long id, String name) { | |
221 | 221 | int count = kpiGroupService.count(Wrappers.<KpiGroup>lambdaQuery() |
222 | 222 | .eq(KpiGroup::getName, name) |
223 | 223 | .ne(PublicUtil.isNotEmpty(id), KpiGroup::getId, id) | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupRankBizService.java
... | ... | @@ -82,10 +82,10 @@ public class KpiGroupRankBizService { |
82 | 82 | Map<String, KpiGroup> kgcKpiGroupMap = kpiGroups.stream().collect(Collectors.toMap(KpiGroup::getKgc, Function.identity(), (v1, v2) -> v1)); |
83 | 83 | for (KpiGroupRankVO kpiGroupRankVO : kpiGroupRankVOS) { |
84 | 84 | kpiGroupRankVO.setPostIds(new ArrayList<>()); |
85 | - kpiGroupRankVO.setPostNames(new ArrayList<>()); | |
85 | + kpiGroupRankVO.setPostNames(new HashSet<>()); | |
86 | 86 | kpiGroupRankVO.setShopIds(new ArrayList<>()); |
87 | - kpiGroupRankVO.setShopNames(new ArrayList<>()); | |
88 | - kpiGroupRankVO.setKgcs(new ArrayList<>()); | |
87 | + kpiGroupRankVO.setShopNames(new HashSet<>()); | |
88 | + kpiGroupRankVO.setKpiGroupNames(new ArrayList<>()); | |
89 | 89 | for (String kgc : kpiGroupRankVO.getKgcs()) { |
90 | 90 | if (kgcKpiGroupMap.containsKey(kgc)) { |
91 | 91 | KpiGroup kpiGroup = kgcKpiGroupMap.get(kgc); |
... | ... | @@ -93,7 +93,9 @@ public class KpiGroupRankBizService { |
93 | 93 | kpiGroupRankVO.getPostNames().add(kpiGroup.getPostName()); |
94 | 94 | kpiGroupRankVO.getShopIds().addAll(kpiGroup.getShopIds()); |
95 | 95 | kpiGroupRankVO.getShopNames().addAll(kpiGroup.getShopNames()); |
96 | - kpiGroupRankVO.getKgcs().add(kpiGroup.getKgc()); | |
96 | + if (PublicUtil.isNotEmpty(kpiGroup.getName())) { | |
97 | + kpiGroupRankVO.getKpiGroupNames().add(kpiGroup.getName()); | |
98 | + } | |
97 | 99 | } |
98 | 100 | } |
99 | 101 | } |
... | ... | @@ -174,7 +176,7 @@ public class KpiGroupRankBizService { |
174 | 176 | } |
175 | 177 | kpiGroupRankVO.setStarLadders(starLaddersVOS); |
176 | 178 | if (PublicUtil.isNotEmpty(kpiGroupRankVO.getRevokedScoreRatio())) { |
177 | - kpiGroupRank.setRevokedScoreRatio(kpiGroupRankVO.getRevokedScoreRatio().multiply(Constant.ONE_HUNDRED)); | |
179 | + kpiGroupRankVO.setRevokedScoreRatio(kpiGroupRankVO.getRevokedScoreRatio().multiply(Constant.ONE_HUNDRED)); | |
178 | 180 | } |
179 | 181 | return kpiGroupRankVO; |
180 | 182 | } |
... | ... | @@ -245,6 +247,9 @@ public class KpiGroupRankBizService { |
245 | 247 | public void checkKgcRepetition(Long id, List<String> kgcs) { |
246 | 248 | List<KpiGroupRankVO> kpiGroupRankVOS = kpiGroupRankService.queryByKgcs(kgcs, id); |
247 | 249 | List<String> allKgcs = kpiGroupRankVOS.stream().map(KpiGroupRankVO::getKgcs).collect(ArrayList::new, List::addAll, List::addAll); |
250 | + if (PublicUtil.isEmpty(allKgcs)) { | |
251 | + return; | |
252 | + } | |
248 | 253 | allKgcs.retainAll(kgcs); |
249 | 254 | List<KpiGroup> repetitionKpis = kpiGroupService.list(Wrappers.<KpiGroup>lambdaQuery() |
250 | 255 | .eq(KpiGroup::getStatus, SettingStatusEnum.BE_EFFECTIVE) | ... | ... |
fw-morax-service/src/main/java/cn/fw/morax/service/biz/salary/SalaryGroupBizService.java
... | ... | @@ -11,6 +11,7 @@ import cn.fw.morax.common.utils.EventBusUtil; |
11 | 11 | import cn.fw.morax.common.utils.MessageFormatUtil; |
12 | 12 | import cn.fw.morax.common.utils.PublicUtil; |
13 | 13 | import cn.fw.morax.domain.db.ApprovalRecord; |
14 | +import cn.fw.morax.domain.db.kpi.KpiGroup; | |
14 | 15 | import cn.fw.morax.domain.db.salary.SalaryGroup; |
15 | 16 | import cn.fw.morax.domain.db.salary.SalaryGroupProject; |
16 | 17 | import cn.fw.morax.domain.db.salary.SalaryGroupProjectSettin; |
... | ... | @@ -170,6 +171,7 @@ public class SalaryGroupBizService { |
170 | 171 | * @param dto |
171 | 172 | */ |
172 | 173 | public void checkSalaryGroup(SalaryGroupDTO dto) { |
174 | + checkNameRepetition(dto.getId(), dto.getName()); | |
173 | 175 | //原来的绩效组配置不能在审批中 |
174 | 176 | if (PublicUtil.isNotEmpty(dto.getId())) { |
175 | 177 | SalaryGroup salaryGroup = salaryGroupService.getById(dto.getId()); |
... | ... | @@ -191,6 +193,21 @@ public class SalaryGroupBizService { |
191 | 193 | } |
192 | 194 | |
193 | 195 | /** |
196 | + * 检查薪酬组名称是否重复 | |
197 | + * | |
198 | + * @param id | |
199 | + * @param name | |
200 | + */ | |
201 | + public void checkNameRepetition(Long id, String name) { | |
202 | + int count = salaryGroupService.count(Wrappers.<SalaryGroup>lambdaQuery() | |
203 | + .eq(SalaryGroup::getName, name) | |
204 | + .ne(PublicUtil.isNotEmpty(id), SalaryGroup::getId, id) | |
205 | + .eq(SalaryGroup::getYn, Boolean.TRUE) | |
206 | + ); | |
207 | + BV.isTrue(count <= 0, "薪酬组名称重复,请重新输入"); | |
208 | + } | |
209 | + | |
210 | + /** | |
194 | 211 | * 检查指标修改的权限 |
195 | 212 | * |
196 | 213 | * @param dto | ... | ... |