mitao
2024-07-05 7a1e9b29aa74f0ae130f462af7bf2b1f15d17b3c
bug修改
8个文件已修改
111 ■■■■■ 已修改文件
finance-admin-dept/src/main/resources/application-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
finance-admin-dept/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
finance-admin/src/main/resources/application-dev.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
finance-system/src/main/java/com/finance/system/domain/TbBasicDataCategory.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
finance-system/src/main/java/com/finance/system/handler/CustomerHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
finance-system/src/main/java/com/finance/system/listener/BasicDataListener.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
finance-system/src/main/java/com/finance/system/service/impl/TbBasicDataServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
finance-system/src/main/java/com/finance/system/service/impl/TbFieldServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
        }
        // 这里需要设置不关闭流