|
@@ -593,6 +593,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
|
|
|
BigDecimal totalField3 = cusColList.size() > 2?BigDecimal.valueOf(0):null;
|
|
|
|
|
|
List<String> headList = new ArrayList<String>();
|
|
|
+ List<String> sheetNameList = new ArrayList<String>();
|
|
|
+ sheetNameList.add("财务数据分摊总表");
|
|
|
+ int fixedColCount = 4;
|
|
|
if (groupByCategory == 0) {
|
|
|
//headList.add("项目编号");
|
|
|
headList.add(MessageUtils.message("entry.projectId"));
|
|
@@ -600,28 +603,39 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
|
|
|
headList.add(MessageUtils.message("entry.projectName"));
|
|
|
//headList.add("人员");
|
|
|
headList.add(MessageUtils.message("entry.personnel"));
|
|
|
- headList.add("部门");
|
|
|
+ headList.add(MessageUtils.message("entry.dept"));
|
|
|
for (UserCustom userCustom : userCustoms) {
|
|
|
headList.add(userCustom.getName());
|
|
|
+ fixedColCount++;
|
|
|
}
|
|
|
//headList.add("工时(h)");
|
|
|
headList.add(MessageUtils.message("entry.workHours")+"(h)");
|
|
|
+ fixedColCount++;
|
|
|
} else {
|
|
|
//headList.add("项目分类");
|
|
|
headList.add(MessageUtils.message("entry.projectType"));
|
|
|
}
|
|
|
FinanceFixedcolname fixedItem = financeFixedcolnameService.getFixed(companyId);
|
|
|
headList.add(fixedItem.getMonthCost()+"(元)");
|
|
|
+ sheetNameList.add(fixedItem.getMonthCost()+"分摊表");
|
|
|
headList.add(fixedItem.getBonus()+"(元)");
|
|
|
+ sheetNameList.add(fixedItem.getBonus()+"分摊表");
|
|
|
headList.add(fixedItem.getAllowance()+"(元)");
|
|
|
+ sheetNameList.add(fixedItem.getAllowance()+"分摊表");
|
|
|
headList.add(fixedItem.getInsuranceOld()+"(元)");
|
|
|
+ sheetNameList.add(fixedItem.getInsuranceOld()+"分摊表");
|
|
|
headList.add(fixedItem.getInsuranceMedical()+"(元)");
|
|
|
+ sheetNameList.add(fixedItem.getInsuranceMedical()+"分摊表");
|
|
|
headList.add(fixedItem.getInsuranceLosejob()+"(元)");
|
|
|
+ sheetNameList.add(fixedItem.getInsuranceLosejob()+"分摊表");
|
|
|
headList.add(fixedItem.getInsuranceInjury()+"(元)");
|
|
|
+ sheetNameList.add(fixedItem.getInsuranceInjury()+"分摊表");
|
|
|
headList.add(fixedItem.getHouseFund()+"(元)");
|
|
|
+ sheetNameList.add(fixedItem.getHouseFund()+"分摊表");
|
|
|
// headList.add("其他(元)");
|
|
|
for (FinanceTblcuscol col : cusColList) {
|
|
|
headList.add(col.getFieldName());
|
|
|
+ sheetNameList.add(col.getFieldName()+"分摊表");
|
|
|
}
|
|
|
//headList.add("总成本(元)");
|
|
|
headList.add(MessageUtils.message("entry.totalCost")+"(元)");
|
|
@@ -1265,11 +1279,36 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
|
|
|
if (cusColList.size() > 2) sumRow.add(totalField3.toString());
|
|
|
sumRow.add(totalMoneyCost.toString());
|
|
|
allList.add(sumRow);
|
|
|
+ System.out.println("fixedColCount:"+fixedColCount+", allList col size:"+allList.get(0).size());
|
|
|
+ System.out.println("第一行:");
|
|
|
+ allList.get(0).forEach(System.out::println);
|
|
|
+ System.out.println("第二行:");
|
|
|
+ allList.get(1).forEach(System.out::println);
|
|
|
//生成excel文件导出
|
|
|
//String fileName = yearMonth+(groupByCategory==0?"财务人员成本_":"财务项目分类成本_")+System.currentTimeMillis();
|
|
|
- String fileName = yearMonth+(groupByCategory==0?MessageUtils.message("fileName.costFinancialPersonnel"):MessageUtils.message("fileName.proClassCost"))+System.currentTimeMillis();
|
|
|
+ String fileName = yearMonth+(groupByCategory == 0?MessageUtils.message("fileName.costFinancialPersonnel"):MessageUtils.message("fileName.proClassCost"))+System.currentTimeMillis();
|
|
|
try {
|
|
|
- return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
|
|
|
+ if (groupByCategory == 0) {
|
|
|
+ //一个总表和自定义字段多个sheet
|
|
|
+ List[] multiSheetDataList = new ArrayList[sheetNameList.size()];
|
|
|
+ multiSheetDataList[0] = allList;
|
|
|
+ for (int i = 1; i < sheetNameList.size(); i++) {
|
|
|
+ multiSheetDataList[i] = new ArrayList();
|
|
|
+ for (List<String> rowData : allList) {
|
|
|
+ List<String> newRow = new ArrayList<String>();
|
|
|
+ //取前面固定的列
|
|
|
+// System.out.println("before: "+rowData.size());
|
|
|
+ rowData.subList(0, fixedColCount).forEach(newRow::add);
|
|
|
+// System.out.println("after: "+rowData.size());
|
|
|
+ //按当前表单的顺序,取数据部分
|
|
|
+ newRow.add(rowData.get(fixedColCount + i - 1));
|
|
|
+ multiSheetDataList[i].add(newRow);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ excelExportService.exportMultiSheetGeneralExcelByTitleAndList(wxCorpInfo,fileName , multiSheetDataList, path, sheetNameList.toArray(new String[0]));
|
|
|
+ } else {
|
|
|
+ return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
|
|
|
+ }
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|