Commit 8b29117b56e557fd52345658156b7d5d62521b94

Authored by 姜超
1 parent 17c19d3a

feature(*): 人员数据汇出门店数据

人员数据汇出门店数据
doc/2023-05-18_update.sql
... ... @@ -9,6 +9,9 @@ ALTER TABLE `fw_morax`.`eval_indicator`
9 9 ADD COLUMN `role_codes` varchar(2048) NULL COMMENT '授权角色' AFTER `role_name`,
10 10 ADD COLUMN `role_names` varchar(2048) NULL COMMENT '授权角色名称' AFTER `role_codes`;
11 11  
  12 +ALTER TABLE `fw_morax`.`eval_indicator_value`
  13 + MODIFY COLUMN `shop_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '门店名称' AFTER `shop_id`;
  14 +
12 15 -- 2024年4月3日
13 16 ALTER TABLE `fw_morax`.`eval_group_user`
14 17 ADD COLUMN `staff_status` tinyint(8) NULL COMMENT '当前员工状态:1->试用,2->正式,8->待离职,9->离职' AFTER `data_date`;
... ...
fw-morax-rpc/src/main/java/cn/fw/morax/rpc/erp/ErpRpcService.java
... ... @@ -475,7 +475,13 @@ public class ErpRpcService {
475 475 }
476 476 try {
477 477 final Date startTime = DateUtil.localDateTime2Date(dataDate.with(TemporalAdjusters.firstDayOfMonth()).atTime(0, 0, 1));
478   - final Date endTime = DateUtil.localDateTime2Date(dataDate.atTime(23, 59, 59));
  478 + Date endTime;
  479 + //结束时间与当前时间比较,结束时间必须是过去时间
  480 + if (dataDate.compareTo(LocalDate.now()) >= 0) {
  481 + endTime = DateUtil.localDateTime2Date(LocalDateTime.now().minusMinutes(1));
  482 + } else {
  483 + endTime = DateUtil.localDateTime2Date(dataDate.atTime(23, 59, 59));
  484 + }
479 485 HRBatchRangeReq roleRangeDto = new HRBatchRangeReq();
480 486 roleRangeDto.setGroupId(groupId);
481 487 roleRangeDto.setRoleCode(roleCode);
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/biz/RpcCommonService.java
... ... @@ -106,12 +106,14 @@ public class RpcCommonService {
106 106 for (HRoleAuthRangeVO hRoleAuthRangeVO : hRoleAuthRangeVos) {
107 107 HRoleAuthRangeDayVO rangeDayVo = PublicUtil.copy(hRoleAuthRangeVO, HRoleAuthRangeDayVO.class);
108 108 LocalDate authStartTime = DateUtil.date2LocalDate(hRoleAuthRangeVO.getStartTime());
  109 + rangeDayVo.setStartTime(authStartTime);
109 110 //角色授权开始时间 在 月度开始时间之前
110   - if (authStartTime.compareTo(monthlyFirstDate) < 0) {
  111 + if (monthlyFirstDate.compareTo(authStartTime) > 0) {
111 112 rangeDayVo.setStartTime(monthlyFirstDate);
112 113 }
113 114 //角色授权结束时间 在 计算日期之后
114 115 LocalDate authEndTime = DateUtil.date2LocalDate(hRoleAuthRangeVO.getEndTime());
  116 + rangeDayVo.setEndTime(authEndTime);
115 117 if (authEndTime.compareTo(calcDate) > 0) {
116 118 rangeDayVo.setEndTime(calcDate);
117 119 }
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/component/EvalIndicatorScoreSaveObserver.java
... ... @@ -102,7 +102,7 @@ public class EvalIndicatorScoreSaveObserver {
102 102 List<EvalIndicatorScoreBO> monthlyScoreBos = this.getShopScoreBO(monthly, dataDate, groupId);
103 103  
104 104 List<EvalIndicatorValue> shopValues = this.extractShopValue(dataDate, groupId, monthlyScoreBos);
105   - List<EvalIndicatorValue> staffValues = this.extractUserValue(evalIndicator, monthly, dataDate, groupId, monthlyScoreBos);
  105 + List<EvalIndicatorValue> staffValues = this.extractUserValue(evalIndicator, dataDate, groupId, monthlyScoreBos);
106 106 evalIndicatorCommonService.saveIndicatorValue(shopValues);
107 107 evalIndicatorCommonService.saveIndicatorValue(staffValues);
108 108 }
... ... @@ -113,8 +113,8 @@ public class EvalIndicatorScoreSaveObserver {
113 113 final LocalDate endTime = monthly.atEndOfMonth();
114 114 List<EvalIndicatorImportDetailScore> showroomScores = evalIndicatorImportDetailScoreService.list(Wrappers.<EvalIndicatorImportDetailScore>lambdaQuery()
115 115 .eq(EvalIndicatorImportDetailScore::getIndicatorCode, evalIndicatorCodeVal.getShowroomScore())
116   - .le(EvalIndicatorImportDetailScore::getDataDate, startTime)
117   - .ge(EvalIndicatorImportDetailScore::getDataDate, endTime)
  116 + .ge(EvalIndicatorImportDetailScore::getDataDate, startTime)
  117 + .le(EvalIndicatorImportDetailScore::getDataDate, endTime)
118 118 .isNull(EvalIndicatorImportDetailScore::getErrorType)
119 119 .eq(EvalIndicatorImportDetailScore::getValid, Boolean.TRUE)
120 120 .eq(EvalIndicatorImportDetailScore::getGroupId, groupId)
... ... @@ -148,6 +148,7 @@ public class EvalIndicatorScoreSaveObserver {
148 148 EvalIndicatorValue indicatorValue = new EvalIndicatorValue();
149 149 indicatorValue.setUserId(-1L);
150 150 indicatorValue.setShopId(scoreBO.getShopId());
  151 + indicatorValue.setShopName(scoreBO.getShopName());
151 152 indicatorValue.setIndicatorValue(BigDecimal.ZERO);
152 153 indicatorValue.setIndicatorCode(evalIndicatorCodeVal.getShowroomScore());
153 154 indicatorValue.setDimensionType(DimensionTypeEnum.SHOP);
... ... @@ -164,16 +165,16 @@ public class EvalIndicatorScoreSaveObserver {
164 165  
165 166 }
166 167  
167   - public List<EvalIndicatorValue> extractUserValue(EvalIndicator evalIndicator, YearMonth monthly, LocalDate dataDate, Long groupId, List<EvalIndicatorScoreBO> scoreBos) {
168   - final LocalDate endTime = monthly.atEndOfMonth();
  168 + public List<EvalIndicatorValue> extractUserValue(EvalIndicator evalIndicator, LocalDate dataDate, Long groupId, List<EvalIndicatorScoreBO> scoreBos) {
169 169 List<String> roleCodes = evalIndicator.getRoleCodes();
170 170  
171 171 List<Long> shopIds = scoreBos.stream().map(EvalIndicatorScoreBO::getShopId).distinct().collect(Collectors.toList());
172 172 Map<Long, Set<Long>> userAuthShopIds = new HashMap<>();
  173 + Map<Long, String> userNameMap = new HashMap<>();
173 174 //角色维度
174 175 for (String roleCode : roleCodes) {
175 176 //角色授权天数
176   - List<HRoleAuthRangeDayVO> authRangeDayVos = rpcCommonService.roleMonthlyAuthDay(groupId, endTime, roleCode, new ArrayList<>(shopIds));
  177 + List<HRoleAuthRangeDayVO> authRangeDayVos = rpcCommonService.roleMonthlyAuthDay(groupId, dataDate, roleCode, new ArrayList<>(shopIds));
177 178 //门店角色授权天数
178 179 Map<Long, List<HRoleAuthRangeDayVO>> shopAuths = authRangeDayVos.stream().collect(Collectors.groupingBy(HRoleAuthRangeDayVO::getRangeValue));
179 180 for (Map.Entry<Long, List<HRoleAuthRangeDayVO>> entry : shopAuths.entrySet()) {
... ... @@ -189,6 +190,7 @@ public class EvalIndicatorScoreSaveObserver {
189 190 if (! userAuthShopIds.containsKey(rangeDayVO.getUserId())) {
190 191 userAuthShopIds.put(rangeDayVO.getUserId(), new HashSet<>());
191 192 }
  193 + userNameMap.put(rangeDayVO.getUserId(), rangeDayVO.getUserName());
192 194 userAuthShopIds.get(rangeDayVO.getUserId()).add(rangeDayVO.getRangeValue());
193 195 }
194 196 }
... ... @@ -206,7 +208,9 @@ public class EvalIndicatorScoreSaveObserver {
206 208 .map(EvalIndicatorScoreBO::getTotalScore).reduce(BigDecimal.ZERO, BigDecimal::add);
207 209 EvalIndicatorValue value = new EvalIndicatorValue();
208 210 value.setUserId(userId);
  211 + value.setUserName(userNameMap.getOrDefault(userId, ""));
209 212 value.setShopId(-1L);
  213 + value.setShopName("");
210 214 value.setIndicatorValue(BigDecimal.ZERO);
211 215 value.setIndicatorCode(evalIndicatorCodeVal.getShowroomScore());
212 216 value.setDimensionType(DimensionTypeEnum.STAFF);
... ...