Commit af34d179e44d8abcde6a9e2428bfb9045199dfdc

Authored by 姜超
1 parent 5136e8ea

feature(*): 模板文件上传

模板文件上传
Showing 20 changed files with 387 additions and 182 deletions
doc/2023-05-18_update.sql
... ... @@ -12,6 +12,13 @@ ADD COLUMN `role_names` varchar(2048) NULL COMMENT '授权角色名称' AFTER `r
12 12 ALTER TABLE `fw_morax`.`eval_indicator_value`
13 13 MODIFY COLUMN `shop_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '门店名称' AFTER `shop_id`;
14 14  
  15 +ALTER TABLE `fw_morax`.`eval_indicator_value`
  16 + ADD COLUMN `indicator_name` varchar(255) NULL COMMENT '指标名称' AFTER `indicator_code`;
  17 +
  18 +-- eval_indicator_import_menu
  19 +-- eval_indicator_import_detail_score
  20 +-- eval_indicator_import_key_value
  21 +
15 22 -- 2024年4月3日
16 23 ALTER TABLE `fw_morax`.`eval_group_user`
17 24 ADD COLUMN `staff_status` tinyint(8) NULL COMMENT '当前员工状态:1->试用,2->正式,8->待离职,9->离职' AFTER `data_date`;
... ...
fw-morax-common/src/main/java/cn/fw/morax/common/config/EvalIndicatorCodeVal.java deleted
1   -package cn.fw.morax.common.config;
2   -
3   -import lombok.Data;
4   -import org.springframework.boot.context.properties.ConfigurationProperties;
5   -import org.springframework.stereotype.Component;
6   -
7   -@Data
8   -@ConfigurationProperties(prefix = "eval-indicator-code")
9   -@Component
10   -public class EvalIndicatorCodeVal {
11   -
12   - /**
13   - * 展厅美化达标
14   - */
15   - private String showroomScore;
16   -
17   -}
fw-morax-dao/src/main/java/cn/fw/morax/dao/TemplateFileDao.java 0 → 100644
  1 +package cn.fw.morax.dao;
  2 +
  3 +import cn.fw.morax.domain.db.TemplateFile;
  4 +import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +/**
  8 + * 绩效校验离职记录
  9 + *
  10 + * @author : kurisu
  11 + * @version : 2.0
  12 + * @className : UserResignExamineDao
  13 + * @description : 绩效校验离职记录
  14 + * @date : 2022-12-29 16:58
  15 + */
  16 +@Repository
  17 +public interface TemplateFileDao extends BaseMapper<TemplateFile> {
  18 +}
... ...
fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalIndicatorImportDetailScoreDao.java
... ... @@ -3,7 +3,6 @@ package cn.fw.morax.dao.eval;
3 3  
4 4 import cn.fw.morax.dao.orm.LocalMapper;
5 5 import cn.fw.morax.domain.db.eval.EvalIndicatorImportDetailScore;
6   -import cn.fw.morax.domain.db.eval.EvalIndicatorImportKeyValue;
7 6  
8 7 /**
9 8 * <p>
... ...
fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalIndicatorImportKeyValueDao.java
... ... @@ -3,7 +3,6 @@ package cn.fw.morax.dao.eval;
3 3  
4 4 import cn.fw.morax.dao.orm.LocalMapper;
5 5 import cn.fw.morax.domain.db.eval.EvalIndicatorImportKeyValue;
6   -import cn.fw.morax.domain.db.eval.EvalIndicatorScoreStageValue;
7 6  
8 7 /**
9 8 * <p>
... ...
fw-morax-dao/src/main/java/cn/fw/morax/dao/eval/EvalIndicatorImportMenuDao.java 0 → 100644
  1 +package cn.fw.morax.dao.eval;
  2 +
  3 +
  4 +import cn.fw.morax.dao.orm.LocalMapper;
  5 +import cn.fw.morax.domain.db.eval.EvalIndicatorImportMenu;
  6 +
  7 +/**
  8 + * <p>
  9 + * 考评指标导入记录 Mapper 接口
  10 + * </p>
  11 + *
  12 + * @author jiangchao
  13 + * @since 2023-01-30
  14 + */
  15 +public interface EvalIndicatorImportMenuDao extends LocalMapper<EvalIndicatorImportMenu> {
  16 +
  17 +}
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/TemplateFile.java 0 → 100644
  1 +package cn.fw.morax.domain.db;
  2 +
  3 +import cn.fw.common.data.entity.BaseAuditableTimeEntity;
  4 +import cn.fw.morax.domain.enums.TemplateFileTypeEnum;
  5 +import com.baomidou.mybatisplus.annotation.TableLogic;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
  7 +import lombok.Data;
  8 +import lombok.EqualsAndHashCode;
  9 +import lombok.experimental.Accessors;
  10 +
  11 +import java.io.Serializable;
  12 +import java.time.LocalDateTime;
  13 +
  14 +/**
  15 + * <p>
  16 + * 自定义指标导入菜单
  17 + * </p>
  18 + *
  19 + * @author jiangchao
  20 + * @since 2024-04-16
  21 + */
  22 +@Data
  23 +@EqualsAndHashCode(callSuper = false)
  24 +@Accessors(chain = true)
  25 +@TableName(autoResultMap = true)
  26 +public class TemplateFile extends BaseAuditableTimeEntity<TemplateFile, Long> {
  27 +
  28 + private static final long serialVersionUID = 1L;
  29 +
  30 + /**
  31 + * 模板类型
  32 + */
  33 + private TemplateFileTypeEnum type;
  34 +
  35 + /**
  36 + * tag
  37 + */
  38 + private String tag;
  39 +
  40 + /**
  41 + * 文件地址
  42 + */
  43 + private String fid;
  44 +
  45 + /**
  46 + * 集团id
  47 + */
  48 + private Long groupId;
  49 +
  50 + /**
  51 + * 逻辑删除
  52 + */
  53 + @TableLogic
  54 + private Boolean yn;
  55 +
  56 +
  57 +}
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalIndicatorImportMenu.java 0 → 100644
  1 +package cn.fw.morax.domain.db.eval;
  2 +
  3 +import cn.fw.common.data.entity.BaseAuditableTimeEntity;
  4 +import com.baomidou.mybatisplus.annotation.TableField;
  5 +import com.baomidou.mybatisplus.annotation.TableLogic;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
  7 +import lombok.Data;
  8 +import lombok.EqualsAndHashCode;
  9 +import lombok.experimental.Accessors;
  10 +
  11 +import java.io.Serializable;
  12 +import java.time.LocalDateTime;
  13 +
  14 +/**
  15 + * <p>
  16 + * 自定义指标导入菜单
  17 + * </p>
  18 + *
  19 + * @author jiangchao
  20 + * @since 2024-04-16
  21 + */
  22 +@Data
  23 +@EqualsAndHashCode(callSuper = false)
  24 +@Accessors(chain = true)
  25 +@TableName(autoResultMap = true)
  26 +public class EvalIndicatorImportMenu extends BaseAuditableTimeEntity<EvalIndicatorImportMenu, Long> {
  27 +
  28 + private static final long serialVersionUID = 1L;
  29 +
  30 + /**
  31 + * id
  32 + */
  33 + private Long id;
  34 +
  35 + /**
  36 + * 指标编码
  37 + */
  38 + private String indicatorCode;
  39 +
  40 + /**
  41 + * 指标名称
  42 + */
  43 + private String indicatorName;
  44 +
  45 + /**
  46 + * 菜单名称
  47 + */
  48 + private String menuName;
  49 +
  50 + /**
  51 + * 集团id
  52 + */
  53 + private Long groupId;
  54 +
  55 + /**
  56 + * 逻辑删除
  57 + */
  58 + @TableLogic
  59 + private Boolean yn;
  60 +
  61 +
  62 +}
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/db/eval/EvalIndicatorValue.java
... ... @@ -61,10 +61,10 @@ public class EvalIndicatorValue extends BaseAuditableTimeEntity&lt;EvalIndicatorVal
61 61 */
62 62 private String indicatorCode;
63 63  
64   -// /**
65   -// * 指标库名称
66   -// */
67   -// private String indicatorName;
  64 + /**
  65 + * 指标库名称
  66 + */
  67 + private String indicatorName;
68 68  
69 69 /**
70 70 * 指标业务值
... ...
fw-morax-domain/src/main/java/cn/fw/morax/domain/enums/TemplateFileTypeEnum.java 0 → 100644
  1 +package cn.fw.morax.domain.enums;
  2 +
  3 +import com.baomidou.mybatisplus.core.enums.IEnum;
  4 +import com.fasterxml.jackson.annotation.JsonCreator;
  5 +import com.fasterxml.jackson.annotation.JsonValue;
  6 +import lombok.Getter;
  7 +
  8 +/**
  9 + * 模板类型
  10 + *
  11 + * @author : kurisu
  12 + * @version : 1.0
  13 + * @className : TemplateFileTypeEnum
  14 + * @description : 模板类型
  15 + * @date : 2022-05-06 18:24
  16 + */
  17 +public enum TemplateFileTypeEnum implements IEnum<Integer> {
  18 + /**
  19 + * 模板类型;1:考评指标库
  20 + */
  21 + EVAL_INDICATOR(1, "考评指标库"),
  22 + ;
  23 +
  24 + /**
  25 + * 值
  26 + */
  27 + private final Integer value;
  28 + /**
  29 + * 名称
  30 + */
  31 + @Getter
  32 + private final String name;
  33 +
  34 + TemplateFileTypeEnum(final Integer value, final String name) {
  35 + this.value = value;
  36 + this.name = name;
  37 + }
  38 +
  39 + /**
  40 + * 根据枚举值获取枚举对象
  41 + */
  42 + @JsonCreator
  43 + public static TemplateFileTypeEnum ofValue(final Integer value) {
  44 + for (final TemplateFileTypeEnum _enum : TemplateFileTypeEnum.values()) {
  45 + if (_enum.value.equals(value)) {
  46 + return _enum;
  47 + }
  48 + }
  49 + return null;
  50 + }
  51 +
  52 + /**
  53 + * 获取描述
  54 + *
  55 + * @return 值
  56 + */
  57 + @JsonCreator
  58 + public static String getNameByVale(final Integer value) {
  59 + for (final TemplateFileTypeEnum _enum : TemplateFileTypeEnum.values()) {
  60 + if (_enum.value.equals(value)) {
  61 + return _enum.getName();
  62 + }
  63 + }
  64 + return "";
  65 + }
  66 +
  67 + /**
  68 + * 获取值
  69 + *
  70 + * @return 值
  71 + */
  72 + @JsonValue
  73 + @Override
  74 + public Integer getValue() {
  75 + return value;
  76 + }
  77 +}
... ...
fw-morax-server/src/main/java/cn/fw/morax/server/controller/erp/EvalIndicatorImportController.java
... ... @@ -6,11 +6,7 @@ import cn.fw.common.web.annotation.ControllerMethod;
6 6 import cn.fw.common.web.auth.LoginAuthBean;
7 7 import cn.fw.common.web.auth.annotation.CurrentUser;
8 8 import cn.fw.data.base.domain.common.Message;
9   -import cn.fw.morax.common.config.EvalIndicatorCodeVal;
10 9 import cn.fw.morax.common.utils.PublicUtil;
11   -import cn.fw.morax.domain.db.eval.EvalIndicator;
12   -import cn.fw.morax.domain.dto.query.EvalIndicatorImportDetailQueryDTO;
13   -import cn.fw.morax.domain.dto.query.EvalIndicatorImportQueryDTO;
14 10 import cn.fw.morax.domain.dto.query.EvalIndicatorImportScoreQueryDTO;
15 11 import cn.fw.morax.domain.dto.query.EvalIndicatorImportSituationQueryDTO;
16 12 import cn.fw.morax.domain.vo.eval.*;
... ... @@ -21,7 +17,6 @@ import cn.fw.morax.service.biz.eval.EvalIndicatorReportService;
21 17 import cn.fw.morax.service.biz.eval.EvalIndicatorValueBizService;
22 18 import cn.fw.security.auth.client.annotation.Authorization;
23 19 import cn.fw.security.auth.client.annotation.IgnoreAuth;
24   -import cn.fw.security.auth.client.annotation.IgnoreUserToken;
25 20 import cn.fw.security.auth.client.enums.AuthType;
26 21 import lombok.RequiredArgsConstructor;
27 22 import lombok.extern.slf4j.Slf4j;
... ... @@ -52,7 +47,6 @@ public class EvalIndicatorImportController {
52 47 private final EvalIndicatorValueBizService evalIndicatorValueBizService;
53 48 private final EvalIndicatorReportService evalIndicatorReportService;
54 49 private final EvalIndicatorBizService evalIndicatorBizService;
55   - private final EvalIndicatorCodeVal evalIndicatorCodeVal;
56 50  
57 51 /**
58 52 * 数据导入指标列表
... ... @@ -62,11 +56,25 @@ public class EvalIndicatorImportController {
62 56 @IgnoreAuth
63 57 @GetMapping("/indicators")
64 58 @ControllerMethod("数据导入指标列表")
65   - public Message<List<EvalIndicatorVO>> evalIndicators() {
66   - return success(evalIndicatorImportBizService.evalIndicators());
  59 + public Message<List<EvalIndicatorVO>> evalIndicators(@CurrentUser LoginAuthBean user) {
  60 + return success(evalIndicatorImportBizService.evalIndicators(user));
67 61 }
68 62  
69 63 /**
  64 + * 数据导入指标列表
  65 + *
  66 + * @return
  67 + */
  68 + @IgnoreAuth
  69 + @GetMapping("/template-file")
  70 + @ControllerMethod("数据导入指标列表")
  71 + public Message<String> evalIndicatorTemplateFile(@CurrentUser LoginAuthBean user,
  72 + @NotNull(message = "指标编码不能为空") @RequestParam("indicatorCode") String indicatorCode) {
  73 + return success(evalIndicatorImportBizService.evalIndicatorTemplateFile(user, indicatorCode));
  74 + }
  75 +
  76 +
  77 + /**
70 78 * 展厅美化导入记录分页查询
71 79 *
72 80 * @return
... ... @@ -75,7 +83,6 @@ public class EvalIndicatorImportController {
75 83 @GetMapping("/showroom-page")
76 84 @ControllerMethod("展厅美化导入记录分页查询")
77 85 public Message<AppPage<EvalIndicatorImportRecordVO>> showroomImportPage(EvalIndicatorImportScoreQueryDTO dto) {
78   - dto.setIndicatorCode(evalIndicatorCodeVal.getShowroomScore());
79 86 return success(evalIndicatorImportBizService.importPage(dto));
80 87 }
81 88  
... ... @@ -109,11 +116,13 @@ public class EvalIndicatorImportController {
109 116 @IgnoreAuth
110 117 @PostMapping("/analysis-file/showroom-shop")
111 118 @ControllerMethod("上传展厅美化数据")
112   - public Message<EvalIndicatorImportVO> analysisStaffExcel(@RequestParam("file") MultipartFile file, @CurrentUser LoginAuthBean user) {
  119 + public Message<EvalIndicatorImportVO> analysisStaffExcel(@RequestParam("file") MultipartFile file,
  120 + @RequestParam("indicatorCode") String indicatorCode,
  121 + @CurrentUser LoginAuthBean user) {
113 122 if (file.isEmpty()) {
114 123 throw new BusinessException("请上传文件");
115 124 }
116   - return success(evalIndicatorImportBizService.uploadShowroomMonthlyData(null, file, user));
  125 + return success(evalIndicatorImportBizService.uploadShowroomMonthlyData(null, file, indicatorCode, user));
117 126 }
118 127  
119 128 /**
... ... @@ -122,11 +131,13 @@ public class EvalIndicatorImportController {
122 131 @IgnoreAuth
123 132 @GetMapping("/analysis/showroom-shop")
124 133 @ControllerMethod("上传展厅美化数据")
125   - public Message<EvalIndicatorImportVO> uploadShowroomMonthlyData(@RequestParam("fid") String fid, @CurrentUser LoginAuthBean user) {
  134 + public Message<EvalIndicatorImportVO> uploadShowroomMonthlyData(@RequestParam("fid") String fid,
  135 + @RequestParam("indicatorCode") String indicatorCode,
  136 + @CurrentUser LoginAuthBean user) {
126 137 if (PublicUtil.isEmpty(fid)) {
127 138 throw new BusinessException("请上传文件");
128 139 }
129   - return success(evalIndicatorImportBizService.uploadShowroomMonthlyData(fid, null, user));
  140 + return success(evalIndicatorImportBizService.uploadShowroomMonthlyData(fid, null, indicatorCode, user));
130 141 }
131 142  
132 143 // /**
... ...
fw-morax-server/src/main/resources/application-prd.yml
... ... @@ -96,6 +96,3 @@ menu-resource:
96 96  
97 97 trade-company:
98 98 tax-type: 121
99   -
100   -eval-indicator-code:
101   - showroom-score: 'DB493389ceC84dbD' #展厅美化达标
102 99 \ No newline at end of file
... ...
fw-morax-server/src/main/resources/application-test.yml
... ... @@ -100,6 +100,3 @@ menu-resource:
100 100  
101 101 trade-company:
102 102 tax-type: 121
103   -
104   -eval-indicator-code:
105   - showroom-score: 'DB493389ceC84dbD' #展厅美化达标
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalIndicatorConvertValueBizService.java deleted
1   -package cn.fw.morax.service.biz.eval;
2   -
3   -import cn.fw.common.data.mybatis.pagination.PageData;
4   -import cn.fw.common.exception.BusinessException;
5   -import cn.fw.common.page.AppPage;
6   -import cn.fw.common.web.auth.LoginAuthBean;
7   -import cn.fw.morax.common.config.EvalIndicatorCodeVal;
8   -import cn.fw.morax.common.config.EvalIndicatorVal;
9   -import cn.fw.morax.common.config.FileVal;
10   -import cn.fw.morax.common.utils.PublicUtil;
11   -import cn.fw.morax.domain.db.eval.EvalIndicatorImportDetail;
12   -import cn.fw.morax.domain.db.eval.EvalIndicatorImportKeyValue;
13   -import cn.fw.morax.domain.db.eval.EvalIndicatorImportRecord;
14   -import cn.fw.morax.domain.dto.query.EvalIndicatorImportDetailQueryDTO;
15   -import cn.fw.morax.domain.dto.query.EvalIndicatorImportQueryDTO;
16   -import cn.fw.morax.domain.enums.*;
17   -import cn.fw.morax.domain.vo.eval.EvalIndicatorImportDetailVO;
18   -import cn.fw.morax.domain.vo.eval.EvalIndicatorImportKeyValueVO;
19   -import cn.fw.morax.domain.vo.eval.EvalIndicatorImportRecordVO;
20   -import cn.fw.morax.domain.vo.eval.ShowroomScoreImportValueVO;
21   -import cn.fw.morax.rpc.approval.FlowApproveRpc;
22   -import cn.fw.morax.rpc.ehr.EhrRpcService;
23   -import cn.fw.morax.rpc.file.FileRpcService;
24   -import cn.fw.morax.rpc.oop.OopRpcService;
25   -import cn.fw.morax.rpc.oop.dto.ShopDTO;
26   -import cn.fw.morax.service.biz.ApprovalBizService;
27   -import cn.fw.morax.service.biz.CommonService;
28   -import cn.fw.morax.service.data.ApprovalRecordService;
29   -import cn.fw.morax.service.data.eval.*;
30   -import cn.fw.morax.service.data.salary.SalaryGeneralSettinService;
31   -import com.alibaba.fastjson.JSON;
32   -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
33   -import com.baomidou.mybatisplus.core.toolkit.Wrappers;
34   -import com.google.common.collect.Lists;
35   -import lombok.RequiredArgsConstructor;
36   -import lombok.extern.slf4j.Slf4j;
37   -import org.springframework.data.redis.core.BoundValueOperations;
38   -import org.springframework.data.redis.core.StringRedisTemplate;
39   -import org.springframework.stereotype.Service;
40   -import org.springframework.transaction.annotation.Transactional;
41   -import org.springframework.web.multipart.MultipartFile;
42   -
43   -import java.math.BigDecimal;
44   -import java.math.RoundingMode;
45   -import java.time.LocalDate;
46   -import java.time.LocalDateTime;
47   -import java.time.LocalTime;
48   -import java.time.temporal.TemporalAdjusters;
49   -import java.util.*;
50   -import java.util.concurrent.TimeUnit;
51   -import java.util.stream.Collectors;
52   -
53   -/**
54   - * @author jiangchao
55   - * @des:
56   - * @date 2024/3/22 17:19
57   - */
58   -@Service
59   -@Slf4j
60   -@RequiredArgsConstructor
61   -public class EvalIndicatorConvertValueBizService {
62   -
63   - private final EvalIndicatorImportKeyValueService evalIndicatorImportKeyValueService;
64   - private final EvalIndicatorImportRecordService evalIndicatorImportRecordService;
65   - private final EvalIndicatorImportDetailService evalIndicatorImportDetailService;
66   - private final EvalIndicatorCommonService evalIndicatorCommonService;
67   - private final SalaryGeneralSettinService salaryGeneralSettinService;
68   - private final ApprovalRecordService approvalRecordService;
69   - private final EvalIndicatorCodeVal evalIndicatorCodeVal;
70   - private final EvalIndicatorService evalIndicatorService;
71   - private final StringRedisTemplate stringRedisTemplate;
72   - private final ApprovalBizService approvalBizService;
73   - private final EvalIndicatorVal evalIndicatorVal;
74   - private final FlowApproveRpc flowApproveRpc;
75   - private final FileRpcService fileRpcService;
76   - private final EhrRpcService ehrRpcService;
77   - private final CommonService commonService;
78   - private final OopRpcService oopRpcService;
79   - private final EvalService evalService;
80   - private final FileVal fileVal;
81   -
82   - public void convertShowroomStaffValue(LocalDate dataDate) {
83   - final LocalDate firstMonthDate = dataDate.withDayOfMonth(1);
84   - final LocalDate lastMonthDate = dataDate.with(TemporalAdjusters.lastDayOfMonth());
85   - List<EvalIndicatorImportDetail> monthlyDetails = evalIndicatorImportDetailService.list(Wrappers.<EvalIndicatorImportDetail>lambdaQuery()
86   - .isNull(EvalIndicatorImportDetail::getErrorType)
87   - .eq(EvalIndicatorImportDetail::getIndicatorCode, evalIndicatorCodeVal.getShowroomScore())
88   - .ge(EvalIndicatorImportDetail::getDataDate, firstMonthDate)
89   - .le(EvalIndicatorImportDetail::getDataDate, lastMonthDate)
90   - .eq(EvalIndicatorImportDetail::getYn, Boolean.TRUE)
91   - );
92   -
93   -
94   - }
95   -
96   -}
fw-morax-service/src/main/java/cn/fw/morax/service/biz/eval/EvalIndicatorImportBizService.java
... ... @@ -4,42 +4,31 @@ import cn.fw.common.data.mybatis.pagination.PageData;
4 4 import cn.fw.common.exception.BusinessException;
5 5 import cn.fw.common.page.AppPage;
6 6 import cn.fw.common.web.auth.LoginAuthBean;
7   -import cn.fw.morax.common.config.EvalIndicatorCodeVal;
  7 +import cn.fw.common.web.auth.annotation.CurrentUser;
8 8 import cn.fw.morax.common.config.EvalIndicatorVal;
9   -import cn.fw.morax.common.config.FileVal;
10 9 import cn.fw.morax.common.utils.MessageFormatUtil;
11 10 import cn.fw.morax.common.utils.PublicUtil;
  11 +import cn.fw.morax.domain.db.TemplateFile;
12 12 import cn.fw.morax.domain.db.eval.*;
13   -import cn.fw.morax.domain.dto.query.EvalIndicatorImportDetailQueryDTO;
14   -import cn.fw.morax.domain.dto.query.EvalIndicatorImportQueryDTO;
15 13 import cn.fw.morax.domain.dto.query.EvalIndicatorImportScoreQueryDTO;
16 14 import cn.fw.morax.domain.enums.*;
17 15 import cn.fw.morax.domain.vo.eval.*;
18   -import cn.fw.morax.rpc.approval.FlowApproveRpc;
19   -import cn.fw.morax.rpc.ehr.EhrRpcService;
20   -import cn.fw.morax.rpc.file.FileRpcService;
21   -import cn.fw.morax.rpc.oop.OopRpcService;
22 16 import cn.fw.morax.rpc.oop.dto.ShopDTO;
23 17 import cn.fw.morax.service.biz.ApprovalBizService;
24   -import cn.fw.morax.service.biz.CommonService;
25   -import cn.fw.morax.service.data.ApprovalRecordService;
  18 +import cn.fw.morax.service.data.TemplateFileService;
26 19 import cn.fw.morax.service.data.eval.*;
27   -import cn.fw.morax.service.data.salary.SalaryGeneralSettinService;
28 20 import com.alibaba.fastjson.JSON;
29   -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
30 21 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
31   -import com.google.common.collect.Lists;
32 22 import lombok.RequiredArgsConstructor;
33 23 import lombok.extern.slf4j.Slf4j;
34 24 import org.springframework.data.redis.core.BoundValueOperations;
35 25 import org.springframework.data.redis.core.StringRedisTemplate;
36 26 import org.springframework.stereotype.Service;
37 27 import org.springframework.transaction.annotation.Transactional;
  28 +import org.springframework.web.bind.annotation.RequestParam;
38 29 import org.springframework.web.multipart.MultipartFile;
39 30  
40 31 import java.time.LocalDate;
41   -import java.time.LocalDateTime;
42   -import java.time.LocalTime;
43 32 import java.time.YearMonth;
44 33 import java.util.*;
45 34 import java.util.concurrent.TimeUnit;
... ... @@ -59,20 +48,24 @@ public class EvalIndicatorImportBizService {
59 48  
60 49 private final EvalIndicatorImportDetailScoreService evalIndicatorImportDetailScoreService;
61 50 private final EvalIndicatorImportRecordService evalIndicatorImportRecordService;
  51 + private final EvalIndicatorImportMenuService evalIndicatorImportMenuService;
62 52 private final EvalIndicatorCommonService evalIndicatorCommonService;
63   - private final EvalIndicatorCodeVal evalIndicatorCodeVal;
64 53 private final EvalIndicatorService evalIndicatorService;
65 54 private final StringRedisTemplate stringRedisTemplate;
  55 + private final TemplateFileService templateFileService;
66 56 private final ApprovalBizService approvalBizService;
67 57 private final EvalIndicatorVal evalIndicatorVal;
68 58  
69 59 /**
70 60 * 数据导入指标列表
71 61 */
72   - public List<EvalIndicatorVO> evalIndicators() {
73   - List<String> evalIndicatorCodes = new ArrayList<String>() {{
74   - add(evalIndicatorCodeVal.getShowroomScore());
75   - }};
  62 + public List<EvalIndicatorVO> evalIndicators(LoginAuthBean user) {
  63 + final Long groupId = user.getGroupId();
  64 + List<EvalIndicatorImportMenu> evalIndicatorMenus = evalIndicatorImportMenuService.list(Wrappers.<EvalIndicatorImportMenu>lambdaQuery()
  65 + .eq(EvalIndicatorImportMenu::getGroupId, groupId)
  66 + .eq(EvalIndicatorImportMenu::getYn, Boolean.TRUE)
  67 + );
  68 + List<String> evalIndicatorCodes = evalIndicatorMenus.stream().map(EvalIndicatorImportMenu::getIndicatorCode).collect(Collectors.toList());
76 69 List<EvalIndicator> evalIndicators = evalIndicatorService.list(Wrappers.<EvalIndicator>lambdaQuery()
77 70 .in(EvalIndicator::getCode, evalIndicatorCodes)
78 71 .eq(EvalIndicator::getYn, Boolean.TRUE)
... ... @@ -85,6 +78,24 @@ public class EvalIndicatorImportBizService {
85 78 }
86 79  
87 80 /**
  81 + * 数据导入指标列表
  82 + */
  83 + public String evalIndicatorTemplateFile(LoginAuthBean user, String indicatorCode) {
  84 + final Long groupId = user.getGroupId();
  85 + TemplateFile templateFile = templateFileService.getOne(Wrappers.<TemplateFile>lambdaQuery()
  86 + .eq(TemplateFile::getTag, indicatorCode)
  87 + .eq(TemplateFile::getType, TemplateFileTypeEnum.EVAL_INDICATOR)
  88 + .eq(TemplateFile::getGroupId, groupId)
  89 + .eq(TemplateFile::getYn, Boolean.TRUE)
  90 + , Boolean.FALSE
  91 + );
  92 + if (PublicUtil.isEmpty(templateFile)) {
  93 + return null;
  94 + }
  95 + return templateFile.getFid();
  96 + }
  97 +
  98 + /**
88 99 * 分页查询
89 100 *
90 101 * @param dto
... ... @@ -140,10 +151,10 @@ public class EvalIndicatorImportBizService {
140 151 }
141 152  
142 153 @Transactional(rollbackFor = Exception.class)
143   - public EvalIndicatorImportVO uploadShowroomMonthlyData(String fid, MultipartFile file, LoginAuthBean user) {
  154 + public EvalIndicatorImportVO uploadShowroomMonthlyData(String fid, MultipartFile file, String indicatorCode, LoginAuthBean user) {
144 155 final DataTimeTypeEnum dataTimeType = DataTimeTypeEnum.MONTHLY;
145 156 final Long groupId = user.getGroupId();
146   - EvalIndicator evalIndicator = evalIndicatorService.queryByCode(evalIndicatorCodeVal.getShowroomScore(), Boolean.FALSE);
  157 + EvalIndicator evalIndicator = evalIndicatorService.queryByCode(indicatorCode, Boolean.FALSE);
147 158 BV.notNull(evalIndicator, "展厅美化指标不存在,请重试");
148 159 List<YearMonth> importValidMonthlies = new ArrayList<YearMonth>() {{
149 160 add(YearMonth.now());
... ... @@ -265,7 +276,7 @@ public class EvalIndicatorImportBizService {
265 276 importRecord.setDataDate(dataDate);
266 277  
267 278 importRecord.setIndicatorName(evalIndicator.getName());
268   - importRecord.setIndicatorCode(evalIndicatorCodeVal.getShowroomScore());
  279 + importRecord.setIndicatorCode(evalIndicator.getCode());
269 280 return importRecord;
270 281 }
271 282  
... ... @@ -295,12 +306,11 @@ public class EvalIndicatorImportBizService {
295 306 public EvalIndicatorImportDetailScore convertShopPo(ShowroomScoreImportValueVO shopValue, EvalIndicator evalIndicator, Long groupId) {
296 307 Optional<ShowroomScoreImportValueVO> valueOptional = Optional.ofNullable(shopValue);
297 308 EvalIndicatorImportDetailScore detail = new EvalIndicatorImportDetailScore();
298   - detail.setIndicatorCode(evalIndicatorCodeVal.getShowroomScore());
299 309 detail.setShopName(valueOptional.map(ShowroomScoreImportValueVO::getShopName).orElse(""));
300 310 if (PublicUtil.isNotEmpty(shopValue.getMonthlyDate())) {
301 311 detail.setDataDate(evalIndicatorCommonService.convertMonthlyDate(shopValue.getMonthlyDate()));
302 312 }
303   - detail.setIndicatorCode(evalIndicatorCodeVal.getShowroomScore());
  313 + detail.setIndicatorCode(evalIndicator.getCode());
304 314 detail.setIndicatorName(evalIndicator.getName());
305 315 detail.setValid(Boolean.FALSE);
306 316 detail.setGroupId(groupId);
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/component/EvalIndicatorScoreSaveObserver.java
1 1 package cn.fw.morax.service.component;
2 2  
3   -import cn.fw.morax.common.config.EvalIndicatorCodeVal;
4   -import cn.fw.morax.common.config.TodoVal;
5 3 import cn.fw.morax.common.pojo.event.ImportEvalIndicatorScoreEvent;
6 4 import cn.fw.morax.common.utils.PublicUtil;
7 5 import cn.fw.morax.domain.bo.eval.EvalIndicatorScoreBO;
8 6 import cn.fw.morax.domain.db.eval.*;
9 7 import cn.fw.morax.domain.enums.DataTypeEnum;
10 8 import cn.fw.morax.domain.enums.DimensionTypeEnum;
11   -import cn.fw.morax.rpc.backlog.TodoRpcService;
12   -import cn.fw.morax.rpc.erp.ErpRpcService;
13 9 import cn.fw.morax.rpc.erp.dto.HRoleAuthRangeDayVO;
14 10 import cn.fw.morax.service.biz.RpcCommonService;
15 11 import cn.fw.morax.service.biz.eval.EvalIndicatorCommonService;
... ... @@ -35,18 +31,10 @@ import java.util.stream.Collectors;
35 31 @RequiredArgsConstructor
36 32 public class EvalIndicatorScoreSaveObserver {
37 33  
38   - private final TodoVal todoVal;
39   - private final TodoRpcService todoRpcService;
40   - private final ErpRpcService erpRpcService;
41 34 private final RpcCommonService rpcCommonService;
42   - private final EvalIndicatorCodeVal evalIndicatorCodeVal;
43 35 private final EvalIndicatorService evalIndicatorService;
44   - private final EvalIndicatorValueService evalIndicatorValueService;
45 36 private final EvalIndicatorCommonService evalIndicatorCommonService;
46   - private final EvalIndicatorImportService evalIndicatorImportService;
47   - private final EvalIndicatorStageValueService evalIndicatorStageValueService;
48 37 private final EvalIndicatorImportRecordService evalIndicatorImportRecordService;
49   - private final EvalIndicatorImportDetailService evalIndicatorImportDetailService;
50 38 private final EvalIndicatorImportDetailScoreService evalIndicatorImportDetailScoreService;
51 39  
52 40 /**
... ... @@ -65,6 +53,7 @@ public class EvalIndicatorScoreSaveObserver {
65 53 }
66 54 final Long recordId = event.getEvalIndicatorImportRecordId();
67 55 EvalIndicatorImportRecord importRecord = evalIndicatorImportRecordService.getById(recordId);
  56 + final String indicatorCode = importRecord.getIndicatorCode();
68 57 EvalIndicator evalIndicator = evalIndicatorService.queryByCode(importRecord.getIndicatorCode(), Boolean.FALSE);
69 58 final Long groupId = importRecord.getGroupId();
70 59 List<EvalIndicatorImportDetailScore> detailScores = evalIndicatorImportDetailScoreService.list(Wrappers.<EvalIndicatorImportDetailScore>lambdaQuery()
... ... @@ -99,20 +88,20 @@ public class EvalIndicatorScoreSaveObserver {
99 88 //抽取数据
100 89 for (YearMonth monthly : monthlies) {
101 90 LocalDate dataDate = YearMonth.now().compareTo(monthly) == 0 ? LocalDate.now() : monthly.atEndOfMonth();
102   - List<EvalIndicatorScoreBO> monthlyScoreBos = this.getShopScoreBO(monthly, dataDate, groupId);
  91 + List<EvalIndicatorScoreBO> monthlyScoreBos = this.getShopScoreBO(monthly, indicatorCode, dataDate, groupId);
103 92  
104   - List<EvalIndicatorValue> shopValues = this.extractShopValue(dataDate, groupId, monthlyScoreBos);
  93 + List<EvalIndicatorValue> shopValues = this.extractShopValue(evalIndicator, dataDate, groupId, monthlyScoreBos);
105 94 List<EvalIndicatorValue> staffValues = this.extractUserValue(evalIndicator, dataDate, groupId, monthlyScoreBos);
106 95 evalIndicatorCommonService.saveIndicatorValue(shopValues);
107 96 evalIndicatorCommonService.saveIndicatorValue(staffValues);
108 97 }
109 98 }
110 99  
111   - public List<EvalIndicatorScoreBO> getShopScoreBO(YearMonth monthly, LocalDate dataDate, Long groupId) {
  100 + public List<EvalIndicatorScoreBO> getShopScoreBO(YearMonth monthly, String indicatorCode, LocalDate dataDate, Long groupId) {
112 101 final LocalDate startTime = monthly.atDay(1);
113 102 final LocalDate endTime = monthly.atEndOfMonth();
114 103 List<EvalIndicatorImportDetailScore> showroomScores = evalIndicatorImportDetailScoreService.list(Wrappers.<EvalIndicatorImportDetailScore>lambdaQuery()
115   - .eq(EvalIndicatorImportDetailScore::getIndicatorCode, evalIndicatorCodeVal.getShowroomScore())
  104 + .eq(EvalIndicatorImportDetailScore::getIndicatorCode, indicatorCode)
116 105 .ge(EvalIndicatorImportDetailScore::getDataDate, startTime)
117 106 .le(EvalIndicatorImportDetailScore::getDataDate, endTime)
118 107 .isNull(EvalIndicatorImportDetailScore::getErrorType)
... ... @@ -139,7 +128,7 @@ public class EvalIndicatorScoreSaveObserver {
139 128 return scoreBOS;
140 129 }
141 130  
142   - public List<EvalIndicatorValue> extractShopValue(LocalDate dataDate, Long groupId, List<EvalIndicatorScoreBO> scoreBos) {
  131 + public List<EvalIndicatorValue> extractShopValue(EvalIndicator evalIndicator, LocalDate dataDate, Long groupId, List<EvalIndicatorScoreBO> scoreBos) {
143 132 List<EvalIndicatorValue> evalIndicatorValues = new ArrayList<>();
144 133 for (EvalIndicatorScoreBO scoreBO : scoreBos) {
145 134 final BigDecimal score = scoreBO.getScore();
... ... @@ -150,7 +139,7 @@ public class EvalIndicatorScoreSaveObserver {
150 139 indicatorValue.setShopId(scoreBO.getShopId());
151 140 indicatorValue.setShopName(scoreBO.getShopName());
152 141 indicatorValue.setIndicatorValue(BigDecimal.ZERO);
153   - indicatorValue.setIndicatorCode(evalIndicatorCodeVal.getShowroomScore());
  142 + indicatorValue.setIndicatorCode(evalIndicator.getCode());
154 143 indicatorValue.setDimensionType(DimensionTypeEnum.SHOP);
155 144 if (PublicUtil.isNotEmpty(score) && PublicUtil.isNotEmpty(totalScore) && (totalScore.compareTo(BigDecimal.ZERO) > 0)) {
156 145 indicatorValue.setIndicatorValue(score.divide(totalScore, 4, RoundingMode.HALF_UP));
... ... @@ -212,7 +201,7 @@ public class EvalIndicatorScoreSaveObserver {
212 201 value.setShopId(-1L);
213 202 value.setShopName("");
214 203 value.setIndicatorValue(BigDecimal.ZERO);
215   - value.setIndicatorCode(evalIndicatorCodeVal.getShowroomScore());
  204 + value.setIndicatorCode(evalIndicator.getCode());
216 205 value.setDimensionType(DimensionTypeEnum.STAFF);
217 206 if (PublicUtil.isNotEmpty(score) && PublicUtil.isNotEmpty(totalScore) && (totalScore.compareTo(BigDecimal.ZERO) > 0)) {
218 207 value.setIndicatorValue(score.divide(totalScore, 4, RoundingMode.HALF_UP));
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/data/TemplateFileService.java 0 → 100644
  1 +package cn.fw.morax.service.data;
  2 +
  3 +import cn.fw.morax.domain.db.TemplateFile;
  4 +import cn.fw.morax.domain.db.UserResignExamine;
  5 +import com.baomidou.mybatisplus.extension.service.IService;
  6 +
  7 +/**
  8 + * 绩效考核离职记录
  9 + *
  10 + * @author : kurisu
  11 + * @version : 2.0
  12 + * @className : UserResignExamineService
  13 + * @description : 绩效考核离职记录
  14 + * @date : 2022-12-29 17:05
  15 + */
  16 +public interface TemplateFileService extends IService<TemplateFile> {
  17 +}
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/EvalIndicatorImportMenuService.java 0 → 100644
  1 +package cn.fw.morax.service.data.eval;
  2 +
  3 +
  4 +import cn.fw.morax.dao.orm.ILocalService;
  5 +import cn.fw.morax.domain.db.eval.EvalIndicatorImportMenu;
  6 +
  7 +/**
  8 + * <p>
  9 + * 考评指标导入记录 服务类
  10 + * </p>
  11 + *
  12 + * @author jiangchao
  13 + * @since 2023-01-30
  14 + */
  15 +public interface EvalIndicatorImportMenuService extends ILocalService<EvalIndicatorImportMenu> {
  16 +
  17 +
  18 +}
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/data/eval/impl/EvalIndicatorImportMenuServiceImpl.java 0 → 100644
  1 +package cn.fw.morax.service.data.eval.impl;
  2 +
  3 +import cn.fw.morax.dao.eval.EvalIndicatorImportMenuDao;
  4 +import cn.fw.morax.domain.db.eval.EvalIndicatorImportMenu;
  5 +import cn.fw.morax.service.data.eval.EvalIndicatorImportMenuService;
  6 +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  7 +import org.springframework.stereotype.Service;
  8 +
  9 +/**
  10 + * <p>
  11 + * 考评指标导入记录 服务实现类
  12 + * </p>
  13 + *
  14 + * @author jiangchao
  15 + * @since 2023-02-06
  16 + */
  17 +@Service
  18 +public class EvalIndicatorImportMenuServiceImpl extends ServiceImpl<EvalIndicatorImportMenuDao, EvalIndicatorImportMenu>
  19 + implements EvalIndicatorImportMenuService {
  20 +
  21 +
  22 +}
... ...
fw-morax-service/src/main/java/cn/fw/morax/service/data/impl/TemplateFileServiceImpl.java 0 → 100644
  1 +package cn.fw.morax.service.data.impl;
  2 +
  3 +import cn.fw.morax.dao.TemplateFileDao;
  4 +import cn.fw.morax.domain.db.TemplateFile;
  5 +import cn.fw.morax.service.data.TemplateFileService;
  6 +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  7 +import org.springframework.stereotype.Service;
  8 +
  9 +/**
  10 + * 薪资发放记录
  11 + *
  12 + * @author : kurisu
  13 + * @version : 1.0
  14 + * @className : PayrollRecordServiceImpl
  15 + * @description : 薪资发放记录
  16 + * @date : 2022-05-07 10:55
  17 + */
  18 +@Service
  19 +public class TemplateFileServiceImpl extends ServiceImpl<TemplateFileDao, TemplateFile> implements TemplateFileService {
  20 +
  21 +}
... ...