Commit bcb8ac08c2985a5404f23938283c20ac640c0749

Authored by 张志伟
2 parents 17d0c352 3a93dfe7

Merge branch 'main-fix' into 'main'

考评录入修改

考评录入修改

See merge request !66
fw-morax-domain/src/main/java/cn/fw/morax/domain/dto/EvalIndicatorDTO.java
@@ -27,17 +27,17 @@ public class EvalIndicatorDTO { @@ -27,17 +27,17 @@ public class EvalIndicatorDTO {
27 @Length(max = 255, message = "指标名称超出最大长度限制") 27 @Length(max = 255, message = "指标名称超出最大长度限制")
28 private String name; 28 private String name;
29 29
30 - /**  
31 - * 归属系统id  
32 - */  
33 - @NotNull(message = "归属系统不能为空")  
34 - private Long sysId;  
35 -  
36 - /**  
37 - * 归属系统名称  
38 - */  
39 - @NotNull(message = "归属系统名称不能为空")  
40 - private String sysName; 30 +// /**
  31 +// * 归属系统id
  32 +// */
  33 +// @NotNull(message = "归属系统不能为空")
  34 +// private Long sysId;
  35 +//
  36 +// /**
  37 +// * 归属系统名称
  38 +// */
  39 +// @NotNull(message = "归属系统名称不能为空")
  40 +// private String sysName;
41 41
42 /** 42 /**
43 * 数据类型;1:数量 2:百分比 3:金额 43 * 数据类型;1:数量 2:百分比 3:金额
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalIndicatorImportRecordVO.java
@@ -10,6 +10,7 @@ import lombok.experimental.Accessors; @@ -10,6 +10,7 @@ import lombok.experimental.Accessors;
10 10
11 import java.time.LocalDate; 11 import java.time.LocalDate;
12 import java.util.Date; 12 import java.util.Date;
  13 +import java.util.List;
13 14
14 /** 15 /**
15 * <p> 16 * <p>
@@ -100,4 +101,15 @@ public class EvalIndicatorImportRecordVO{ @@ -100,4 +101,15 @@ public class EvalIndicatorImportRecordVO{
100 * 创建时间 101 * 创建时间
101 */ 102 */
102 private Date createTime; 103 private Date createTime;
  104 +
  105 + /**
  106 + * 保存的key
  107 + */
  108 + private String key;
  109 +
  110 + /**
  111 + * 导入详情
  112 + */
  113 + private List<EvalIndicatorImportDetailVO> details;
  114 +
103 } 115 }
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalRewardDistVO.java
@@ -91,6 +91,11 @@ public class EvalRewardDistVO { @@ -91,6 +91,11 @@ public class EvalRewardDistVO {
91 private Long groupId; 91 private Long groupId;
92 92
93 /** 93 /**
  94 + * 审批单号
  95 + */
  96 + private String approvalNo;
  97 +
  98 + /**
94 * 门店 99 * 门店
95 */ 100 */
96 private List<EvalShopPoolVO> shopPools; 101 private List<EvalShopPoolVO> shopPools;
fw-morax-server/src/main/java/cn/fw/morax/server/controller/erp/EvalIndicatorController.java
@@ -6,6 +6,7 @@ import cn.fw.common.web.annotation.ControllerMethod; @@ -6,6 +6,7 @@ import cn.fw.common.web.annotation.ControllerMethod;
6 import cn.fw.common.web.auth.LoginAuthBean; 6 import cn.fw.common.web.auth.LoginAuthBean;
7 import cn.fw.common.web.auth.annotation.CurrentUser; 7 import cn.fw.common.web.auth.annotation.CurrentUser;
8 import cn.fw.data.base.domain.common.Message; 8 import cn.fw.data.base.domain.common.Message;
  9 +import cn.fw.morax.common.utils.PublicUtil;
9 import cn.fw.morax.domain.db.eval.EvalIndicatorImportDetail; 10 import cn.fw.morax.domain.db.eval.EvalIndicatorImportDetail;
10 import cn.fw.morax.domain.dto.query.EvalIndicatorImportQueryDTO; 11 import cn.fw.morax.domain.dto.query.EvalIndicatorImportQueryDTO;
11 import cn.fw.morax.domain.vo.eval.*; 12 import cn.fw.morax.domain.vo.eval.*;
@@ -115,14 +116,13 @@ public class EvalIndicatorController { @@ -115,14 +116,13 @@ public class EvalIndicatorController {
115 * @return 116 * @return
116 */ 117 */
117 @IgnoreAuth 118 @IgnoreAuth
118 - @PostMapping("/staff-indicator") 119 + @PostMapping("/analysis-staff")
119 @ControllerMethod("上传人员指标") 120 @ControllerMethod("上传人员指标")
120 - public Message<Void> uploadStaffIndicator(@RequestParam("file") MultipartFile file, @CurrentUser LoginAuthBean user) { 121 + public Message<EvalIndicatorImportRecordVO> analysisStaffExcel(@RequestParam("file") MultipartFile file, @CurrentUser LoginAuthBean user) {
121 if (file.isEmpty()) { 122 if (file.isEmpty()) {
122 throw new BusinessException("请上传文件"); 123 throw new BusinessException("请上传文件");
123 } 124 }
124 - evalIndicatorReportService.uploadStaffIndicator(file, user);  
125 - return success(); 125 + return success(evalIndicatorReportService.uploadStaffIndicator(file, user));
126 } 126 }
127 127
128 /** 128 /**
@@ -131,13 +131,27 @@ public class EvalIndicatorController { @@ -131,13 +131,27 @@ public class EvalIndicatorController {
131 * @return 131 * @return
132 */ 132 */
133 @IgnoreAuth 133 @IgnoreAuth
134 - @PostMapping("/shop-indicator") 134 + @PostMapping("/analysis-shop")
135 @ControllerMethod("上传门店指标") 135 @ControllerMethod("上传门店指标")
136 - public Message<Void> uploadShopIndicator(@RequestParam("file") MultipartFile file, @CurrentUser LoginAuthBean user) { 136 + public Message<EvalIndicatorImportRecordVO> uploadShopIndicator(@RequestParam("file") MultipartFile file, @CurrentUser LoginAuthBean user) {
137 if (file.isEmpty()) { 137 if (file.isEmpty()) {
138 throw new BusinessException("请上传文件"); 138 throw new BusinessException("请上传文件");
139 } 139 }
140 - evalIndicatorReportService.uploadShopIndicator(file, user); 140 + return success(evalIndicatorReportService.uploadShopIndicator(file, user));
  141 + }
  142 +
  143 + /**
  144 + * 保存上传人员数据
  145 + *
  146 + * @return
  147 + */
  148 + @GetMapping("/save-import")
  149 + @ControllerMethod("保存上传人员数据")
  150 + public Message<Void> uploadStaffIndicator(String key) {
  151 + if (PublicUtil.isEmpty(key)) {
  152 + throw new BusinessException("参数错误");
  153 + }
  154 + evalIndicatorReportService.saveImportIndicator(key);
141 return success(); 155 return success();
142 } 156 }
143 157
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalIndicatorBizService.java
@@ -246,12 +246,12 @@ public class EvalIndicatorBizService { @@ -246,12 +246,12 @@ public class EvalIndicatorBizService {
246 public EvalIndicator convertToDB(EvalIndicatorDTO dto){ 246 public EvalIndicator convertToDB(EvalIndicatorDTO dto){
247 EvalIndicator indicators = EvalIndicator.builder() 247 EvalIndicator indicators = EvalIndicator.builder()
248 .name(dto.getName()) 248 .name(dto.getName())
249 - .enable(Boolean.FALSE) 249 + .enable(Boolean.TRUE)
250 .ruleType(dto.getRuleType()) 250 .ruleType(dto.getRuleType())
251 .dataType(dto.getDataType()) 251 .dataType(dto.getDataType())
252 .targetType(dto.getTargetType()) 252 .targetType(dto.getTargetType())
253 - .sysId(dto.getSysId())  
254 - .sysName(dto.getSysName()) 253 +// .sysId(dto.getSysId())
  254 +// .sysName(dto.getSysName())
255 .roleCode(dto.getRoleCode()) 255 .roleCode(dto.getRoleCode())
256 .roleName(dto.getRoleName()) 256 .roleName(dto.getRoleName())
257 .build(); 257 .build();
@@ -359,9 +359,11 @@ public class EvalIndicatorBizService { @@ -359,9 +359,11 @@ public class EvalIndicatorBizService {
359 compositeIndicator.setCodeType(IndicatorCodeTypeEnum.EVAL_INDICATOR); 359 compositeIndicator.setCodeType(IndicatorCodeTypeEnum.EVAL_INDICATOR);
360 compositeIndicator.setCode(evalIndicator.getCode()); 360 compositeIndicator.setCode(evalIndicator.getCode());
361 compositeIndicator.setName(evalIndicator.getName()); 361 compositeIndicator.setName(evalIndicator.getName());
362 - compositeIndicator.setSysId(evalIndicator.getSysId());  
363 - compositeIndicator.setSysPrefix(evalIndicator.getSysPrefix());  
364 - compositeIndicator.setSysName(evalIndicator.getSysName()); 362 + if (PublicUtil.isNotEmpty(evalIndicator.getSysId())) {
  363 + compositeIndicator.setSysId(evalIndicator.getSysId());
  364 + compositeIndicator.setSysPrefix(evalIndicator.getSysPrefix());
  365 + compositeIndicator.setSysName(evalIndicator.getSysName());
  366 + }
365 compositeIndicator.setRoleCode(evalIndicator.getRoleCode()); 367 compositeIndicator.setRoleCode(evalIndicator.getRoleCode());
366 compositeIndicator.setRoleName(evalIndicator.getRoleName()); 368 compositeIndicator.setRoleName(evalIndicator.getRoleName());
367 compositeIndicator.setDataType(evalIndicator.getDataType()); 369 compositeIndicator.setDataType(evalIndicator.getDataType());
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalIndicatorReportService.java
@@ -18,13 +18,19 @@ import cn.fw.morax.service.biz.CommonService; @@ -18,13 +18,19 @@ import cn.fw.morax.service.biz.CommonService;
18 import cn.fw.morax.service.data.eval.*; 18 import cn.fw.morax.service.data.eval.*;
19 import cn.hutool.poi.excel.ExcelReader; 19 import cn.hutool.poi.excel.ExcelReader;
20 import cn.hutool.poi.excel.ExcelUtil; 20 import cn.hutool.poi.excel.ExcelUtil;
  21 +import com.alibaba.fastjson.JSON;
21 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 22 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
22 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 23 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
23 import com.google.common.collect.Lists; 24 import com.google.common.collect.Lists;
  25 +import lombok.Getter;
24 import lombok.RequiredArgsConstructor; 26 import lombok.RequiredArgsConstructor;
25 import lombok.extern.slf4j.Slf4j; 27 import lombok.extern.slf4j.Slf4j;
26 import org.apache.commons.collections4.map.MultiKeyMap; 28 import org.apache.commons.collections4.map.MultiKeyMap;
27 import org.apache.poi.ss.formula.functions.T; 29 import org.apache.poi.ss.formula.functions.T;
  30 +import org.checkerframework.checker.units.qual.K;
  31 +import org.springframework.beans.factory.annotation.Value;
  32 +import org.springframework.data.redis.core.BoundValueOperations;
  33 +import org.springframework.data.redis.core.StringRedisTemplate;
28 import org.springframework.stereotype.Service; 34 import org.springframework.stereotype.Service;
29 import org.springframework.transaction.annotation.Transactional; 35 import org.springframework.transaction.annotation.Transactional;
30 import org.springframework.web.multipart.MultipartFile; 36 import org.springframework.web.multipart.MultipartFile;
@@ -39,6 +45,7 @@ import java.time.LocalTime; @@ -39,6 +45,7 @@ import java.time.LocalTime;
39 import java.time.YearMonth; 45 import java.time.YearMonth;
40 import java.time.format.DateTimeFormatter; 46 import java.time.format.DateTimeFormatter;
41 import java.util.*; 47 import java.util.*;
  48 +import java.util.concurrent.TimeUnit;
42 import java.util.function.Function; 49 import java.util.function.Function;
43 import java.util.stream.Collectors; 50 import java.util.stream.Collectors;
44 51
@@ -57,9 +64,17 @@ public class EvalIndicatorReportService { @@ -57,9 +64,17 @@ public class EvalIndicatorReportService {
57 private final EvalIndicatorService evalIndicatorService; 64 private final EvalIndicatorService evalIndicatorService;
58 private final EvalUserPoolService evalUserPoolService; 65 private final EvalUserPoolService evalUserPoolService;
59 private final EvalShopPoolService evalShopPoolService; 66 private final EvalShopPoolService evalShopPoolService;
  67 + private final StringRedisTemplate stringRedisTemplate;
60 private final EvalGroupService evalGroupService; 68 private final EvalGroupService evalGroupService;
61 private final EvalService evalService; 69 private final EvalService evalService;
62 70
  71 + @Value("${spring.cache.custom.global-prefix}:eval-import:")
  72 + @Getter
  73 + private String evalImport;
  74 + @Value("${spring.cache.custom.global-prefix}:eval-import-detail:")
  75 + @Getter
  76 + private String evalImportDetail;
  77 +
63 public void staffTemplateFile(HttpServletRequest request, HttpServletResponse response) { 78 public void staffTemplateFile(HttpServletRequest request, HttpServletResponse response) {
64 String fileName = "人员导入标准模板.xlsx"; 79 String fileName = "人员导入标准模板.xlsx";
65 String encodeFileName = CommonService.getEncodeName(request, fileName); 80 String encodeFileName = CommonService.getEncodeName(request, fileName);
@@ -122,11 +137,11 @@ public class EvalIndicatorReportService { @@ -122,11 +137,11 @@ public class EvalIndicatorReportService {
122 } 137 }
123 138
124 @Transactional(rollbackFor = Exception.class) 139 @Transactional(rollbackFor = Exception.class)
125 - public void uploadStaffIndicator(MultipartFile file, LoginAuthBean user) { 140 + public EvalIndicatorImportRecordVO uploadStaffIndicator(MultipartFile file, LoginAuthBean user) {
126 MultiKeyMap<String, EvalUserPool> staffPostMap = getShopUserPoolMap(user); 141 MultiKeyMap<String, EvalUserPool> staffPostMap = getShopUserPoolMap(user);
127 Map<String, EvalIndicator> evalIndicatorMap = getNameIndicatorMap(); 142 Map<String, EvalIndicator> evalIndicatorMap = getNameIndicatorMap();
128 EvalIndicatorImportRecord importRecord = createRecord(user, DimensionTypeEnum.STAFF); 143 EvalIndicatorImportRecord importRecord = createRecord(user, DimensionTypeEnum.STAFF);
129 - evalIndicatorImportRecordService.save(importRecord); 144 +// evalIndicatorImportRecordService.save(importRecord);
130 List<EvalIndicatorImportDetail> details = new ArrayList<>(); 145 List<EvalIndicatorImportDetail> details = new ArrayList<>();
131 List<StaffIndicatorValueVO> indicatorValues = this.analysisExcel(file, StaffIndicatorValueVO.class); 146 List<StaffIndicatorValueVO> indicatorValues = this.analysisExcel(file, StaffIndicatorValueVO.class);
132 Long importRecordId = importRecord.getId(); 147 Long importRecordId = importRecord.getId();
@@ -168,28 +183,70 @@ public class EvalIndicatorReportService { @@ -168,28 +183,70 @@ public class EvalIndicatorReportService {
168 importDetail.setIndicatorValue(new BigDecimal(staff.getIndicatorValue())); 183 importDetail.setIndicatorValue(new BigDecimal(staff.getIndicatorValue()));
169 importDetail.setDataType(evalIndicator.getDataType()); 184 importDetail.setDataType(evalIndicator.getDataType());
170 } 185 }
171 - Optional<EvalIndicatorImportDetail> detailOptional = details.stream().findFirst(); 186 + Optional<EvalIndicatorImportDetail> detailOptional = details.stream().filter(detail -> PublicUtil.isEmpty(detail.getErrorType())).findFirst();
172 importRecord.setIndicatorCode(detailOptional.map(EvalIndicatorImportDetail::getIndicatorCode).orElse("")); 187 importRecord.setIndicatorCode(detailOptional.map(EvalIndicatorImportDetail::getIndicatorCode).orElse(""));
173 importRecord.setIndicatorName(detailOptional.map(EvalIndicatorImportDetail::getIndicatorName).orElse("")); 188 importRecord.setIndicatorName(detailOptional.map(EvalIndicatorImportDetail::getIndicatorName).orElse(""));
174 importRecord.setErrorNum(errorNum); 189 importRecord.setErrorNum(errorNum);
175 importRecord.setNum(indicatorValues.size()); 190 importRecord.setNum(indicatorValues.size());
176 importRecord.setSuccessNum(indicatorValues.size() - errorNum); 191 importRecord.setSuccessNum(indicatorValues.size() - errorNum);
177 - evalIndicatorImportRecordService.updateById(importRecord);  
178 - evalIndicatorImportDetailService.saveBatch(details);  
179 192
  193 + String key = PublicUtil.getUUID() + user.getUserId();
  194 + stringRedisTemplate.opsForValue().set(getEvalImport() + key, JSON.toJSONString(importRecord), 1 , TimeUnit.DAYS);
  195 + stringRedisTemplate.opsForValue().set(getEvalImportDetail() + key, JSON.toJSONString(details), 1 , TimeUnit.DAYS);
  196 +
  197 + EvalIndicatorImportRecordVO recordVO = PublicUtil.copy(importRecord, EvalIndicatorImportRecordVO.class);
  198 + List<EvalIndicatorImportDetailVO> detailVos = PublicUtil.copyList(details, EvalIndicatorImportDetailVO.class);
  199 + recordVO.setDetails(detailVos);
  200 + recordVO.setKey(key);
  201 + return recordVO;
  202 +
  203 +// evalIndicatorImportRecordService.updateById(importRecord);
  204 +// evalIndicatorImportDetailService.saveBatch(details);
  205 +
  206 +// for (String indicatorCode : uploadIndicatorCodes) {
  207 +// ImportEvalIndicatorEvent importEvalIndicatorEvent = new ImportEvalIndicatorEvent(indicatorCode,
  208 +// importRecord.getId(), importRecord.getGroupId(), importRecord.getUploadTime());
  209 +// EventBusUtil.asyncPost(importEvalIndicatorEvent);
  210 +// }
  211 + }
  212 +
  213 + public void saveImportIndicator(String key) {
  214 + BoundValueOperations<String, String> importOperation = stringRedisTemplate.boundValueOps(getEvalImport() + key);
  215 + BoundValueOperations<String, String> importDetailOperation = stringRedisTemplate.boundValueOps(getEvalImportDetail() + key);
  216 + String json = importOperation.get();
  217 + String detailJson = importDetailOperation.get();
  218 + if (PublicUtil.isEmpty(json) || PublicUtil.isEmpty(detailJson)) {
  219 + log.error("考评指标导入,redis数据为空,key {},", getEvalImport() + key);
  220 + throw new BusinessException("请求超时,请重新上传");
  221 + }
  222 + EvalIndicatorImportRecord record = JSON.parseObject(json, EvalIndicatorImportRecord.class);
  223 + List<EvalIndicatorImportDetail> details = JSON.parseArray(detailJson, EvalIndicatorImportDetail.class);
  224 + evalIndicatorImportRecordService.save(record);
  225 + Long recordId = record.getId();
  226 + Set<String> uploadIndicatorCodes = new HashSet<>();
  227 + for (EvalIndicatorImportDetail detail : details) {
  228 + detail.setRecordId(recordId);
  229 + if (PublicUtil.isEmpty(detail.getErrorType()) && PublicUtil.isEmpty(detail.getIndicatorCode())) {
  230 + uploadIndicatorCodes.add(detail.getIndicatorCode());
  231 + }
  232 + }
  233 + evalIndicatorImportDetailService.saveBatch(details);
  234 + stringRedisTemplate.delete(getEvalImport() + key);
  235 + stringRedisTemplate.delete(getEvalImportDetail() + key);
  236 + //事件
180 for (String indicatorCode : uploadIndicatorCodes) { 237 for (String indicatorCode : uploadIndicatorCodes) {
181 ImportEvalIndicatorEvent importEvalIndicatorEvent = new ImportEvalIndicatorEvent(indicatorCode, 238 ImportEvalIndicatorEvent importEvalIndicatorEvent = new ImportEvalIndicatorEvent(indicatorCode,
182 - importRecord.getId(), importRecord.getGroupId(), importRecord.getUploadTime()); 239 + recordId, record.getGroupId(), record.getUploadTime());
183 EventBusUtil.asyncPost(importEvalIndicatorEvent); 240 EventBusUtil.asyncPost(importEvalIndicatorEvent);
184 } 241 }
185 } 242 }
186 243
187 @Transactional(rollbackFor = Exception.class) 244 @Transactional(rollbackFor = Exception.class)
188 - public void uploadShopIndicator(MultipartFile file, LoginAuthBean user) { 245 + public EvalIndicatorImportRecordVO uploadShopIndicator(MultipartFile file, LoginAuthBean user) {
189 Map<String, EvalShopPool> shopPoolMap = this.getShopPoolMap(user); 246 Map<String, EvalShopPool> shopPoolMap = this.getShopPoolMap(user);
190 Map<String, EvalIndicator> evalIndicatorMap = getNameIndicatorMap(); 247 Map<String, EvalIndicator> evalIndicatorMap = getNameIndicatorMap();
191 EvalIndicatorImportRecord importRecord = createRecord(user, DimensionTypeEnum.SHOP); 248 EvalIndicatorImportRecord importRecord = createRecord(user, DimensionTypeEnum.SHOP);
192 - evalIndicatorImportRecordService.save(importRecord); 249 +// evalIndicatorImportRecordService.save(importRecord);
193 Long importRecordId = importRecord.getId(); 250 Long importRecordId = importRecord.getId();
194 List<EvalIndicatorImportDetail> details = new ArrayList<>(); 251 List<EvalIndicatorImportDetail> details = new ArrayList<>();
195 List<ShopIndicatorValueVO> indicatorValues = this.analysisExcel(file, ShopIndicatorValueVO.class); 252 List<ShopIndicatorValueVO> indicatorValues = this.analysisExcel(file, ShopIndicatorValueVO.class);
@@ -234,15 +291,31 @@ public class EvalIndicatorReportService { @@ -234,15 +291,31 @@ public class EvalIndicatorReportService {
234 importRecord.setErrorNum(errorNum); 291 importRecord.setErrorNum(errorNum);
235 importRecord.setNum(indicatorValues.size()); 292 importRecord.setNum(indicatorValues.size());
236 importRecord.setSuccessNum(indicatorValues.size() - errorNum); 293 importRecord.setSuccessNum(indicatorValues.size() - errorNum);
237 - evalIndicatorImportRecordService.updateById(importRecord);  
238 - evalIndicatorImportDetailService.saveBatch(details);  
239 - for (String indicatorCode : uploadIndicatorCodes) {  
240 - ImportEvalIndicatorEvent importEvalIndicatorEvent = new ImportEvalIndicatorEvent(indicatorCode,  
241 - importRecord.getId(), importRecord.getGroupId(), importRecord.getUploadTime());  
242 - EventBusUtil.asyncPost(importEvalIndicatorEvent);  
243 - } 294 + String key = PublicUtil.getUUID() + user.getUserId();
  295 + stringRedisTemplate.opsForValue().set(getEvalImport() + key, JSON.toJSONString(importRecord), 1 , TimeUnit.DAYS);
  296 + stringRedisTemplate.opsForValue().set(getEvalImportDetail() + key, JSON.toJSONString(details), 1 , TimeUnit.DAYS);
  297 +
  298 + EvalIndicatorImportRecordVO recordVO = PublicUtil.copy(importRecord, EvalIndicatorImportRecordVO.class);
  299 + List<EvalIndicatorImportDetailVO> detailVos = PublicUtil.copyList(details, EvalIndicatorImportDetailVO.class);
  300 + recordVO.setDetails(detailVos);
  301 + recordVO.setKey(key);
  302 + return recordVO;
  303 +// evalIndicatorImportRecordService.updateById(importRecord);
  304 +// evalIndicatorImportDetailService.saveBatch(details);
  305 +// for (String indicatorCode : uploadIndicatorCodes) {
  306 +// ImportEvalIndicatorEvent importEvalIndicatorEvent = new ImportEvalIndicatorEvent(indicatorCode,
  307 +// importRecord.getId(), importRecord.getGroupId(), importRecord.getUploadTime());
  308 +// EventBusUtil.asyncPost(importEvalIndicatorEvent);
  309 +// }
244 } 310 }
245 311
  312 + public EvalIndicatorImportDetailVO convertStaffVo(Optional<StaffIndicatorValueVO> valueOptional) {
  313 + EvalIndicatorImportDetailVO detail = new EvalIndicatorImportDetailVO();
  314 + detail.setIndicatorName(valueOptional.map(StaffIndicatorValueVO::getIndicatorName).orElse(""));
  315 + detail.setUserName(valueOptional.map(StaffIndicatorValueVO::getStaffName).orElse(""));
  316 + detail.setShopName(valueOptional.map(StaffIndicatorValueVO::getShopName).orElse(""));
  317 + return detail;
  318 + }
246 public EvalIndicatorImportDetail convertStaffPo(Optional<StaffIndicatorValueVO> valueOptional) { 319 public EvalIndicatorImportDetail convertStaffPo(Optional<StaffIndicatorValueVO> valueOptional) {
247 EvalIndicatorImportDetail detail = new EvalIndicatorImportDetail(); 320 EvalIndicatorImportDetail detail = new EvalIndicatorImportDetail();
248 detail.setIndicatorName(valueOptional.map(StaffIndicatorValueVO::getIndicatorName).orElse("")); 321 detail.setIndicatorName(valueOptional.map(StaffIndicatorValueVO::getIndicatorName).orElse(""));
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalRewardService.java
@@ -26,6 +26,7 @@ import cn.fw.morax.rpc.erp.ErpRpcService; @@ -26,6 +26,7 @@ import cn.fw.morax.rpc.erp.ErpRpcService;
26 import cn.fw.morax.rpc.erp.dto.RpcUserRoleInfoDTO; 26 import cn.fw.morax.rpc.erp.dto.RpcUserRoleInfoDTO;
27 import cn.fw.morax.rpc.erp.dto.RpcUserRoleShopDTO; 27 import cn.fw.morax.rpc.erp.dto.RpcUserRoleShopDTO;
28 import cn.fw.morax.service.biz.ApprovalBizService; 28 import cn.fw.morax.service.biz.ApprovalBizService;
  29 +import cn.fw.morax.service.data.ApprovalRecordService;
29 import cn.fw.morax.service.data.eval.*; 30 import cn.fw.morax.service.data.eval.*;
30 import com.alibaba.fastjson.JSON; 31 import com.alibaba.fastjson.JSON;
31 import com.alibaba.fastjson.JSONObject; 32 import com.alibaba.fastjson.JSONObject;
@@ -73,6 +74,7 @@ public class EvalRewardService { @@ -73,6 +74,7 @@ public class EvalRewardService {
73 private final ApprovalBizService approvalBizService; 74 private final ApprovalBizService approvalBizService;
74 private final StringRedisTemplate stringRedisTemplate; 75 private final StringRedisTemplate stringRedisTemplate;
75 private final EvalShopPoolService evalShopPoolService; 76 private final EvalShopPoolService evalShopPoolService;
  77 + private final ApprovalRecordService approvalRecordService;
76 private final EvalRewardDistService evalRewardDistService; 78 private final EvalRewardDistService evalRewardDistService;
77 private final EvalRewardDistDetailService evalRewardDistDetailService; 79 private final EvalRewardDistDetailService evalRewardDistDetailService;
78 80
@@ -300,6 +302,14 @@ public class EvalRewardService { @@ -300,6 +302,14 @@ public class EvalRewardService {
300 ); 302 );
301 List<EvalRewardDistDetailVO> detailVOS = PublicUtil.copyList(details, EvalRewardDistDetailVO.class); 303 List<EvalRewardDistDetailVO> detailVOS = PublicUtil.copyList(details, EvalRewardDistDetailVO.class);
302 rewardDistVO.setRewardDetails(detailVOS); 304 rewardDistVO.setRewardDetails(detailVOS);
  305 +
  306 + ApprovalRecord approvalRecord = approvalRecordService.getOne(Wrappers.<ApprovalRecord>lambdaQuery()
  307 + .eq(ApprovalRecord::getDataId, id)
  308 + .eq(ApprovalRecord::getApprovalType, ApprovalTypeEnum.EVAL_REWARD_DIST)
  309 + .eq(ApprovalRecord::getYn, Boolean.TRUE)
  310 + .last("ORDER BY id DESC LIMIT 1")
  311 + );
  312 + rewardDistVO.setApprovalNo(Optional.ofNullable(approvalRecord).map(ApprovalRecord::getApprovalNo).orElse(""));
303 } 313 }
304 314
305 return rewardDistVO; 315 return rewardDistVO;