Commit 2f26bf912638816dad8fcdba3467af7a193ea607
Merge branch 'jc-indicator-target-name-2024-4-18' into 'main'
feature(*): 根据配置算法计算最终薪酬,单位是元就四舍五入 根据配置算法计算最终薪酬,单位是元就四舍五入 See merge request !611
Showing
8 changed files
with
76 additions
and
3 deletions
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<Indicators, Long> { |
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 | } | ... | ... |