Commit db4579e41b58f5c9106279177f204ad73bbc3432

Authored by 姜超
1 parent 8a90c0e6

feature(*): 新增台阶类型

新增台阶类型
fw-morax-common/src/main/java/cn/fw/morax/common/pojo/event/ImportEvalIndicatorEvent.java 0 → 100644
  1 +package cn.fw.morax.common.pojo.event;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Builder;
  5 +import lombok.Data;
  6 +import lombok.NoArgsConstructor;
  7 +
  8 +import java.time.LocalDate;
  9 +import java.time.YearMonth;
  10 +
  11 +@Data
  12 +@Builder
  13 +@AllArgsConstructor
  14 +@NoArgsConstructor
  15 +public class ImportEvalIndicatorEvent {
  16 + /**
  17 + * 考评指标导入记录id
  18 + */
  19 + private Long evalIndicatorImportRecordId;
  20 +
  21 + /**
  22 + * 数据日期
  23 + */
  24 + private LocalDate dataDate;
  25 +
  26 + /**
  27 + * 考评指标
  28 + */
  29 + private String code;
  30 +}
... ...
fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalIndicatorImportDetailDao.java
... ... @@ -4,6 +4,7 @@ package cn.fw.morax.dao.eval;
4 4 import cn.fw.morax.domain.db.eval.EvalIndicatorImportDetail;
5 5 import cn.fw.morax.domain.db.eval.EvalIndicatorImportRecord;
6 6 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  7 +import org.apache.ibatis.annotations.Param;
7 8  
8 9 import java.time.LocalDate;
9 10 import java.util.List;
... ... @@ -18,7 +19,7 @@ import java.util.List;
18 19 */
19 20 public interface EvalIndicatorImportDetailDao extends BaseMapper<EvalIndicatorImportDetail> {
20 21  
21   - List<EvalIndicatorImportDetail> getLastUserValue(Integer dimensionType, LocalDate dataDate);
  22 + List<EvalIndicatorImportDetail> getLastUserValue(@Param("recordId") Long recordId, @Param("dimensionType") Integer dimensionType);
22 23  
23   - List<EvalIndicatorImportDetail> getLastShopValue(Integer dimensionType, LocalDate dataDate);
  24 + List<EvalIndicatorImportDetail> getLastShopValue(@Param("recordId") Long recordId, @Param("dimensionType") Integer dimensionType);
24 25 }
... ...
fw-morax-dao/src/main/resources/mapper/eval/EvalGroupMapper.xml
... ... @@ -22,6 +22,8 @@
22 22 <result column="post_name" property="postName"/>
23 23 <result column="shop_ids" property="shopIds" typeHandler="cn.fw.common.data.mybatis.handler.LongListTypeHandler"/>
24 24 <result column="shop_names" property="shopNames" typeHandler="cn.fw.common.data.mybatis.handler.StringListTypeHandler"/>
  25 + <result column="role_codes" property="roleCodes" typeHandler="cn.fw.common.data.mybatis.handler.StringListTypeHandler"/>
  26 + <result column="role_names" property="roleNames" typeHandler="cn.fw.common.data.mybatis.handler.StringListTypeHandler"/>
25 27 <!-- <result column="reason" property="reason"/>-->
26 28 <!-- <result column="attachment" property="attachment"/>-->
27 29 <!-- <result column="status" property="status"/>-->
... ...
fw-morax-dao/src/main/resources/mapper/eval/EvalIndicatorImportDetailDao.xml
... ... @@ -43,8 +43,11 @@
43 43 FROM
44 44 eval_indicator_import_detail
45 45 WHERE
46   - data_date = #{dataDate}
  46 + error_type IS NULL
47 47 AND dimension_type = #{dimensionType}
  48 + <if test="recordId != null">
  49 + AND record_id = #{recordId}
  50 + </if>
48 51 AND yn = 1
49 52 GROUP BY
50 53 user_id
... ... @@ -75,8 +78,11 @@
75 78 FROM
76 79 eval_indicator_import_detail
77 80 WHERE
78   - data_date = #{dataDate}
  81 + error_type IS NULL
79 82 AND dimension_type = #{dimensionType}
  83 + <if test="recordId != null">
  84 + AND record_id = #{recordId}
  85 + </if>
80 86 AND yn = 1
81 87 GROUP BY
82 88 shop_id
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalIndicatorImport.java
... ... @@ -68,11 +68,11 @@ public class EvalIndicatorImport extends BaseAuditableTimeEntity&lt;EvalIndicatorIm
68 68 @TableField(typeHandler = LongListTypeHandler.class)
69 69 private List<Long> shopIds;
70 70  
71   - /**
72   - * 适用门店名称
73   - */
74   - @TableField(typeHandler = StringListTypeHandler.class)
75   - private List<String> shopNames;
  71 +// /**
  72 +// * 适用门店名称
  73 +// */
  74 +// @TableField(typeHandler = StringListTypeHandler.class)
  75 +// private List<String> shopNames;
76 76  
77 77 /**
78 78 * 上报数据的考评组ids
... ... @@ -80,22 +80,22 @@ public class EvalIndicatorImport extends BaseAuditableTimeEntity&lt;EvalIndicatorIm
80 80 @TableField(typeHandler = LongListTypeHandler.class)
81 81 private List<Long> evalGroupIds;
82 82  
83   - /**
84   - * 考评组编码
85   - */
86   - @TableField(typeHandler = StringListTypeHandler.class)
87   - private List<String> egcs;
  83 +// /**
  84 +// * 考评组编码
  85 +// */
  86 +// @TableField(typeHandler = StringListTypeHandler.class)
  87 +// private List<String> egcs;
88 88  
89 89  
90   - /**
91   - * 岗位id
92   - */
93   - private Long postId;
94   -
95   - /**
96   - * 岗位名称
97   - */
98   - private String postName;
  90 +// /**
  91 +// * 岗位id
  92 +// */
  93 +// private Long postId;
  94 +//
  95 +// /**
  96 +// * 岗位名称
  97 +// */
  98 +// private String postName;
99 99  
100 100 /**
101 101 * 指标编码
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalIndicatorImportDetail.java
... ... @@ -37,7 +37,7 @@ public class EvalIndicatorImportDetail extends BaseAuditableTimeEntity&lt;EvalIndic
37 37 /**
38 38 * 导入id
39 39 */
40   - private Long evalIndicatorImportRecordId;
  40 + private Long recordId;
41 41  
42 42 /**
43 43 * 人员id
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalGroupRewardPreconditionVO.java
... ... @@ -108,5 +108,22 @@ public class EvalGroupRewardPreconditionVO{
108 108 }
109 109 }
110 110  
  111 + /**
  112 + * 转换为百分数展示
  113 + */
  114 + public void convertValueToPercent(){
  115 + if (TargetTypeEnum.RATIO.equals(this.getTargetType())) {
  116 + this.setTargetValue(this.getTargetValue().multiply(Constant.ONE_HUNDRED));
  117 + }
  118 + if (DataTypeEnum.RATIO.equals(this.getDataType())) {
  119 + this.setIndicatorValue(this.getIndicatorValue().multiply(Constant.ONE_HUNDRED));
  120 + this.setCondValue(this.getCondValue().multiply(Constant.ONE_HUNDRED));
  121 + }
  122 + //有目标
  123 + if (! TargetTypeEnum.NO.equals(this.getTargetType())) {
  124 + this.setReachValue(this.getReachValue().multiply(Constant.ONE_HUNDRED));
  125 + }
  126 + }
  127 +
111 128  
112 129 }
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/vo/eval/EvalIndicatorImportUserVO.java
... ... @@ -19,14 +19,14 @@ import java.time.LocalDate;
19 19 @AllArgsConstructor
20 20 public class EvalIndicatorImportUserVO {
21 21  
22   - /**
23   - * id
24   - */
25   - private Long id;
26   - /**
27   - * 考评组编码
28   - */
29   - private String egc;
  22 +// /**
  23 +// * id
  24 +// */
  25 +// private Long id;
  26 +// /**
  27 +// * 考评组编码
  28 +// */
  29 +// private String egc;
30 30 /**
31 31 * 考评组id
32 32 */
... ... @@ -67,27 +67,23 @@ public class EvalIndicatorImportUserVO {
67 67 * 不计入原因描述
68 68 */
69 69 private String ignoreCauseDesc;
70   - /**
71   - * 开始考核时间
72   - */
73   - private LocalDate anticipatedDate;
74   - /**
75   - * 备注
76   - */
77   - private String remark;
78   - /**
79   - * 数据日期
80   - */
81   - private LocalDate dataDate;
  70 +// /**
  71 +// * 开始考核时间
  72 +// */
  73 +// private LocalDate anticipatedDate;
  74 +// /**
  75 +// * 备注
  76 +// */
  77 +// private String remark;
  78 +// /**
  79 +// * 数据日期
  80 +// */
  81 +// private LocalDate dataDate;
82 82 /**
83 83 * 集团id
84 84 */
85 85 private Long groupId;
86 86 /**
87   - * 逻辑删除
88   - */
89   - private Boolean yn;
90   - /**
91 87 * 是否是试用人员
92 88 */
93 89 private Boolean probationer;
... ...
fw-morax-server/src/main/java/cn/fw/morax/server/controller/app/EvalController.java
... ... @@ -84,15 +84,14 @@ public class EvalController {
84 84 /**
85 85 * 考评数据录入详情
86 86 *
87   - * @param evalIndicatorImportId
  87 + * @param id
88 88 * @return
89 89 */
90 90 @GetMapping("/report-detail")
91 91 @ControllerMethod("考评数据录入详情")
92   - public Message<EvalReportVO> reportDetail(@NotNull(message = "考评组id不能为空") Long evalIndicatorImportId) {
  92 + public Message<EvalReportVO> reportDetail(@NotNull(message = "录入详情id不能为空") Long id) {
93 93  
94   -// return success(evalIndicatorValueBizService.reportDetail(evalIndicatorImportId));
95   - return success();
  94 + return success(evalIndicatorValueBizService.reportDetail(id));
96 95 }
97 96  
98 97 /**
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalGroupPoolService.java
... ... @@ -465,15 +465,49 @@ public class EvalGroupPoolService {
465 465 reward.setLadders(this.getLadderVos(reward, hitLadderId));
466 466  
467 467 //条件
468   - List<EvalGroupRewardPreconditionVO> preconditionVOS = evalGroupRewardPreconditionHitLogService.getHitVos(evalGroupRewardId,
469   - evalPoolId, dataDate, EvalScopeEnum.STAFF);
470   - reward.setConds(preconditionVOS);
  468 + reward.setConds(getConds(evalPoolId, pool.getUserId(), evalGroupRewardId, dataDate));
471 469  
472 470 //处理百分数
473 471 processRewardPercent(reward);
474 472 return reward;
475 473 }
476 474  
  475 + public List<EvalGroupRewardPreconditionVO> getConds(Long poolId, Long userId, Long evalGroupRewardId, LocalDate dataDate) {
  476 + List<EvalGroupRewardPrecondition> preconditions = evalGroupRewardPreconditionService.list(Wrappers.<EvalGroupRewardPrecondition>lambdaQuery()
  477 + .eq(EvalGroupRewardPrecondition::getEvalGroupRewardId, evalGroupRewardId)
  478 + .eq(EvalGroupRewardPrecondition::getYn, Boolean.TRUE)
  479 + .orderByAsc(EvalGroupRewardPrecondition::getSort)
  480 + );
  481 + List<EvalGroupRewardPreconditionVO> preconditionVos = PublicUtil.copyList(preconditions, EvalGroupRewardPreconditionVO.class);
  482 + for (EvalGroupRewardPreconditionVO precondition : preconditionVos) {
  483 + if (TargetTypeEnum.NO.equals(precondition.getTargetType())) {
  484 + IndicatorUserValue indicatorUserValue = indicatorUserValueService.getOne(Wrappers.<IndicatorUserValue>lambdaQuery()
  485 + .in(IndicatorUserValue::getIndicatorCode, precondition.getCode())
  486 + .eq(IndicatorUserValue::getDataDate, dataDate)
  487 + .eq(IndicatorUserValue::getUserId, userId)
  488 + .eq(IndicatorUserValue::getYn, Boolean.TRUE)
  489 + , Boolean.FALSE
  490 + );
  491 + BigDecimal indicatorOriginValue = commonService.queryIndicatorValue(precondition.getCode(), indicatorUserValue);
  492 + precondition.setIndicatorValue(indicatorOriginValue);
  493 + } else {
  494 + EvalGroupRewardTargetHitLog targetHitLog = evalGroupRewardTargetHitLogService.getOne(Wrappers.<EvalGroupRewardTargetHitLog>lambdaQuery()
  495 + .in(EvalGroupRewardTargetHitLog::getReferId, precondition.getId())
  496 + .eq(EvalGroupRewardTargetHitLog::getDataDate, dataDate)
  497 + .eq(EvalGroupRewardTargetHitLog::getPoolId, poolId)
  498 + .eq(EvalGroupRewardTargetHitLog::getScopeType, EvalScopeEnum.STAFF)
  499 + .eq(EvalGroupRewardTargetHitLog::getYn, Boolean.TRUE),
  500 + Boolean.FALSE
  501 + );
  502 + Optional<EvalGroupRewardTargetHitLog> hitLog = Optional.ofNullable(targetHitLog);
  503 + precondition.setIndicatorValue(hitLog.map(EvalGroupRewardTargetHitLog::getValue).orElse(BigDecimal.ZERO));
  504 + precondition.setReachValue(hitLog.map(EvalGroupRewardTargetHitLog::getReachValue).orElse(BigDecimal.ZERO));
  505 + }
  506 + precondition.convertValueToPercent();
  507 + }
  508 + return preconditionVos;
  509 + }
  510 +
477 511  
478 512 public List<EvalGroupRewardLaddersVO> getLadderVos(EvalPoolRewardDetailVO reward, Long hitLadderId) {
479 513 List<EvalGroupRewardLadders> rewardLadders = evalGroupRewardLaddersService.list(Wrappers.<EvalGroupRewardLadders>lambdaQuery()
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalIndicatorReportService.java
... ... @@ -36,8 +36,6 @@ import java.util.Map;
36 36 import java.util.function.Function;
37 37 import java.util.stream.Collectors;
38 38  
39   -import static cn.fw.common.businessvalidator.Validator.BV;
40   -
41 39 /**
42 40 * @author jiangchao
43 41 * @des: 考评指标上报
... ... @@ -95,7 +93,7 @@ public class EvalIndicatorReportService {
95 93 public List<EvalIndicatorImportDetailVO> importDetail(Long id) {
96 94 List<EvalIndicatorImportDetail> details = evalIndicatorImportDetailService.list(Wrappers.<EvalIndicatorImportDetail>lambdaQuery()
97 95 .eq(EvalIndicatorImportDetail::getYn, Boolean.TRUE)
98   - .eq(EvalIndicatorImportDetail::getEvalIndicatorImportRecordId, id)
  96 + .eq(EvalIndicatorImportDetail::getRecordId, id)
99 97 );
100 98  
101 99 if (PublicUtil.isEmpty(details)) {
... ... @@ -155,7 +153,7 @@ public class EvalIndicatorReportService {
155 153 errorNum += 1;
156 154 }
157 155  
158   - importDetail.setEvalIndicatorImportRecordId(importRecordId);
  156 + importDetail.setRecordId(importRecordId);
159 157 details.add(importDetail);
160 158  
161 159 }
... ... @@ -213,7 +211,7 @@ public class EvalIndicatorReportService {
213 211 errorNum += 1;
214 212 }
215 213  
216   - importDetail.setEvalIndicatorImportRecordId(importRecordId);
  214 + importDetail.setRecordId(importRecordId);
217 215 details.add(importDetail);
218 216  
219 217 }
... ... @@ -233,8 +231,6 @@ public class EvalIndicatorReportService {
233 231 importRecord.setImportUserId(user.getUserId());
234 232 importRecord.setImportUserName(user.getUserName());
235 233 importRecord.setDimensionType(DimensionTypeEnum.STAFF);
236   -// importRecord.setIndicatorCode();
237   -// importRecord.setIndicatorName();
238 234 importRecord.setUploadTime(LocalDate.now());
239 235 importRecord.setGroupId(user.getGroupId());
240 236 importRecord.setYn(Boolean.TRUE);
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalIndicatorValueBizService.java
... ... @@ -3,6 +3,7 @@ package cn.fw.morax.service.biz.eval;
3 3 import cn.fw.backlog.sdk.api.result.FailBacklogItem;
4 4 import cn.fw.common.cache.locker.DistributedLocker;
5 5 import cn.fw.morax.common.config.FlowVal;
  6 +import cn.fw.morax.common.constant.Constant;
6 7 import cn.fw.morax.common.utils.DateUtil;
7 8 import cn.fw.morax.common.utils.PublicUtil;
8 9 import cn.fw.morax.common.utils.ThreadPoolUtil;
... ... @@ -127,7 +128,7 @@ public class EvalIndicatorValueBizService {
127 128 Map<String, Set<Long>> indicatorCodeEvalGroupMap = getIndicatorEvalGroupIds(evalGroupIds);
128 129  
129 130 if (PublicUtil.isEmpty(indicatorCodeEvalGroupMap)) {
130   - return;
  131 + continue;
131 132 }
132 133 Set<String> codes = indicatorCodeEvalGroupMap.keySet();
133 134 List<EvalIndicator> evalIndicators = evalIndicatorService.list(Wrappers.<EvalIndicator>lambdaQuery()
... ... @@ -454,25 +455,24 @@ public class EvalIndicatorValueBizService {
454 455 if (PublicUtil.isEmpty(manageShopIds)) {
455 456 continue;
456 457 }
457   - EvalReportVO reportVO = this.getEvalImportSnapShoot(evalGroups, manageShopIds, LocalDate.now());
458   -
459   - EvalIndicatorImport indicatorImport = new EvalIndicatorImport();
460   - indicatorImport.setRoleCode(evalIndicator.getRoleCode());
461   - indicatorImport.setRoleName(evalIndicator.getRoleName());
462   - indicatorImport.setIndicatorCode(evalIndicator.getCode());
463   - indicatorImport.setIndicatorName(evalIndicator.getName());
464   - indicatorImport.setGroupId(groupId);
465   - indicatorImport.setImportUserId(userRoleInfo.getUserId());
466   - indicatorImport.setImportUserName(userRoleInfo.getUserName());
467   - indicatorImport.setContent(JSON.toJSONString(reportVO));
468   -// indicatorImport.setShopIds(evalShopIds);
469   -// indicatorImport.setShopNames(evalShopNames);
470   - indicatorImport.setEvalGroupIds(evalGroupIds);
471   - indicatorImport.setDataDate(LocalDate.now());
472   - indicatorImport.setExpireTime(evalGroupImportBO.getImportExpireTime());
473   - indicatorImport.setYn(Boolean.TRUE);
474   - indicatorImport.setStatus(DataImportStatusEnum.WAIT_PUSH);
475   - indicatorImports.add(indicatorImport);
  458 +// EvalReportVO reportVO = this.getEvalImportSnapShoot(evalGroups, manageShopIds, LocalDate.now());
  459 +
  460 +// EvalIndicatorImport indicatorImport = new EvalIndicatorImport();
  461 +// indicatorImport.setRoleCode(evalIndicator.getRoleCode());
  462 +// indicatorImport.setRoleName(evalIndicator.getRoleName());
  463 +// indicatorImport.setIndicatorCode(evalIndicator.getCode());
  464 +// indicatorImport.setIndicatorName(evalIndicator.getName());
  465 +// indicatorImport.setGroupId(groupId);
  466 +// indicatorImport.setImportUserId(userRoleInfo.getUserId());
  467 +// indicatorImport.setImportUserName(userRoleInfo.getUserName());
  468 +// indicatorImport.setContent(JSON.toJSONString(reportVO));
  469 +// indicatorImport.setShopIds(new ArrayList<>(manageShopIds));
  470 +// indicatorImport.setEvalGroupIds(evalGroupIds);
  471 +// indicatorImport.setDataDate(LocalDate.now());
  472 +// indicatorImport.setExpireTime(evalGroupImportBO.getImportExpireTime());
  473 +// indicatorImport.setYn(Boolean.TRUE);
  474 +// indicatorImport.setStatus(DataImportStatusEnum.WAIT_PUSH);
  475 +// indicatorImports.add(indicatorImport);
476 476 }
477 477  
478 478 if (PublicUtil.isNotEmpty(indicatorImports)) {
... ... @@ -612,48 +612,12 @@ public class EvalIndicatorValueBizService {
612 612 }
613 613 }
614 614 reportVO.setUsers(importUsers);
615   -// List<EvalGroupUser> evalGroupUsers = evalGroupUserService.list(Wrappers.<EvalGroupUser>lambdaQuery()
616   -// .in(EvalGroupUser::getEvalGroupId, staffGroups.stream().map(EvalGroup::getId).collect(Collectors.toList()))
617   -// .in(EvalGroupUser::getShopId, manageShopIds)
618   -// .eq(EvalGroupUser::getDataDate, dataDate)
619   -// .eq(EvalGroupUser::getYn, Boolean.TRUE)
620   -// );
621   -
622   -// if (PublicUtil.isNotEmpty(evalGroupUsers)) {
623   -//// List<Long> userIds = evalGroupUsers.stream().map(EvalGroupUser::getUserId).distinct().collect(Collectors.toList());
624   -//// List<EvalIndicatorValue> evalIndicatorValues = evalIndicatorValueService.list(Wrappers.<EvalIndicatorValue>lambdaQuery()
625   -//// .in(EvalIndicatorValue::getUserId, userIds)
626   -//// .eq(EvalIndicatorValue::getDataDate, evalImport.getDataDate())
627   -//// .eq(EvalIndicatorValue::getDimensionType, DimensionTypeEnum.STAFF)
628   -//// .eq(EvalIndicatorValue::getYn, Boolean.TRUE)
629   -//// );
630   -//// Set<Long> reportDataUserIds = evalIndicatorValues.stream().map(EvalIndicatorValue::getUserId).collect(Collectors.toSet());
631   -// List<EvalIndicatorImportUserVO> users = PublicUtil.copyList(evalGroupUsers, EvalIndicatorImportUserVO.class);
632   -// for (EvalGroupUserVO evalGroupUser : evalGroupUserVOS) {
633   -//// Boolean report = reportDataUserIds.contains(evalGroupUser.getUserId());
634   -// evalGroupUser.setReport(report);
635   -// }
636 615 }
637 616  
638 617 List<EvalGroup> shopGroups = evalScopeEnumMap.get(EvalScopeEnum.SHOP);
639 618 if (PublicUtil.isNotEmpty(shopGroups)) {
640 619 List<Long> shopGroupIds = shopGroups.stream().flatMap(evalGroup -> evalGroup.getShopIds().stream()).distinct().collect(Collectors.toList());
641   -
642   -// List<EvalIndicatorValue> evalIndicatorValues = evalIndicatorValueService.list(Wrappers.<EvalIndicatorValue>lambdaQuery()
643   -// .in(EvalIndicatorValue::getShopId, shopGroupIds)
644   -// .eq(EvalIndicatorValue::getDimensionType, DimensionTypeEnum.SHOP)
645   -// .eq(EvalIndicatorValue::getDataDate, evalImport.getDataDate())
646   -// .eq(EvalIndicatorValue::getYn, Boolean.TRUE)
647   -// );
648   -// Set<Long> reportDataShopIds = evalIndicatorValues.stream().map(EvalIndicatorValue::getShopId).collect(Collectors.toSet());
649   -
650 620 List<ShopDTO> shops = oopRpcService.queryShops(shopGroupIds);
651   -
652   -
653   -// List<EvalShopPool> pools = evalShopPoolService.list(Wrappers.<EvalShopPool>lambdaQuery()
654   -// .in(EvalShopPool::getEvalGroupId, evalImport.getEvalGroupIds())
655   -// .in(EvalShopPool::getShopId, evalImport.getShopIds())
656   -// );
657 621 List<EvalShopVO> evalShops = new ArrayList<>();
658 622 for (ShopDTO shop : shops) {
659 623 evalShops.add(new EvalShopVO(shop.getId(), shop.getShortName()));
... ... @@ -734,10 +698,9 @@ public class EvalIndicatorValueBizService {
734 698 return Boolean.TRUE;
735 699 }
736 700  
737   -
738 701 //人员信息
739 702 List<EvalGroupUser> evalGroupUsers = evalGroupUserService.list(Wrappers.<EvalGroupUser>lambdaQuery()
740   - .in(EvalGroupUser::getEgc, evalIndicatorImport.getEgcs())
  703 +// .in(EvalGroupUser::getEgc, evalIndicatorImport.getEgcs())
741 704 .eq(EvalGroupUser::getDataDate, evalIndicatorImport.getDataDate())
742 705 .eq(EvalGroupUser::getYn, Boolean.TRUE));
743 706 List<Long> userIds = evalGroupUsers.stream().map(EvalGroupUser::getUserId).distinct().collect(Collectors.toList());
... ... @@ -762,43 +725,91 @@ public class EvalIndicatorValueBizService {
762 725 }
763 726  
764 727 public void saveEvalReportValue(LocalDate dataDate) {
765   - List<EvalIndicatorImportDetail> shopDetails = evalIndicatorImportDetailService.getLastShopValue(dataDate);
766   - List<EvalIndicatorImportDetail> userDetails = evalIndicatorImportDetailService.getLastUserValue(dataDate);
767   -
768   - List<EvalIndicatorValue> evalIndicatorValues = Lists.newArrayListWithCapacity(shopDetails.size() + userDetails.size());
769   -
770   - for (EvalIndicatorImportDetail shopDetail : shopDetails) {
771   -
772   - EvalIndicatorValue indicatorValue = new EvalIndicatorValue();
773   - indicatorValue.setShopId(shopDetail.getShopId());
774   - indicatorValue.setShopName(shopDetail.getShopName());
775   - indicatorValue.setDimensionType(DimensionTypeEnum.SHOP);
776   - indicatorValue.setIndicatorCode(shopDetail.getIndicatorCode());
777   - indicatorValue.setIndicatorName(shopDetail.getIndicatorName());
778   - indicatorValue.setIndicatorValue(shopDetail.getIndicatorValue());
779   - indicatorValue.setValueType(shopDetail.getValueType());
780   - indicatorValue.setDataDate(dataDate);
781   - indicatorValue.setGroupId(shopDetail.getGroupId());
782   - indicatorValue.setYn(Boolean.TRUE);
  728 +// List<EvalIndicatorImportDetail> shopDetails = evalIndicatorImportDetailService.getLastShopValue(dataDate);
  729 +// List<EvalIndicatorImportDetail> userDetails = evalIndicatorImportDetailService.getLastUserValue(dataDate);
  730 +//
  731 +// List<EvalIndicatorValue> evalIndicatorValues = Lists.newArrayListWithCapacity(shopDetails.size() + userDetails.size());
  732 +//
  733 +// for (EvalIndicatorImportDetail shopDetail : shopDetails) {
  734 +//
  735 +// EvalIndicatorValue indicatorValue = new EvalIndicatorValue();
  736 +// indicatorValue.setShopId(shopDetail.getShopId());
  737 +// indicatorValue.setShopName(shopDetail.getShopName());
  738 +// indicatorValue.setDimensionType(DimensionTypeEnum.SHOP);
  739 +// indicatorValue.setIndicatorCode(shopDetail.getIndicatorCode());
  740 +// indicatorValue.setIndicatorName(shopDetail.getIndicatorName());
  741 +// indicatorValue.setIndicatorValue(shopDetail.getIndicatorValue());
  742 +// indicatorValue.setValueType(shopDetail.getValueType());
  743 +// indicatorValue.setDataDate(dataDate);
  744 +// indicatorValue.setGroupId(shopDetail.getGroupId());
  745 +// indicatorValue.setYn(Boolean.TRUE);
  746 +// }
  747 +//
  748 +// for (EvalIndicatorImportDetail shopDetail : userDetails) {
  749 +//
  750 +// EvalIndicatorValue indicatorValue = new EvalIndicatorValue();
  751 +// indicatorValue.setShopId(shopDetail.getShopId());
  752 +// indicatorValue.setShopName(shopDetail.getShopName());
  753 +// indicatorValue.setDimensionType(DimensionTypeEnum.STAFF);
  754 +// indicatorValue.setIndicatorCode(shopDetail.getIndicatorCode());
  755 +// indicatorValue.setIndicatorName(shopDetail.getIndicatorName());
  756 +// indicatorValue.setIndicatorValue(shopDetail.getIndicatorValue());
  757 +// indicatorValue.setValueType(shopDetail.getValueType());
  758 +// indicatorValue.setDataDate(dataDate);
  759 +// indicatorValue.setGroupId(shopDetail.getGroupId());
  760 +// indicatorValue.setYn(Boolean.TRUE);
  761 +// }
  762 +//
  763 +// if (PublicUtil.isNotEmpty(evalIndicatorValues)) {
  764 +// evalIndicatorValueService.saveBatch(evalIndicatorValues);
  765 +// }
  766 + }
  767 +
  768 + /**
  769 + * 上报详情
  770 + *
  771 + * @param evalIndicatorImportId
  772 + * @return
  773 + */
  774 + public EvalReportVO reportDetail(Long evalIndicatorImportId) {
  775 + EvalIndicatorImport evalIndicatorImport = evalIndicatorImportService.getById(evalIndicatorImportId);
  776 + BV.notNull(evalIndicatorImport, "导入记录不存在,请重试");
  777 + EvalReportVO evalReportVO = new EvalReportVO();
  778 + try {
  779 + evalReportVO = JSON.parseObject(evalIndicatorImport.getContent(), EvalReportVO.class);
  780 + } catch (Exception e) {
  781 + log.error("[{}]导入数据解析失败", JSON.toJSONString(evalIndicatorImport), e);
783 782 }
784 783  
785   - for (EvalIndicatorImportDetail shopDetail : userDetails) {
786   -
787   - EvalIndicatorValue indicatorValue = new EvalIndicatorValue();
788   - indicatorValue.setShopId(shopDetail.getShopId());
789   - indicatorValue.setShopName(shopDetail.getShopName());
790   - indicatorValue.setDimensionType(DimensionTypeEnum.STAFF);
791   - indicatorValue.setIndicatorCode(shopDetail.getIndicatorCode());
792   - indicatorValue.setIndicatorName(shopDetail.getIndicatorName());
793   - indicatorValue.setIndicatorValue(shopDetail.getIndicatorValue());
794   - indicatorValue.setValueType(shopDetail.getValueType());
795   - indicatorValue.setDataDate(dataDate);
796   - indicatorValue.setGroupId(shopDetail.getGroupId());
797   - indicatorValue.setYn(Boolean.TRUE);
  784 + List<EvalIndicatorImportUserVO> users = evalReportVO.getUsers();
  785 + List<EvalShopVO> shops = evalReportVO.getShops();
  786 + if (PublicUtil.isNotEmpty(users)) {
  787 + List<Long> userIds = users.stream().map(EvalIndicatorImportUserVO::getUserId).collect(Collectors.toList());
  788 + List<EvalIndicatorValue> evalIndicatorValues = evalIndicatorValueService.list(Wrappers.<EvalIndicatorValue>lambdaQuery()
  789 + .in(EvalIndicatorValue::getUserId, userIds)
  790 + .eq(EvalIndicatorValue::getDataDate, evalIndicatorImport.getDataDate())
  791 + .eq(EvalIndicatorValue::getDimensionType, DimensionTypeEnum.STAFF)
  792 + .eq(EvalIndicatorValue::getYn, Boolean.TRUE)
  793 + );
  794 + Set<Long> reportDataUserIds = evalIndicatorValues.stream().map(EvalIndicatorValue::getUserId).collect(Collectors.toSet());
  795 + for (EvalIndicatorImportUserVO user : users) {
  796 + user.setReport(reportDataUserIds.contains(user.getUserId()));
  797 + }
798 798 }
799 799  
800   - if (PublicUtil.isNotEmpty(evalIndicatorValues)) {
801   - evalIndicatorValueService.saveBatch(evalIndicatorValues);
  800 + if (PublicUtil.isNotEmpty(shops)) {
  801 + List<Long> shopIds = shops.stream().map(EvalShopVO::getShopId).collect(Collectors.toList());
  802 + List<EvalIndicatorValue> evalIndicatorValues = evalIndicatorValueService.list(Wrappers.<EvalIndicatorValue>lambdaQuery()
  803 + .in(EvalIndicatorValue::getShopId, shopIds)
  804 + .eq(EvalIndicatorValue::getDataDate, evalIndicatorImport.getDataDate())
  805 + .eq(EvalIndicatorValue::getDimensionType, DimensionTypeEnum.SHOP)
  806 + .eq(EvalIndicatorValue::getYn, Boolean.TRUE)
  807 + );
  808 + Set<Long> reportDataShopIds = evalIndicatorValues.stream().map(EvalIndicatorValue::getShopId).collect(Collectors.toSet());
  809 + for (EvalShopVO shop : shops) {
  810 + shop.setReport(reportDataShopIds.contains(shop.getShopId()));
  811 + }
802 812 }
  813 + return evalReportVO;
803 814 }
804 815 }
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/component/EvalIndicatorSaveObserver.java 0 → 100644
  1 +package cn.fw.morax.service.component;
  2 +
  3 +import cn.fw.morax.common.constant.Constant;
  4 +import cn.fw.morax.common.pojo.event.ImportEvalIndicatorEvent;
  5 +import cn.fw.morax.common.pojo.event.PaySalaryEvent;
  6 +import cn.fw.morax.common.utils.DateUtil;
  7 +import cn.fw.morax.common.utils.PublicUtil;
  8 +import cn.fw.morax.domain.db.eval.*;
  9 +import cn.fw.morax.domain.db.salary.SalaryGeneralSettin;
  10 +import cn.fw.morax.domain.dto.salary.SalaryPayNoticeDTO;
  11 +import cn.fw.morax.domain.enums.DataImportStatusEnum;
  12 +import cn.fw.morax.domain.enums.DimensionTypeEnum;
  13 +import cn.fw.morax.domain.enums.SalaryConfirmStatusEnum;
  14 +import cn.fw.morax.domain.vo.eval.EvalIndicatorImportUserVO;
  15 +import cn.fw.morax.domain.vo.eval.EvalReportVO;
  16 +import cn.fw.morax.domain.vo.eval.EvalShopVO;
  17 +import cn.fw.morax.domain.vo.salary.SalaryConfirmVO;
  18 +import cn.fw.morax.rpc.backlog.TodoRpcService;
  19 +import cn.fw.morax.rpc.backlog.dto.BackLogItemDTO;
  20 +import cn.fw.morax.rpc.erp.ErpRpcService;
  21 +import cn.fw.morax.rpc.erp.dto.RpcUserRoleInfoDTO;
  22 +import cn.fw.morax.service.biz.CommonService;
  23 +import cn.fw.morax.service.data.eval.EvalIndicatorImportDetailService;
  24 +import cn.fw.morax.service.data.eval.EvalIndicatorImportRecordService;
  25 +import cn.fw.morax.service.data.eval.EvalIndicatorImportService;
  26 +import cn.fw.morax.service.data.eval.EvalIndicatorValueService;
  27 +import cn.fw.morax.service.data.salary.SalaryConfirmService;
  28 +import cn.fw.morax.service.data.salary.SalaryGeneralSettinService;
  29 +import com.alibaba.fastjson.JSON;
  30 +import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  31 +import com.google.common.collect.Lists;
  32 +import com.google.common.eventbus.Subscribe;
  33 +import lombok.Getter;
  34 +import lombok.RequiredArgsConstructor;
  35 +import lombok.extern.slf4j.Slf4j;
  36 +import org.springframework.beans.factory.annotation.Value;
  37 +import org.springframework.stereotype.Component;
  38 +
  39 +import java.math.BigDecimal;
  40 +import java.time.LocalDate;
  41 +import java.time.LocalDateTime;
  42 +import java.time.LocalTime;
  43 +import java.time.YearMonth;
  44 +import java.util.*;
  45 +import java.util.stream.Collectors;
  46 +
  47 +@Component
  48 +@Slf4j
  49 +@RequiredArgsConstructor
  50 +public class EvalIndicatorSaveObserver {
  51 +
  52 + private final SalaryGeneralSettinService salaryGeneralSettinService;
  53 + private final SalaryConfirmService salaryConfirmService;
  54 + private final ErpRpcService erpRpcService;
  55 + private final TodoRpcService todoRpcService;
  56 + private final CommonService commonService;
  57 + private final EvalIndicatorValueService evalIndicatorValueService;
  58 + private final EvalIndicatorImportService evalIndicatorImportService;
  59 + private final EvalIndicatorImportRecordService evalIndicatorImportRecordService;
  60 + private final EvalIndicatorImportDetailService evalIndicatorImportDetailService;
  61 +
  62 + @Value("${todo.pay-salary-notice}")
  63 + @Getter
  64 + private String paySalaryTodoCode;
  65 +
  66 +
  67 + /**
  68 + * 保存导入的考评
  69 + *
  70 + * @param event
  71 + */
  72 + @Subscribe
  73 + public void saveEvalIndicator(ImportEvalIndicatorEvent event) {
  74 + //睡10秒保证数据落库
  75 + try {
  76 + Thread.sleep(10 * 1000);
  77 + } catch (InterruptedException e) {
  78 + e.printStackTrace();
  79 + }
  80 + LocalDate dataDate = event.getDataDate();
  81 + Long recordId = event.getEvalIndicatorImportRecordId();
  82 + EvalIndicatorImportRecord importRecord = evalIndicatorImportRecordService.getById(recordId);
  83 + List<EvalIndicatorImportDetail> shopDetails = evalIndicatorImportDetailService.getLastShopValue(recordId);
  84 + List<EvalIndicatorImportDetail> userDetails = evalIndicatorImportDetailService.getLastUserValue(recordId);
  85 +
  86 + List<EvalIndicatorValue> evalIndicatorValues = Lists.newArrayListWithCapacity(shopDetails.size() + userDetails.size());
  87 + for (EvalIndicatorImportDetail shopDetail : shopDetails) {
  88 +
  89 + EvalIndicatorValue indicatorValue = new EvalIndicatorValue();
  90 + indicatorValue.setShopId(shopDetail.getShopId());
  91 + indicatorValue.setShopName(shopDetail.getShopName());
  92 + indicatorValue.setDimensionType(DimensionTypeEnum.SHOP);
  93 + indicatorValue.setIndicatorCode(shopDetail.getIndicatorCode());
  94 + indicatorValue.setIndicatorName(shopDetail.getIndicatorName());
  95 + indicatorValue.setIndicatorValue(shopDetail.getIndicatorValue());
  96 + indicatorValue.setValueType(shopDetail.getValueType());
  97 + indicatorValue.setDataDate(dataDate);
  98 + indicatorValue.setGroupId(shopDetail.getGroupId());
  99 + indicatorValue.setYn(Boolean.TRUE);
  100 + }
  101 +
  102 + for (EvalIndicatorImportDetail shopDetail : userDetails) {
  103 +
  104 + EvalIndicatorValue indicatorValue = new EvalIndicatorValue();
  105 + indicatorValue.setShopId(shopDetail.getShopId());
  106 + indicatorValue.setShopName(shopDetail.getShopName());
  107 + indicatorValue.setDimensionType(DimensionTypeEnum.STAFF);
  108 + indicatorValue.setIndicatorCode(shopDetail.getIndicatorCode());
  109 + indicatorValue.setIndicatorName(shopDetail.getIndicatorName());
  110 + indicatorValue.setIndicatorValue(shopDetail.getIndicatorValue());
  111 + indicatorValue.setValueType(shopDetail.getValueType());
  112 + indicatorValue.setDataDate(dataDate);
  113 + indicatorValue.setGroupId(shopDetail.getGroupId());
  114 + indicatorValue.setYn(Boolean.TRUE);
  115 + }
  116 +
  117 + if (PublicUtil.isEmpty(evalIndicatorValues)) {
  118 + return;
  119 + }
  120 + evalIndicatorValueService.saveBatch(evalIndicatorValues);
  121 + }
  122 +
  123 + /**
  124 + * 考评数据录入详情
  125 + *
  126 + * @param
  127 + * @return
  128 + */
  129 + public Boolean checkDataReport(EvalIndicatorImport indicatorImport) {
  130 + List<EvalIndicatorImport> indicatorImports = evalIndicatorImportService.list(Wrappers.<EvalIndicatorImport>lambdaQuery()
  131 + .eq(EvalIndicatorImport::getStatus, DataImportStatusEnum.IMPORTING)
  132 + .eq(EvalIndicatorImport::getIndicatorCode, indicatorImport.getIndicatorCode())
  133 + .eq(EvalIndicatorImport::getGroupId, indicatorImport.getGroupId())
  134 + .eq(EvalIndicatorImport::getYn, Boolean.TRUE)
  135 + );
  136 +
  137 +
  138 +// List<Long> shopIds = evalIndicatorImport.getShopIds();
  139 +// EvalReportVO evalReportVO = new EvalReportVO();
  140 +// try {
  141 +// evalReportVO = JSON.parseObject(evalIndicatorImport.getContent(), EvalReportVO.class);
  142 +// } catch (Exception e) {
  143 +// log.error("[{}]导入数据解析失败", JSON.toJSONString(evalIndicatorImport), e);
  144 +// }
  145 +//
  146 +// List<EvalIndicatorImportUserVO> users = evalReportVO.getUsers();
  147 +// List<EvalShopVO> shops = evalReportVO.getShops();
  148 +// if (PublicUtil.isNotEmpty(users)) {
  149 +// List<Long> userIds = users.stream().map(EvalIndicatorImportUserVO::getUserId).collect(Collectors.toList());
  150 +// List<EvalIndicatorValue> evalIndicatorValues = evalIndicatorValueService.list(Wrappers.<EvalIndicatorValue>lambdaQuery()
  151 +// .in(EvalIndicatorValue::getUserId, userIds)
  152 +// .eq(EvalIndicatorValue::getDataDate, evalIndicatorImport.getDataDate())
  153 +// .eq(EvalIndicatorValue::getDimensionType, DimensionTypeEnum.STAFF)
  154 +// .eq(EvalIndicatorValue::getYn, Boolean.TRUE)
  155 +// );
  156 +// Set<Long> reportDataUserIds = evalIndicatorValues.stream().map(EvalIndicatorValue::getUserId).collect(Collectors.toSet());
  157 +// for (EvalIndicatorImportUserVO user : users) {
  158 +// user.setReport(reportDataUserIds.contains(user.getUserId()));
  159 +// }
  160 +// }
  161 +//
  162 +// if (PublicUtil.isNotEmpty(shops)) {
  163 +// List<Long> shopIds = shops.stream().map(EvalShopVO::getShopId).collect(Collectors.toList());
  164 +// List<EvalIndicatorValue> evalIndicatorValues = evalIndicatorValueService.list(Wrappers.<EvalIndicatorValue>lambdaQuery()
  165 +// .in(EvalIndicatorValue::getShopId, shopIds)
  166 +// .eq(EvalIndicatorValue::getDataDate, evalIndicatorImport.getDataDate())
  167 +// .eq(EvalIndicatorValue::getDimensionType, DimensionTypeEnum.SHOP)
  168 +// .eq(EvalIndicatorValue::getYn, Boolean.TRUE)
  169 +// );
  170 +// Set<Long> reportDataShopIds = evalIndicatorValues.stream().map(EvalIndicatorValue::getShopId).collect(Collectors.toSet());
  171 +// for (EvalShopVO shop : shops) {
  172 +// shop.setReport(reportDataShopIds.contains(shop.getShopId()));
  173 +// }
  174 +// }
  175 +
  176 + return null;
  177 + }
  178 +
  179 +}
0 180 \ No newline at end of file
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalIndicatorImportDetailService.java
... ... @@ -18,8 +18,8 @@ import java.util.List;
18 18 */
19 19 public interface EvalIndicatorImportDetailService extends IService<EvalIndicatorImportDetail> {
20 20  
21   - List<EvalIndicatorImportDetail> getLastUserValue(LocalDate dataDate);
  21 + List<EvalIndicatorImportDetail> getLastUserValue(Long recordId);
22 22  
23   - List<EvalIndicatorImportDetail> getLastShopValue(LocalDate dataDate);
  23 + List<EvalIndicatorImportDetail> getLastShopValue(Long recordId);
24 24  
25 25 }
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalIndicatorImportDetailServiceImpl.java
... ... @@ -26,12 +26,12 @@ public class EvalIndicatorImportDetailServiceImpl extends ServiceImpl&lt;EvalIndica
26 26 implements EvalIndicatorImportDetailService {
27 27  
28 28 @Override
29   - public List<EvalIndicatorImportDetail> getLastUserValue(LocalDate dataDate) {
30   - return this.baseMapper.getLastUserValue(DimensionTypeEnum.STAFF.getValue(), dataDate);
  29 + public List<EvalIndicatorImportDetail> getLastUserValue(Long recordId) {
  30 + return this.baseMapper.getLastUserValue(recordId, DimensionTypeEnum.STAFF.getValue());
31 31 }
32 32  
33 33 @Override
34   - public List<EvalIndicatorImportDetail> getLastShopValue(LocalDate dataDate) {
35   - return this.baseMapper.getLastShopValue(DimensionTypeEnum.SHOP.getValue(), dataDate);
  34 + public List<EvalIndicatorImportDetail> getLastShopValue(Long recordId) {
  35 + return this.baseMapper.getLastShopValue(recordId, DimensionTypeEnum.SHOP.getValue());
36 36 }
37 37 }
... ...