From 9cabf1b9295576705a886b77f5bc8823e55d8893 Mon Sep 17 00:00:00 2001 From: jiangchao Date: Tue, 11 Oct 2022 17:57:32 +0800 Subject: [PATCH] feature(salaryGroup): 薪酬组添加名称 --- doc/ddl.sql | 5 ++++- fw-morax-domain/src/main/java/cn/fw/morax/domain/db/salary/SalaryGroup.java | 4 ++++ fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/SalaryGroupDTO.java | 7 +++++++ fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/kpi/KpiGroupRankVO.java | 10 ++++++++-- fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/salary/SalaryGroupVO.java | 5 +++++ fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupBizService.java | 6 +++--- fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupRankBizService.java | 15 ++++++++++----- fw-morax-service/src/main/java/cn/fw/morax/service/biz/salary/SalaryGroupBizService.java | 17 +++++++++++++++++ 8 files changed, 58 insertions(+), 11 deletions(-) diff --git a/doc/ddl.sql b/doc/ddl.sql index 97bc3df..ef31f42 100644 --- a/doc/ddl.sql +++ b/doc/ddl.sql @@ -641,4 +641,7 @@ ALTER TABLE `fw_morax`.`kpi_pool` ALTER TABLE `fw_morax`.`kpi_group` ADD COLUMN `name` varchar(255) NULL COMMENT '绩效组名称' AFTER `id`, -ADD COLUMN `revoked_score_ratio` decimal(10, 4) NULL COMMENT '人员百分比,撤销D级得分率' AFTER `star_evaluation_type`; \ No newline at end of file +ADD COLUMN `revoked_score_ratio` decimal(10, 4) NULL COMMENT '人员百分比,撤销D级得分率' AFTER `star_evaluation_type`; + +ALTER TABLE `fw_morax`.`salary_group` + ADD COLUMN `name` varchar(255) NULL COMMENT '薪酬组名称' AFTER `id`; \ No newline at end of file diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/salary/SalaryGroup.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/salary/SalaryGroup.java index 0db7e5a..a1b8b64 100644 --- a/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/salary/SalaryGroup.java +++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/db/salary/SalaryGroup.java @@ -22,6 +22,10 @@ import java.util.List; @EqualsAndHashCode(callSuper = true) public class SalaryGroup extends BaseAuditableTimeEntity { /** + * 名称 + */ + private String name; + /** * 薪酬组编码 */ private String sgc; diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/SalaryGroupDTO.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/SalaryGroupDTO.java index 421b7d5..1d5a01f 100644 --- a/fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/SalaryGroupDTO.java +++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/SalaryGroupDTO.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.datatype.jsr310.deser.YearMonthDeserializer; import com.fasterxml.jackson.datatype.jsr310.ser.YearMonthSerializer; import lombok.Data; +import org.hibernate.validator.constraints.Length; import javax.validation.Valid; import javax.validation.constraints.NotBlank; @@ -28,6 +29,12 @@ import java.util.List; public class SalaryGroupDTO { private Long id; /** + * 名称 + */ + @NotBlank(message = "名称不能为空") + @Length(max = 255, message = "名称超出最大限制") + private String name; + /** * 薪酬组编码 */ private String sgc; diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/kpi/KpiGroupRankVO.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/kpi/KpiGroupRankVO.java index 9860997..cf2b7c9 100644 --- a/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/kpi/KpiGroupRankVO.java +++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/kpi/KpiGroupRankVO.java @@ -5,6 +5,7 @@ import lombok.Data; import java.math.BigDecimal; import java.util.List; +import java.util.Set; /** * @author : kurisu @@ -30,7 +31,7 @@ public class KpiGroupRankVO { /** * 岗位名称 */ - private List postNames; + private Set postNames; /** * 适用门店ids */ @@ -38,13 +39,18 @@ public class KpiGroupRankVO { /** * 适用门店名称 */ - private List shopNames; + private Set shopNames; /** * 绩效组编码 */ private List kgcs; /** + * 绩效组名称 + */ + private List kpiGroupNames; + + /** * 星级评定方式;1:绩效得分率 2:人员百分比 */ private StarEvaluationEnum starEvaluationType; diff --git a/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/salary/SalaryGroupVO.java b/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/salary/SalaryGroupVO.java index d5b7f5b..7b1d9d3 100644 --- a/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/salary/SalaryGroupVO.java +++ b/fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/salary/SalaryGroupVO.java @@ -20,6 +20,10 @@ public class SalaryGroupVO { */ private Long id; /** + * 名称 + */ + private String name; + /** * 岗位id */ private Long postId; @@ -68,6 +72,7 @@ public class SalaryGroupVO { public static SalaryGroupVO convertSalaryGroup(SalaryGroup salaryGroup) { SalaryGroupVO salaryGroupVo = new SalaryGroupVO(); salaryGroupVo.setId(salaryGroup.getId()); + salaryGroupVo.setName(salaryGroup.getName()); salaryGroupVo.setPostId(salaryGroup.getPostId()); salaryGroupVo.setPostName(salaryGroup.getPostName()); salaryGroupVo.setShopIds(salaryGroup.getShopIds()); diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupBizService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupBizService.java index f4bda53..f127531 100644 --- a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupBizService.java +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupBizService.java @@ -164,7 +164,7 @@ public class KpiGroupBizService { * @param dto */ public void checkKpi(KpiGroupDTO dto) { - checkNameRepetition(dto.getName(), dto.getId()); + checkNameRepetition(dto.getId(), dto.getName()); Long postId = dto.getPostId(); List shopIds = dto.getShopIds(); List effectKpis = kpiGroupService.getApprovingKpis(postId, shopIds, dto.getId(), dto.getBeginTime()); @@ -214,10 +214,10 @@ public class KpiGroupBizService { /** * 检查绩效组排名名称是否重复 * - * @param name * @param id + * @param name */ - public void checkNameRepetition(String name, Long id) { + public void checkNameRepetition(Long id, String name) { int count = kpiGroupService.count(Wrappers.lambdaQuery() .eq(KpiGroup::getName, name) .ne(PublicUtil.isNotEmpty(id), KpiGroup::getId, id) diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupRankBizService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupRankBizService.java index 4a8f9d7..c579ba1 100644 --- a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupRankBizService.java +++ b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/kpi/KpiGroupRankBizService.java @@ -82,10 +82,10 @@ public class KpiGroupRankBizService { Map kgcKpiGroupMap = kpiGroups.stream().collect(Collectors.toMap(KpiGroup::getKgc, Function.identity(), (v1, v2) -> v1)); for (KpiGroupRankVO kpiGroupRankVO : kpiGroupRankVOS) { kpiGroupRankVO.setPostIds(new ArrayList<>()); - kpiGroupRankVO.setPostNames(new ArrayList<>()); + kpiGroupRankVO.setPostNames(new HashSet<>()); kpiGroupRankVO.setShopIds(new ArrayList<>()); - kpiGroupRankVO.setShopNames(new ArrayList<>()); - kpiGroupRankVO.setKgcs(new ArrayList<>()); + kpiGroupRankVO.setShopNames(new HashSet<>()); + kpiGroupRankVO.setKpiGroupNames(new ArrayList<>()); for (String kgc : kpiGroupRankVO.getKgcs()) { if (kgcKpiGroupMap.containsKey(kgc)) { KpiGroup kpiGroup = kgcKpiGroupMap.get(kgc); @@ -93,7 +93,9 @@ public class KpiGroupRankBizService { kpiGroupRankVO.getPostNames().add(kpiGroup.getPostName()); kpiGroupRankVO.getShopIds().addAll(kpiGroup.getShopIds()); kpiGroupRankVO.getShopNames().addAll(kpiGroup.getShopNames()); - kpiGroupRankVO.getKgcs().add(kpiGroup.getKgc()); + if (PublicUtil.isNotEmpty(kpiGroup.getName())) { + kpiGroupRankVO.getKpiGroupNames().add(kpiGroup.getName()); + } } } } @@ -174,7 +176,7 @@ public class KpiGroupRankBizService { } kpiGroupRankVO.setStarLadders(starLaddersVOS); if (PublicUtil.isNotEmpty(kpiGroupRankVO.getRevokedScoreRatio())) { - kpiGroupRank.setRevokedScoreRatio(kpiGroupRankVO.getRevokedScoreRatio().multiply(Constant.ONE_HUNDRED)); + kpiGroupRankVO.setRevokedScoreRatio(kpiGroupRankVO.getRevokedScoreRatio().multiply(Constant.ONE_HUNDRED)); } return kpiGroupRankVO; } @@ -245,6 +247,9 @@ public class KpiGroupRankBizService { public void checkKgcRepetition(Long id, List kgcs) { List kpiGroupRankVOS = kpiGroupRankService.queryByKgcs(kgcs, id); List allKgcs = kpiGroupRankVOS.stream().map(KpiGroupRankVO::getKgcs).collect(ArrayList::new, List::addAll, List::addAll); + if (PublicUtil.isEmpty(allKgcs)) { + return; + } allKgcs.retainAll(kgcs); List repetitionKpis = kpiGroupService.list(Wrappers.lambdaQuery() .eq(KpiGroup::getStatus, SettingStatusEnum.BE_EFFECTIVE) diff --git a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/salary/SalaryGroupBizService.java b/fw-morax-service/src/main/java/cn/fw/morax/service/biz/salary/SalaryGroupBizService.java index 0b5d0cf..1b73a4e 100644 --- a/fw-morax-service/src/main/java/cn/fw/morax/service/biz/salary/SalaryGroupBizService.java +++ b/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; import cn.fw.morax.common.utils.MessageFormatUtil; import cn.fw.morax.common.utils.PublicUtil; import cn.fw.morax.domain.db.ApprovalRecord; +import cn.fw.morax.domain.db.kpi.KpiGroup; import cn.fw.morax.domain.db.salary.SalaryGroup; import cn.fw.morax.domain.db.salary.SalaryGroupProject; import cn.fw.morax.domain.db.salary.SalaryGroupProjectSettin; @@ -170,6 +171,7 @@ public class SalaryGroupBizService { * @param dto */ public void checkSalaryGroup(SalaryGroupDTO dto) { + checkNameRepetition(dto.getId(), dto.getName()); //原来的绩效组配置不能在审批中 if (PublicUtil.isNotEmpty(dto.getId())) { SalaryGroup salaryGroup = salaryGroupService.getById(dto.getId()); @@ -191,6 +193,21 @@ public class SalaryGroupBizService { } /** + * 检查薪酬组名称是否重复 + * + * @param id + * @param name + */ + public void checkNameRepetition(Long id, String name) { + int count = salaryGroupService.count(Wrappers.lambdaQuery() + .eq(SalaryGroup::getName, name) + .ne(PublicUtil.isNotEmpty(id), SalaryGroup::getId, id) + .eq(SalaryGroup::getYn, Boolean.TRUE) + ); + BV.isTrue(count <= 0, "薪酬组名称重复,请重新输入"); + } + + /** * 检查指标修改的权限 * * @param dto -- libgit2 0.22.2