Pārlūkot izejas kodu

1.导入申报信息时检查数据是否符合规范

GouGengquan 6 mēneši atpakaļ
vecāks
revīzija
47cf453785

+ 25 - 7
service/src/main/java/com/dayou/service/impl/AssetsCalculateServiceImpl.java

@@ -3,6 +3,7 @@ package com.dayou.service.impl;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.exception.ExcelDataConvertException;
 import com.alibaba.excel.read.listener.PageReadListener;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.dayou.common.BaseEntity;
@@ -11,6 +12,7 @@ import com.dayou.common.DropDownBoxData;
 import com.dayou.config.FileNetConfig;
 import com.dayou.dto.calculate.equipment.EqptCalculateBaseInfoDTO;
 import com.dayou.entity.*;
+import com.dayou.exception.BusinessException;
 import com.dayou.mapper.AssetsCalculateMapper;
 import com.dayou.mapper.TmplAssetCalculateMapper;
 import com.dayou.mapper.TmplAssetCalculateSectionMapper;
@@ -38,6 +40,7 @@ import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.text.MessageFormat;
 import java.time.LocalDate;
+import java.time.format.DateTimeParseException;
 import java.util.List;
 
 import static com.dayou.common.CalculateFormula.*;
@@ -91,6 +94,7 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
 
     /**
      * 新增或修改测算表信息
+     *
      * @param assetsCalculate 测算表信息
      * @return Boolean
      */
@@ -99,7 +103,7 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
         assetsCalculate.setCreateUserId(StpUtil.getLoginIdAsLong());
         if (ObjectUtil.isNull(assetsCalculate.getId())) {
             return this.save(assetsCalculate);
-        }else {
+        } else {
             return this.updateById(assetsCalculate);
         }
     }
@@ -140,12 +144,24 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
         dataService.deleteDataByCalculateId(calculateId);
         // 读取excel内容并批量保存到数据库
         InputStream inputStream = multipartFile.getInputStream();
-        EasyExcel.read(inputStream, AssetsCalculateEqptData.class, new PageReadListener<AssetsCalculateEqptData>(dataList -> {
-            // 设置数据的测算表id
-            dataList.forEach(data -> data.setAssetsCalculateId(calculateId));
-            // 批量保存
-            dataService.saveBatch(dataList);
-        }, 1000)).sheet().doRead();
+        try {
+            EasyExcel.read(inputStream, AssetsCalculateEqptData.class, new PageReadListener<AssetsCalculateEqptData>(dataList -> {
+                // 设置数据的测算表id
+                dataList.forEach(data -> data.setAssetsCalculateId(calculateId));
+                // 批量保存
+                dataService.saveBatch(dataList);
+            }, 1000)).sheet().doRead();
+        } catch (ExcelDataConvertException dataConvertException) {
+            // 处理Excel数据转换异常
+            if (dataConvertException.getCause() instanceof DateTimeParseException) {
+                DateTimeParseException dateException = (DateTimeParseException) dataConvertException.getCause();
+                // 处理日期时间解析异常
+                throw new BusinessException("导入的Excel表中有不规范的日期格式,请检查后重试!", dateException);
+            } else {
+                // 处理其他类型的转换异常
+                throw new BusinessException("导入的Excel表中有不规范的数据,请检查后重试!" + dataConvertException);
+            }
+        }
         // 更新测算表进度
         assetsCalculateMapper.updateCalculateProgress(calculateId, "GENERATE");
     }
@@ -416,6 +432,7 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
 
     /**
      * 根据项目id获取测算信息下拉框数据
+     *
      * @param projectId 项目id
      * @return List<DropDownBoxData>
      */
@@ -426,6 +443,7 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
 
     /**
      * 根据测算表id获取生成机器设备融资项目报告引用的测算表信息
+     *
      * @param calculateId 测算表id
      * @return EqptReportReferencesCalculateVO
      */

+ 8 - 1
sql/update_sql.sql

@@ -984,4 +984,11 @@ ALTER TABLE assets_calculate_eqpt_data ADD COLUMN inquiry_web VARCHAR(500) NULL
   未更新到test-env
  */
 ALTER TABLE assets_calculate_eqpt_data MODIFY COLUMN manufacturer VARCHAR(255) NULL COMMENT '生产厂家';
-ALTER TABLE assets_calculate_eqpt_data MODIFY COLUMN model VARCHAR(255) NULL COMMENT '型号规格';
+ALTER TABLE assets_calculate_eqpt_data MODIFY COLUMN model VARCHAR(255) NULL COMMENT '型号规格';
+
+/**
+  日期:2025-01-02
+  修改人:苟耕铨
+  未更新到test-env
+ */
+ALTER TABLE assets_calculate_eqpt_data MODIFY COLUMN book_net_value DECIMAL(11,2) NULL COMMENT '账面净值';