|
@@ -202,10 +202,11 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
|
|
|
// 模板文件的位置
|
|
|
String mainDetailTmplPath = fileNetConfig.getBaseDir() + mainDetail.getSectionFileUrl() + mainDetail.getSectionFileName();
|
|
|
// 写入
|
|
|
+ List<AssetsCalculateEqptData> allEqptData = dataService.getAllByAssetsCalculateId(calculateId, null);
|
|
|
EasyExcel.write(mainDetailPath)
|
|
|
.withTemplate(mainDetailTmplPath)
|
|
|
.sheet()
|
|
|
- .doFill(dataService.getAllByAssetsCalculateId(calculateId, null));
|
|
|
+ .doFill(allEqptData);
|
|
|
|
|
|
// 第二步:写入数据到 机器设备-主模板
|
|
|
// 获取模板
|
|
@@ -238,6 +239,18 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
|
|
|
// 第四步:主模板设置公式
|
|
|
// 遍历所有行,跳过前四行
|
|
|
Sheet sheet = workbook.getSheetAt(0);
|
|
|
+
|
|
|
+ // 修复第一行数据公式引用的数据为NULL时公式报错 #VALUE
|
|
|
+ if (ObjectUtil.isNull(allEqptData.get(0).getFreightAndMiscellaneousFeeRate())) {
|
|
|
+ sheet.getRow(4).getCell(36).setBlank();
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNull(allEqptData.get(0).getBaseRate())) {
|
|
|
+ sheet.getRow(4).getCell(38).setBlank();
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNull(allEqptData.get(0).getInstallationRate())) {
|
|
|
+ sheet.getRow(4).getCell(40).setBlank();
|
|
|
+ }
|
|
|
+
|
|
|
for (int i = 4; i <= sheet.getLastRowNum(); i++) {
|
|
|
Row row = sheet.getRow(i);
|
|
|
// 循环设置公式
|
|
@@ -271,6 +284,15 @@ public class AssetsCalculateServiceImpl extends ServiceImpl<AssetsCalculateMappe
|
|
|
EasyExcelUtil.mergeExcel(importedPath, workbook, workbook.getSheetIndex("进口设备"), 0, 0, 0);
|
|
|
// 设置公式
|
|
|
Sheet importedSheet = workbook.getSheet("进口设备");
|
|
|
+
|
|
|
+ // 修复第一行数据公式引用的数据为NULL时公式报错 #VALUE
|
|
|
+ if (ObjectUtil.isNull(impEqptData.get(0).getBankChargesRate())) {
|
|
|
+ importedSheet.getRow(2).getCell(27).setBlank();
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNull(impEqptData.get(0).getForeignTransactionRate())) {
|
|
|
+ importedSheet.getRow(2).getCell(29).setBlank();
|
|
|
+ }
|
|
|
+
|
|
|
for (int i = 2; i <= importedSheet.getLastRowNum(); i++) { // 跳过前两行
|
|
|
Row row = importedSheet.getRow(i);
|
|
|
// 循环设置公式
|