e2386ce2
姜超
feature(*): 考评计算得分修改
|
1
2
3
4
|
package cn.fw.morax.service.biz.eval;
import cn.fw.ehr.sdk.api.enums.StaffShopTypeEnum;
import cn.fw.morax.common.utils.PublicUtil;
|
71e4eae7
姜超
feature(*): 绩效分数展示修改
|
5
6
7
|
import cn.fw.morax.domain.db.eval.*;
import cn.fw.morax.domain.enums.EvalScopeEnum;
import cn.fw.morax.domain.enums.EvalShopPoolStatusEnum;
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
8
9
10
11
12
|
import cn.fw.morax.rpc.ehr.EhrRpcService;
import cn.fw.morax.rpc.ehr.dto.StaffBaseInfoDTO;
import cn.fw.morax.rpc.ehr.dto.StaffShopInfoDTO;
import cn.fw.morax.rpc.oop.OopRpcService;
import cn.fw.morax.rpc.oop.dto.ShopDTO;
|
71e4eae7
姜超
feature(*): 绩效分数展示修改
|
13
|
import cn.fw.morax.service.data.eval.EvalGroupRewardDimService;
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
14
15
16
17
18
19
|
import cn.fw.morax.service.data.eval.EvalShopPoolService;
import cn.fw.morax.service.data.eval.EvalUserPoolService;
import cn.fw.morax.service.data.salary.SalaryGroupUserService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
|
9f43aee0
姜超
feature(*): 计算考评修改
|
20
|
import org.apache.commons.collections4.map.MultiKeyMap;
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
21
22
23
24
|
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
25
26
|
import java.time.LocalDate;
import java.time.YearMonth;
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @author : kurisu
* @version : 1.0
* @className : SalaryPoolCommonService
* @description : 绩效池公用方法
* @date : 2022-09-27 11:40
*/
@Slf4j
@Service
@AllArgsConstructor
public class EvalPoolCommonService {
private SalaryGroupUserService salaryGroupUserService;
private EvalUserPoolService evalUserPoolService;
|
71e4eae7
姜超
feature(*): 绩效分数展示修改
|
45
|
private EvalGroupRewardDimService evalGroupRewardDimService;
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
46
47
48
49
|
private EvalShopPoolService evalShopPoolService;
private EhrRpcService ehrRpcService;
private OopRpcService oopRpcService;
|
6216249c
姜超
feature(*): 修改bug
|
50
|
public Map<Long, EvalUserPool> inspectionUserPoolMap(EvalGroup evalGroup, EvalGroupRankStage evalGroupRankStage, List<EvalGroupUser> users, LocalDate localDate) {
|
e1206478
姜超
feature(*): 修改考评审批
|
51
52
53
|
if (PublicUtil.isEmpty(users)) {
return new HashMap<>();
}
|
da42a3d8
姜超
feature(*): 计算考评代码优化
|
54
|
Set<Long> userIds = users.stream().map(EvalGroupUser::getUserId).collect(Collectors.toSet());
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
55
|
List<EvalUserPool> pools = evalUserPoolService.list(Wrappers.<EvalUserPool>lambdaQuery()
|
6216249c
姜超
feature(*): 修改bug
|
56
|
.eq(EvalUserPool::getEvalGroupRankStageId, evalGroupRankStage.getId())
|
d83a50ee
姜超
feature(*): 查询修改
|
57
|
.eq(EvalUserPool::getMonthly, YearMonth.from(localDate))
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
58
59
60
61
|
.in(EvalUserPool::getUserId, userIds)
.eq(EvalUserPool::getYn, Boolean.TRUE)
);
|
9f43aee0
姜超
feature(*): 计算考评修改
|
62
63
64
65
66
|
//人员可能在考评组中出现多次(调岗)
MultiKeyMap<Long, EvalUserPool> userShopPostShopIdMap = new MultiKeyMap<>();
for (EvalUserPool pool : pools) {
userShopPostShopIdMap.put(pool.getUserId(), pool.getShopId(), pool.getPostId(), pool);
}
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
67
68
|
for (EvalGroupUser user : users) {
|
9f43aee0
姜超
feature(*): 计算考评修改
|
69
|
if (! userShopPostShopIdMap.containsKey(user.getUserId(), user.getShopId(), user.getPostId())) {
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
70
|
EvalUserPool userPool = inspectionUserPool(user);
|
9f43aee0
姜超
feature(*): 计算考评修改
|
71
|
userShopPostShopIdMap.put(user.getUserId(), user.getShopId(), user.getPostId(), userPool);
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
72
73
|
}
}
|
9f43aee0
姜超
feature(*): 计算考评修改
|
74
75
76
77
78
79
|
Map<Long, EvalUserPool> userPoolMap = userShopPostShopIdMap.values().stream().collect(Collectors.toMap(EvalUserPool::getUserId, Function.identity(), (v1, v2) -> {
log.error("同一个考评组、考评人员出现两条考评池数据。用户id:{},考评组:{}", v1.getUserId(), evalGroup);
return v1;
}));
|
da42a3d8
姜超
feature(*): 计算考评代码优化
|
80
|
return userPoolMap;
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
81
82
|
}
|
da42a3d8
姜超
feature(*): 计算考评代码优化
|
83
|
|
bc484bc4
姜超
feature(*): 定时任务发送修改
|
84
|
public Map<Long, EvalShopPool> inspectionShopPools(EvalGroup evalGroup, LocalDate localDate, List<Long> distShopIds) {
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
85
86
|
Set<Long> evalGroupShopIds = new HashSet<>(evalGroup.getShopIds());
List<EvalShopPool> pools = evalShopPoolService.list(Wrappers.<EvalShopPool>lambdaQuery()
|
71e4eae7
姜超
feature(*): 绩效分数展示修改
|
87
|
.eq(EvalShopPool::getEvalGroupId, evalGroup.getId())
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
88
|
.in(EvalShopPool::getShopId, evalGroupShopIds)
|
f88aca41
姜超
feature(*): 查询门店考...
|
89
|
.eq(EvalShopPool::getMonthly, YearMonth.from(localDate))
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
90
91
92
|
.eq(EvalShopPool::getYn, Boolean.TRUE)
);
|
da42a3d8
姜超
feature(*): 计算考评代码优化
|
93
94
95
96
97
|
Map<Long, EvalShopPool> shopPoolMap = pools.stream().collect(Collectors.toMap(EvalShopPool::getShopId, Function.identity(), (v1, v2) -> {
log.error("同一个考评组、考评门店出现两条考评池数据。门店id:{},考评组:{}", v1.getShopId(), evalGroup);
return v1;
}));
|
9f43aee0
姜超
feature(*): 计算考评修改
|
98
|
for (Long shopId : evalGroupShopIds) {
|
da42a3d8
姜超
feature(*): 计算考评代码优化
|
99
|
if (! shopPoolMap.containsKey(shopId)) {
|
9f43aee0
姜超
feature(*): 计算考评修改
|
100
101
102
|
EvalShopPoolStatusEnum status = (distShopIds.contains(shopId))
? EvalShopPoolStatusEnum.CALC_REWARD : EvalShopPoolStatusEnum.NO_REWARD;
EvalShopPool shopPool = this.createShopPoolData(shopId, evalGroup, localDate, status);
|
da42a3d8
姜超
feature(*): 计算考评代码优化
|
103
104
|
shopPoolMap.put(shopId, shopPool);
}
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
105
|
}
|
da42a3d8
姜超
feature(*): 计算考评代码优化
|
106
|
return shopPoolMap;
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
107
108
|
}
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
109
|
@Transactional(rollbackFor = Exception.class)
|
71e4eae7
姜超
feature(*): 绩效分数展示修改
|
110
|
public EvalShopPool createShopPoolData(Long shopId, EvalGroup evalGroup, LocalDate localDate, EvalShopPoolStatusEnum status) {
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
111
112
113
114
|
ShopDTO shopDTO = oopRpcService.queryShop(shopId);
EvalShopPool evalShopPool = new EvalShopPool();
evalShopPool.setEgc(evalGroup.getEgc());
evalShopPool.setEvalGroupId(evalGroup.getId());
|
5e6a6922
姜超
feature(*): 筛选修改
|
115
116
|
evalShopPool.setEvalGroupRankId(evalGroup.getEvalGroupRankId());
evalShopPool.setEvalGroupRankStageId(evalGroup.getEvalGroupRankStageId());
|
8945afe5
姜超
feature(*): 考评保存修改
|
117
|
// evalShopPool.setEvalId(evalGroup.getEvalId());
|
71e4eae7
姜超
feature(*): 绩效分数展示修改
|
118
|
evalShopPool.setStatus(status);
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
119
120
|
evalShopPool.setShopId(shopId);
evalShopPool.setShopName(shopDTO.getShortName());
|
08c31209
姜超
feature(*): 考评详情
|
121
|
evalShopPool.setScore(BigDecimal.ZERO);
|
c1b3c16f
姜超
feature(*): 门店考评池查询
|
122
|
evalShopPool.setScoreRatio(BigDecimal.ZERO);
|
f88aca41
姜超
feature(*): 查询门店考...
|
123
|
evalShopPool.setMonthly(YearMonth.from(localDate));
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
124
125
126
127
128
129
130
131
132
133
134
135
136
|
evalShopPool.setReward(BigDecimal.ZERO);
evalShopPool.setGroupId(evalGroup.getGroupId());
evalShopPool.setYn(Boolean.TRUE);
evalShopPoolService.save(evalShopPool);
return evalShopPool;
}
/**
* 查询薪酬池
*
* @param user
* @return
*/
|
e1206478
姜超
feature(*): 修改考评审批
|
137
|
@Transactional(rollbackFor = Exception.class)
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
138
139
|
public EvalUserPool inspectionUserPool(EvalGroupUser user) {
EvalUserPool evalUserPool = evalUserPoolService.getOne(Wrappers.<EvalUserPool>lambdaQuery()
|
6216249c
姜超
feature(*): 修改bug
|
140
|
.eq(EvalUserPool::getEvalGroupRankStageId, user.getEvalGroupRankStageId())
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
141
|
.eq(EvalUserPool::getUserId, user.getUserId())
|
9f43aee0
姜超
feature(*): 计算考评修改
|
142
143
|
.eq(EvalUserPool::getPostId, user.getPostId())
.eq(EvalUserPool::getShopId, user.getShopId())
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
144
145
146
|
.eq(EvalUserPool::getMonthly, YearMonth.from(user.getDataDate()))
.eq(EvalUserPool::getYn, Boolean.TRUE)
, Boolean.FALSE);
|
d83a50ee
姜超
feature(*): 查询修改
|
147
148
|
if (PublicUtil.isNotEmpty(evalUserPool)) {
return evalUserPool;
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
149
|
}
|
6216249c
姜超
feature(*): 修改bug
|
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
// evalUserPool = evalUserPoolService.getOne(Wrappers.<EvalUserPool>lambdaQuery()
// .eq(EvalUserPool::getEvalGroupRankStageId, user.getEvalGroupRankStageId())
// .eq(EvalUserPool::getUserId, user.getUserId())
// .eq(EvalUserPool::getMonthly, YearMonth.from(user.getDataDate()).minusMonths(1))
// .eq(EvalUserPool::getYn, Boolean.TRUE)
// , Boolean.FALSE);
// if (PublicUtil.isNotEmpty(evalUserPool)) {
// evalUserPoolService.update(Wrappers.<EvalUserPool>lambdaUpdate()
// .eq(EvalUserPool::getId, evalUserPool.getId())
// .set(EvalUserPool::getMonthly, YearMonth.from(user.getDataDate()))
// .set(EvalUserPool::getUpdateTime, new Date())
// );
// evalUserPool.setMonthly(YearMonth.from(user.getDataDate()));
// return evalUserPool;
// }
|
d83a50ee
姜超
feature(*): 查询修改
|
165
|
return this.createUserPoolData(user);
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
}
/**
* 获取员工社保公积金门店
*
* @param userId
*/
private StaffShopInfoDTO getFundShopInfo(Long userId) {
StaffBaseInfoDTO staff = ehrRpcService.queryStaffBaseInfo(userId);
if (PublicUtil.isEmpty(staff) || PublicUtil.isEmpty(staff.getStaffShopList())) {
log.error("员工没有社保公积金门店,userId:{}", userId);
}
return staff.getStaffShopList().stream()
.filter(shop -> StaffShopTypeEnum.FUND_SHOP.getValue().equals(shop.getType()))
.findFirst()
.orElse(null);
}
@Transactional(rollbackFor = Exception.class)
public EvalUserPool modifyPoolData(EvalUserPool pool, EvalGroupUser user) {
pool.setEvalGroupId(user.getEvalGroupId());
pool.setShopId(user.getShopId());
pool.setShopName(user.getShopName());
pool.setEgc(user.getEgc());
evalUserPoolService.updateById(pool);
return pool;
}
@Transactional(rollbackFor = Exception.class)
public EvalUserPool createUserPoolData(EvalGroupUser user) {
EvalUserPool evalUserPool = new EvalUserPool();
|
f727712b
姜超
feature(*): 考评阶段指标上报
|
198
|
// evalUserPool.setEvalId(user.getEvalGroupRankId());
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
199
200
|
evalUserPool.setEgc(user.getEgc());
evalUserPool.setEvalGroupId(user.getEvalGroupId());
|
5e6a6922
姜超
feature(*): 筛选修改
|
201
202
|
evalUserPool.setEvalGroupRankId(user.getEvalGroupRankId());
evalUserPool.setEvalGroupRankStageId(user.getEvalGroupRankStageId());
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
203
204
205
206
207
208
|
evalUserPool.setUserId(user.getUserId());
evalUserPool.setUserName(user.getUserName());
evalUserPool.setPostId(user.getPostId());
evalUserPool.setPostName(user.getPostName());
evalUserPool.setShopId(user.getShopId());
evalUserPool.setShopName(user.getShopName());
|
da42a3d8
姜超
feature(*): 计算考评代码优化
|
209
|
evalUserPool.setScore(BigDecimal.ZERO);
|
c1b3c16f
姜超
feature(*): 门店考评池查询
|
210
|
evalUserPool.setScoreRatio(BigDecimal.ZERO);
|
bdcc7a51
姜超
feature(*): 查询指标排名
|
211
|
evalUserPool.setInclusion(Boolean.FALSE.equals(user.getIgnored()));
|
da42a3d8
姜超
feature(*): 计算考评代码优化
|
212
|
// evalUserPool.setScoreRatio(BigDecimal.ZERO);
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
213
214
|
evalUserPool.setReward(BigDecimal.ZERO);
evalUserPool.setMonthly(YearMonth.from(user.getDataDate()));
|
da42a3d8
姜超
feature(*): 计算考评代码优化
|
215
|
// evalUserPool.setRegular(Boolean.FALSE);
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
216
217
218
219
220
221
222
223
224
225
226
|
evalUserPool.setGroupId(user.getGroupId());
evalUserPool.setYn(Boolean.TRUE);
StaffShopInfoDTO staffShopInfoDTO = this.getFundShopInfo(user.getUserId());
if (PublicUtil.isNotEmpty(staffShopInfoDTO)) {
evalUserPool.setFundShopId(staffShopInfoDTO.getShopId());
evalUserPool.setFundShopName(staffShopInfoDTO.getShopName());
}
evalUserPoolService.save(evalUserPool);
return evalUserPool;
}
|
e2386ce2
姜超
feature(*): 考评计算得分修改
|
227
|
}
|