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