Commit 250d1cccfe3f23f818bacb63817e6ade2ab0177e

Authored by 姜超
1 parent bc486aa0

feature(*): 根据配置算法计算最终薪酬,单位是元就四舍五入

根据配置算法计算最终薪酬,单位是元就四舍五入
doc/2023-05-18_update.sql
  1 +-- 2024年4月18日
  2 +ALTER TABLE `fw_morax`.`indicators`
  3 + ADD COLUMN `business_origin_name` varchar(255) NULL COMMENT '业务系统计算目标前名称' AFTER `business_unit`,
  4 +ADD COLUMN `business_origin_unit` varchar(255) NULL COMMENT '业务系统计算目标前单位' AFTER `business_origin_name`;
  5 +
1 6 -- 2024年4月11日
2 7 ALTER TABLE `fw_morax`.`eval_pool_indicator_detail`
3 8 ADD INDEX `query_index`(`pool_id`, `scope_type`, `stage_dim`, `eval_group_id`, `data_date`, `yn`) USING BTREE;
... ...
fw-morax-dao/src/main/resources/mapper/kpi/IndicatorsMapper.xml
... ... @@ -48,6 +48,8 @@
48 48 <result column="apply_types" property="applyTypes" typeHandler="cn.fw.common.data.mybatis.handler.IntegerListTypeHandler"/>
49 49 <result column="data_scope_types" property="dataScopeTypes" typeHandler="cn.fw.common.data.mybatis.handler.IntegerListTypeHandler"/>
50 50 <result column="enable" property="enable"/>
  51 + <result column="business_origin_name" property="businessOriginName"/>
  52 + <result column="business_origin_unit" property="businessOriginUnit"/>
51 53 </resultMap>
52 54  
53 55  
... ... @@ -65,6 +67,8 @@
65 67 <result column="report_path" property="reportPath"/>
66 68 <result column="origin_indicator_code" property="originIndicatorCode"/>
67 69 <result column="stage_target_type" property="stageTargetType"/>
  70 + <result column="business_origin_name" property="businessOriginName"/>
  71 + <result column="business_origin_unit" property="businessOriginUnit"/>
68 72 <result column="unit" property="unit"/>
69 73 <result column="role_codes" property="roleCodes" typeHandler="cn.fw.common.data.mybatis.handler.StringListTypeHandler"/>
70 74 <result column="role_names" property="roleNames" typeHandler="cn.fw.common.data.mybatis.handler.StringListTypeHandler"/>
... ... @@ -76,7 +80,7 @@
76 80 <sql id="all_columns">
77 81 id, indicator_code, indicator_name,business_name, sys_id, sys_name, sys_prefix, role_type, target_type, role_codes,data_type,
78 82 apply_types,data_scope_types,inner_indicator,role_names, enable, report_path, stage_target_type, origin_indicator_code, unit,
79   - create_time, update_time, yn
  83 + business_origin_name,business_origin_unit,create_time, update_time, yn
80 84 </sql>
81 85  
82 86 <!-- <foreach collection="dto.roleCodes" item="roleCode" separator=" OR " open="(" close=")">-->
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/kpi/Indicators.java
... ... @@ -122,7 +122,16 @@ public class Indicators extends BaseAuditableTimeEntity&lt;Indicators, Long&gt; {
122 122 /**
123 123 * 业务报表单位
124 124 */
125   -// @NotNull(message = "业务报表单位不能为空")
126 125 private String businessUnit;
127 126  
  127 + /**
  128 + * 业务系统计算目标前名称
  129 + */
  130 + private String businessOriginName;
  131 +
  132 + /**
  133 + * 业务系统计算目标前单位
  134 + */
  135 + private String businessOriginUnit;
  136 +
128 137 }
129 138 \ No newline at end of file
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/kpi/IndicatorsDTO.java
... ... @@ -141,6 +141,16 @@ public class IndicatorsDTO {
141 141 private String businessUnit;
142 142  
143 143 /**
  144 + * 业务系统计算目标前名称
  145 + */
  146 + private String businessOriginName;
  147 +
  148 + /**
  149 + * 业务系统计算目标前目标
  150 + */
  151 + private String businessOriginUnit;
  152 +
  153 + /**
144 154 * 转换为db对象
145 155 * @return
146 156 */
... ... @@ -183,6 +193,12 @@ public class IndicatorsDTO {
183 193 if (PublicUtil.isNotEmpty(this.getBusinessUnit())) {
184 194 indicators.setBusinessUnit(this.getBusinessUnit());
185 195 }
  196 + if (PublicUtil.isNotEmpty(this.getBusinessOriginName())) {
  197 + indicators.setBusinessOriginName(this.getBusinessOriginName());
  198 + }
  199 + if (PublicUtil.isNotEmpty(this.getBusinessOriginUnit())) {
  200 + indicators.setBusinessOriginUnit(this.getBusinessOriginUnit());
  201 + }
186 202 return indicators;
187 203 }
188 204  
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/kpi/IndicatorsVO.java
... ... @@ -153,6 +153,16 @@ public class IndicatorsVO {
153 153 private Boolean hasStageTarget;
154 154  
155 155 /**
  156 + * 业务系统计算目标前名称
  157 + */
  158 + private String businessOriginName;
  159 +
  160 + /**
  161 + * 业务系统计算目标前单位
  162 + */
  163 + private String businessOriginUnit;
  164 +
  165 + /**
156 166 * 组合指标
157 167 */
158 168 private List<IndicatorsVO> combines;
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/kpi/QueryConditionIndicatorsListVO.java
... ... @@ -109,6 +109,16 @@ public class QueryConditionIndicatorsListVO {
109 109 */
110 110 private TargetTypeEnum stageTargetType;
111 111  
  112 + /**
  113 + * 业务系统计算目标前名称
  114 + */
  115 + private String businessOriginName;
  116 +
  117 + /**
  118 + * 业务系统计算目标前单位
  119 + */
  120 + private String businessOriginUnit;
  121 +
112 122 ///**
113 123 // * 台阶数据类型;1:数量 2:百分比 3:金额
114 124 // */
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/biz/salary/SalaryCalcBizService.java
... ... @@ -533,10 +533,14 @@ public class SalaryCalcBizService {
533 533  
534 534 private void setTotal(SalaryPool pool, List<SalaryPoolDetail> detailList) {
535 535 BigDecimal total = calSalaryTotal(detailList);
  536 + //根据配置算法计算最终薪酬,单位是元就四舍五入
  537 + SalaryUnitEnum salaryUnit = salarySettingCommonService.getSalaryUnit(pool.getGroupId());
  538 + if (SalaryUnitEnum.YUAN.equals(salaryUnit)) {
  539 + total = total.setScale(0, BigDecimal.ROUND_HALF_UP);
  540 + }
536 541 pool.setReward(total);
537 542 }
538 543  
539   -
540 544 /**
541 545 * 计算总薪酬++
542 546 * @param detailList
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/biz/salary/SalarySettingCommonService.java
... ... @@ -3,7 +3,10 @@ package cn.fw.morax.service.biz.salary;
3 3 import cn.fw.morax.common.utils.MessageFormatUtil;
4 4 import cn.fw.morax.common.utils.PublicUtil;
5 5 import cn.fw.morax.domain.db.salary.SalaryClosure;
  6 +import cn.fw.morax.domain.db.salary.SalaryGeneralSettin;
  7 +import cn.fw.morax.domain.enums.SalaryUnitEnum;
6 8 import cn.fw.morax.service.data.salary.SalaryClosureService;
  9 +import cn.fw.morax.service.data.salary.SalaryGeneralSettinService;
7 10 import com.alibaba.fastjson.JSON;
8 11 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
9 12 import lombok.AllArgsConstructor;
... ... @@ -30,6 +33,7 @@ import java.util.List;
30 33 @AllArgsConstructor
31 34 public class SalarySettingCommonService {
32 35  
  36 + private SalaryGeneralSettinService salaryGeneralSettinService;
33 37 private SalaryClosureService salaryClosureService;
34 38  
35 39 /**
... ... @@ -250,4 +254,15 @@ public class SalarySettingCommonService {
250 254 salaryClosureService.updateById(salaryClosure);
251 255 }
252 256  
  257 + /**
  258 + * 获取集团薪酬单位
  259 + */
  260 + public SalaryUnitEnum getSalaryUnit(Long groupId) {
  261 + SalaryGeneralSettin setting = salaryGeneralSettinService.getByGroup(groupId);
  262 + if (PublicUtil.isEmpty(setting) || PublicUtil.isEmpty(setting.getSalaryUnit())) {
  263 + return SalaryUnitEnum.FEN;
  264 + }
  265 + return setting.getSalaryUnit();
  266 + }
  267 +
253 268 }
... ...