Commit 8b29117b56e557fd52345658156b7d5d62521b94
1 parent
17c19d3a
feature(*): 人员数据汇出门店数据
人员数据汇出门店数据
Showing
4 changed files
with
23 additions
and
8 deletions
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); | ... | ... |