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,4 +641,7 @@ ALTER TABLE `fw_morax`.`kpi_pool` | ||
641 | 641 | ||
642 | ALTER TABLE `fw_morax`.`kpi_group` | 642 | ALTER TABLE `fw_morax`.`kpi_group` |
643 | ADD COLUMN `name` varchar(255) NULL COMMENT '绩效组名称' AFTER `id`, | 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 | \ No newline at end of file | 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 | \ No newline at end of file | 649 | \ No newline at end of file |
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/salary/SalaryGroup.java
@@ -22,6 +22,10 @@ import java.util.List; | @@ -22,6 +22,10 @@ import java.util.List; | ||
22 | @EqualsAndHashCode(callSuper = true) | 22 | @EqualsAndHashCode(callSuper = true) |
23 | public class SalaryGroup extends BaseAuditableTimeEntity<SalaryGroup, Long> { | 23 | public class SalaryGroup extends BaseAuditableTimeEntity<SalaryGroup, Long> { |
24 | /** | 24 | /** |
25 | + * 名称 | ||
26 | + */ | ||
27 | + private String name; | ||
28 | + /** | ||
25 | * 薪酬组编码 | 29 | * 薪酬组编码 |
26 | */ | 30 | */ |
27 | private String sgc; | 31 | private String sgc; |
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,6 +8,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; | ||
8 | import com.fasterxml.jackson.datatype.jsr310.deser.YearMonthDeserializer; | 8 | import com.fasterxml.jackson.datatype.jsr310.deser.YearMonthDeserializer; |
9 | import com.fasterxml.jackson.datatype.jsr310.ser.YearMonthSerializer; | 9 | import com.fasterxml.jackson.datatype.jsr310.ser.YearMonthSerializer; |
10 | import lombok.Data; | 10 | import lombok.Data; |
11 | +import org.hibernate.validator.constraints.Length; | ||
11 | 12 | ||
12 | import javax.validation.Valid; | 13 | import javax.validation.Valid; |
13 | import javax.validation.constraints.NotBlank; | 14 | import javax.validation.constraints.NotBlank; |
@@ -28,6 +29,12 @@ import java.util.List; | @@ -28,6 +29,12 @@ import java.util.List; | ||
28 | public class SalaryGroupDTO { | 29 | public class SalaryGroupDTO { |
29 | private Long id; | 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 | private String sgc; | 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,6 +5,7 @@ import lombok.Data; | ||
5 | 5 | ||
6 | import java.math.BigDecimal; | 6 | import java.math.BigDecimal; |
7 | import java.util.List; | 7 | import java.util.List; |
8 | +import java.util.Set; | ||
8 | 9 | ||
9 | /** | 10 | /** |
10 | * @author : kurisu | 11 | * @author : kurisu |
@@ -30,7 +31,7 @@ public class KpiGroupRankVO { | @@ -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 | * 适用门店ids | 36 | * 适用门店ids |
36 | */ | 37 | */ |
@@ -38,13 +39,18 @@ public class KpiGroupRankVO { | @@ -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 | private List<String> kgcs; | 46 | private List<String> kgcs; |
46 | 47 | ||
47 | /** | 48 | /** |
49 | + * 绩效组名称 | ||
50 | + */ | ||
51 | + private List<String> kpiGroupNames; | ||
52 | + | ||
53 | + /** | ||
48 | * 星级评定方式;1:绩效得分率 2:人员百分比 | 54 | * 星级评定方式;1:绩效得分率 2:人员百分比 |
49 | */ | 55 | */ |
50 | private StarEvaluationEnum starEvaluationType; | 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,6 +20,10 @@ public class SalaryGroupVO { | ||
20 | */ | 20 | */ |
21 | private Long id; | 21 | private Long id; |
22 | /** | 22 | /** |
23 | + * 名称 | ||
24 | + */ | ||
25 | + private String name; | ||
26 | + /** | ||
23 | * 岗位id | 27 | * 岗位id |
24 | */ | 28 | */ |
25 | private Long postId; | 29 | private Long postId; |
@@ -68,6 +72,7 @@ public class SalaryGroupVO { | @@ -68,6 +72,7 @@ public class SalaryGroupVO { | ||
68 | public static SalaryGroupVO convertSalaryGroup(SalaryGroup salaryGroup) { | 72 | public static SalaryGroupVO convertSalaryGroup(SalaryGroup salaryGroup) { |
69 | SalaryGroupVO salaryGroupVo = new SalaryGroupVO(); | 73 | SalaryGroupVO salaryGroupVo = new SalaryGroupVO(); |
70 | salaryGroupVo.setId(salaryGroup.getId()); | 74 | salaryGroupVo.setId(salaryGroup.getId()); |
75 | + salaryGroupVo.setName(salaryGroup.getName()); | ||
71 | salaryGroupVo.setPostId(salaryGroup.getPostId()); | 76 | salaryGroupVo.setPostId(salaryGroup.getPostId()); |
72 | salaryGroupVo.setPostName(salaryGroup.getPostName()); | 77 | salaryGroupVo.setPostName(salaryGroup.getPostName()); |
73 | salaryGroupVo.setShopIds(salaryGroup.getShopIds()); | 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,7 +164,7 @@ public class KpiGroupBizService { | ||
164 | * @param dto | 164 | * @param dto |
165 | */ | 165 | */ |
166 | public void checkKpi(KpiGroupDTO dto) { | 166 | public void checkKpi(KpiGroupDTO dto) { |
167 | - checkNameRepetition(dto.getName(), dto.getId()); | 167 | + checkNameRepetition(dto.getId(), dto.getName()); |
168 | Long postId = dto.getPostId(); | 168 | Long postId = dto.getPostId(); |
169 | List<Long> shopIds = dto.getShopIds(); | 169 | List<Long> shopIds = dto.getShopIds(); |
170 | List<KpiGroup> effectKpis = kpiGroupService.getApprovingKpis(postId, shopIds, dto.getId(), dto.getBeginTime()); | 170 | List<KpiGroup> effectKpis = kpiGroupService.getApprovingKpis(postId, shopIds, dto.getId(), dto.getBeginTime()); |
@@ -214,10 +214,10 @@ public class KpiGroupBizService { | @@ -214,10 +214,10 @@ public class KpiGroupBizService { | ||
214 | /** | 214 | /** |
215 | * 检查绩效组排名名称是否重复 | 215 | * 检查绩效组排名名称是否重复 |
216 | * | 216 | * |
217 | - * @param name | ||
218 | * @param id | 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 | int count = kpiGroupService.count(Wrappers.<KpiGroup>lambdaQuery() | 221 | int count = kpiGroupService.count(Wrappers.<KpiGroup>lambdaQuery() |
222 | .eq(KpiGroup::getName, name) | 222 | .eq(KpiGroup::getName, name) |
223 | .ne(PublicUtil.isNotEmpty(id), KpiGroup::getId, id) | 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,10 +82,10 @@ public class KpiGroupRankBizService { | ||
82 | Map<String, KpiGroup> kgcKpiGroupMap = kpiGroups.stream().collect(Collectors.toMap(KpiGroup::getKgc, Function.identity(), (v1, v2) -> v1)); | 82 | Map<String, KpiGroup> kgcKpiGroupMap = kpiGroups.stream().collect(Collectors.toMap(KpiGroup::getKgc, Function.identity(), (v1, v2) -> v1)); |
83 | for (KpiGroupRankVO kpiGroupRankVO : kpiGroupRankVOS) { | 83 | for (KpiGroupRankVO kpiGroupRankVO : kpiGroupRankVOS) { |
84 | kpiGroupRankVO.setPostIds(new ArrayList<>()); | 84 | kpiGroupRankVO.setPostIds(new ArrayList<>()); |
85 | - kpiGroupRankVO.setPostNames(new ArrayList<>()); | 85 | + kpiGroupRankVO.setPostNames(new HashSet<>()); |
86 | kpiGroupRankVO.setShopIds(new ArrayList<>()); | 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 | for (String kgc : kpiGroupRankVO.getKgcs()) { | 89 | for (String kgc : kpiGroupRankVO.getKgcs()) { |
90 | if (kgcKpiGroupMap.containsKey(kgc)) { | 90 | if (kgcKpiGroupMap.containsKey(kgc)) { |
91 | KpiGroup kpiGroup = kgcKpiGroupMap.get(kgc); | 91 | KpiGroup kpiGroup = kgcKpiGroupMap.get(kgc); |
@@ -93,7 +93,9 @@ public class KpiGroupRankBizService { | @@ -93,7 +93,9 @@ public class KpiGroupRankBizService { | ||
93 | kpiGroupRankVO.getPostNames().add(kpiGroup.getPostName()); | 93 | kpiGroupRankVO.getPostNames().add(kpiGroup.getPostName()); |
94 | kpiGroupRankVO.getShopIds().addAll(kpiGroup.getShopIds()); | 94 | kpiGroupRankVO.getShopIds().addAll(kpiGroup.getShopIds()); |
95 | kpiGroupRankVO.getShopNames().addAll(kpiGroup.getShopNames()); | 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,7 +176,7 @@ public class KpiGroupRankBizService { | ||
174 | } | 176 | } |
175 | kpiGroupRankVO.setStarLadders(starLaddersVOS); | 177 | kpiGroupRankVO.setStarLadders(starLaddersVOS); |
176 | if (PublicUtil.isNotEmpty(kpiGroupRankVO.getRevokedScoreRatio())) { | 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 | return kpiGroupRankVO; | 181 | return kpiGroupRankVO; |
180 | } | 182 | } |
@@ -245,6 +247,9 @@ public class KpiGroupRankBizService { | @@ -245,6 +247,9 @@ public class KpiGroupRankBizService { | ||
245 | public void checkKgcRepetition(Long id, List<String> kgcs) { | 247 | public void checkKgcRepetition(Long id, List<String> kgcs) { |
246 | List<KpiGroupRankVO> kpiGroupRankVOS = kpiGroupRankService.queryByKgcs(kgcs, id); | 248 | List<KpiGroupRankVO> kpiGroupRankVOS = kpiGroupRankService.queryByKgcs(kgcs, id); |
247 | List<String> allKgcs = kpiGroupRankVOS.stream().map(KpiGroupRankVO::getKgcs).collect(ArrayList::new, List::addAll, List::addAll); | 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 | allKgcs.retainAll(kgcs); | 253 | allKgcs.retainAll(kgcs); |
249 | List<KpiGroup> repetitionKpis = kpiGroupService.list(Wrappers.<KpiGroup>lambdaQuery() | 254 | List<KpiGroup> repetitionKpis = kpiGroupService.list(Wrappers.<KpiGroup>lambdaQuery() |
250 | .eq(KpiGroup::getStatus, SettingStatusEnum.BE_EFFECTIVE) | 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,6 +11,7 @@ import cn.fw.morax.common.utils.EventBusUtil; | ||
11 | import cn.fw.morax.common.utils.MessageFormatUtil; | 11 | import cn.fw.morax.common.utils.MessageFormatUtil; |
12 | import cn.fw.morax.common.utils.PublicUtil; | 12 | import cn.fw.morax.common.utils.PublicUtil; |
13 | import cn.fw.morax.domain.db.ApprovalRecord; | 13 | import cn.fw.morax.domain.db.ApprovalRecord; |
14 | +import cn.fw.morax.domain.db.kpi.KpiGroup; | ||
14 | import cn.fw.morax.domain.db.salary.SalaryGroup; | 15 | import cn.fw.morax.domain.db.salary.SalaryGroup; |
15 | import cn.fw.morax.domain.db.salary.SalaryGroupProject; | 16 | import cn.fw.morax.domain.db.salary.SalaryGroupProject; |
16 | import cn.fw.morax.domain.db.salary.SalaryGroupProjectSettin; | 17 | import cn.fw.morax.domain.db.salary.SalaryGroupProjectSettin; |
@@ -170,6 +171,7 @@ public class SalaryGroupBizService { | @@ -170,6 +171,7 @@ public class SalaryGroupBizService { | ||
170 | * @param dto | 171 | * @param dto |
171 | */ | 172 | */ |
172 | public void checkSalaryGroup(SalaryGroupDTO dto) { | 173 | public void checkSalaryGroup(SalaryGroupDTO dto) { |
174 | + checkNameRepetition(dto.getId(), dto.getName()); | ||
173 | //原来的绩效组配置不能在审批中 | 175 | //原来的绩效组配置不能在审批中 |
174 | if (PublicUtil.isNotEmpty(dto.getId())) { | 176 | if (PublicUtil.isNotEmpty(dto.getId())) { |
175 | SalaryGroup salaryGroup = salaryGroupService.getById(dto.getId()); | 177 | SalaryGroup salaryGroup = salaryGroupService.getById(dto.getId()); |
@@ -191,6 +193,21 @@ public class SalaryGroupBizService { | @@ -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 | * @param dto | 213 | * @param dto |