diff --git a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java index 54494f8..3f520b8 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java @@ -1104,4 +1104,119 @@ public class ProjectController extends BaseController { return JSON.toJSONString(ResponseMsg.buildFailedMsg("导入数据失败,请联系管理员")); } } + + /** + * 收入导出 + */ + @RequestMapping("/incomeExport") + public void incomeExport(HttpServletResponse response, @RequestParam int id) throws Exception{ + Project project = projectService.findById(id); + response.setHeader("Content-Disposition", "attachment;filename=".concat(new String((Utils.generateExcelName(project.getName() + "-收入明细表")).getBytes(), StandardCharsets.ISO_8859_1))); + response.setHeader("Connection", "close"); + response.setHeader("Content-Type", "application/vnd.ms-excel"); + ServletOutputStream outputStream = response.getOutputStream(); + ExportExcelUtils exportExcelUtils = new ExportExcelUtils(); + BudgetBean budgetBean = projectBudgetService.getBudget(project); + //收入明细 + List budgetIncomeDetail = projectBudgetService.getBudgetIncomeDetail(project); + Integer incomeTotalAmount = projectBudgetService.getBudgetIncomeAmount(project); + String[] headers2 = {"序号", "类别", "名称", "单位", "数量", "单价", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)"}; + String[] columns2 = {"tempId", "type", "name", "unit", "amount", "price", "taxRate", "totalTaxInclude", "totalTaxExclude", "totalTax"}; + exportExcelUtils.exportIncomeDetailExcel(headers2, columns2, project, budgetBean, budgetIncomeDetail, incomeTotalAmount, "yyyy-MM-dd", 0, "收入明细表", outputStream); + + exportExcelUtils.end(outputStream); + } + + /** + * 收入计划导出 + */ + @RequestMapping("/incomePlanExport") + public void incomePlanExport(HttpServletResponse response, @RequestParam int id) throws Exception{ + Project project = projectService.findById(id); + response.setHeader("Content-Disposition", "attachment;filename=".concat(new String((Utils.generateExcelName(project.getName() + "-收入计划表")).getBytes(), StandardCharsets.ISO_8859_1))); + response.setHeader("Connection", "close"); + response.setHeader("Content-Type", "application/vnd.ms-excel"); + ServletOutputStream outputStream = response.getOutputStream(); + ExportExcelUtils exportExcelUtils = new ExportExcelUtils(); + BudgetBean budgetBean = projectBudgetService.getBudget(project); + //收入计划 + List budgetIncomePlanDetail = projectBudgetService.getBudgetIncomePlanDetail(project); + BigDecimal incomePlanTotalReceiveAmount = projectBudgetService.getBudgetIncomePlanReceiveAmount(project); + String[] headers6 = {"序号", "收款节点", "收款时间", "收款金额(元)"}; + String[] columns6 = {"tempId", "receivePoint", "receiveTime", "receiveAmount"}; + exportExcelUtils.exportIncomePlanDetailExcel(headers6, columns6, project, budgetBean, budgetIncomePlanDetail, incomePlanTotalReceiveAmount, "yyyy-MM-dd", 0, "收入计划表", outputStream); + + exportExcelUtils.end(outputStream); + } + + /** + * 成本明细导出 + */ + @RequestMapping("/costExport") + public void costExport(HttpServletResponse response, @RequestParam int id) throws Exception{ + Project project = projectService.findById(id); + response.setHeader("Content-Disposition", "attachment;filename=".concat(new String((Utils.generateExcelName(project.getName() + "-采购成本明细表")).getBytes(), StandardCharsets.ISO_8859_1))); + response.setHeader("Connection", "close"); + response.setHeader("Content-Type", "application/vnd.ms-excel"); + ServletOutputStream outputStream = response.getOutputStream(); + ExportExcelUtils exportExcelUtils = new ExportExcelUtils(); + BudgetBean budgetBean = projectBudgetService.getBudget(project); + //成本明细 + List budgetCostDetail = projectBudgetService.getBudgetCostDetail(project); + Integer costTotalAmount = projectBudgetService.getBudgetCostAmount(project); + BigDecimal costUnderwrittenAmountTotal = projectBudgetService.getBudgetCostUnderwrittenAmountTotal(project); + BigDecimal costPayAmountTotal = projectBudgetService.getBudgetCostPayAmountTotal(project); + List procurementTypes = procurementTypeService.allProcurementTypeList(); + Map procurementMap = procurementTypes.stream().collect(Collectors.toMap(ProcurementType::getId, ProcurementType::getName)); + String[] headers3 = {"序号", "大类", "类别", "名称", "单位", "数量", "单价", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)", "签约方", "是否垫资", "预估垫资金额(元)", "支出时间", "支出金额(元)", "付款方式", "备注"}; + String[] columns3 = {"tempId", "type", "category", "name", "unit", "amount", "price", "taxRate", "totalTaxInclude", "totalTaxExclude", "totalTax", "contractParty", "isUnderwritten", "underwrittenAmount", "payTime", "payAmount", "payWay", "remark"}; + exportExcelUtils.exportCostDetailExcel(headers3, columns3, project, budgetBean, budgetCostDetail, costTotalAmount, costUnderwrittenAmountTotal, costPayAmountTotal, procurementMap, "yyyy-MM-dd", 0, "采购成本明细表", outputStream); + + exportExcelUtils.end(outputStream); + } + + /** + * 管理成本导出 + */ + @RequestMapping("/costManageExport") + public void costManageExport(HttpServletResponse response, @RequestParam int id) throws Exception{ + Project project = projectService.findById(id); + response.setHeader("Content-Disposition", "attachment;filename=".concat(new String((Utils.generateExcelName(project.getName() + "-项目管理成本表")).getBytes(), StandardCharsets.ISO_8859_1))); + response.setHeader("Connection", "close"); + response.setHeader("Content-Type", "application/vnd.ms-excel"); + ServletOutputStream outputStream = response.getOutputStream(); + ExportExcelUtils exportExcelUtils = new ExportExcelUtils(); + BudgetBean budgetBean = projectBudgetService.getBudget(project); + //项目管理成本明细 + List budgetCostProjectManageDetail = projectBudgetService.getBudgetCostProjectManageDetail(project); + Integer costProjectManageTotalAmount = projectBudgetService.getBudgetCostProjectManageAmount(project); + BigDecimal managePayAmountTotal = projectBudgetService.getBudgetCostProjectManagePayAmount(project); + String[] headers4 = {"序号", "财务费用类别", "业务项目", "项目明细", "单位", "数量", "单价", "总金额(元)", "支出时间", "支出金额(元)", "预估计算方法", "预估依据", "备注"}; + String[] columns4 = {"tempId", "type", "name", "detail", "unit", "amount", "price", "total", "payTime", "payAmount", "predictMethod", "predictWhy", "remark"}; + exportExcelUtils.exportCostManageDetailExcel(headers4, columns4, project, budgetBean, budgetCostProjectManageDetail, costProjectManageTotalAmount, managePayAmountTotal, "yyyy-MM-dd", 0, "项目管理成本表", outputStream); + + exportExcelUtils.end(outputStream); + } + + /** + * 资金计划导出 + */ + @RequestMapping("/budgetPlanExport") + public void budgetPlanExport(HttpServletResponse response, @RequestParam int id) throws Exception{ + Project project = projectService.findById(id); + response.setHeader("Content-Disposition", "attachment;filename=".concat(new String((Utils.generateExcelName(project.getName() + "-资金计划表")).getBytes(), StandardCharsets.ISO_8859_1))); + response.setHeader("Connection", "close"); + response.setHeader("Content-Type", "application/vnd.ms-excel"); + ServletOutputStream outputStream = response.getOutputStream(); + ExportExcelUtils exportExcelUtils = new ExportExcelUtils(); + BudgetBean budgetBean = projectBudgetService.getBudget(project); + //资金计划明细 + List projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project); + ProjectBudgetPlanDetail projectBudgetPlanDetailTotal = projectBudgetService.getProjectBudgetPlanDetailTotal(project, projectBudgetPlanDetails); + String[] headers5 = {"月份", "设备支出", "工程支出(含服务+施工+其他)", "经营性开支", "保证金支出", "支出合计", "销售收款", "保证金收款", "收款合计", "资金余额", "资金利息", "垫资计划", "还款计划"}; + String[] row5 = {"month", "deviceCost", "engineerCost", "projectManageCost", "earnestMoneyCost", "totalCost", "saleIncome", "earnestMoneyIncome", "totalIncome", "fundBalance", "capitalInterest", "underwrittenPlan", "repaymentPlan"}; + exportExcelUtils.exportPlanDetailExcel(headers5, row5, project, budgetBean, projectBudgetPlanDetails, projectBudgetPlanDetailTotal, "yyyy-MM-dd", 0, "资金计划表", outputStream); + + exportExcelUtils.end(outputStream); + } } diff --git a/src/main/resources/templates/admin/project_approve.ftl b/src/main/resources/templates/admin/project_approve.ftl index 1b7fdcb..b3f0cfa 100644 --- a/src/main/resources/templates/admin/project_approve.ftl +++ b/src/main/resources/templates/admin/project_approve.ftl @@ -663,6 +663,15 @@
<#--收入明细表--> +
+
+
+ +
+
+
@@ -756,6 +765,15 @@
<#--收入明细表--> +
+
+
+ +
+
+
@@ -789,6 +807,15 @@
<#--采购成本明细表--> +
+
+
+ +
+
+
@@ -933,6 +960,15 @@
<#--项目管理成本表--> +
+
+
+ +
+
+
@@ -1048,6 +1084,15 @@
<#--资金计划表--> +
+
+
+ +
+
+