finance-admin-dept/src/main/resources/application-dev.yml
@@ -165,7 +165,7 @@ # 令牌密钥 secret: abcdefghijklmnopqrstuvwxyz # 令牌有效期(默认30分钟) expireTime: 120 expireTime: 60 * 12 # MyBatis配置 #mybatis: finance-admin-dept/src/main/resources/application.yml
@@ -1,3 +1,3 @@ spring: profiles: active: dev active: prod finance-admin/src/main/resources/application-dev.yml
@@ -103,9 +103,9 @@ druid: # 主库数据源 master: url: jdbc:mysql://1.95.13.179:3306/financialdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true url: jdbc:mysql://localhost:3306/financialdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true username: root password: Si8bnm5KPGSZkF3F password: 123456 # url: jdbc:mysql://8.137.10.192:3306/sys_config?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8 # username: root # password: shms#123~ finance-system/src/main/java/com/finance/system/domain/TbBasicDataCategory.java
@@ -1,14 +1,18 @@ package com.finance.system.domain; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import com.finance.common.enums.ShowStatusEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; import java.util.Date; import lombok.Data; import lombok.EqualsAndHashCode; /** * <p> @@ -21,7 +25,7 @@ @Data @EqualsAndHashCode(callSuper = false) @TableName("tb_basic_data_category") @ApiModel(value="TbBasicDataCategory对象", description="基础数据分类表") @ApiModel(value = "TbBasicDataCategory对象", description = "基础数据分类表") public class TbBasicDataCategory implements Serializable { private static final long serialVersionUID = 1L; @@ -30,6 +34,10 @@ @TableId(value = "id", type = IdType.AUTO) private Long id; @ApiModelProperty(value = "父级id") @TableField("parent_id") private Long parentId; @ApiModelProperty(value = "基础数据分类名称") @TableField("basic_data_category_name") private String basicDataCategoryName; @@ -38,6 +46,10 @@ @TableField("status") private ShowStatusEnum status; @ApiModelProperty(value = "分值") @TableField("score") private Double score; @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)") @TableField("del_flag") @TableLogic finance-system/src/main/java/com/finance/system/handler/CustomerHandler.java
@@ -15,7 +15,7 @@ public class CustomerHandler extends AbstractColumnWidthStyleStrategy { private static final int MAX_COLUMN_WIDTH = 255; //因为在自动列宽的过程中,有些设置地方让列宽显得紧凑,所以做出了个判断 // 因为在自动列宽的过程中,有些设置地方让列宽显得紧凑,所以做出了个判断 private static final int COLUMN_WIDTH = 20; private Map<Integer, Map<Integer, Integer>> CACHE = new HashMap(8); @@ -50,7 +50,7 @@ if (maxColumnWidth == null || columnWidth > maxColumnWidth) { ((Map) maxColumnWidthMap).put(cell.getColumnIndex(), columnWidth); writeSheetHolder.getSheet() .setColumnWidth(cell.getColumnIndex(), columnWidth * 256); .setColumnWidth(cell.getColumnIndex(), columnWidth * 150); } } } finance-system/src/main/java/com/finance/system/listener/BasicDataListener.java
@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.common.collect.Lists; import com.finance.common.enums.CalculateTypeEnum; import com.finance.common.enums.DataScreenConfigEnum; import com.finance.common.enums.FieldInputTypeEnum; @@ -37,6 +36,7 @@ import com.finance.system.service.TbFieldService; import com.finance.system.service.TbScoreService; import com.finance.system.vo.DataScreenConfigVO; import com.google.common.collect.Lists; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; @@ -46,6 +46,7 @@ import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @Slf4j public class BasicDataListener extends AnalysisEventListener<Map<Integer, String>> { @@ -157,16 +158,25 @@ // 查询需要填写的动态字段 List<TbField> fieldList = tbFieldService.lambdaQuery().eq(TbField::getStatus, ShowStatusEnum.SHOW).list(); Map<Integer, String> headMap = cachedDataList.get(cachedDataList.size() - 3); Map<Integer, String> dataMap = cachedDataList.get(cachedDataList.size() - 1); Map<Integer, String> categoryOneMap = cachedDataList.get(0); Map<Integer, String> categoryTwoMap = cachedDataList.get(1); Map<Integer, String> categoryThreeMap = cachedDataList.get(2); Map<Integer, String> headMap = cachedDataList.get(3); Map<Integer, String> dataMap = cachedDataList.get(5); log.info("{}条数据,开始存储数据库!", cachedDataList.size()); log.info("表头:{}", JSON.toJSONString(headMap)); log.info("填写的数据:{}", JSON.toJSONString(dataMap)); log.info("所有数据:{}", JSON.toJSONString(cachedDataList)); int remarkIndex = headMap.size() - 1; Map<Integer, String> dynamicFieldsMap = headMap.entrySet().stream() .filter(entry -> !(Lists.newArrayList(0, 1, 2, 3).contains(entry.getKey()) || entry.getKey() == remarkIndex)) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); Map<Integer, String> dynamicFieldsMap = getIntegerStringMap(headMap, remarkIndex); Map<Integer, String> dynamicCategoryOneMap = getIntegerStringMap(categoryOneMap, remarkIndex); Map<Integer, String> dynamicCategoryTwoMap = getIntegerStringMap(categoryTwoMap, remarkIndex); Map<Integer, String> dynamicCategoryThreeMap = getIntegerStringMap(categoryThreeMap, remarkIndex); List<String> dynamicFields = new ArrayList<>(dynamicFieldsMap.values()); List<String> collect = fieldList.stream().map(TbField::getFieldName) .collect(Collectors.toList()); @@ -208,11 +218,21 @@ fields.add(currentGdp); //遍历动态字段map for (Map.Entry<Integer, String> integerStringEntry : dynamicFieldsMap.entrySet()) { Optional<TbField> tbField = tbFieldService.lambdaQuery() .eq(TbField::getFieldName, integerStringEntry.getValue()) .eq(TbField::getStatus, ShowStatusEnum.SHOW).oneOpt(); if (tbField.isPresent()) { TbField field = tbField.get(); String categoryOne = dynamicCategoryOneMap.get(integerStringEntry.getKey()); String categoryTwo = dynamicCategoryTwoMap.get(integerStringEntry.getKey()); String categoryThree = dynamicCategoryThreeMap.get(integerStringEntry.getKey()); String fieldStr = integerStringEntry.getValue(); boolean res = !fieldStr.equals(categoryTwo); List<TbField> tbField = tbFieldService.lambdaQuery() .eq(TbField::getFieldName, fieldStr) .eq(TbField::getStatus, ShowStatusEnum.SHOW) .eq(TbField::getLevelOneCategory, categoryOne) .eq(res, TbField::getLevelTwoCategory, categoryTwo) .eq(!fieldStr.equals(categoryThree) && res, TbField::getLevelThreeCategory, categoryThree) .list(); if (CollUtils.isNotEmpty(tbField)) { TbField field = tbField.get(0); String value = validateFields(integerStringEntry, dataMap, field); TbBasicDataField tbBasicDataField = new TbBasicDataField(); tbBasicDataField.setBasicDataId(tbBasicData.getId()); @@ -232,6 +252,16 @@ }); } @NotNull private static Map<Integer, String> getIntegerStringMap(Map<Integer, String> headMap, int remarkIndex) { Map<Integer, String> dynamicFieldsMap = headMap.entrySet().stream() .filter(entry -> !(Lists.newArrayList(0, 1, 2, 3).contains(entry.getKey()) || entry.getKey() == remarkIndex)) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); return dynamicFieldsMap; } private void calculateScore(TbBasicData tbBasicData, List<TbBasicDataField> fields) { List<TbScore> scoreList = new ArrayList<>(); //计算得分 finance-system/src/main/java/com/finance/system/service/impl/TbBasicDataServiceImpl.java
@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import com.finance.common.basic.PageDTO; import com.finance.common.core.domain.R; import com.finance.common.core.domain.entity.SysUser; @@ -70,6 +69,7 @@ import com.finance.system.vo.ScoreCalculateVO; import com.finance.system.vo.ScoreVO; import com.finance.system.vo.TransferPaymentScaleVO; import com.google.common.collect.Lists; import java.io.IOException; import java.net.URLEncoder; import java.time.Instant; @@ -485,6 +485,7 @@ tbBasicDataConfigDetailService, tbScoreService, tbDataScreenScoreService, tbDataScreenConfigService)) .sheet() .headRowNumber(0) .doRead(); } finance-system/src/main/java/com/finance/system/service/impl/TbFieldServiceImpl.java
@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import com.finance.common.basic.PageDTO; import com.finance.common.core.domain.entity.SysUser; import com.finance.common.enums.FieldInputTypeEnum; @@ -40,6 +39,7 @@ import com.finance.system.vo.BasicDataFieldVO; import com.finance.system.vo.FieldVO; import com.finance.system.vo.FieldsTreeVO; import com.google.common.collect.Lists; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Arrays; @@ -78,9 +78,9 @@ @Override public void add(FieldDTO dto) { //参数校验 // 参数校验 FieldTypeEnum fieldType = dto.getFieldType(); //1:数字 2:文本 3:百分比 // 1:数字 2:文本 3:百分比 if (FieldTypeEnum.TEXT.equals(fieldType)) { if (StringUtils.isNull(dto.getTextInputType())) { throw new ServiceException("输入类型不能为空"); @@ -112,10 +112,10 @@ if (StringUtils.isNull(field)) { throw new ServiceException("非法参数"); } //隐藏字段 // 隐藏字段 this.lambdaUpdate().set(TbField::getStatus, dto.getStatus()).eq(TbField::getId, dto.getId()) .update(); //异步隐藏基础数据配置 // 异步隐藏基础数据配置 CompletableFuture.runAsync(() -> handleDataConfig(dto, field)); } @@ -127,7 +127,7 @@ List<Long> ids = list.stream().map(config -> { String fieldIdStr = config.getFieldIdStr(); String[] split = fieldIdStr.split(","); //字符串数组转为List // 字符串数组转为List List<String> idList = new ArrayList<>(Arrays.asList(split)); if (idList.contains(field.getId().toString())) { return config.getId(); @@ -229,7 +229,7 @@ String collect = list.stream().map(config -> { String fieldIdStr = config.getFieldIdStr(); String[] split = fieldIdStr.split(","); //字符串数组转为List // 字符串数组转为List List<String> idList = Arrays.asList(split); if (idList.contains(id.toString())) { return config.getTypeName(); @@ -330,16 +330,16 @@ } } boolean isPlatform = UserTypeEnum.PLATFORM.equals(user.getUserType()); //默认生成下拉框的行数为1 // 默认生成下拉框的行数为1 int rows = 1; if (isPlatform) { //查询所有的地区 // 查询所有的地区 List<SysUser> userList = sysUserService.lambdaQuery() .eq(SysUser::getUserType, UserTypeEnum.DEPARTMENT).list(); String[] userNameArr = userList.stream().map(SysUser::getAreaName) .toArray(String[]::new); selectedMap.put(0, userNameArr); //生成下拉框的行数为部门的数量 // 生成下拉框的行数为部门的数量 rows = userList.size(); } // 这里需要设置不关闭流