From a93ad50197f1626a12ba5067639119400542f455 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期六, 11 十月 2025 18:01:52 +0800
Subject: [PATCH] 修改指定季度获取方式

---
 finance-system/src/main/java/com/finance/system/service/impl/TbBasicDataServiceImpl.java |   30 ++++++++++++++++++++++++------
 1 files changed, 24 insertions(+), 6 deletions(-)

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 8060fbc..5005d80 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
@@ -92,6 +92,7 @@
 import javax.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
@@ -120,6 +121,8 @@
     private final TbDataScreenConfigService tbDataScreenConfigService;
     private final AsyncService asyncService;
     private final TbBasicDataCategoryService tbBasicDataCategoryService;
+    @Value("${fdb.quarter}")
+    private String quarter;
 
     public static void setFieldValues(
             List<FieldsTreeVO> fields, Map<Long, TbBasicDataField> fieldMap) {
@@ -128,6 +131,8 @@
             if (tbBasicDataField != null) {
                 field.setValue(
                         tbBasicDataField.getFieldValue());
+            } else {
+                field.setValue("");
             }
             if (field.getChildren() != null && !field.getChildren().isEmpty()) {
                 setFieldValues(field.getChildren(), fieldMap);
@@ -155,7 +160,7 @@
         LocalDate fifteenDaysLimit = quarterStartLocalDate.plusDays(14);
         LocalDate now = LocalDate.now();
         String previousQuarter = DateUtils.getPreviousQuarter();
-        previousQuarter = "2024年一季度";
+        previousQuarter = quarter;
         DateUtils.getQuarterDate(previousQuarter);
         vo.setQuarter(previousQuarter);
         vo.setStatus(ReportingStatusEnum.UNFILLED);
@@ -230,7 +235,7 @@
             return;
         }
         String previousQuarter = DateUtils.getPreviousQuarter();
-        previousQuarter = "2024年一季度";
+        previousQuarter = quarter;
         // 查询需要填写的动态字段
         List<TbField> fieldList =
                 tbFieldService.lambdaQuery().eq(TbField::getStatus, ShowStatusEnum.SHOW).list();
@@ -240,6 +245,8 @@
                 .eq(TbBasicData::getDeptAreaCode, areaCode)
                 .eq(TbBasicData::getQuarter, previousQuarter).oneOpt();
         TbBasicData tbBasicData = BeanUtils.copyBean(dto, TbBasicData.class);
+        tbBasicData.setCurrentGdp(tbBasicData.getCurrentGdp().replace(",", ""));
+        tbBasicData.setTransferPaymentScale(tbBasicData.getTransferPaymentScale().replace(",", ""));
         if (basicDataOpt.isPresent()) {
             tbBasicData.setId(basicDataOpt.get().getId());
             tbBasicData.setDeptAreaCode(areaCode);
@@ -455,6 +462,7 @@
                         field.getFieldValue(), tbOperlogList, result.toString());
             }
         }
+        tbOperLogService.saveBatch(tbOperlogList);
     }
 
     private static void wrapOperLog(LoginUser loginUser, TbBasicData tbBasicData, String before,
@@ -492,7 +500,7 @@
         LoginUser loginUser = SecurityUtils.getLoginUser();
         String areaCode = loginUser.getUser().getAreaCode();
         String previousQuarter = DateUtils.getPreviousQuarter();
-        previousQuarter = "2024年一季度";
+        previousQuarter = quarter;
         EasyExcel.read(
                         file.getInputStream(),
                         new BasicDataListener(
@@ -612,7 +620,7 @@
         Date quarterStart = DateUtil.beginOfQuarter(date);
         Date quarterEnd = DateUtil.endOfQuarter(date);
         String previousQuarter = DateUtils.getPreviousQuarter();
-        previousQuarter = "2024年一季度";
+        // previousQuarter = "2024年一季度";
         // 查询是否有当前季度的填报记录
         TbBasicData basicData =
                 this.getOne(
@@ -783,7 +791,7 @@
         roots.add(remark);
         vo.setFields(roots);
         String previousQuarter = DateUtils.getPreviousQuarter();
-        previousQuarter = "2024年一季度";
+        // previousQuarter = "2024年一季度";
         // 查询上报的基础数据
         List<TbBasicData> basicDataList =
                 this.lambdaQuery()
@@ -951,7 +959,7 @@
         if (quarterLocalDate.isAfter(dateLocalDate) || quarterLocalDate.equals(dateLocalDate)) {
             throw new ServiceException("请导入过去季度的数据。");
         }
-
+        long start = System.currentTimeMillis();
         EasyExcel.read(
                         file.getInputStream(),
                         new HistoryDataListener(
@@ -965,6 +973,7 @@
                 .sheet()
                 .headRowNumber(0)
                 .doRead();
+        log.info("历史数据导入完成,耗时{}毫秒", System.currentTimeMillis() - start);
     }
 
     @Override
@@ -1141,6 +1150,8 @@
         // 查询需要填写的动态字段
         List<TbField> fieldList =
                 tbFieldService.lambdaQuery().eq(TbField::getStatus, ShowStatusEnum.SHOW).list();
+        Map<Long, TbField> allFieldMap = fieldList.stream()
+                .collect(Collectors.toMap(TbField::getId, e -> e));
         List<TbBasicDataField> originFields = tbBasicDataFieldService.lambdaQuery()
                 .eq(TbBasicDataField::getBasicDataId, basicData.getId()).list();
         Set<Long> fieldIdList = originFields.stream().map(TbBasicDataField::getFieldId)
@@ -1152,6 +1163,9 @@
                         BeanUtils.copyBean(dto, BasicDataDTO.class),
                         fieldMap));
         TbBasicData tbBasicData = BeanUtils.copyBean(dto, TbBasicData.class);
+        tbBasicData.setCurrentGdp(tbBasicData.getCurrentGdp().replace(",", ""));
+        tbBasicData.setTransferPaymentScale(tbBasicData.getTransferPaymentScale().replace(",", ""));
+        tbBasicData.setDeptAreaCode(basicData.getDeptAreaCode());
         tbBasicData.setQuarter(basicData.getQuarter());
         // 保存基础数据动态字段数据
         List<TbBasicDataField> tbBasicDataFields =
@@ -1192,6 +1206,10 @@
                         if (StringUtils.isNotBlank(item.getFieldValue())) {
                             item.setFieldValue(item.getFieldValue().replace(",", ""));
                         }
+                    } else {
+                        TbField field = allFieldMap.get(item.getFieldId());
+                        item.setFieldName(field.getFieldName());
+                        item.setBasicDataId(basicData.getId());
                     }
 
                 }).collect(Collectors.toList());

--
Gitblit v1.7.1