|
@@ -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
|
|
|
*/
|