From 7a1e9b29aa74f0ae130f462af7bf2b1f15d17b3c Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 05 七月 2024 09:56:07 +0800
Subject: [PATCH] bug修改

---
 finance-system/src/main/java/com/finance/system/handler/CustomerHandler.java             |    4 +-
 finance-system/src/main/java/com/finance/system/service/impl/TbBasicDataServiceImpl.java |    3 +
 finance-system/src/main/java/com/finance/system/listener/BasicDataListener.java          |   54 +++++++++++++++++++++------
 finance-system/src/main/java/com/finance/system/service/impl/TbFieldServiceImpl.java     |   20 +++++-----
 finance-system/src/main/java/com/finance/system/domain/TbBasicDataCategory.java          |   22 ++++++++--
 finance-admin-dept/src/main/resources/application-dev.yml                                |    2 
 finance-admin-dept/src/main/resources/application.yml                                    |    2 
 finance-admin/src/main/resources/application-dev.yml                                     |    4 +-
 8 files changed, 77 insertions(+), 34 deletions(-)

diff --git a/finance-admin-dept/src/main/resources/application-dev.yml b/finance-admin-dept/src/main/resources/application-dev.yml
index 05c3cc0..5c9b1c1 100644
--- a/finance-admin-dept/src/main/resources/application-dev.yml
+++ b/finance-admin-dept/src/main/resources/application-dev.yml
@@ -165,7 +165,7 @@
   # 令牌密钥
   secret: abcdefghijklmnopqrstuvwxyz
   # 令牌有效期(默认30分钟)
-  expireTime: 120
+  expireTime: 60 * 12
 
 # MyBatis配置
 #mybatis:
diff --git a/finance-admin-dept/src/main/resources/application.yml b/finance-admin-dept/src/main/resources/application.yml
index 3d7808a..9f96606 100644
--- a/finance-admin-dept/src/main/resources/application.yml
+++ b/finance-admin-dept/src/main/resources/application.yml
@@ -1,3 +1,3 @@
 spring:
   profiles:
-    active: dev
+    active: prod
diff --git a/finance-admin/src/main/resources/application-dev.yml b/finance-admin/src/main/resources/application-dev.yml
index 9100e12..ff11971 100644
--- a/finance-admin/src/main/resources/application-dev.yml
+++ b/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~
diff --git a/finance-system/src/main/java/com/finance/system/domain/TbBasicDataCategory.java b/finance-system/src/main/java/com/finance/system/domain/TbBasicDataCategory.java
index 958a874..1279e2d 100644
--- a/finance-system/src/main/java/com/finance/system/domain/TbBasicDataCategory.java
+++ b/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
diff --git a/finance-system/src/main/java/com/finance/system/handler/CustomerHandler.java b/finance-system/src/main/java/com/finance/system/handler/CustomerHandler.java
index 66f53cb..ec1e5d7 100644
--- a/finance-system/src/main/java/com/finance/system/handler/CustomerHandler.java
+++ b/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);
                 }
             }
         }
diff --git a/finance-system/src/main/java/com/finance/system/listener/BasicDataListener.java b/finance-system/src/main/java/com/finance/system/listener/BasicDataListener.java
index 73e81a2..1a71082 100644
--- a/finance-system/src/main/java/com/finance/system/listener/BasicDataListener.java
+++ b/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<>();
         //计算得分
diff --git a/finance-system/src/main/java/com/finance/system/service/impl/TbBasicDataServiceImpl.java b/finance-system/src/main/java/com/finance/system/service/impl/TbBasicDataServiceImpl.java
index aac0e1d..66e852c 100644
--- a/finance-system/src/main/java/com/finance/system/service/impl/TbBasicDataServiceImpl.java
+++ b/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();
     }
 
diff --git a/finance-system/src/main/java/com/finance/system/service/impl/TbFieldServiceImpl.java b/finance-system/src/main/java/com/finance/system/service/impl/TbFieldServiceImpl.java
index 987951b..2019f26 100644
--- a/finance-system/src/main/java/com/finance/system/service/impl/TbFieldServiceImpl.java
+++ b/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();
         }
         // 这里需要设置不关闭流

--
Gitblit v1.7.1