Commit 9cabf1b9295576705a886b77f5bc8823e55d8893

Authored by 姜超
1 parent 477ad267

feature(salaryGroup): 薪酬组添加名称

薪酬组添加名称
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
... ... @@ -22,6 +22,10 @@ import java.util.List;
22 22 @EqualsAndHashCode(callSuper = true)
23 23 public class SalaryGroup extends BaseAuditableTimeEntity<SalaryGroup, Long> {
24 24 /**
  25 + * 名称
  26 + */
  27 + private String name;
  28 + /**
25 29 * 薪酬组编码
26 30 */
27 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 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
... ...