|
|
@@ -4,6 +4,7 @@ import java.math.BigDecimal;
|
|
4
|
4
|
import java.math.RoundingMode;
|
|
5
|
5
|
import java.util.ArrayList;
|
|
6
|
6
|
import java.util.Collections;
|
|
|
7
|
+import java.util.HashMap;
|
|
7
|
8
|
import java.util.List;
|
|
8
|
9
|
import java.util.Map;
|
|
9
|
10
|
import java.util.stream.Collectors;
|
|
|
@@ -14,6 +15,7 @@ import cn.hutool.core.util.ObjUtil;
|
|
14
|
15
|
import cn.hutool.core.util.StrUtil;
|
|
15
|
16
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
16
|
17
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
18
|
+import com.sundot.airport.common.core.domain.entity.SysDept;
|
|
17
|
19
|
import com.sundot.airport.common.core.domain.entity.SysUser;
|
|
18
|
20
|
import com.sundot.airport.common.dto.SysPersonnelUserConditionDto;
|
|
19
|
21
|
import com.sundot.airport.common.dto.SysUserLeaderConditionDto;
|
|
|
@@ -24,6 +26,7 @@ import com.sundot.airport.common.enums.BasePerformanceIndicatorExemptionRuleEnum
|
|
24
|
26
|
import com.sundot.airport.common.enums.BasePerformanceIndicatorLeaveTypeEnum;
|
|
25
|
27
|
import com.sundot.airport.common.enums.BasePerformanceIndicatorQcDeptTypeEnum;
|
|
26
|
28
|
import com.sundot.airport.common.enums.BasePerformanceIndicatorRewardPunishmentTypeTypeEnum;
|
|
|
29
|
+import com.sundot.airport.common.enums.DeptTypeEnum;
|
|
27
|
30
|
import com.sundot.airport.common.enums.RoleTypeEnum;
|
|
28
|
31
|
import com.sundot.airport.common.event.PersonnelEvent;
|
|
29
|
32
|
import com.sundot.airport.common.exception.ServiceException;
|
|
|
@@ -36,6 +39,7 @@ import com.sundot.airport.personnel.service.IPersonnelMonthlyAssessmentIndicator
|
|
36
|
39
|
import com.sundot.airport.personnel.service.IPersonnelMonthlyAssessmentIndicatorRewardPunishmentDetailService;
|
|
37
|
40
|
import com.sundot.airport.system.domain.BasePerformanceIndicatorCategory;
|
|
38
|
41
|
import com.sundot.airport.system.service.IBasePerformanceIndicatorCategoryService;
|
|
|
42
|
+import com.sundot.airport.system.service.ISysDeptService;
|
|
39
|
43
|
import com.sundot.airport.system.service.ISysUserService;
|
|
40
|
44
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
41
|
45
|
import org.springframework.context.ApplicationEventPublisher;
|
|
|
@@ -69,6 +73,8 @@ public class PersonnelNonCadreMonthlyAssessmentServiceImpl extends ServiceImpl<P
|
|
69
|
73
|
@Autowired
|
|
70
|
74
|
private ISysUserService sysUserService;
|
|
71
|
75
|
@Autowired
|
|
|
76
|
+ private ISysDeptService sysDeptService;
|
|
|
77
|
+ @Autowired
|
|
72
|
78
|
private ApplicationEventPublisher eventPublisher;
|
|
73
|
79
|
|
|
74
|
80
|
/**
|
|
|
@@ -267,6 +273,20 @@ public class PersonnelNonCadreMonthlyAssessmentServiceImpl extends ServiceImpl<P
|
|
267
|
273
|
*/
|
|
268
|
274
|
@Override
|
|
269
|
275
|
public void doImprove(PersonnelNonCadreMonthlyAssessment result) {
|
|
|
276
|
+ // 大队
|
|
|
277
|
+ Map<Long, Long> userBrigadeIdMap = new HashMap<>();
|
|
|
278
|
+ SysDept brigadeQuery = new SysDept();
|
|
|
279
|
+ brigadeQuery.setDeptType(DeptTypeEnum.BRIGADE.getCode());
|
|
|
280
|
+ List<SysDept> brigadeList = sysDeptService.selectDeptInfoAll(brigadeQuery);
|
|
|
281
|
+ Map<Long, String> brigadeMap = brigadeList.stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getDeptName));
|
|
|
282
|
+ brigadeList.forEach(brigade -> {
|
|
|
283
|
+ List<SysUser> sysUserList = sysUserService.selectUserByDeptId(brigade.getDeptId());
|
|
|
284
|
+ sysUserList.forEach(sysUser -> {
|
|
|
285
|
+ userBrigadeIdMap.put(sysUser.getUserId(), brigade.getDeptId());
|
|
|
286
|
+ });
|
|
|
287
|
+ });
|
|
|
288
|
+ result.setBrigadeId(userBrigadeIdMap.get(result.getUserId()));
|
|
|
289
|
+ result.setBrigadeName(brigadeMap.get(result.getBrigadeId()));
|
|
270
|
290
|
List<BasePerformanceIndicatorCategory> indicatorCategoryyList = basePerformanceIndicatorCategoryService.selectBasePerformanceIndicatorCategoryListTree(new BasePerformanceIndicatorCategory());
|
|
271
|
291
|
// 红线指标
|
|
272
|
292
|
BasePerformanceIndicatorCategory redLineIndexCategory = indicatorCategoryyList.stream().filter(item -> StrUtil.equals("红线指标", item.getName())).findFirst().orElse(null);
|