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 a06dc8c..a32be48 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java @@ -151,7 +151,7 @@ public class ProjectController extends BaseController { Map searchInfo = getSearchInfo(keywords); downloadHeader(httpServletResponse, Utils.generateExcelName("项目报表"), "application/octet-stream"); String[] headers = {"项目编号", "项目名称", "项目类型", "垫资模式", "垫资利息", "垫资峰值", "项目合同金额", "项目毛利", "项目毛利率", "项目把握度", "汇智产品金额", "华智产品金额", - "华三产品金额", "其他产品金额", "项目状态", "行业场景应用", "解决方案", "客户名称", "最终用户名称", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "战略合作对象", + "华三产品金额", "其他产品金额", "项目当前状态", "行业场景应用", "解决方案", "客户名称", "最终用户名称", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "战略合作对象", "项目负责人", "价值及风险", "主合同收款条款", "主合同具体解决方案", "计收计划", "审核状态", "当前审核人", "项目创建者", "部门名称","项目阶段", "项目开始时间", "项目结束时间", "最后更新时间"}; String[] exportColumns = {"projectNo", "name", "typeDesc", "underwrittenModeStr", "advanceInterestAmountRound", "advancePeakAmountRound", "contractRound", "grossProfitRound", "grossProfitMarginRound", "certaintyStr", "huizhiRound", "huazhiRound", "huasanRound", "ziguangRound", "statusDesc", "industryScenario", "resolvePlan", "customer", "terminalCustomer", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "collaborator", @@ -178,9 +178,15 @@ public class ProjectController extends BaseController { "grossProfitRound", "grossProfitMarginRound", "huazhiRound", "huizhiRound", "huasanRound", "ziguangRound", "certaintyStr", "industryScenario", "resolvePlanStr", "customer", "terminalCustomer", "valueRisk", "principal", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection","stageName"}; exportExcelUtils.exportProjectExcel(headers0, columns0, project, "yyyy-MM-dd", 0, "项目立项(概算)信息", outputStream); -// String[] headers1 = {"项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "主合同收款条款", "主合同具体解决方案", "计收计划"}; -// String[] columns1 = {"principal", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection"}; -// exportExcelUtils.exportProjectExcel(headers1, columns1, project, "yyyy-MM-dd", 0, "项目立项(概算)其他信息", outputStream); + + ProjectBudget projectBudget = projectService.findBudgetByProjectId(project.getId()); + String[] headers1 = {"部门名称", "项目编号", "项目名称", "合同名称", "项目类型", "项目计划开始时间", "项目计划结束时间", "垫资模式", "合作对象", "垫资利息", "垫资峰值", "合同金额", + "项目毛利", "项目毛利率", "华智产品金额", "汇智产品金额", "华三产品金额", "其他产品金额", "项目把握度", "行业场景应用", "项目解决方案", "客户名称", "最终用户名称", + "价值及风险", "项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "主合同收款条款", "主合同具体解决方案", "计收计划"}; + String[] columns1 = {"deptNameBudget", "projectNoBudget", "nameBudget", "contractBudget", "typeDescBudget", "startDateBudget", "endDateBudget", "underwrittenModeStrBudget", "collaboratorBudget", "advanceInterestAmountRoundBudget", "advancePeakAmountRoundBudget", "contractRoundBudget", + "grossProfitRoundBudget", "grossProfitMarginRoundBudget", "huazhiRoundBudget", "huizhiRoundBudget", "huasanRoundBudget", "ziguangRoundBudget", "certaintyStrBudget", "industryScenarioBudget", "resolvePlanStrBudget", "customerBudget", "terminalCustomerBudget", + "valueRiskBudget", "principalBudget", "contractTimeBudget", "bidsTimeBudget", "isSecondStrBudget", "signTypeStrBudget", "mainContractCollectionTermsBudget", "mainContractResolvePlanBudget", "calculationCollectionBudget"}; + exportExcelUtils.exportProjectBudgetExcel(headers1, columns1, projectBudget, "yyyy-MM-dd", 0, "项目基本信息", outputStream); BudgetBean budgetBean = projectBudgetService.getBudget(project); if (project.getStatus() < 5) { exportExcelUtils.end(outputStream); @@ -622,11 +628,11 @@ public class ProjectController extends BaseController { Map searchInfo = getSearchInfo(keywords); downloadHeader(httpServletResponse, Utils.generateExcelName("待我审核项目报表"), "application/octet-stream"); String[] headers = {"项目编号", "项目名称", "项目类型", "垫资模式", "垫资利息", "垫资峰值", "项目合同金额", "项目毛利", "项目毛利率", "项目把握度", "汇智产品金额", "华智产品金额", - "华三产品金额", "其他产品金额", "项目状态", "行业场景应用", "解决方案", "客户名称", "最终用户名称", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "战略合作对象", - "项目负责人", "价值及风险", "主合同收款条款", "主合同具体解决方案", "计收计划", "审核状态", "当前审核人", "项目创建者", "部门名称", "项目开始时间", "项目结束时间", "最后更新时间"}; + "华三产品金额", "其他产品金额", "项目当前状态", "行业场景应用", "解决方案", "客户名称", "最终用户名称", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "战略合作对象", + "项目负责人", "价值及风险", "主合同收款条款", "主合同具体解决方案", "计收计划", "审核状态", "当前审核人", "项目创建者", "部门名称","项目阶段", "项目开始时间", "项目结束时间", "最后更新时间"}; String[] exportColumns = {"projectNo", "name", "typeDesc", "underwrittenModeStr", "advanceInterestAmountRound", "advancePeakAmountRound", "contractRound", "grossProfitRound", "grossProfitMarginRound", "certaintyStr", "huizhiRound", "huazhiRound", "huasanRound", "ziguangRound", "statusDesc", "industryScenario", "resolvePlan", "customer", "terminalCustomer", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "collaborator", - "principal", "valueRisk", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection", "approveStatusDesc", "approveName", "creatorName", "deptName", "startDate", "endDate", "lastUpdateTime"}; + "principal", "valueRisk", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection", "approveStatusDesc", "approveName", "creatorName", "deptName", "startDate","stageName", "endDate", "lastUpdateTime"}; ExportUtils.exportToExcel(headers, exportColumns, 1, 10000, httpServletResponse.getOutputStream(), (pN, pS) -> projectService.findMyApproveProjects(searchInfo, InterfaceUtil.getAdminId(), pN, pS).getList()); } @@ -1177,10 +1183,14 @@ public class ProjectController extends BaseController { response.setHeader("Content-Type", "application/vnd.ms-excel"); ServletOutputStream outputStream = response.getOutputStream(); ExportExcelUtils exportExcelUtils = new ExportExcelUtils(); - String[] headers1 = {"项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "主合同收款条款", "主合同具体解决方案", "计收计划"}; - String[] columns1 = {"principal", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection"}; - exportExcelUtils.exportProjectExcel(headers1, columns1, project, "yyyy-MM-dd", 0, "项目立项(概算)其他信息", outputStream); - BudgetBean budgetBean = projectBudgetService.getBudget(project); + ProjectBudget projectBudget = projectService.findBudgetByProjectId(project.getId()); + String[] headers1 = {"部门名称", "项目编号", "项目名称", "合同名称", "项目类型", "项目计划开始时间", "项目计划结束时间", "垫资模式", "合作对象", "垫资利息", "垫资峰值", "合同金额", + "项目毛利", "项目毛利率", "华智产品金额", "汇智产品金额", "华三产品金额", "其他产品金额", "项目把握度", "行业场景应用", "项目解决方案", "客户名称", "最终用户名称", + "价值及风险", "项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "主合同收款条款", "主合同具体解决方案", "计收计划"}; + String[] columns1 = {"deptNameBudget", "projectNoBudget", "nameBudget", "contractBudget", "typeDescBudget", "startDateBudget", "endDateBudget", "underwrittenModeStrBudget", "collaboratorBudget", "advanceInterestAmountRoundBudget", "advancePeakAmountRoundBudget", "contractRoundBudget", + "grossProfitRoundBudget", "grossProfitMarginRoundBudget", "huazhiRoundBudget", "huizhiRoundBudget", "huasanRoundBudget", "ziguangRoundBudget", "certaintyStrBudget", "industryScenarioBudget", "resolvePlanStrBudget", "customerBudget", "terminalCustomerBudget", + "valueRiskBudget", "principalBudget", "contractTimeBudget", "bidsTimeBudget", "isSecondStrBudget", "signTypeStrBudget", "mainContractCollectionTermsBudget", "mainContractResolvePlanBudget", "calculationCollectionBudget"}; + exportExcelUtils.exportProjectBudgetExcel(headers1, columns1, projectBudget, "yyyy-MM-dd", 0, "项目基本信息", outputStream); exportExcelUtils.end(outputStream); } diff --git a/src/main/java/cn/palmte/work/controller/backend/SpaceController.java b/src/main/java/cn/palmte/work/controller/backend/SpaceController.java index a1f6a75..80d1e46 100644 --- a/src/main/java/cn/palmte/work/controller/backend/SpaceController.java +++ b/src/main/java/cn/palmte/work/controller/backend/SpaceController.java @@ -96,9 +96,9 @@ public class SpaceController extends BaseController { searchInfo.putIfAbsent("estimateStatus", String.valueOf(1)); downloadHeader(httpServletResponse, Utils.generateExcelName("项目报表"), "application/octet-stream"); String[] headers = {"项目编号", "项目名称", "项目类型", "垫资模式", "华智产品金额", "华三产品金额", "汇智产品金额", "其他产品金额", "项目把握度", "项目计划招标时间", "预计合同签订时间", - "计收计划", "项目毛利", "合同金额", "项目解决方案", "具体解决方案", "是否二次签单", "最终用户名称", "客户名称", "紫光汇智直接投标/集成商转签", "负责人", "备注"}; + "计收计划", "项目毛利", "合同金额", "项目解决方案", "具体解决方案", "是否二次签单", "最终用户名称", "客户名称", "紫光汇智直接投标/集成商转签", "负责人", "备注","项目阶段"}; String[] exportColumns = {"projectNo", "name", "typeDesc", "underwrittenModeStr", "huazhiRound", "huasanRound", "huizhiRound", "ziguangRound", "certaintyStr", "bidsTime", "contractTime", - "calculationCollection", "grossProfitRound", "contractRound", "resolvePlanStr", "mainContractResolvePlan", "isSecondStr", "terminalCustomer", "customer", "signTypeStr", "principal", "remark"}; + "calculationCollection", "grossProfitRound", "contractRound", "resolvePlanStr", "mainContractResolvePlan", "isSecondStr", "terminalCustomer", "customer", "signTypeStr", "principal", "remark","stageName"}; ExportUtils.exportToExcel(headers, exportColumns, 1, 10000, httpServletResponse.getOutputStream(), (pN, pS) -> spaceService.list(searchInfo, pN, pS).getList()); } diff --git a/src/main/java/cn/palmte/work/model/ProjectBudget.java b/src/main/java/cn/palmte/work/model/ProjectBudget.java index 6807dbc..08abd68 100644 --- a/src/main/java/cn/palmte/work/model/ProjectBudget.java +++ b/src/main/java/cn/palmte/work/model/ProjectBudget.java @@ -202,6 +202,33 @@ public class ProjectBudget { @Column(name = "calculation_collection_budget") private String calculationCollectionBudget; + @Transient + private String contractRoundBudget; + + @Transient + private String huazhiRoundBudget; + + @Transient + private String ziguangRoundBudget; + + @Transient + private String huizhiRoundBudget; + + @Transient + private String huasanRoundBudget; + + @Transient + private String grossProfitRoundBudget; + + @Transient + private String grossProfitMarginRoundBudget; + + @Transient + private String advanceInterestAmountRoundBudget; + + @Transient + private String advancePeakAmountRoundBudget; + public int getId() { return id; } @@ -561,4 +588,76 @@ public class ProjectBudget { public void setCalculationCollectionBudget(String calculationCollectionBudget) { this.calculationCollectionBudget = calculationCollectionBudget; } + + public String getContractRoundBudget() { + return contractRoundBudget; + } + + public void setContractRoundBudget(String contractRoundBudget) { + this.contractRoundBudget = contractRoundBudget; + } + + public String getHuazhiRoundBudget() { + return huazhiRoundBudget; + } + + public void setHuazhiRoundBudget(String huazhiRoundBudget) { + this.huazhiRoundBudget = huazhiRoundBudget; + } + + public String getZiguangRoundBudget() { + return ziguangRoundBudget; + } + + public void setZiguangRoundBudget(String ziguangRoundBudget) { + this.ziguangRoundBudget = ziguangRoundBudget; + } + + public String getHuizhiRoundBudget() { + return huizhiRoundBudget; + } + + public void setHuizhiRoundBudget(String huizhiRoundBudget) { + this.huizhiRoundBudget = huizhiRoundBudget; + } + + public String getHuasanRoundBudget() { + return huasanRoundBudget; + } + + public void setHuasanRoundBudget(String huasanRoundBudget) { + this.huasanRoundBudget = huasanRoundBudget; + } + + public String getGrossProfitRoundBudget() { + return grossProfitRoundBudget; + } + + public void setGrossProfitRoundBudget(String grossProfitRoundBudget) { + this.grossProfitRoundBudget = grossProfitRoundBudget; + } + + public String getGrossProfitMarginRoundBudget() { + return grossProfitMarginRoundBudget; + } + + public void setGrossProfitMarginRoundBudget(String grossProfitMarginRoundBudget) { + this.grossProfitMarginRoundBudget = grossProfitMarginRoundBudget; + } + + public String getAdvanceInterestAmountRoundBudget() { + return advanceInterestAmountRoundBudget; + } + + public void setAdvanceInterestAmountRoundBudget(String advanceInterestAmountRoundBudget) { + this.advanceInterestAmountRoundBudget = advanceInterestAmountRoundBudget; + } + + public String getAdvancePeakAmountRoundBudget() { + return advancePeakAmountRoundBudget; + } + + public void setAdvancePeakAmountRoundBudget(String advancePeakAmountRoundBudget) { + this.advancePeakAmountRoundBudget = advancePeakAmountRoundBudget; + } } diff --git a/src/main/java/cn/palmte/work/service/ProjectEstimateService.java b/src/main/java/cn/palmte/work/service/ProjectEstimateService.java index 9b1e66a..2ca5694 100644 --- a/src/main/java/cn/palmte/work/service/ProjectEstimateService.java +++ b/src/main/java/cn/palmte/work/service/ProjectEstimateService.java @@ -264,6 +264,8 @@ public class ProjectEstimateService { //projectInstanceService.startEstimateProcessInstance(p, admin); + projectBudgetSave(p); + estimateApprove(0, p, admin); return project; @@ -302,6 +304,9 @@ public class ProjectEstimateService { private void projectBudgetSave(Project estimateProject) { ProjectBudget projectBudget = new ProjectBudget(); + if (projectBudgetRepository.findFirstByProjectId(estimateProject.getId()) != null) { + projectBudget = projectBudgetRepository.findFirstByProjectId(estimateProject.getId()); + } projectBudget.setProjectId(estimateProject.getId()); projectBudget.setProjectNoBudget(estimateProject.getProjectNo()); projectBudget.setNameBudget(estimateProject.getName()); diff --git a/src/main/java/cn/palmte/work/service/ProjectService.java b/src/main/java/cn/palmte/work/service/ProjectService.java index e4ef96a..2dfc459 100644 --- a/src/main/java/cn/palmte/work/service/ProjectService.java +++ b/src/main/java/cn/palmte/work/service/ProjectService.java @@ -349,6 +349,11 @@ public class ProjectService { project.setAdvancePeakAmountRound(project.getAdvancePeakAmountRound2()); project.setAdvanceInterestAmountRound(project.getAdvanceInterestAmountRound2()); } + if(null == project.getStage()){ + project.setStageName(getStageName(-1)); + }else { + project.setStageName(getStageName(project.getStage())); + } } } return page; @@ -784,6 +789,13 @@ public class ProjectService { return first; } + public ProjectBudget findBudgetByProjectId(Integer id) { + QueryHelper queryHelper = new QueryHelper("SELECT p.*, FORMAT(p.contract_amount_budget,2) as contractRoundBudget, FORMAT(p.huazhi_product_amount_budget,2) as huazhiRoundBudget, FORMAT(p.huizhi_product_amount_budget,2) as huizhiRoundBudget, FORMAT(p.huasan_product_amount_budget,2) as huasanRoundBudget, FORMAT(p.ziguang_other_amount_budget,2) as ziguangRoundBudget" + + ", FORMAT(p.gross_profit_budget,2) as grossProfitRoundBudget, FORMAT(p.gross_profit_margin_budget,2) as grossProfitMarginRoundBudget, FORMAT(p.advance_interest_amount_budget,2) as advanceInterestAmountRoundBudget, FORMAT(p.advance_peak_amount_budget,2) as advancePeakAmountRoundBudget","project_budget","p"); + queryHelper.addCondition("p.project_id=?", id); + return pagination.findFirst(queryHelper.getSql(), ProjectBudget.class); + } + /** * 将该自己审批的任务转交给别人 * diff --git a/src/main/java/cn/palmte/work/service/SpaceService.java b/src/main/java/cn/palmte/work/service/SpaceService.java index 6ba81c2..2e5d74b 100644 --- a/src/main/java/cn/palmte/work/service/SpaceService.java +++ b/src/main/java/cn/palmte/work/service/SpaceService.java @@ -31,6 +31,9 @@ public class SpaceService { @Autowired private SysRoleRepository sysRoleRepository; + @Autowired + private ProjectService projectService; + @Autowired private Pagination pagination; @@ -53,6 +56,11 @@ public class SpaceService { project.setAdvancePeakAmountRound(project.getAdvancePeakAmountRound2()); project.setAdvanceInterestAmountRound(project.getAdvanceInterestAmountRound2()); } + if(null == project.getStage()){ + project.setStageName(projectService.getStageName(-1)); + }else { + project.setStageName(projectService.getStageName(project.getStage())); + } } } return page; diff --git a/src/main/java/cn/palmte/work/utils/excel/ExportExcelUtils.java b/src/main/java/cn/palmte/work/utils/excel/ExportExcelUtils.java index b167cf4..a4e1485 100644 --- a/src/main/java/cn/palmte/work/utils/excel/ExportExcelUtils.java +++ b/src/main/java/cn/palmte/work/utils/excel/ExportExcelUtils.java @@ -127,6 +127,59 @@ public class ExportExcelUtils { } } + /** + * 项目预算中的项目基本信息 + * + * @param pattern + * 如果有时间数据,设定输出格式。默认为"yyyy-MM-dd" + * @param rowIndex + * + * @throws IOException + */ + public void exportProjectBudgetExcel(String[] headers, String[] columns, ProjectBudget projectBudget, String pattern, int rowIndex, String sheetName, OutputStream outputStream) throws IOException{ + // 遍历集合数据,产生数据行 + int index = rowIndex; + XSSFSheet sheet = workbook.createSheet(sheetName); + sheet.setDefaultColumnWidth((short)20); + Font font3 = workbook.createFont(); + font3.setColor(HSSFColor.HSSFColorPredefined.BLUE.getIndex()); + for (int i = 0; i < columns.length; i++){ + Row row = sheet.createRow(index++); + Cell firstCell = row.createCell(0); + firstCell.setCellStyle(style); + firstCell.setCellType(CellType.STRING); + firstCell.setCellValue(headers[i]); + Cell secondCell = row.createCell(1); + secondCell.setCellStyle(style2); + Object value = ObjectKit.get(projectBudget, columns[i]); + if(value == null){ + secondCell.setCellType(CellType.STRING); + secondCell.setCellValue(""); + }else{ + if(value instanceof Integer){ + secondCell.setCellType(CellType.NUMERIC); + secondCell.setCellValue((int)value); + } else if(value instanceof Long){ + secondCell.setCellType(CellType.NUMERIC); + secondCell.setCellValue((long)value); + } else if(value instanceof Double){ + secondCell.setCellType(CellType.NUMERIC); + secondCell.setCellValue((double)value); + } else if(value instanceof BigDecimal){ + secondCell.setCellType(CellType.NUMERIC); + secondCell.setCellValue(Utils.format(((BigDecimal)value))); + } else if(value instanceof Date){ + secondCell.setCellType(CellType.STRING); + String date_str = DateKit.toStr((Date) value, pattern); + secondCell.setCellValue(date_str); + } else{ + secondCell.setCellType(CellType.STRING); + secondCell.setCellValue(value.toString()); + } + } + } + } + public void exportBudgetExcel(BudgetBean budgetBean, CashFlowBean cashFlowBean, int rowIndex, String sheetName, ServletOutputStream outputStream, String otherName, String incomeTaxRates, String costTaxRates) { // 遍历集合数据,产生数据行 int index = rowIndex; diff --git a/src/main/resources/static/assets/js/project_budget.js b/src/main/resources/static/assets/js/project_budget.js index 8b3f62f..3eec308 100644 --- a/src/main/resources/static/assets/js/project_budget.js +++ b/src/main/resources/static/assets/js/project_budget.js @@ -58,9 +58,11 @@ // }; var result = 0; +var check = 0; $(function () { - generateFileupload('icon'); + + generateFileupload2('icon'); $("input[name='costCompanyManageTaxExclude']").change(function () { digitalSelf("costCompanyManageTaxExclude", "input[name='costCompanyManageTaxExclude']"); @@ -202,6 +204,10 @@ $(function () { $("#collaboratorUrl").val($("#collaboratorUrl_span").text()); checkIfFillIn(); + if (check === 1) { + $("#saveApprove").attr('disabled', false); + return; + } var dataIncome = collectData("am-modal-prompt-input-income"); if (dataIncome.length <= 5) { @@ -334,7 +340,9 @@ function checkIfFillIn() { var startTime = $("#startDateBudget").val(); var endTime = $("#endDateBudget").val(); var underwrittenMode = $("#underwrittenModeBudget").val(); + var cooperateType = $("#cooperateTypeBudget").val(); var collaborator = $("#collaboratorBudget").val(); + var collaboratorUrl = $("#collaboratorUrlBudget").val(); var advanceInterestAmount = $("#advanceInterestAmountBudget").val(); var advancePeakAmount = $("#advancePeakAmountBudget").val(); var contractAmount = $("#contractAmountBudget").val(); @@ -394,12 +402,18 @@ function checkIfFillIn() { // return; // } - if (underwrittenMode == 1 && (collaborator == undefined || collaborator.length <= 0)) { + if (cooperateType == 1 && (collaborator == undefined || collaborator.length <= 0 )) { window.confirm('合作对象不能为空'); check = 1; return; } + if (cooperateType == 1 && (collaboratorUrl == undefined || collaboratorUrl.length <= 0 )) { + window.confirm('合作对象附件不能为空'); + check = 1; + return; + } + if (underwrittenMode > 2 && (advanceInterestAmount == undefined || advanceInterestAmount.length <= 0)) { window.confirm('垫资利息不能为空'); diff --git a/src/main/resources/static/assets/js/project_budget_plan.js b/src/main/resources/static/assets/js/project_budget_plan.js index 2663df1..4e050d1 100644 --- a/src/main/resources/static/assets/js/project_budget_plan.js +++ b/src/main/resources/static/assets/js/project_budget_plan.js @@ -352,24 +352,24 @@ function verifyBudgetPlan(){ //从采购成本明细中取“设备”大类下的总计---设备支出 if(costPurchaseDeviceTaxInclude != input_total_device_cost_budget_plan){ - return "采购成本明细中取“设备”费用项目下的总计["+costPurchaseDeviceTaxInclude+"]与设备支出["+input_total_device_cost_budget_plan+"]不等"; + return "采购成本明细中取“设备”费用项目下的总计["+costPurchaseDeviceTaxInclude+"]与资金计划表中设备支出["+input_total_device_cost_budget_plan+"]不等"; } //从采购成本明细中取“服务+施工+其他”大类的总计---工程支出 var t = f2(f2(costPurchaseBuildTaxInclude)+f2(costPurchaseServiceTaxInclude)+f2(costPurchaseOtherTaxInclude)); if(t != f2(input_total_engineer_cost_budget_plan)){ - return "采购成本明细中取“服务+施工+其他”费用项目的总计["+t+"]与工程支出["+input_total_engineer_cost_budget_plan+"]不等"; + return "采购成本明细中取“服务+施工+其他”费用项目的总计["+t+"]与资金计划表中工程支出["+input_total_engineer_cost_budget_plan+"]不等"; } //从项目管理成本取总计金额--经营性开支 if(costProjectManageTaxInclude != input_total_project_manage_budget_plan){ - return "项目管理成本取总计金额["+costProjectManageTaxInclude+"]与经营性开支["+input_total_project_manage_budget_plan+"]不等"; + return "项目管理成本取总计金额["+costProjectManageTaxInclude+"]与资金计划表中经营性开支["+input_total_project_manage_budget_plan+"]不等"; } //从“销售收入明细”中取合计--销售收款 if(incomeTotalTaxInclude != input_total_sale_income_budget_plan){ - return "销售收入明细金额["+incomeTotalTaxInclude+"]与销售收款["+input_total_sale_income_budget_plan+"]不等"; + return "销售收入明细金额["+incomeTotalTaxInclude+"]与资金计划表中销售收款["+input_total_sale_income_budget_plan+"]不等"; } //保证金支出和收入一致 if(input_total_earnest_money_cost_budget_plan != input_total_earnest_money_income_budget_plan){ - return "保证金支出["+input_total_earnest_money_cost_budget_plan+"]与保证金收款["+input_total_earnest_money_income_budget_plan+"]不等"; + return "资金计划表中保证金支出["+input_total_earnest_money_cost_budget_plan+"]与保证金收款["+input_total_earnest_money_income_budget_plan+"]不等"; } return ""; diff --git a/src/main/resources/templates/admin/project_approve.ftl b/src/main/resources/templates/admin/project_approve.ftl index 091d4a3..d336820 100644 --- a/src/main/resources/templates/admin/project_approve.ftl +++ b/src/main/resources/templates/admin/project_approve.ftl @@ -463,6 +463,15 @@
+
+
+
+ +
+
+
@@ -480,6 +489,14 @@ + <#if projectBudget.contractBudget??> + + + + +
合同名称: + +
项目类型: diff --git a/src/main/resources/templates/admin/project_budget_edit.ftl b/src/main/resources/templates/admin/project_budget_edit.ftl index e8b2e02..9be0f6d 100644 --- a/src/main/resources/templates/admin/project_budget_edit.ftl +++ b/src/main/resources/templates/admin/project_budget_edit.ftl @@ -1581,6 +1581,66 @@ }); } + var generateFileupload2 = function (name) { + var progressArea = $("#progress-area-" + name);//div + var progressText = $("#progress-text-" + name);//进度条提示 + var progressBar = $(".am-progress-bar");//进度条 + + $("#file_upload_icon").fileupload({ + url: "${base}/file/upload", + dataType: 'json', + maxFileSize: 50 * 1024 * 1024, + maxNumberOfFiles: 1, + start: function (e) { + progressArea.removeClass("am-hide"); + progressText.removeClass("am-text-danger"); + progressText.html(""); + progressBar.css("width", "0%"); + }, + done: function (e, data) { + console.log(data); + //设置服务器返回的url + $("#collaboratorUrlBudget").val(data.result.data.url); + $("#collaboratorUrl_span").text(data.result.data.url); + $("#collaboratorUrl_check").text("已上传"); + // console.log("collboratorUrl: " + $("#collaboratorUrl").val()); + setTimeout(function () { + progressArea.addClass("am-hide"); + }, 1500); + }, + progressall: function (e, data) { + var progress = parseInt(data.loaded / data.total * 100, 10); + console.log(progress); + progressBar.css("width", progress + "%"); + progressText.html(progress + "%"); + }, + error: function (jqXHR2, textStatus, errorThrown) { + progressArea.removeClass("am-hide"); + progressText.addClass("am-text-danger"); + progressText.html("imageupload error!"); + progressBar.css("width", "0%"); + setTimeout(function () { + progressArea.addClass("am-hide"); + }, 2000); + }, + fail: function (jqXHR2, textStatus) { + progressArea.removeClass("am-hide"); + progressText.addClass("am-text-danger"); + progressText.html("imageupload fail!"); + progressBar.css("width", "0%"); + setTimeout(function () { + progressArea.addClass("am-hide"); + }, 2000); + }, + processfail: function (e, data) { + var currentFile = data.files[data.index]; + if (data.files.error && currentFile.error) { + parent.layer.msg(currentFile.error); + } + } + }); + }; + var generateFileupload = function (name) { var progressArea = $("#progress-area-" + name);//div var progressText = $("#progress-text-" + name);//进度条提示 diff --git a/src/main/resources/templates/admin/project_list.ftl b/src/main/resources/templates/admin/project_list.ftl index e3267ad..3ac5381 100644 --- a/src/main/resources/templates/admin/project_list.ftl +++ b/src/main/resources/templates/admin/project_list.ftl @@ -1062,10 +1062,12 @@ + <#if list.creatorId==adminId> +