毛利A计算

master
OathK1per 2023-10-13 16:22:25 +08:00
parent 1eadf7fd26
commit 19dbd05ad9
12 changed files with 252 additions and 7 deletions

View File

@ -479,6 +479,39 @@ public abstract class IncomeCostBean {
return getCostTotalTaxInclude().subtract(getCostTotalTaxExclude()); return getCostTotalTaxInclude().subtract(getCostTotalTaxExclude());
} }
/**
*
* --
*/
public BigDecimal getProjectGrossProfitA() {
BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude();
BigDecimal costTotalTaxExclude = getCostTotalTaxExclude();
if (null == incomeTotalTaxExclude || null == costTotalTaxExclude) {
return handleSpecial(null);
}
return incomeTotalTaxExclude
.subtract(costTotalTaxExclude);
}
/**
*
* /
*/
public BigDecimal getProjectGrossProfitARate() {
BigDecimal projectGrossProfit = getProjectGrossProfitA();
BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude();
if (null == projectGrossProfit || null == incomeTotalTaxExclude) {
return handleSpecial(null);
}
BigDecimal zero = new BigDecimal(0);
if (projectGrossProfit.compareTo(zero) == 0 || incomeTotalTaxExclude.compareTo(zero) == 0) {
return handleSpecial(null);
}
return projectGrossProfit
.multiply(new BigDecimal(100))
.divide(incomeTotalTaxExclude, 2, BigDecimal.ROUND_HALF_UP);
}
/** /**
* *
* -- * --

View File

@ -150,10 +150,10 @@ public class ProjectController extends BaseController {
public void export(@RequestParam(value = "keywords", required = false) String keywords, HttpServletResponse httpServletResponse) throws IOException { public void export(@RequestParam(value = "keywords", required = false) String keywords, HttpServletResponse httpServletResponse) throws IOException {
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 = {"项目编号", "项目名称", "项目类型", "垫资模式", "垫资利息", "垫资峰值", "项目合同金额", "项目毛利A", "项目毛利A利率", "项目毛利", "项目毛利率", "项目把握度", "汇智产品金额", "华智产品金额",
"华三产品金额", "其他产品金额", "项目当前状态", "行业场景应用", "解决方案", "客户名称", "最终用户名称", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "战略合作对象", "华三产品金额", "其他产品金额", "项目当前状态", "行业场景应用", "解决方案", "客户名称", "最终用户名称", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "战略合作对象",
"项目负责人", "价值及风险", "主合同收款条款", "主合同具体解决方案", "计收计划", "审核状态", "当前审核人", "项目创建者", "部门名称","项目阶段", "公司销售阶段", "当前进度描述", "下一步计划", "项目开始时间", "项目结束时间", "最后更新时间"}; "项目负责人", "价值及风险", "主合同收款条款", "主合同具体解决方案", "计收计划", "审核状态", "当前审核人", "项目创建者", "部门名称","项目阶段", "公司销售阶段", "当前进度描述", "下一步计划", "项目开始时间", "项目结束时间", "最后更新时间"};
String[] exportColumns = {"projectNo", "name", "typeDesc", "underwrittenModeStr", "advanceInterestAmountRound", "advancePeakAmountRound", "contractRound", "grossProfitRound", "grossProfitMarginRound", "certaintyStr", "huizhiRound", "huazhiRound", String[] exportColumns = {"projectNo", "name", "typeDesc", "underwrittenModeStr", "advanceInterestAmountRound", "advancePeakAmountRound", "contractRound", "grossProfitARound", "grossProfitAMarginRound", "grossProfitRound", "grossProfitMarginRound", "certaintyStr", "huizhiRound", "huazhiRound",
"huasanRound", "ziguangRound", "statusDesc", "industryScenario", "resolvePlanStr", "customer", "terminalCustomer", "contractTimeStr", "bidsTimeStr", "isSecondStr", "signTypeStr", "collaborator", "huasanRound", "ziguangRound", "statusDesc", "industryScenario", "resolvePlanStr", "customer", "terminalCustomer", "contractTimeStr", "bidsTimeStr", "isSecondStr", "signTypeStr", "collaborator",
"principal", "valueRisk", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection", "approveStatusDesc", "approveName", "creatorName", "deptName","stageName", "saleStageName", "stageRemark", "nextPlan", "startDateStr", "endDateStr", "lastUpdateTimeStr"}; "principal", "valueRisk", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection", "approveStatusDesc", "approveName", "creatorName", "deptName","stageName", "saleStageName", "stageRemark", "nextPlan", "startDateStr", "endDateStr", "lastUpdateTimeStr"};
ExportUtils.exportToExcel(headers, exportColumns, 1, 10000, ExportUtils.exportToExcel(headers, exportColumns, 1, 10000,
@ -186,10 +186,10 @@ public class ProjectController extends BaseController {
ProjectBudget projectBudget = projectService.findBudgetByProjectId(project.getId()); ProjectBudget projectBudget = projectService.findBudgetByProjectId(project.getId());
String[] headers1 = {"部门名称", "项目编号", "项目名称", "合同名称", "项目类型", "项目计划开始时间", "项目计划结束时间", "垫资模式", "合作对象", "垫资利息", "垫资峰值", "合同金额", String[] headers1 = {"部门名称", "项目编号", "项目名称", "合同名称", "项目类型", "项目计划开始时间", "项目计划结束时间", "垫资模式", "合作对象", "垫资利息", "垫资峰值", "合同金额",
"项目毛利", "项目毛利率", "华智产品金额", "汇智产品金额", "华三产品金额", "其他产品金额", "项目把握度", "行业场景应用", "项目解决方案", "客户名称", "最终用户名称", "项目毛利A", "项目毛利A利率", "项目毛利", "项目毛利率", "华智产品金额", "汇智产品金额", "华三产品金额", "其他产品金额", "项目把握度", "行业场景应用", "项目解决方案", "客户名称", "最终用户名称",
"价值及风险", "项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "主合同收款条款", "主合同具体解决方案", "计收计划"}; "价值及风险", "项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "主合同收款条款", "主合同具体解决方案", "计收计划"};
String[] columns1 = {"deptNameBudget", "projectNoBudget", "nameBudget", "contractBudget", "typeDescBudget", "startDateBudget", "endDateBudget", "underwrittenModeStrBudget", "collaboratorBudget", "advanceInterestAmountRoundBudget", "advancePeakAmountRoundBudget", "contractRoundBudget", 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", "grossProfitARoundBudget", "grossProfitAMarginRoundBudget", "grossProfitRoundBudget", "grossProfitMarginRoundBudget", "huazhiRoundBudget", "huizhiRoundBudget", "huasanRoundBudget", "ziguangRoundBudget", "certaintyStrBudget", "industryScenarioBudget", "resolvePlanStrBudget", "customerBudget", "terminalCustomerBudget",
"valueRiskBudget", "principalBudget", "contractTimeBudget", "bidsTimeBudget", "isSecondStrBudget", "signTypeStrBudget", "mainContractCollectionTermsBudget", "mainContractResolvePlanBudget", "calculationCollectionBudget"}; "valueRiskBudget", "principalBudget", "contractTimeBudget", "bidsTimeBudget", "isSecondStrBudget", "signTypeStrBudget", "mainContractCollectionTermsBudget", "mainContractResolvePlanBudget", "calculationCollectionBudget"};
exportExcelUtils.exportProjectBudgetExcel(headers1, columns1, projectBudget, "yyyy-MM-dd", 0, "项目基本信息", outputStream); exportExcelUtils.exportProjectBudgetExcel(headers1, columns1, projectBudget, "yyyy-MM-dd", 0, "项目基本信息", outputStream);
BudgetBean budgetBean = projectBudgetService.getBudget(project); BudgetBean budgetBean = projectBudgetService.getBudget(project);
@ -1203,10 +1203,10 @@ public class ProjectController extends BaseController {
ExportExcelUtils exportExcelUtils = new ExportExcelUtils(); ExportExcelUtils exportExcelUtils = new ExportExcelUtils();
ProjectBudget projectBudget = projectService.findBudgetByProjectId(project.getId()); ProjectBudget projectBudget = projectService.findBudgetByProjectId(project.getId());
String[] headers1 = {"部门名称", "项目编号", "项目名称", "合同名称", "项目类型", "项目计划开始时间", "项目计划结束时间", "垫资模式", "合作对象", "垫资利息", "垫资峰值", "合同金额", String[] headers1 = {"部门名称", "项目编号", "项目名称", "合同名称", "项目类型", "项目计划开始时间", "项目计划结束时间", "垫资模式", "合作对象", "垫资利息", "垫资峰值", "合同金额",
"项目毛利", "项目毛利率", "华智产品金额", "汇智产品金额", "华三产品金额", "其他产品金额", "项目把握度", "行业场景应用", "项目解决方案", "客户名称", "最终用户名称", "项目毛利A", "项目毛利A利率", "项目毛利", "项目毛利率", "华智产品金额", "汇智产品金额", "华三产品金额", "其他产品金额", "项目把握度", "行业场景应用", "项目解决方案", "客户名称", "最终用户名称",
"价值及风险", "项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "主合同收款条款", "主合同具体解决方案", "计收计划"}; "价值及风险", "项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "主合同收款条款", "主合同具体解决方案", "计收计划"};
String[] columns1 = {"deptNameBudget", "projectNoBudget", "nameBudget", "contractBudget", "typeDescBudget", "startDateBudget", "endDateBudget", "underwrittenModeStrBudget", "collaboratorBudget", "advanceInterestAmountRoundBudget", "advancePeakAmountRoundBudget", "contractRoundBudget", 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", "grossProfitARoundBudget", "grossProfitAMarginRoundBudget", "grossProfitRoundBudget", "grossProfitMarginRoundBudget", "huazhiRoundBudget", "huizhiRoundBudget", "huasanRoundBudget", "ziguangRoundBudget", "certaintyStrBudget", "industryScenarioBudget", "resolvePlanStrBudget", "customerBudget", "terminalCustomerBudget",
"valueRiskBudget", "principalBudget", "contractTimeBudget", "bidsTimeBudget", "isSecondStrBudget", "signTypeStrBudget", "mainContractCollectionTermsBudget", "mainContractResolvePlanBudget", "calculationCollectionBudget"}; "valueRiskBudget", "principalBudget", "contractTimeBudget", "bidsTimeBudget", "isSecondStrBudget", "signTypeStrBudget", "mainContractCollectionTermsBudget", "mainContractResolvePlanBudget", "calculationCollectionBudget"};
exportExcelUtils.exportProjectBudgetExcel(headers1, columns1, projectBudget, "yyyy-MM-dd", 0, "项目基本信息", outputStream); exportExcelUtils.exportProjectBudgetExcel(headers1, columns1, projectBudget, "yyyy-MM-dd", 0, "项目基本信息", outputStream);

View File

@ -211,6 +211,12 @@ public class Project {
@Column(name = "certainty_str") @Column(name = "certainty_str")
private String certaintyStr; private String certaintyStr;
@Column(name = "gross_profit_a")
private BigDecimal grossProfitA;
@Column(name = "gross_profit_a_margin")
private BigDecimal grossProfitAMargin;
@Column(name = "gross_profit") @Column(name = "gross_profit")
private BigDecimal grossProfit; private BigDecimal grossProfit;
@ -283,6 +289,12 @@ public class Project {
@Transient @Transient
private String huasanRound; private String huasanRound;
@Transient
private String grossProfitARound;
@Transient
private String grossProfitAMarginRound;
@Transient @Transient
private String grossProfitRound; private String grossProfitRound;
@ -310,6 +322,12 @@ public class Project {
@Transient @Transient
private String huasanRound2; private String huasanRound2;
@Transient
private String grossProfitARound2;
@Transient
private String grossProfitAMarginRound2;
@Transient @Transient
private String grossProfitRound2; private String grossProfitRound2;
@ -1134,4 +1152,52 @@ public class Project {
public void setSaleStageName(String saleStageName) { public void setSaleStageName(String saleStageName) {
this.saleStageName = saleStageName; this.saleStageName = saleStageName;
} }
public BigDecimal getGrossProfitA() {
return grossProfitA;
}
public void setGrossProfitA(BigDecimal grossProfitA) {
this.grossProfitA = grossProfitA;
}
public BigDecimal getGrossProfitAMargin() {
return grossProfitAMargin;
}
public void setGrossProfitAMargin(BigDecimal grossProfitAMargin) {
this.grossProfitAMargin = grossProfitAMargin;
}
public String getGrossProfitARound() {
return grossProfitARound;
}
public void setGrossProfitARound(String grossProfitARound) {
this.grossProfitARound = grossProfitARound;
}
public String getGrossProfitAMarginRound() {
return grossProfitAMarginRound;
}
public void setGrossProfitAMarginRound(String grossProfitAMarginRound) {
this.grossProfitAMarginRound = grossProfitAMarginRound;
}
public String getGrossProfitARound2() {
return grossProfitARound2;
}
public void setGrossProfitARound2(String grossProfitARound2) {
this.grossProfitARound2 = grossProfitARound2;
}
public String getGrossProfitAMarginRound2() {
return grossProfitAMarginRound2;
}
public void setGrossProfitAMarginRound2(String grossProfitAMarginRound2) {
this.grossProfitAMarginRound2 = grossProfitAMarginRound2;
}
} }

View File

@ -157,6 +157,12 @@ public class ProjectBudget {
@Column(name = "certainty_str_budget") @Column(name = "certainty_str_budget")
private String certaintyStrBudget; private String certaintyStrBudget;
@Column(name = "gross_profit_a_budget")
private BigDecimal grossProfitABudget;
@Column(name = "gross_profit_a_margin_budget")
private BigDecimal grossProfitAMarginBudget;
@Column(name = "gross_profit_budget") @Column(name = "gross_profit_budget")
private BigDecimal grossProfitBudget; private BigDecimal grossProfitBudget;
@ -217,6 +223,12 @@ public class ProjectBudget {
@Transient @Transient
private String huasanRoundBudget; private String huasanRoundBudget;
@Transient
private String grossProfitARoundBudget;
@Transient
private String grossProfitAMarginRoundBudget;
@Transient @Transient
private String grossProfitRoundBudget; private String grossProfitRoundBudget;
@ -660,4 +672,36 @@ public class ProjectBudget {
public void setAdvancePeakAmountRoundBudget(String advancePeakAmountRoundBudget) { public void setAdvancePeakAmountRoundBudget(String advancePeakAmountRoundBudget) {
this.advancePeakAmountRoundBudget = advancePeakAmountRoundBudget; this.advancePeakAmountRoundBudget = advancePeakAmountRoundBudget;
} }
public BigDecimal getGrossProfitABudget() {
return grossProfitABudget;
}
public void setGrossProfitABudget(BigDecimal grossProfitABudget) {
this.grossProfitABudget = grossProfitABudget;
}
public BigDecimal getGrossProfitAMarginBudget() {
return grossProfitAMarginBudget;
}
public void setGrossProfitAMarginBudget(BigDecimal grossProfitAMarginBudget) {
this.grossProfitAMarginBudget = grossProfitAMarginBudget;
}
public String getGrossProfitARoundBudget() {
return grossProfitARoundBudget;
}
public void setGrossProfitARoundBudget(String grossProfitARoundBudget) {
this.grossProfitARoundBudget = grossProfitARoundBudget;
}
public String getGrossProfitAMarginRoundBudget() {
return grossProfitAMarginRoundBudget;
}
public void setGrossProfitAMarginRoundBudget(String grossProfitAMarginRoundBudget) {
this.grossProfitAMarginRoundBudget = grossProfitAMarginRoundBudget;
}
} }

View File

@ -53,6 +53,12 @@ public class ProjectExtend {
@Column(name = "ziguang_other_amount") @Column(name = "ziguang_other_amount")
private BigDecimal ziguangOtherAmount; private BigDecimal ziguangOtherAmount;
@Column(name = "gross_profit_a")
private BigDecimal grossProfitA;
@Column(name = "gross_profit_a_margin")
private BigDecimal grossProfitAMargin;
@Column(name = "gross_profit") @Column(name = "gross_profit")
private BigDecimal grossProfit; private BigDecimal grossProfit;
@ -129,6 +135,22 @@ public class ProjectExtend {
this.ziguangOtherAmount = ziguangOtherAmount; this.ziguangOtherAmount = ziguangOtherAmount;
} }
public BigDecimal getGrossProfitA() {
return grossProfitA;
}
public void setGrossProfitA(BigDecimal grossProfitA) {
this.grossProfitA = grossProfitA;
}
public BigDecimal getGrossProfitAMargin() {
return grossProfitAMargin;
}
public void setGrossProfitAMargin(BigDecimal grossProfitAMargin) {
this.grossProfitAMargin = grossProfitAMargin;
}
public BigDecimal getGrossProfit() { public BigDecimal getGrossProfit() {
return grossProfit; return grossProfit;
} }

View File

@ -957,6 +957,11 @@ public class ProjectBudgetService {
budget.setAdvancePeakAmountBudget(bean.getAmount()); budget.setAdvancePeakAmountBudget(bean.getAmount());
BudgetBean budgetBean = projectBudgetService.getBudget(p); BudgetBean budgetBean = projectBudgetService.getBudget(p);
BigDecimal grossProfitA = budgetBean.getProjectGrossProfitA();
if (grossProfitA != null) {
budget.setGrossProfitABudget(grossProfitA);
budget.setGrossProfitAMarginBudget(budgetBean.getProjectGrossProfitARate());
}
BigDecimal grossProfit = budgetBean.getProjectGrossProfit(); BigDecimal grossProfit = budgetBean.getProjectGrossProfit();
if (grossProfit != null) { if (grossProfit != null) {
budget.setGrossProfitBudget(grossProfit); budget.setGrossProfitBudget(grossProfit);
@ -999,6 +1004,11 @@ public class ProjectBudgetService {
extend.setAdvancePeakAmount(bean.getAmount()); extend.setAdvancePeakAmount(bean.getAmount());
BudgetBean budgetBean = projectBudgetService.getBudget(p); BudgetBean budgetBean = projectBudgetService.getBudget(p);
BigDecimal grossProfitA = budgetBean.getProjectGrossProfitA();
if (grossProfitA != null) {
extend.setGrossProfitA(grossProfitA);
extend.setGrossProfitAMargin(budgetBean.getProjectGrossProfitARate());
}
BigDecimal grossProfit = budgetBean.getProjectGrossProfit(); BigDecimal grossProfit = budgetBean.getProjectGrossProfit();
if (grossProfit != null) { if (grossProfit != null) {
extend.setGrossProfit(grossProfit); extend.setGrossProfit(grossProfit);

View File

@ -65,6 +65,7 @@ public class ProjectService {
"CASE p.approve_status WHEN 0 THEN '待审核' WHEN 1 THEN '审核通过' WHEN 2 THEN '审核不通过' ELSE '未知' AS approveStatusDesc," + "CASE p.approve_status WHEN 0 THEN '待审核' WHEN 1 THEN '审核通过' WHEN 2 THEN '审核不通过' ELSE '未知' AS approveStatusDesc," +
*/ */
QueryHelper queryHelper = new QueryHelper("SELECT p.*, FORMAT(p.contract_amount,2) as contractRound, FORMAT(p.huazhi_product_amount,2) as huazhiRound, FORMAT(p.huizhi_product_amount,2) as huizhiRound, FORMAT(p.huasan_product_amount,2) as huasanRound, FORMAT(p.ziguang_other_amount,2) as ziguangRound" + QueryHelper queryHelper = new QueryHelper("SELECT p.*, FORMAT(p.contract_amount,2) as contractRound, FORMAT(p.huazhi_product_amount,2) as huazhiRound, FORMAT(p.huizhi_product_amount,2) as huizhiRound, FORMAT(p.huasan_product_amount,2) as huasanRound, FORMAT(p.ziguang_other_amount,2) as ziguangRound" +
", FORMAT(p.gross_profit_a,2) as grossProfitARound, FORMAT(p.gross_profit_a_margin,2) as grossProfitAMarginRound, FORMAT(pe.gross_profit_a,2) as grossProfitARound2, FORMAT(pe.gross_profit_a_margin,2) as grossProfitAMarginRound2" +
", FORMAT(p.gross_profit,2) as grossProfitRound, FORMAT(p.gross_profit_margin,2) as grossProfitMarginRound, FORMAT(p.advance_interest_amount,2) as advanceInterestAmountRound, FORMAT(p.advance_peak_amount,2) as advancePeakAmountRound, pe.is_budget as isBudget" + ", FORMAT(p.gross_profit,2) as grossProfitRound, FORMAT(p.gross_profit_margin,2) as grossProfitMarginRound, FORMAT(p.advance_interest_amount,2) as advanceInterestAmountRound, FORMAT(p.advance_peak_amount,2) as advancePeakAmountRound, pe.is_budget as isBudget" +
", FORMAT(pe.contract_amount,2) as contractRound2, FORMAT(pe.huazhi_product_amount,2) as huazhiRound2, FORMAT(pe.huizhi_product_amount,2) as huizhiRound2, FORMAT(pe.huasan_product_amount,2) as huasanRound2, FORMAT(pe.ziguang_other_amount,2) as ziguangRound2" + ", FORMAT(pe.contract_amount,2) as contractRound2, FORMAT(pe.huazhi_product_amount,2) as huazhiRound2, FORMAT(pe.huizhi_product_amount,2) as huizhiRound2, FORMAT(pe.huasan_product_amount,2) as huasanRound2, FORMAT(pe.ziguang_other_amount,2) as ziguangRound2" +
", FORMAT(pe.gross_profit,2) as grossProfitRound2, FORMAT(pe.gross_profit_margin,2) as grossProfitMarginRound2, FORMAT(pe.advance_interest_amount,2) as advanceInterestAmountRound2, FORMAT(pe.advance_peak_amount,2) as advancePeakAmountRound2" + ", FORMAT(pe.gross_profit,2) as grossProfitRound2, FORMAT(pe.gross_profit_margin,2) as grossProfitMarginRound2, FORMAT(pe.advance_interest_amount,2) as advanceInterestAmountRound2, FORMAT(pe.advance_peak_amount,2) as advancePeakAmountRound2" +
@ -286,6 +287,8 @@ public class ProjectService {
project.setHuazhiRound(project.getHuazhiRound2()); project.setHuazhiRound(project.getHuazhiRound2());
project.setHuasanRound(project.getHuasanRound2()); project.setHuasanRound(project.getHuasanRound2());
project.setZiguangRound(project.getZiguangRound2()); project.setZiguangRound(project.getZiguangRound2());
project.setGrossProfitARound(project.getGrossProfitARound2());
project.setGrossProfitAMarginRound(project.getGrossProfitAMarginRound2());
project.setGrossProfitRound(project.getGrossProfitRound2()); project.setGrossProfitRound(project.getGrossProfitRound2());
project.setGrossProfitMarginRound(project.getGrossProfitMarginRound2()); project.setGrossProfitMarginRound(project.getGrossProfitMarginRound2());
project.setAdvancePeakAmountRound(project.getAdvancePeakAmountRound2()); project.setAdvancePeakAmountRound(project.getAdvancePeakAmountRound2());

View File

@ -658,6 +658,7 @@ public class ExportExcelUtils {
private int createProfitRow(BudgetBean budgetBean, XSSFSheet sheet, int index) { private int createProfitRow(BudgetBean budgetBean, XSSFSheet sheet, int index) {
createSubTitleProfitRow(sheet, index++); createSubTitleProfitRow(sheet, index++);
createGrossProfitARow(budgetBean, sheet, index++);
createGrossProfitRow(budgetBean, sheet, index++); createGrossProfitRow(budgetBean, sheet, index++);
// createGrossProfitMarginRow(budgetBean, sheet, index++); // createGrossProfitMarginRow(budgetBean, sheet, index++);
createContributionProfitRow(budgetBean, sheet, index++); createContributionProfitRow(budgetBean, sheet, index++);
@ -686,6 +687,26 @@ public class ExportExcelUtils {
} }
private void createGrossProfitARow(BudgetBean budgetBean, XSSFSheet sheet, int index) {
Row row = sheet.createRow(index);
Cell firstCell = row.createCell(0);
firstCell.setCellStyle(style2);
firstCell.setCellType(CellType.STRING);
firstCell.setCellValue("项目毛利A(元)");
Cell secondCell = row.createCell(1);
secondCell.setCellStyle(style2);
secondCell.setCellType(CellType.NUMERIC);
secondCell.setCellValue(Utils.format(budgetBean.getProjectGrossProfitARate()));
Cell thirdCell = row.createCell(2);
thirdCell.setCellStyle(style2);
thirdCell.setCellType(CellType.NUMERIC);
thirdCell.setCellValue(Utils.format(budgetBean.getProjectGrossProfitA()));
Cell fourthCell = row.createCell(3);
fourthCell.setCellStyle(style2);
fourthCell.setCellType(CellType.STRING);
fourthCell.setCellValue("毛利=收入总计(不含税)-成本总计(不含税)");
}
private void createGrossProfitRow(BudgetBean budgetBean, XSSFSheet sheet, int index) { private void createGrossProfitRow(BudgetBean budgetBean, XSSFSheet sheet, int index) {
Row row = sheet.createRow(index); Row row = sheet.createRow(index);
Cell firstCell = row.createCell(0); Cell firstCell = row.createCell(0);

View File

@ -1,4 +1,4 @@
spring.datasource.url=jdbc:mysql://192.168.1.100:3306/fourcal?\ spring.datasource.url=jdbc:mysql://192.168.0.100:3306/fourcal?\
characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8&rewriteBatchedStatements=true&useSSL=false characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8&rewriteBatchedStatements=true&useSSL=false
spring.datasource.username=root spring.datasource.username=root
spring.datasource.password=Qwer123!@#$ spring.datasource.password=Qwer123!@#$

View File

@ -809,11 +809,15 @@ function updateProjectContributionProfitRate() {
//公司管理费用 //公司管理费用
var costCompanyManageTaxExclude = f2(inputVal("costCompanyManageTaxExclude")); var costCompanyManageTaxExclude = f2(inputVal("costCompanyManageTaxExclude"));
var projectGrossProfitA = f2Fixed(incomeTotalTaxExclude - costTotalTaxExclude);
var projectGrossProfitARate = f2Fixed(rate(f2(projectGrossProfitA), incomeTotalTaxExclude));
var projectGrossProfit = f2Fixed(incomeTotalTaxExclude - costTotalTaxExclude - costExpropriationTaxExclude); var projectGrossProfit = f2Fixed(incomeTotalTaxExclude - costTotalTaxExclude - costExpropriationTaxExclude);
var projectGrossProfitRate = f2Fixed(rate(f2(projectGrossProfit), incomeTotalTaxExclude)); var projectGrossProfitRate = f2Fixed(rate(f2(projectGrossProfit), incomeTotalTaxExclude));
var projectContributionProfit = f2Fixed(f2(projectGrossProfit) - costCompanyManageTaxExclude); var projectContributionProfit = f2Fixed(f2(projectGrossProfit) - costCompanyManageTaxExclude);
var projectContributionProfitRate = f2Fixed(rate(f2(projectContributionProfit), incomeTotalTaxExclude)); var projectContributionProfitRate = f2Fixed(rate(f2(projectContributionProfit), incomeTotalTaxExclude));
$("input[name='projectGrossProfitA']").val(projectGrossProfitA);
$("input[name='projectGrossProfitARate']").val(projectGrossProfitARate);
$("input[name='projectGrossProfit']").val(projectGrossProfit); $("input[name='projectGrossProfit']").val(projectGrossProfit);
$("input[name='projectGrossProfitRate']").val(projectGrossProfitRate); $("input[name='projectGrossProfitRate']").val(projectGrossProfitRate);
$("input[name='projectContributionProfit']").val(projectContributionProfit); $("input[name='projectContributionProfit']").val(projectContributionProfit);

View File

@ -614,6 +614,21 @@
<th class="table-title" colspan="4" id="coop0b" <#if projectBudget.cooperateTypeBudget! == 1>hidden</#if>></th> <th class="table-title" colspan="4" id="coop0b" <#if projectBudget.cooperateTypeBudget! == 1>hidden</#if>></th>
</tr> </tr>
<tr class="am-text-nowrap">
<th class="table-title" colspan="1" ><span style="font-size: 15px">项目毛利A:</span></th>
<td class="table-title" colspan="1" >
<input type="text" class="number am-input" style="border-style:none;" data-validate-async data-validation-message="请输入项目毛利A"
name="grossProfitABudget" id="grossProfitABudget" placeholder="单位(元)" maxlength="16"
value="${Utils.format(projectBudget.grossProfitABudget)}" />
</td>
<th class="table-title" colspan="1" ><span style="font-size: 15px">项目毛利A利率:</span></th>
<td class="table-title" colspan="1" >
<input type="text" class="number am-input" style="border-style:none;" data-validate-async data-validation-message="请输入项目毛利A利率"
name="grossProfitAMarginBudget" id="grossProfitAMarginBudget" placeholder="单位(%" maxlength="16"
value="${Utils.format(projectBudget.grossProfitAMarginBudget)}" />
</td>
<th class="table-title" colspan="2"></th>
</tr>
<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" >
@ -1646,6 +1661,12 @@
<td>不含税金额(元)</td> <td>不含税金额(元)</td>
<td>计算方式</td> <td>计算方式</td>
</tr> </tr>
<tr>
<td>项目毛利A</td>
<td><input type="text" class="number" name="projectGrossProfitARate" value="${Utils.format(budgetBean.projectGrossProfitARate,'0')}" readonly title="毛利A不含税/收入总计(不含税)"></td>
<td><input type="text" class="number" name="projectGrossProfitA" value="${Utils.format(budgetBean.projectGrossProfitA,'0')}" readonly title="收入总计(不含税)-成本总计(不含税)"></td>
<td>毛利A=收入总计(不含税)-成本总计(不含税)</td>
</tr>
<tr> <tr>
<td>项目毛利(元)</td> <td>项目毛利(元)</td>
<td><input type="text" class="number" name="projectGrossProfitRate" value="${Utils.format(budgetBean.projectGrossProfitRate,'0')}" readonly required title="毛利(不含税)/收入总计(不含税)"></td> <td><input type="text" class="number" name="projectGrossProfitRate" value="${Utils.format(budgetBean.projectGrossProfitRate,'0')}" readonly required title="毛利(不含税)/收入总计(不含税)"></td>

View File

@ -506,6 +506,21 @@
<th class="table-title" colspan="4" id="coop0b" <#if projectBudget.cooperateTypeBudget! == 1>hidden</#if>></th> <th class="table-title" colspan="4" id="coop0b" <#if projectBudget.cooperateTypeBudget! == 1>hidden</#if>></th>
</tr> </tr>
<tr class="am-text-nowrap">
<th class="table-title" colspan="1" ><span style="color: red;">*</span><span style="font-size: 15px">项目毛利A:</span></th>
<td class="table-title" colspan="1" >
<input type="text" class="number am-input" style="border-style:none;" data-validate-async data-validation-message="请输入项目毛利A"
name="grossProfitABudget" id="grossProfitABudget" placeholder="单位(元)" maxlength="16"
value="${Utils.format(projectBudget.grossProfitABudget)}" />
</td>
<th class="table-title" colspan="1" ><span style="color: red;">*</span><span style="font-size: 15px">项目毛利A利率:</span></th>
<td class="table-title" colspan="1" >
<input type="text" class="number am-input" style="border-style:none;" data-validate-async data-validation-message="请输入项目毛利A利率"
name="grossProfitAMarginBudget" id="grossProfitAMarginBudget" placeholder="单位(%" maxlength="16"
value="${Utils.format(projectBudget.grossProfitAMarginBudget)}" />
</td>
<th class="table-title" colspan="2"></th>
</tr>
<tr class="am-text-nowrap"> <tr class="am-text-nowrap">
<th class="table-title" colspan="1" ><span style="color: red;">*</span><span style="font-size: 15px">合同金额:</span></th> <th class="table-title" colspan="1" ><span style="color: red;">*</span><span style="font-size: 15px">合同金额:</span></th>
<td class="table-title" colspan="1" > <td class="table-title" colspan="1" >
@ -1362,6 +1377,12 @@
<td>不含税金额(元)</td> <td>不含税金额(元)</td>
<td>计算方式</td> <td>计算方式</td>
</tr> </tr>
<tr>
<td>项目毛利A</td>
<td><input type="text" class="number" name="projectGrossProfitARate" value="${Utils.format(budgetBean.projectGrossProfitARate,'0')}" readonly title="毛利A不含税/收入总计(不含税)"></td>
<td><input type="text" class="number" name="projectGrossProfitA" value="${Utils.format(budgetBean.projectGrossProfitA,'0')}" readonly title="收入总计(不含税)-成本总计(不含税)"></td>
<td>毛利A=收入总计(不含税)-成本总计(不含税)</td>
</tr>
<tr> <tr>
<td>项目毛利(元)</td> <td>项目毛利(元)</td>
<td><input type="text" class="number" name="projectGrossProfitRate" value="${Utils.format(budgetBean.projectGrossProfitRate,'0')}" readonly title="毛利(不含税)/收入总计(不含税)"></td> <td><input type="text" class="number" name="projectGrossProfitRate" value="${Utils.format(budgetBean.projectGrossProfitRate,'0')}" readonly title="毛利(不含税)/收入总计(不含税)"></td>