Merge branch 'master' of gitee.com:ZhangYunTianXia/fourcal
commit
b128c441e6
|
@ -151,7 +151,7 @@ public class ProjectController extends BaseController {
|
||||||
Map<String, String> searchInfo = getSearchInfo(keywords);
|
Map<String, String> searchInfo = getSearchInfo(keywords);
|
||||||
downloadHeader(httpServletResponse, Utils.generateExcelName("项目报表"), "application/octet-stream");
|
downloadHeader(httpServletResponse, Utils.generateExcelName("项目报表"), "application/octet-stream");
|
||||||
String[] headers = {"项目编号", "项目名称", "项目类型", "垫资模式", "垫资利息", "垫资峰值", "项目合同金额", "项目毛利", "项目毛利率", "项目把握度", "汇智产品金额", "华智产品金额",
|
String[] headers = {"项目编号", "项目名称", "项目类型", "垫资模式", "垫资利息", "垫资峰值", "项目合同金额", "项目毛利", "项目毛利率", "项目把握度", "汇智产品金额", "华智产品金额",
|
||||||
"华三产品金额", "其他产品金额", "项目状态", "行业场景应用", "解决方案", "客户名称", "最终用户名称", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "战略合作对象",
|
"华三产品金额", "其他产品金额", "项目当前状态", "行业场景应用", "解决方案", "客户名称", "最终用户名称", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "战略合作对象",
|
||||||
"项目负责人", "价值及风险", "主合同收款条款", "主合同具体解决方案", "计收计划", "审核状态", "当前审核人", "项目创建者", "部门名称","项目阶段", "项目开始时间", "项目结束时间", "最后更新时间"};
|
"项目负责人", "价值及风险", "主合同收款条款", "主合同具体解决方案", "计收计划", "审核状态", "当前审核人", "项目创建者", "部门名称","项目阶段", "项目开始时间", "项目结束时间", "最后更新时间"};
|
||||||
String[] exportColumns = {"projectNo", "name", "typeDesc", "underwrittenModeStr", "advanceInterestAmountRound", "advancePeakAmountRound", "contractRound", "grossProfitRound", "grossProfitMarginRound", "certaintyStr", "huizhiRound", "huazhiRound",
|
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",
|
"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",
|
"grossProfitRound", "grossProfitMarginRound", "huazhiRound", "huizhiRound", "huasanRound", "ziguangRound", "certaintyStr", "industryScenario", "resolvePlanStr", "customer", "terminalCustomer",
|
||||||
"valueRisk", "principal", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection","stageName"};
|
"valueRisk", "principal", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection","stageName"};
|
||||||
exportExcelUtils.exportProjectExcel(headers0, columns0, project, "yyyy-MM-dd", 0, "项目立项(概算)信息", outputStream);
|
exportExcelUtils.exportProjectExcel(headers0, columns0, project, "yyyy-MM-dd", 0, "项目立项(概算)信息", outputStream);
|
||||||
// String[] headers1 = {"项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "主合同收款条款", "主合同具体解决方案", "计收计划"};
|
|
||||||
// String[] columns1 = {"principal", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection"};
|
ProjectBudget projectBudget = projectService.findBudgetByProjectId(project.getId());
|
||||||
// exportExcelUtils.exportProjectExcel(headers1, columns1, project, "yyyy-MM-dd", 0, "项目立项(概算)其他信息", outputStream);
|
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);
|
BudgetBean budgetBean = projectBudgetService.getBudget(project);
|
||||||
if (project.getStatus() < 5) {
|
if (project.getStatus() < 5) {
|
||||||
exportExcelUtils.end(outputStream);
|
exportExcelUtils.end(outputStream);
|
||||||
|
@ -622,11 +628,11 @@ public class ProjectController extends BaseController {
|
||||||
Map<String, String> searchInfo = getSearchInfo(keywords);
|
Map<String, String> searchInfo = getSearchInfo(keywords);
|
||||||
downloadHeader(httpServletResponse, Utils.generateExcelName("待我审核项目报表"), "application/octet-stream");
|
downloadHeader(httpServletResponse, Utils.generateExcelName("待我审核项目报表"), "application/octet-stream");
|
||||||
String[] headers = {"项目编号", "项目名称", "项目类型", "垫资模式", "垫资利息", "垫资峰值", "项目合同金额", "项目毛利", "项目毛利率", "项目把握度", "汇智产品金额", "华智产品金额",
|
String[] headers = {"项目编号", "项目名称", "项目类型", "垫资模式", "垫资利息", "垫资峰值", "项目合同金额", "项目毛利", "项目毛利率", "项目把握度", "汇智产品金额", "华智产品金额",
|
||||||
"华三产品金额", "其他产品金额", "项目状态", "行业场景应用", "解决方案", "客户名称", "最终用户名称", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "战略合作对象",
|
"华三产品金额", "其他产品金额", "项目当前状态", "行业场景应用", "解决方案", "客户名称", "最终用户名称", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "战略合作对象",
|
||||||
"项目负责人", "价值及风险", "主合同收款条款", "主合同具体解决方案", "计收计划", "审核状态", "当前审核人", "项目创建者", "部门名称", "项目开始时间", "项目结束时间", "最后更新时间"};
|
"项目负责人", "价值及风险", "主合同收款条款", "主合同具体解决方案", "计收计划", "审核状态", "当前审核人", "项目创建者", "部门名称","项目阶段", "项目开始时间", "项目结束时间", "最后更新时间"};
|
||||||
String[] exportColumns = {"projectNo", "name", "typeDesc", "underwrittenModeStr", "advanceInterestAmountRound", "advancePeakAmountRound", "contractRound", "grossProfitRound", "grossProfitMarginRound", "certaintyStr", "huizhiRound", "huazhiRound",
|
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",
|
"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,
|
ExportUtils.exportToExcel(headers, exportColumns, 1, 10000,
|
||||||
httpServletResponse.getOutputStream(), (pN, pS) -> projectService.findMyApproveProjects(searchInfo, InterfaceUtil.getAdminId(), pN, pS).getList());
|
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");
|
response.setHeader("Content-Type", "application/vnd.ms-excel");
|
||||||
ServletOutputStream outputStream = response.getOutputStream();
|
ServletOutputStream outputStream = response.getOutputStream();
|
||||||
ExportExcelUtils exportExcelUtils = new ExportExcelUtils();
|
ExportExcelUtils exportExcelUtils = new ExportExcelUtils();
|
||||||
String[] headers1 = {"项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "主合同收款条款", "主合同具体解决方案", "计收计划"};
|
ProjectBudget projectBudget = projectService.findBudgetByProjectId(project.getId());
|
||||||
String[] columns1 = {"principal", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection"};
|
String[] headers1 = {"部门名称", "项目编号", "项目名称", "合同名称", "项目类型", "项目计划开始时间", "项目计划结束时间", "垫资模式", "合作对象", "垫资利息", "垫资峰值", "合同金额",
|
||||||
exportExcelUtils.exportProjectExcel(headers1, columns1, project, "yyyy-MM-dd", 0, "项目立项(概算)其他信息", outputStream);
|
"项目毛利", "项目毛利率", "华智产品金额", "汇智产品金额", "华三产品金额", "其他产品金额", "项目把握度", "行业场景应用", "项目解决方案", "客户名称", "最终用户名称",
|
||||||
BudgetBean budgetBean = projectBudgetService.getBudget(project);
|
"价值及风险", "项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "主合同收款条款", "主合同具体解决方案", "计收计划"};
|
||||||
|
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);
|
exportExcelUtils.end(outputStream);
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,9 +96,9 @@ public class SpaceController extends BaseController {
|
||||||
searchInfo.putIfAbsent("estimateStatus", String.valueOf(1));
|
searchInfo.putIfAbsent("estimateStatus", String.valueOf(1));
|
||||||
downloadHeader(httpServletResponse, Utils.generateExcelName("项目报表"), "application/octet-stream");
|
downloadHeader(httpServletResponse, Utils.generateExcelName("项目报表"), "application/octet-stream");
|
||||||
String[] headers = {"项目编号", "项目名称", "项目类型", "垫资模式", "华智产品金额", "华三产品金额", "汇智产品金额", "其他产品金额", "项目把握度", "项目计划招标时间", "预计合同签订时间",
|
String[] headers = {"项目编号", "项目名称", "项目类型", "垫资模式", "华智产品金额", "华三产品金额", "汇智产品金额", "其他产品金额", "项目把握度", "项目计划招标时间", "预计合同签订时间",
|
||||||
"计收计划", "项目毛利", "合同金额", "项目解决方案", "具体解决方案", "是否二次签单", "最终用户名称", "客户名称", "紫光汇智直接投标/集成商转签", "负责人", "备注"};
|
"计收计划", "项目毛利", "合同金额", "项目解决方案", "具体解决方案", "是否二次签单", "最终用户名称", "客户名称", "紫光汇智直接投标/集成商转签", "负责人", "备注","项目阶段"};
|
||||||
String[] exportColumns = {"projectNo", "name", "typeDesc", "underwrittenModeStr", "huazhiRound", "huasanRound", "huizhiRound", "ziguangRound", "certaintyStr", "bidsTime", "contractTime",
|
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,
|
ExportUtils.exportToExcel(headers, exportColumns, 1, 10000,
|
||||||
httpServletResponse.getOutputStream(), (pN, pS) -> spaceService.list(searchInfo, pN, pS).getList());
|
httpServletResponse.getOutputStream(), (pN, pS) -> spaceService.list(searchInfo, pN, pS).getList());
|
||||||
}
|
}
|
||||||
|
|
|
@ -202,6 +202,33 @@ public class ProjectBudget {
|
||||||
@Column(name = "calculation_collection_budget")
|
@Column(name = "calculation_collection_budget")
|
||||||
private String calculationCollectionBudget;
|
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() {
|
public int getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
@ -561,4 +588,76 @@ public class ProjectBudget {
|
||||||
public void setCalculationCollectionBudget(String calculationCollectionBudget) {
|
public void setCalculationCollectionBudget(String calculationCollectionBudget) {
|
||||||
this.calculationCollectionBudget = 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -264,6 +264,8 @@ public class ProjectEstimateService {
|
||||||
|
|
||||||
//projectInstanceService.startEstimateProcessInstance(p, admin);
|
//projectInstanceService.startEstimateProcessInstance(p, admin);
|
||||||
|
|
||||||
|
projectBudgetSave(p);
|
||||||
|
|
||||||
estimateApprove(0, p, admin);
|
estimateApprove(0, p, admin);
|
||||||
|
|
||||||
return project;
|
return project;
|
||||||
|
@ -302,6 +304,9 @@ public class ProjectEstimateService {
|
||||||
|
|
||||||
private void projectBudgetSave(Project estimateProject) {
|
private void projectBudgetSave(Project estimateProject) {
|
||||||
ProjectBudget projectBudget = new ProjectBudget();
|
ProjectBudget projectBudget = new ProjectBudget();
|
||||||
|
if (projectBudgetRepository.findFirstByProjectId(estimateProject.getId()) != null) {
|
||||||
|
projectBudget = projectBudgetRepository.findFirstByProjectId(estimateProject.getId());
|
||||||
|
}
|
||||||
projectBudget.setProjectId(estimateProject.getId());
|
projectBudget.setProjectId(estimateProject.getId());
|
||||||
projectBudget.setProjectNoBudget(estimateProject.getProjectNo());
|
projectBudget.setProjectNoBudget(estimateProject.getProjectNo());
|
||||||
projectBudget.setNameBudget(estimateProject.getName());
|
projectBudget.setNameBudget(estimateProject.getName());
|
||||||
|
|
|
@ -349,6 +349,11 @@ public class ProjectService {
|
||||||
project.setAdvancePeakAmountRound(project.getAdvancePeakAmountRound2());
|
project.setAdvancePeakAmountRound(project.getAdvancePeakAmountRound2());
|
||||||
project.setAdvanceInterestAmountRound(project.getAdvanceInterestAmountRound2());
|
project.setAdvanceInterestAmountRound(project.getAdvanceInterestAmountRound2());
|
||||||
}
|
}
|
||||||
|
if(null == project.getStage()){
|
||||||
|
project.setStageName(getStageName(-1));
|
||||||
|
}else {
|
||||||
|
project.setStageName(getStageName(project.getStage()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return page;
|
return page;
|
||||||
|
@ -784,6 +789,13 @@ public class ProjectService {
|
||||||
return first;
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 将该自己审批的任务转交给别人
|
* 将该自己审批的任务转交给别人
|
||||||
*
|
*
|
||||||
|
|
|
@ -31,6 +31,9 @@ public class SpaceService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysRoleRepository sysRoleRepository;
|
private SysRoleRepository sysRoleRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ProjectService projectService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private Pagination pagination;
|
private Pagination pagination;
|
||||||
|
|
||||||
|
@ -53,6 +56,11 @@ public class SpaceService {
|
||||||
project.setAdvancePeakAmountRound(project.getAdvancePeakAmountRound2());
|
project.setAdvancePeakAmountRound(project.getAdvancePeakAmountRound2());
|
||||||
project.setAdvanceInterestAmountRound(project.getAdvanceInterestAmountRound2());
|
project.setAdvanceInterestAmountRound(project.getAdvanceInterestAmountRound2());
|
||||||
}
|
}
|
||||||
|
if(null == project.getStage()){
|
||||||
|
project.setStageName(projectService.getStageName(-1));
|
||||||
|
}else {
|
||||||
|
project.setStageName(projectService.getStageName(project.getStage()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return page;
|
return page;
|
||||||
|
|
|
@ -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) {
|
public void exportBudgetExcel(BudgetBean budgetBean, CashFlowBean cashFlowBean, int rowIndex, String sheetName, ServletOutputStream outputStream, String otherName, String incomeTaxRates, String costTaxRates) {
|
||||||
// 遍历集合数据,产生数据行
|
// 遍历集合数据,产生数据行
|
||||||
int index = rowIndex;
|
int index = rowIndex;
|
||||||
|
|
|
@ -58,9 +58,11 @@
|
||||||
// };
|
// };
|
||||||
|
|
||||||
var result = 0;
|
var result = 0;
|
||||||
|
var check = 0;
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
generateFileupload('icon');
|
|
||||||
|
generateFileupload2('icon');
|
||||||
|
|
||||||
$("input[name='costCompanyManageTaxExclude']").change(function () {
|
$("input[name='costCompanyManageTaxExclude']").change(function () {
|
||||||
digitalSelf("costCompanyManageTaxExclude", "input[name='costCompanyManageTaxExclude']");
|
digitalSelf("costCompanyManageTaxExclude", "input[name='costCompanyManageTaxExclude']");
|
||||||
|
@ -202,6 +204,10 @@ $(function () {
|
||||||
$("#collaboratorUrl").val($("#collaboratorUrl_span").text());
|
$("#collaboratorUrl").val($("#collaboratorUrl_span").text());
|
||||||
|
|
||||||
checkIfFillIn();
|
checkIfFillIn();
|
||||||
|
if (check === 1) {
|
||||||
|
$("#saveApprove").attr('disabled', false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var dataIncome = collectData("am-modal-prompt-input-income");
|
var dataIncome = collectData("am-modal-prompt-input-income");
|
||||||
if (dataIncome.length <= 5) {
|
if (dataIncome.length <= 5) {
|
||||||
|
@ -334,7 +340,9 @@ function checkIfFillIn() {
|
||||||
var startTime = $("#startDateBudget").val();
|
var startTime = $("#startDateBudget").val();
|
||||||
var endTime = $("#endDateBudget").val();
|
var endTime = $("#endDateBudget").val();
|
||||||
var underwrittenMode = $("#underwrittenModeBudget").val();
|
var underwrittenMode = $("#underwrittenModeBudget").val();
|
||||||
|
var cooperateType = $("#cooperateTypeBudget").val();
|
||||||
var collaborator = $("#collaboratorBudget").val();
|
var collaborator = $("#collaboratorBudget").val();
|
||||||
|
var collaboratorUrl = $("#collaboratorUrlBudget").val();
|
||||||
var advanceInterestAmount = $("#advanceInterestAmountBudget").val();
|
var advanceInterestAmount = $("#advanceInterestAmountBudget").val();
|
||||||
var advancePeakAmount = $("#advancePeakAmountBudget").val();
|
var advancePeakAmount = $("#advancePeakAmountBudget").val();
|
||||||
var contractAmount = $("#contractAmountBudget").val();
|
var contractAmount = $("#contractAmountBudget").val();
|
||||||
|
@ -394,12 +402,18 @@ function checkIfFillIn() {
|
||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if (underwrittenMode == 1 && (collaborator == undefined || collaborator.length <= 0)) {
|
if (cooperateType == 1 && (collaborator == undefined || collaborator.length <= 0 )) {
|
||||||
window.confirm('合作对象不能为空');
|
window.confirm('合作对象不能为空');
|
||||||
check = 1;
|
check = 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cooperateType == 1 && (collaboratorUrl == undefined || collaboratorUrl.length <= 0 )) {
|
||||||
|
window.confirm('合作对象附件不能为空');
|
||||||
|
check = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (underwrittenMode > 2 && (advanceInterestAmount == undefined || advanceInterestAmount.length <= 0)) {
|
if (underwrittenMode > 2 && (advanceInterestAmount == undefined || advanceInterestAmount.length <= 0)) {
|
||||||
window.confirm('垫资利息不能为空');
|
window.confirm('垫资利息不能为空');
|
||||||
|
|
|
@ -352,24 +352,24 @@ function verifyBudgetPlan(){
|
||||||
|
|
||||||
//从采购成本明细中取“设备”大类下的总计---设备支出
|
//从采购成本明细中取“设备”大类下的总计---设备支出
|
||||||
if(costPurchaseDeviceTaxInclude != input_total_device_cost_budget_plan){
|
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));
|
var t = f2(f2(costPurchaseBuildTaxInclude)+f2(costPurchaseServiceTaxInclude)+f2(costPurchaseOtherTaxInclude));
|
||||||
if(t != f2(input_total_engineer_cost_budget_plan)){
|
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){
|
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){
|
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){
|
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 "";
|
return "";
|
||||||
|
|
|
@ -463,6 +463,15 @@
|
||||||
<div class="am-tabs-bd palm-tabs-bd">
|
<div class="am-tabs-bd palm-tabs-bd">
|
||||||
<div class="am-tab-panel am-fade am-in am-active" id="tab30">
|
<div class="am-tab-panel am-fade am-in am-active" id="tab30">
|
||||||
<input name="projectId" id="projectId" type="hidden" value="${projectBudget.projectId}" />
|
<input name="projectId" id="projectId" type="hidden" value="${projectBudget.projectId}" />
|
||||||
|
<div class="am-u-sm-12 am-u-md-12" style="padding:0 1.6rem 1.6rem 1rem;margin:0;">
|
||||||
|
<div class="am-btn-toolbar" style="padding-left:.5rem;">
|
||||||
|
<div class="am-btn-group am-btn-group-xs">
|
||||||
|
<button type="button" class="am-btn am-btn-default" onclick="location.href='${base}/project/estimateSecondExport?id=${project.id!}'">
|
||||||
|
<span class="am-icon-archive"></span> 导出
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<!--验证表单元素(validate) begin-->
|
<!--验证表单元素(validate) begin-->
|
||||||
<table id="myTable" class="am-table am-table-bordered">
|
<table id="myTable" class="am-table am-table-bordered">
|
||||||
<tr class="am-text-nowrap">
|
<tr class="am-text-nowrap">
|
||||||
|
@ -480,6 +489,14 @@
|
||||||
<input readonly value="${projectBudget.nameBudget!}" />
|
<input readonly value="${projectBudget.nameBudget!}" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<#if projectBudget.contractBudget??>
|
||||||
|
<tr class="am-text-nowrap">
|
||||||
|
<th class="table-title" colspan="1" ><span style="font-size: 15px">合同名称:</span></th>
|
||||||
|
<td class="table-title" colspan="5" >
|
||||||
|
<input readonly value="${projectBudget.contractBudget!}"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</#if>
|
||||||
<tr class="am-text-nowrap">
|
<tr class="am-text-nowrap">
|
||||||
<th class="table-title" colspan="1" ><span style="font-size: 15px">项目类型:</span></th>
|
<th class="table-title" colspan="1" ><span style="font-size: 15px">项目类型:</span></th>
|
||||||
<td class="table-title" colspan="1" >
|
<td class="table-title" colspan="1" >
|
||||||
|
|
|
@ -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 generateFileupload = function (name) {
|
||||||
var progressArea = $("#progress-area-" + name);//div
|
var progressArea = $("#progress-area-" + name);//div
|
||||||
var progressText = $("#progress-text-" + name);//进度条提示
|
var progressText = $("#progress-text-" + name);//进度条提示
|
||||||
|
|
|
@ -1062,10 +1062,12 @@
|
||||||
</button>
|
</button>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
|
<#if list.creatorId==adminId>
|
||||||
<button type="button" class="am-btn am-btn-default am-btn-xs am-text-secondary"
|
<button type="button" class="am-btn am-btn-default am-btn-xs am-text-secondary"
|
||||||
onclick="stageRefreshModal(${list.id})">
|
onclick="stageRefreshModal(${list.id})">
|
||||||
<span class="am-icon-pencil-square-o"></span>项目阶段更新
|
<span class="am-icon-pencil-square-o"></span>项目阶段更新
|
||||||
</button>
|
</button>
|
||||||
|
</#if>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|
Loading…
Reference in New Issue