Merge remote-tracking branch 'origin/master'
commit
f0b9ea1dc7
|
@ -187,6 +187,38 @@ public class CashFlowBean {
|
||||||
.add(financingCapitalCashflow);
|
.add(financingCapitalCashflow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有现金流量决算总额
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public BigDecimal getCashFluxTotal() {
|
||||||
|
BigDecimal saleIncomeCash = getSaleIncomeCash();
|
||||||
|
BigDecimal taxReturn = getTaxReturn();
|
||||||
|
BigDecimal earnestMoneyIncome = getEarnestMoneyIncome();
|
||||||
|
BigDecimal purchaseCost = getPurchaseCost();
|
||||||
|
BigDecimal taxCost = getTaxCost();
|
||||||
|
BigDecimal earnestMoneyCost = getEarnestMoneyCost();
|
||||||
|
BigDecimal netCashFlow = getNetCashFlow();
|
||||||
|
BigDecimal cashInflowFromInvestingActivities = getCashInflowFromInvestingActivities();
|
||||||
|
BigDecimal cashOutflowFromInvestingActivities = getCashOutflowFromInvestingActivities();
|
||||||
|
BigDecimal netCashFromInvestingActivities = getNetCashFromInvestingActivities();
|
||||||
|
BigDecimal financingCapitalInflow = getFinancingCapitalInflow();
|
||||||
|
BigDecimal financingCapitalOutflow = getFinancingCapitalOutflow();
|
||||||
|
BigDecimal financingCapitalCashflow = getFinancingCapitalCashflow();
|
||||||
|
BigDecimal netIncreaseMonetaryFunds = getNetIncreaseMonetaryFunds();
|
||||||
|
|
||||||
|
if (null == saleIncomeCash || null == taxReturn || null == earnestMoneyIncome || null == purchaseCost || null == taxCost
|
||||||
|
|| null == earnestMoneyCost || null == netCashFlow || null == cashInflowFromInvestingActivities ||
|
||||||
|
null == cashOutflowFromInvestingActivities || null == netCashFromInvestingActivities ||
|
||||||
|
null == financingCapitalInflow || null == financingCapitalOutflow || null == financingCapitalCashflow || null == netIncreaseMonetaryFunds) {
|
||||||
|
return new BigDecimal(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return saleIncomeCash.add(taxReturn).add(earnestMoneyIncome).add(purchaseCost).add(taxCost).add(earnestMoneyCost)
|
||||||
|
.add(netCashFlow).add(cashInflowFromInvestingActivities).add(cashOutflowFromInvestingActivities).add(netCashFromInvestingActivities)
|
||||||
|
.add(financingCapitalInflow).add(financingCapitalOutflow).add(financingCapitalCashflow).add(netIncreaseMonetaryFunds);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理特殊值
|
* 处理特殊值
|
||||||
* null就返回0
|
* null就返回0
|
||||||
|
|
|
@ -4,6 +4,7 @@ import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 预算概算页面的公共属性
|
* 预算概算页面的公共属性
|
||||||
|
*
|
||||||
* @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
|
* @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
|
||||||
*/
|
*/
|
||||||
public abstract class IncomeCostBean {
|
public abstract class IncomeCostBean {
|
||||||
|
@ -33,7 +34,7 @@ public abstract class IncomeCostBean {
|
||||||
*/
|
*/
|
||||||
private BigDecimal incomeServiceTaxExclude;
|
private BigDecimal incomeServiceTaxExclude;
|
||||||
/**
|
/**
|
||||||
*设备采购成本含税
|
* 设备采购成本含税
|
||||||
*/
|
*/
|
||||||
private BigDecimal costPurchaseDeviceTaxInclude;
|
private BigDecimal costPurchaseDeviceTaxInclude;
|
||||||
/**
|
/**
|
||||||
|
@ -54,7 +55,7 @@ public abstract class IncomeCostBean {
|
||||||
*/
|
*/
|
||||||
private BigDecimal costOtherOtherTaxInclude;
|
private BigDecimal costOtherOtherTaxInclude;
|
||||||
/**
|
/**
|
||||||
*设备采购成本不含税
|
* 设备采购成本不含税
|
||||||
*/
|
*/
|
||||||
private BigDecimal costPurchaseDeviceTaxExclude;
|
private BigDecimal costPurchaseDeviceTaxExclude;
|
||||||
/**
|
/**
|
||||||
|
@ -83,7 +84,7 @@ public abstract class IncomeCostBean {
|
||||||
*/
|
*/
|
||||||
private BigDecimal costExpropriationTaxExclude;
|
private BigDecimal costExpropriationTaxExclude;
|
||||||
/**
|
/**
|
||||||
*公司管理成本不含税
|
* 公司管理成本不含税
|
||||||
*/
|
*/
|
||||||
private BigDecimal costCompanyManageTaxExclude;
|
private BigDecimal costCompanyManageTaxExclude;
|
||||||
|
|
||||||
|
@ -174,6 +175,7 @@ public abstract class IncomeCostBean {
|
||||||
public BigDecimal getCostPurchaseOtherTaxInclude() {
|
public BigDecimal getCostPurchaseOtherTaxInclude() {
|
||||||
return handleSpecial(costPurchaseOtherTaxInclude);
|
return handleSpecial(costPurchaseOtherTaxInclude);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCostPurchaseOtherTaxInclude(BigDecimal costPurchaseOtherTaxInclude) {
|
public void setCostPurchaseOtherTaxInclude(BigDecimal costPurchaseOtherTaxInclude) {
|
||||||
this.costPurchaseOtherTaxInclude = costPurchaseOtherTaxInclude;
|
this.costPurchaseOtherTaxInclude = costPurchaseOtherTaxInclude;
|
||||||
}
|
}
|
||||||
|
@ -251,6 +253,20 @@ public abstract class IncomeCostBean {
|
||||||
this.costCompanyManageTaxExclude = costCompanyManageTaxExclude;
|
this.costCompanyManageTaxExclude = costCompanyManageTaxExclude;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算管理成本不含税
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public BigDecimal getCostManageExclude() {
|
||||||
|
BigDecimal costExpropriationTaxExclude = getCostExpropriationTaxExclude();
|
||||||
|
BigDecimal costCompanyManageTaxExclude = getCostCompanyManageTaxExclude();
|
||||||
|
if (null == costExpropriationTaxExclude || null == costCompanyManageTaxExclude) {
|
||||||
|
return handleSpecial(null);
|
||||||
|
}
|
||||||
|
return costExpropriationTaxExclude.add(costCompanyManageTaxExclude);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算所有的含税收入
|
* 计算所有的含税收入
|
||||||
|
@ -259,7 +275,7 @@ public abstract class IncomeCostBean {
|
||||||
BigDecimal incomeDeviceTaxInclude = getIncomeDeviceTaxInclude();
|
BigDecimal incomeDeviceTaxInclude = getIncomeDeviceTaxInclude();
|
||||||
BigDecimal incomeEngineerTaxInclude = getIncomeEngineerTaxInclude();
|
BigDecimal incomeEngineerTaxInclude = getIncomeEngineerTaxInclude();
|
||||||
BigDecimal incomeServiceTaxInclude = getIncomeServiceTaxInclude();
|
BigDecimal incomeServiceTaxInclude = getIncomeServiceTaxInclude();
|
||||||
if(null == incomeDeviceTaxInclude || null == incomeEngineerTaxInclude || null == incomeServiceTaxInclude){
|
if (null == incomeDeviceTaxInclude || null == incomeEngineerTaxInclude || null == incomeServiceTaxInclude) {
|
||||||
return handleSpecial(null);
|
return handleSpecial(null);
|
||||||
}
|
}
|
||||||
return incomeDeviceTaxInclude.add(incomeEngineerTaxInclude)
|
return incomeDeviceTaxInclude.add(incomeEngineerTaxInclude)
|
||||||
|
@ -273,7 +289,7 @@ public abstract class IncomeCostBean {
|
||||||
BigDecimal incomeDeviceTaxExclude = getIncomeDeviceTaxExclude();
|
BigDecimal incomeDeviceTaxExclude = getIncomeDeviceTaxExclude();
|
||||||
BigDecimal incomeEngineerTaxExclude = getIncomeEngineerTaxExclude();
|
BigDecimal incomeEngineerTaxExclude = getIncomeEngineerTaxExclude();
|
||||||
BigDecimal incomeServiceTaxExclude = getIncomeServiceTaxExclude();
|
BigDecimal incomeServiceTaxExclude = getIncomeServiceTaxExclude();
|
||||||
if(null == incomeDeviceTaxExclude || null == incomeEngineerTaxExclude || null == incomeServiceTaxExclude){
|
if (null == incomeDeviceTaxExclude || null == incomeEngineerTaxExclude || null == incomeServiceTaxExclude) {
|
||||||
return handleSpecial(null);
|
return handleSpecial(null);
|
||||||
}
|
}
|
||||||
return incomeDeviceTaxExclude.add(incomeEngineerTaxExclude)
|
return incomeDeviceTaxExclude.add(incomeEngineerTaxExclude)
|
||||||
|
@ -290,12 +306,12 @@ public abstract class IncomeCostBean {
|
||||||
BigDecimal costPurchaseOtherTaxInclude = getCostPurchaseOtherTaxInclude();
|
BigDecimal costPurchaseOtherTaxInclude = getCostPurchaseOtherTaxInclude();
|
||||||
BigDecimal costProjectManageTaxInclude = getCostProjectManageTaxInclude();
|
BigDecimal costProjectManageTaxInclude = getCostProjectManageTaxInclude();
|
||||||
BigDecimal costOtherOtherTaxInclude = getCostOtherOtherTaxInclude();
|
BigDecimal costOtherOtherTaxInclude = getCostOtherOtherTaxInclude();
|
||||||
if(null == costPurchaseDeviceTaxInclude
|
if (null == costPurchaseDeviceTaxInclude
|
||||||
|| null == costPurchaseBuildTaxInclude
|
|| null == costPurchaseBuildTaxInclude
|
||||||
|| null == costPurchaseServiceTaxInclude
|
|| null == costPurchaseServiceTaxInclude
|
||||||
|| null == costPurchaseOtherTaxInclude
|
|| null == costPurchaseOtherTaxInclude
|
||||||
|| null == costProjectManageTaxInclude
|
|| null == costProjectManageTaxInclude
|
||||||
|| null == costOtherOtherTaxInclude){
|
|| null == costOtherOtherTaxInclude) {
|
||||||
return handleSpecial(null);
|
return handleSpecial(null);
|
||||||
}
|
}
|
||||||
return costPurchaseDeviceTaxInclude
|
return costPurchaseDeviceTaxInclude
|
||||||
|
@ -316,12 +332,12 @@ public abstract class IncomeCostBean {
|
||||||
BigDecimal costPurchaseOtherTaxExclude = getCostPurchaseOtherTaxExclude();
|
BigDecimal costPurchaseOtherTaxExclude = getCostPurchaseOtherTaxExclude();
|
||||||
BigDecimal costProjectManageTaxExclude = getCostProjectManageTaxExclude();
|
BigDecimal costProjectManageTaxExclude = getCostProjectManageTaxExclude();
|
||||||
BigDecimal costOtherOtherTaxExclude = getCostOtherOtherTaxExclude();
|
BigDecimal costOtherOtherTaxExclude = getCostOtherOtherTaxExclude();
|
||||||
if(null == costPurchaseDeviceTaxExclude
|
if (null == costPurchaseDeviceTaxExclude
|
||||||
|| null == costPurchaseBuildTaxExclude
|
|| null == costPurchaseBuildTaxExclude
|
||||||
|| null == costPurchaseServiceTaxExclude
|
|| null == costPurchaseServiceTaxExclude
|
||||||
|| null == costPurchaseOtherTaxExclude
|
|| null == costPurchaseOtherTaxExclude
|
||||||
|| null == costProjectManageTaxExclude
|
|| null == costProjectManageTaxExclude
|
||||||
|| null == costOtherOtherTaxExclude){
|
|| null == costOtherOtherTaxExclude) {
|
||||||
return handleSpecial(null);
|
return handleSpecial(null);
|
||||||
}
|
}
|
||||||
return costPurchaseDeviceTaxExclude
|
return costPurchaseDeviceTaxExclude
|
||||||
|
@ -340,7 +356,7 @@ public abstract class IncomeCostBean {
|
||||||
BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude();
|
BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude();
|
||||||
BigDecimal costTotalTaxExclude = getCostTotalTaxExclude();
|
BigDecimal costTotalTaxExclude = getCostTotalTaxExclude();
|
||||||
BigDecimal costExpropriationTaxExclude = getCostExpropriationTaxExclude();
|
BigDecimal costExpropriationTaxExclude = getCostExpropriationTaxExclude();
|
||||||
if(null == incomeTotalTaxExclude || null == costTotalTaxExclude || null == costExpropriationTaxExclude){
|
if (null == incomeTotalTaxExclude || null == costTotalTaxExclude || null == costExpropriationTaxExclude) {
|
||||||
return handleSpecial(null);
|
return handleSpecial(null);
|
||||||
}
|
}
|
||||||
return incomeTotalTaxExclude
|
return incomeTotalTaxExclude
|
||||||
|
@ -355,16 +371,16 @@ public abstract class IncomeCostBean {
|
||||||
public BigDecimal getProjectGrossProfitRate() {
|
public BigDecimal getProjectGrossProfitRate() {
|
||||||
BigDecimal projectGrossProfit = getProjectGrossProfit();
|
BigDecimal projectGrossProfit = getProjectGrossProfit();
|
||||||
BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude();
|
BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude();
|
||||||
if(null == projectGrossProfit || null == incomeTotalTaxExclude){
|
if (null == projectGrossProfit || null == incomeTotalTaxExclude) {
|
||||||
return handleSpecial(null);
|
return handleSpecial(null);
|
||||||
}
|
}
|
||||||
BigDecimal zero = new BigDecimal(0);
|
BigDecimal zero = new BigDecimal(0);
|
||||||
if(projectGrossProfit.compareTo(zero) == 0 || incomeTotalTaxExclude.compareTo(zero) == 0){
|
if (projectGrossProfit.compareTo(zero) == 0 || incomeTotalTaxExclude.compareTo(zero) == 0) {
|
||||||
return handleSpecial(null);
|
return handleSpecial(null);
|
||||||
}
|
}
|
||||||
return projectGrossProfit
|
return projectGrossProfit
|
||||||
.multiply(new BigDecimal(100))
|
.multiply(new BigDecimal(100))
|
||||||
.divide(incomeTotalTaxExclude,2,BigDecimal.ROUND_HALF_UP);
|
.divide(incomeTotalTaxExclude, 2, BigDecimal.ROUND_HALF_UP);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -374,11 +390,12 @@ public abstract class IncomeCostBean {
|
||||||
public BigDecimal getProjectContributionProfit() {
|
public BigDecimal getProjectContributionProfit() {
|
||||||
BigDecimal projectGrossProfit = getProjectGrossProfit();
|
BigDecimal projectGrossProfit = getProjectGrossProfit();
|
||||||
BigDecimal costCompanyManageTaxExclude = getCostCompanyManageTaxExclude();
|
BigDecimal costCompanyManageTaxExclude = getCostCompanyManageTaxExclude();
|
||||||
if(null == projectGrossProfit || null == costCompanyManageTaxExclude){
|
if (null == projectGrossProfit || null == costCompanyManageTaxExclude) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return projectGrossProfit.subtract(costCompanyManageTaxExclude);
|
return projectGrossProfit.subtract(costCompanyManageTaxExclude);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算项目贡献利润率
|
* 计算项目贡献利润率
|
||||||
* 贡献利润(不含税)/收入总计(不含税)
|
* 贡献利润(不含税)/收入总计(不含税)
|
||||||
|
@ -386,20 +403,21 @@ public abstract class IncomeCostBean {
|
||||||
public BigDecimal getProjectContributionProfitRate() {
|
public BigDecimal getProjectContributionProfitRate() {
|
||||||
BigDecimal projectContributionProfit = getProjectContributionProfit();
|
BigDecimal projectContributionProfit = getProjectContributionProfit();
|
||||||
BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude();
|
BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude();
|
||||||
if(null == projectContributionProfit || null == incomeTotalTaxExclude){
|
if (null == projectContributionProfit || null == incomeTotalTaxExclude) {
|
||||||
return handleSpecial(null);
|
return handleSpecial(null);
|
||||||
}
|
}
|
||||||
BigDecimal zero = new BigDecimal(0);
|
BigDecimal zero = new BigDecimal(0);
|
||||||
if(projectContributionProfit.compareTo(zero) == 0 || incomeTotalTaxExclude.compareTo(zero) == 0){
|
if (projectContributionProfit.compareTo(zero) == 0 || incomeTotalTaxExclude.compareTo(zero) == 0) {
|
||||||
return handleSpecial(null);
|
return handleSpecial(null);
|
||||||
}
|
}
|
||||||
return projectContributionProfit
|
return projectContributionProfit
|
||||||
.multiply(new BigDecimal(100))
|
.multiply(new BigDecimal(100))
|
||||||
.divide(incomeTotalTaxExclude, 2,BigDecimal.ROUND_HALF_UP);
|
.divide(incomeTotalTaxExclude, 2, BigDecimal.ROUND_HALF_UP);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 对null值如何处理
|
* 对null值如何处理
|
||||||
|
*
|
||||||
* @param src 原值
|
* @param src 原值
|
||||||
* @return 特殊处理之后的值
|
* @return 特殊处理之后的值
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -92,6 +92,26 @@ public class SettleBean {
|
||||||
.add(costPurchaseOther).add(costProjectManage).add(costOther);
|
.add(costPurchaseOther).add(costProjectManage).add(costOther);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有成本总额
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public BigDecimal getCostTotal2() {
|
||||||
|
BigDecimal costPurchaseDevice = getCostPurchaseDevice();
|
||||||
|
BigDecimal costPurchaseBuild = getCostPurchaseBuild();
|
||||||
|
BigDecimal costPurchaseService = getCostPurchaseService();
|
||||||
|
BigDecimal costPurchaseOther = getCostPurchaseOther();
|
||||||
|
|
||||||
|
if (null == costPurchaseDevice || null == costPurchaseBuild || null == costPurchaseService
|
||||||
|
|| null == costPurchaseOther) {
|
||||||
|
return new BigDecimal(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return costPurchaseDevice.add(costPurchaseBuild).add(costPurchaseService)
|
||||||
|
.add(costPurchaseOther);
|
||||||
|
}
|
||||||
|
|
||||||
//========================管理表================================
|
//========================管理表================================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -250,8 +270,12 @@ public class SettleBean {
|
||||||
|
|
||||||
private String projectName;
|
private String projectName;
|
||||||
|
|
||||||
|
protected BigDecimal handleSpecial(BigDecimal src) {
|
||||||
|
return null == src ? new BigDecimal(0) : src;
|
||||||
|
}
|
||||||
|
|
||||||
public BigDecimal getIncomeDevice() {
|
public BigDecimal getIncomeDevice() {
|
||||||
return incomeDevice;
|
return handleSpecial(incomeDevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIncomeDevice(BigDecimal incomeDevice) {
|
public void setIncomeDevice(BigDecimal incomeDevice) {
|
||||||
|
@ -259,7 +283,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getIncomeEngineer() {
|
public BigDecimal getIncomeEngineer() {
|
||||||
return incomeEngineer;
|
return handleSpecial(incomeEngineer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIncomeEngineer(BigDecimal incomeEngineer) {
|
public void setIncomeEngineer(BigDecimal incomeEngineer) {
|
||||||
|
@ -267,7 +291,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getIncomeService() {
|
public BigDecimal getIncomeService() {
|
||||||
return incomeService;
|
return handleSpecial(incomeService);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIncomeService(BigDecimal incomeService) {
|
public void setIncomeService(BigDecimal incomeService) {
|
||||||
|
@ -275,7 +299,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getCostPurchaseDevice() {
|
public BigDecimal getCostPurchaseDevice() {
|
||||||
return costPurchaseDevice;
|
return handleSpecial(costPurchaseDevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCostPurchaseDevice(BigDecimal costPurchaseDevice) {
|
public void setCostPurchaseDevice(BigDecimal costPurchaseDevice) {
|
||||||
|
@ -283,7 +307,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getCostPurchaseBuild() {
|
public BigDecimal getCostPurchaseBuild() {
|
||||||
return costPurchaseBuild;
|
return handleSpecial(costPurchaseBuild);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCostPurchaseBuild(BigDecimal costPurchaseBuild) {
|
public void setCostPurchaseBuild(BigDecimal costPurchaseBuild) {
|
||||||
|
@ -291,7 +315,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getCostPurchaseService() {
|
public BigDecimal getCostPurchaseService() {
|
||||||
return costPurchaseService;
|
return handleSpecial(costPurchaseService);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCostPurchaseService(BigDecimal costPurchaseService) {
|
public void setCostPurchaseService(BigDecimal costPurchaseService) {
|
||||||
|
@ -299,7 +323,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getCostPurchaseOther() {
|
public BigDecimal getCostPurchaseOther() {
|
||||||
return costPurchaseOther;
|
return handleSpecial(costPurchaseOther);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCostPurchaseOther(BigDecimal costPurchaseOther) {
|
public void setCostPurchaseOther(BigDecimal costPurchaseOther) {
|
||||||
|
@ -307,7 +331,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getCostProjectManage() {
|
public BigDecimal getCostProjectManage() {
|
||||||
return costProjectManage;
|
return handleSpecial(costProjectManage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCostProjectManage(BigDecimal costProjectManage) {
|
public void setCostProjectManage(BigDecimal costProjectManage) {
|
||||||
|
@ -315,7 +339,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getCostOther() {
|
public BigDecimal getCostOther() {
|
||||||
return costOther;
|
return handleSpecial(costOther);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCostOther(BigDecimal costOther) {
|
public void setCostOther(BigDecimal costOther) {
|
||||||
|
@ -323,7 +347,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getCostExpropriation() {
|
public BigDecimal getCostExpropriation() {
|
||||||
return costExpropriation;
|
return handleSpecial(costExpropriation);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCostExpropriation(BigDecimal costExpropriation) {
|
public void setCostExpropriation(BigDecimal costExpropriation) {
|
||||||
|
@ -331,7 +355,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getCostCompanyManage() {
|
public BigDecimal getCostCompanyManage() {
|
||||||
return costCompanyManage;
|
return handleSpecial(costCompanyManage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCostCompanyManage(BigDecimal costCompanyManage) {
|
public void setCostCompanyManage(BigDecimal costCompanyManage) {
|
||||||
|
@ -339,7 +363,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getCostIncomeTax() {
|
public BigDecimal getCostIncomeTax() {
|
||||||
return costIncomeTax;
|
return handleSpecial(costIncomeTax);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCostIncomeTax(BigDecimal costIncomeTax) {
|
public void setCostIncomeTax(BigDecimal costIncomeTax) {
|
||||||
|
@ -347,7 +371,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getGrossProfit() {
|
public BigDecimal getGrossProfit() {
|
||||||
return grossProfit;
|
return handleSpecial(grossProfit);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGrossProfit(BigDecimal grossProfit) {
|
public void setGrossProfit(BigDecimal grossProfit) {
|
||||||
|
@ -355,7 +379,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getGrossProfitProfitMargin() {
|
public BigDecimal getGrossProfitProfitMargin() {
|
||||||
return grossProfitProfitMargin;
|
return handleSpecial(grossProfitProfitMargin);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGrossProfitProfitMargin(BigDecimal grossProfitProfitMargin) {
|
public void setGrossProfitProfitMargin(BigDecimal grossProfitProfitMargin) {
|
||||||
|
@ -363,7 +387,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getContributionProfit() {
|
public BigDecimal getContributionProfit() {
|
||||||
return contributionProfit;
|
return handleSpecial(contributionProfit);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setContributionProfit(BigDecimal contributionProfit) {
|
public void setContributionProfit(BigDecimal contributionProfit) {
|
||||||
|
@ -371,7 +395,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getContributionProfitProfitMargin() {
|
public BigDecimal getContributionProfitProfitMargin() {
|
||||||
return contributionProfitProfitMargin;
|
return handleSpecial(contributionProfitProfitMargin);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setContributionProfitProfitMargin(BigDecimal contributionProfitProfitMargin) {
|
public void setContributionProfitProfitMargin(BigDecimal contributionProfitProfitMargin) {
|
||||||
|
@ -379,7 +403,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getNetProfit() {
|
public BigDecimal getNetProfit() {
|
||||||
return netProfit;
|
return handleSpecial(netProfit);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNetProfit(BigDecimal netProfit) {
|
public void setNetProfit(BigDecimal netProfit) {
|
||||||
|
@ -387,7 +411,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getNetProfitProfitMargin() {
|
public BigDecimal getNetProfitProfitMargin() {
|
||||||
return netProfitProfitMargin;
|
return handleSpecial(netProfitProfitMargin);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNetProfitProfitMargin(BigDecimal netProfitProfitMargin) {
|
public void setNetProfitProfitMargin(BigDecimal netProfitProfitMargin) {
|
||||||
|
@ -395,7 +419,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getSaleIncomeCash() {
|
public BigDecimal getSaleIncomeCash() {
|
||||||
return saleIncomeCash;
|
return handleSpecial(saleIncomeCash);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSaleIncomeCash(BigDecimal saleIncomeCash) {
|
public void setSaleIncomeCash(BigDecimal saleIncomeCash) {
|
||||||
|
@ -403,7 +427,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getTaxReturn() {
|
public BigDecimal getTaxReturn() {
|
||||||
return taxReturn;
|
return handleSpecial(taxReturn);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTaxReturn(BigDecimal taxReturn) {
|
public void setTaxReturn(BigDecimal taxReturn) {
|
||||||
|
@ -411,7 +435,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getEarnestMoneyIncome() {
|
public BigDecimal getEarnestMoneyIncome() {
|
||||||
return earnestMoneyIncome;
|
return handleSpecial(earnestMoneyIncome);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEarnestMoneyIncome(BigDecimal earnestMoneyIncome) {
|
public void setEarnestMoneyIncome(BigDecimal earnestMoneyIncome) {
|
||||||
|
@ -419,7 +443,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getPurchaseCost() {
|
public BigDecimal getPurchaseCost() {
|
||||||
return purchaseCost;
|
return handleSpecial(purchaseCost);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPurchaseCost(BigDecimal purchaseCost) {
|
public void setPurchaseCost(BigDecimal purchaseCost) {
|
||||||
|
@ -427,7 +451,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getTaxCost() {
|
public BigDecimal getTaxCost() {
|
||||||
return taxCost;
|
return handleSpecial(taxCost);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTaxCost(BigDecimal taxCost) {
|
public void setTaxCost(BigDecimal taxCost) {
|
||||||
|
@ -435,7 +459,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getEarnestMoneyCost() {
|
public BigDecimal getEarnestMoneyCost() {
|
||||||
return earnestMoneyCost;
|
return handleSpecial(earnestMoneyCost);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEarnestMoneyCost(BigDecimal earnestMoneyCost) {
|
public void setEarnestMoneyCost(BigDecimal earnestMoneyCost) {
|
||||||
|
@ -443,7 +467,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getCashInflowFromInvestingActivities() {
|
public BigDecimal getCashInflowFromInvestingActivities() {
|
||||||
return cashInflowFromInvestingActivities;
|
return handleSpecial(cashInflowFromInvestingActivities);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCashInflowFromInvestingActivities(BigDecimal cashInflowFromInvestingActivities) {
|
public void setCashInflowFromInvestingActivities(BigDecimal cashInflowFromInvestingActivities) {
|
||||||
|
@ -451,7 +475,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getCashOutflowFromInvestingActivities() {
|
public BigDecimal getCashOutflowFromInvestingActivities() {
|
||||||
return cashOutflowFromInvestingActivities;
|
return handleSpecial(cashOutflowFromInvestingActivities);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCashOutflowFromInvestingActivities(BigDecimal cashOutflowFromInvestingActivities) {
|
public void setCashOutflowFromInvestingActivities(BigDecimal cashOutflowFromInvestingActivities) {
|
||||||
|
@ -459,7 +483,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getNetCashFromInvestingActivities() {
|
public BigDecimal getNetCashFromInvestingActivities() {
|
||||||
return netCashFromInvestingActivities;
|
return handleSpecial(netCashFromInvestingActivities);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNetCashFromInvestingActivities(BigDecimal netCashFromInvestingActivities) {
|
public void setNetCashFromInvestingActivities(BigDecimal netCashFromInvestingActivities) {
|
||||||
|
@ -467,7 +491,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getFinancingCapitalInflow() {
|
public BigDecimal getFinancingCapitalInflow() {
|
||||||
return financingCapitalInflow;
|
return handleSpecial(financingCapitalInflow);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFinancingCapitalInflow(BigDecimal financingCapitalInflow) {
|
public void setFinancingCapitalInflow(BigDecimal financingCapitalInflow) {
|
||||||
|
@ -475,7 +499,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getFinancingCapitalOutflow() {
|
public BigDecimal getFinancingCapitalOutflow() {
|
||||||
return financingCapitalOutflow;
|
return handleSpecial(financingCapitalOutflow);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFinancingCapitalOutflow(BigDecimal financingCapitalOutflow) {
|
public void setFinancingCapitalOutflow(BigDecimal financingCapitalOutflow) {
|
||||||
|
@ -483,7 +507,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getFinancingCapitalCashflow() {
|
public BigDecimal getFinancingCapitalCashflow() {
|
||||||
return financingCapitalCashflow;
|
return handleSpecial(financingCapitalCashflow);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFinancingCapitalCashflow(BigDecimal financingCapitalCashflow) {
|
public void setFinancingCapitalCashflow(BigDecimal financingCapitalCashflow) {
|
||||||
|
@ -491,7 +515,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getNetIncreaseMonetaryFunds() {
|
public BigDecimal getNetIncreaseMonetaryFunds() {
|
||||||
return netIncreaseMonetaryFunds;
|
return handleSpecial(netIncreaseMonetaryFunds);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNetIncreaseMonetaryFunds(BigDecimal netIncreaseMonetaryFunds) {
|
public void setNetIncreaseMonetaryFunds(BigDecimal netIncreaseMonetaryFunds) {
|
||||||
|
@ -499,7 +523,7 @@ public class SettleBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getNetCashFlow() {
|
public BigDecimal getNetCashFlow() {
|
||||||
return netCashFlow;
|
return handleSpecial(netCashFlow);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNetCashFlow(BigDecimal netCashFlow) {
|
public void setNetCashFlow(BigDecimal netCashFlow) {
|
||||||
|
|
|
@ -3,7 +3,8 @@ package cn.palmte.work.controller.backend;
|
||||||
import cn.palmte.work.bean.*;
|
import cn.palmte.work.bean.*;
|
||||||
import cn.palmte.work.model.Project;
|
import cn.palmte.work.model.Project;
|
||||||
import cn.palmte.work.model.ProjectBudgetPlanDetail;
|
import cn.palmte.work.model.ProjectBudgetPlanDetail;
|
||||||
import cn.palmte.work.model.ProjectRepository;
|
import cn.palmte.work.model.ProjectSettleIncome;
|
||||||
|
import cn.palmte.work.model.ProjectSettleIncomeRepository;
|
||||||
import cn.palmte.work.service.*;
|
import cn.palmte.work.service.*;
|
||||||
import cn.palmte.work.utils.FreeMarkerUtil;
|
import cn.palmte.work.utils.FreeMarkerUtil;
|
||||||
import cn.palmte.work.utils.InterfaceUtil;
|
import cn.palmte.work.utils.InterfaceUtil;
|
||||||
|
@ -12,7 +13,6 @@ import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -33,17 +33,38 @@ public class ProjectFinalController extends BaseController{
|
||||||
private ProjectBudgetService projectBudgetService;
|
private ProjectBudgetService projectBudgetService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProjectInstanceService projectInstanceService;
|
private ProjectSettleIncomeRepository projectSettleIncomeRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ProjectSettleService projectSettleService;
|
||||||
|
|
||||||
|
@RequestMapping("/add")
|
||||||
|
public String add(@RequestParam("id") int id, Map<String, Object> model) {
|
||||||
|
Project project = projectService.getProject(id);
|
||||||
|
ProjectSettleIncome projectSettleIncome = projectSettleIncomeRepository.findNewByProjectId(id);
|
||||||
|
String time = projectSettleIncome.getTime();
|
||||||
|
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project);
|
||||||
|
model.put("project", project);
|
||||||
|
model.put("estimateBean", projectEstimateService.getEstimate(project));
|
||||||
|
model.put("budgetBean", projectBudgetService.getBudget(project));
|
||||||
|
model.put("settleBean",projectSettleService.getCurrentSettle(project, time));
|
||||||
|
model.put("finalBean",new FinalBean());
|
||||||
|
//现金表
|
||||||
|
model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails));
|
||||||
|
//freemarker可以利用的静态方法
|
||||||
|
model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils"));
|
||||||
|
return "admin/project_final_add";
|
||||||
|
}
|
||||||
|
|
||||||
@RequestMapping("/edit")
|
@RequestMapping("/edit")
|
||||||
public String budget(@RequestParam("id") int id, Map<String, Object> model) {
|
public String edit(@RequestParam("id") int id, Map<String, Object> model) {
|
||||||
Project project = projectService.getProject(id);
|
Project project = projectService.getProject(id);
|
||||||
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project);
|
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project);
|
||||||
model.put("project", project);
|
model.put("project", project);
|
||||||
model.put("estimateBean", projectEstimateService.getEstimate(project));
|
model.put("estimateBean", projectEstimateService.getEstimate(project));
|
||||||
model.put("budgetBean", projectBudgetService.getBudget(project));
|
model.put("budgetBean", projectBudgetService.getBudget(project));
|
||||||
model.put("settleBean",projectFinalSevice.getSettle(project));
|
model.put("settleBean",projectFinalSevice.getSettle(project));
|
||||||
model.put("finalBean",new FinalBean());
|
model.put("finalBean",projectFinalSevice.getFinal(project));
|
||||||
//现金表
|
//现金表
|
||||||
model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails));
|
model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails));
|
||||||
//freemarker可以利用的静态方法
|
//freemarker可以利用的静态方法
|
||||||
|
@ -54,7 +75,6 @@ public class ProjectFinalController extends BaseController{
|
||||||
@RequestMapping("/save")
|
@RequestMapping("/save")
|
||||||
public String estimateAddSave(Project project, FinalBean finalBean, Map<String, Object> model) {
|
public String estimateAddSave(Project project, FinalBean finalBean, Map<String, Object> model) {
|
||||||
projectFinalSevice.save(project,finalBean);
|
projectFinalSevice.save(project,finalBean);
|
||||||
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT);
|
|
||||||
return "redirect:/project/list";
|
return "redirect:/project/list";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,12 +89,7 @@ public class ProjectFinalController extends BaseController{
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/saveAndApprove")
|
@RequestMapping("/saveAndApprove")
|
||||||
public String saveAndApprove(Project project, FinalBean finalBean, Map<String, Object> model) throws Exception{
|
public String saveAndApprove(Project project, FinalBean finalBean, Map<String, Object> model) throws Exception{
|
||||||
//保存
|
projectFinalSevice.saveAndApprove(project,finalBean);
|
||||||
projectFinalSevice.save(project,finalBean);
|
|
||||||
//更新项目和审批状态
|
|
||||||
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING);
|
|
||||||
//发起流程
|
|
||||||
projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin());
|
|
||||||
return "redirect:/project/list";
|
return "redirect:/project/list";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import top.jfunc.common.db.bean.Page;
|
|
||||||
import top.jfunc.common.db.bean.Record;
|
|
||||||
|
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
@ -55,8 +53,9 @@ public class ProjectSummaryController extends BaseController {
|
||||||
} else {
|
} else {
|
||||||
time = searchInfo.get("time");
|
time = searchInfo.get("time");
|
||||||
}
|
}
|
||||||
List<Page<SettleBean>> list = projectSummaryService.getList(searchInfo, pageNumber, pageSize, time);
|
|
||||||
model.put("pager", (list.size() > 0)? list.get(0) : new Page<Record>(pageNumber, pageSize));
|
List<SettleBean> list = projectSummaryService.getList(searchInfo, time);
|
||||||
|
model.put("pager", list);
|
||||||
|
|
||||||
return "admin/project_statistics";
|
return "admin/project_statistics";
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,4 +12,7 @@ public interface ProjectBudgetCostManageRepository extends JpaRepository<Project
|
||||||
@Query(value = "select sum(cost_tax_exclude) from project_budget_cost_manage where type = ?", nativeQuery = true)
|
@Query(value = "select sum(cost_tax_exclude) from project_budget_cost_manage where type = ?", nativeQuery = true)
|
||||||
BigDecimal costTaxExcludeSum(int type);
|
BigDecimal costTaxExcludeSum(int type);
|
||||||
|
|
||||||
|
|
||||||
|
@Query(value = "select * from project_budget_cost_manage where project_id in ?1", nativeQuery = true)
|
||||||
|
List<ProjectBudgetCostManage> findAllByProjectIds(List<Integer> projectInt);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,4 +15,6 @@ public interface ProjectBudgetCostRepository extends JpaRepository<ProjectBudget
|
||||||
@Query(value = "select sum(cost_tax_exclude) from project_budget_cost where type = ?", nativeQuery = true)
|
@Query(value = "select sum(cost_tax_exclude) from project_budget_cost where type = ?", nativeQuery = true)
|
||||||
BigDecimal costTaxExcludeSum(int type);
|
BigDecimal costTaxExcludeSum(int type);
|
||||||
|
|
||||||
|
@Query(value = "select * from project_budget_cost where project_id in ?1", nativeQuery = true)
|
||||||
|
List<ProjectBudgetCost> findAllByProjectIds(List<Integer> projectInt);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,5 +15,6 @@ public interface ProjectBudgetIncomeRepository extends JpaRepository<ProjectBudg
|
||||||
@Query(value = "select sum(income_tax_exclude) from project_budget_income where type = ?", nativeQuery = true)
|
@Query(value = "select sum(income_tax_exclude) from project_budget_income where type = ?", nativeQuery = true)
|
||||||
BigDecimal incomeTaxExcludeSum(int type);
|
BigDecimal incomeTaxExcludeSum(int type);
|
||||||
|
|
||||||
|
@Query(value = "select * from project_budget_income where project_id in ?1", nativeQuery = true)
|
||||||
|
List<ProjectBudgetIncome> findAllByProjectIds(List<Integer> projectInt);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
package cn.palmte.work.model;
|
package cn.palmte.work.model;
|
||||||
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface ProjectBudgetPlanDetailRepository extends JpaRepository<ProjectBudgetPlanDetail,Integer> {
|
public interface ProjectBudgetPlanDetailRepository extends JpaRepository<ProjectBudgetPlanDetail,Integer> {
|
||||||
List<ProjectBudgetPlanDetail> findAllByProjectIdEquals(int id);
|
List<ProjectBudgetPlanDetail> findAllByProjectIdEquals(int id);
|
||||||
|
|
||||||
|
@Query(value = "select * from project_budget_plan_detail where project_id in ?1", nativeQuery = true)
|
||||||
|
List<ProjectBudgetPlanDetail> findAllByProjectIds(List<Integer> projectInt);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,4 +23,7 @@ public interface ProjectSettleCashFlowRepository extends JpaRepository<ProjectSe
|
||||||
|
|
||||||
@Query(value = "select sum(amount) from project_settle_cash_flow where project_id = ? and type = ?", nativeQuery = true)
|
@Query(value = "select sum(amount) from project_settle_cash_flow where project_id = ? and type = ?", nativeQuery = true)
|
||||||
BigDecimal costAmountSum(int projectId, int type);
|
BigDecimal costAmountSum(int projectId, int type);
|
||||||
|
|
||||||
|
@Query(value = "select * from project_settle_cash_flow where project_id in ?1 and time = ?2", nativeQuery = true)
|
||||||
|
List<ProjectSettleCashFlow> findAllByProjectsAndTime(List<Integer> ids, String time);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,4 +23,7 @@ public interface ProjectSettleCostManageRepository extends JpaRepository<Project
|
||||||
List<ProjectSettleCostManage> findAllByProjectId(int id);
|
List<ProjectSettleCostManage> findAllByProjectId(int id);
|
||||||
|
|
||||||
List<ProjectSettleCostManage> findAllByTime(String time);
|
List<ProjectSettleCostManage> findAllByTime(String time);
|
||||||
|
|
||||||
|
@Query(value = "select * from project_settle_cost_manage where project_id in ?1 and time = ?2", nativeQuery = true)
|
||||||
|
List<ProjectSettleCostManage> findAllByProjectsAndTime(List<Integer> ids, String time);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,4 +23,7 @@ public interface ProjectSettleCostRepository extends JpaRepository<ProjectSettle
|
||||||
List<ProjectSettleCost> findAllByProjectId(int id);
|
List<ProjectSettleCost> findAllByProjectId(int id);
|
||||||
|
|
||||||
List<ProjectSettleCost> findAllByTime(String time);
|
List<ProjectSettleCost> findAllByTime(String time);
|
||||||
|
|
||||||
|
@Query(value = "select * from project_settle_cost where project_id in ?1 and time = ?2", nativeQuery = true)
|
||||||
|
List<ProjectSettleCost> findAllByProjectsAndTime(List<Integer> ids, String time);
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,4 +26,7 @@ public interface ProjectSettleIncomeRepository extends JpaRepository<ProjectSett
|
||||||
|
|
||||||
@Query(value = "select * from project_settle_income where project_id = ?1 order by id desc limit 0, 1", nativeQuery = true)
|
@Query(value = "select * from project_settle_income where project_id = ?1 order by id desc limit 0, 1", nativeQuery = true)
|
||||||
ProjectSettleIncome findNewByProjectId(int id);
|
ProjectSettleIncome findNewByProjectId(int id);
|
||||||
|
|
||||||
|
@Query(value = "select * from project_settle_income where project_id in ?1 and time = ?2", nativeQuery = true)
|
||||||
|
List<ProjectSettleIncome> findAllByProjectsAndTime(List<Integer> ids, String time);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,4 +19,7 @@ public interface ProjectSettleProfitMarginRepository extends JpaRepository<Proje
|
||||||
List<ProjectSettleProfitMargin> findAllByProjectId(int id);
|
List<ProjectSettleProfitMargin> findAllByProjectId(int id);
|
||||||
|
|
||||||
List<ProjectSettleProfitMargin> findAllByTime(String time);
|
List<ProjectSettleProfitMargin> findAllByTime(String time);
|
||||||
|
|
||||||
|
@Query(value = "select * from project_settle_profit_margin where project_id in ?1 and time = ?2", nativeQuery = true)
|
||||||
|
List<ProjectSettleProfitMargin> findAllByProjectsAndTime(List<Integer> ids, String time);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package cn.palmte.work.service;
|
||||||
|
|
||||||
import cn.palmte.work.bean.*;
|
import cn.palmte.work.bean.*;
|
||||||
import cn.palmte.work.model.*;
|
import cn.palmte.work.model.*;
|
||||||
|
import cn.palmte.work.utils.InterfaceUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
@ -44,6 +45,12 @@ public class ProjectFinalSevice {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProjectSettleCashFlowRepository projectSettleCashFlowRepository;
|
private ProjectSettleCashFlowRepository projectSettleCashFlowRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ProjectService projectService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ProjectInstanceService projectInstanceService;
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void save(Project project, FinalBean finalBean) {
|
public void save(Project project, FinalBean finalBean) {
|
||||||
//预算表数据
|
//预算表数据
|
||||||
|
@ -66,6 +73,37 @@ public class ProjectFinalSevice {
|
||||||
//保存项目结算现金流量信息
|
//保存项目结算现金流量信息
|
||||||
saveProjectFinalCashFlux(project,finalBean,cashFlowBean);
|
saveProjectFinalCashFlux(project,finalBean,cashFlowBean);
|
||||||
|
|
||||||
|
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public void saveAndApprove(Project project, FinalBean finalBean) throws Exception {
|
||||||
|
//预算表数据
|
||||||
|
EstimateBean estimate = projectEstimateService.getEstimate(project);
|
||||||
|
//概算表数据
|
||||||
|
BudgetBean budget = projectBudgetService.getBudget(project);
|
||||||
|
//现金流量表数据
|
||||||
|
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project);
|
||||||
|
CashFlowBean cashFlowBean = projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails);
|
||||||
|
|
||||||
|
//保存项目决算收入信息
|
||||||
|
saveProjectFinalIncome(project,finalBean,estimate,budget);
|
||||||
|
|
||||||
|
//保存项目决算成本信息
|
||||||
|
saveProjectFinalCost(project,finalBean,estimate,budget);
|
||||||
|
|
||||||
|
//保存项目结算管理成本信息
|
||||||
|
saveProjectFinalCostManage(project,finalBean,estimate,budget);
|
||||||
|
|
||||||
|
//保存项目结算现金流量信息
|
||||||
|
saveProjectFinalCashFlux(project,finalBean,cashFlowBean);
|
||||||
|
|
||||||
|
//更新项目和审批状态
|
||||||
|
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING);
|
||||||
|
//发起流程
|
||||||
|
projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveProjectFinalCostManage(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget){
|
public void saveProjectFinalCostManage(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget){
|
||||||
|
|
|
@ -633,10 +633,10 @@ public class ProjectSettleService {
|
||||||
return settleBean;
|
return settleBean;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SettleBean getMonthTotalSettle(String time) {
|
public SettleBean getMonthTotalSettle(List<Integer> projectInt, String time) {
|
||||||
SettleBean settleBean = new SettleBean();
|
SettleBean settleBean = new SettleBean();
|
||||||
|
|
||||||
List<ProjectSettleIncome> incomes = projectSettleIncomeRepository.findAllByTime(time);
|
List<ProjectSettleIncome> incomes = projectSettleIncomeRepository.findAllByProjectsAndTime(projectInt, time);
|
||||||
if(CollectionUtil.isNotEmpty(incomes)){
|
if(CollectionUtil.isNotEmpty(incomes)){
|
||||||
BigDecimal incomeDevice = incomes.stream().filter(d -> d.getType() == ProjectSettleIncome.TYPE_DEVICE).map(ProjectSettleIncome::getIncomeTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
BigDecimal incomeDevice = incomes.stream().filter(d -> d.getType() == ProjectSettleIncome.TYPE_DEVICE).map(ProjectSettleIncome::getIncomeTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
settleBean.setIncomeDevice(incomeDevice);
|
settleBean.setIncomeDevice(incomeDevice);
|
||||||
|
@ -648,7 +648,7 @@ public class ProjectSettleService {
|
||||||
settleBean.setIncomeService(incomeService);
|
settleBean.setIncomeService(incomeService);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<ProjectSettleCost> costs = projectSettleCostRepository.findAllByTime(time);
|
List<ProjectSettleCost> costs = projectSettleCostRepository.findAllByProjectsAndTime(projectInt, time);
|
||||||
if(CollectionUtil.isNotEmpty(costs)){
|
if(CollectionUtil.isNotEmpty(costs)){
|
||||||
BigDecimal costDevice = costs.stream().filter(d -> d.getType() == ProjectSettleCost.TYPE_DEVICE).map(ProjectSettleCost::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
BigDecimal costDevice = costs.stream().filter(d -> d.getType() == ProjectSettleCost.TYPE_DEVICE).map(ProjectSettleCost::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
settleBean.setCostPurchaseDevice(costDevice);
|
settleBean.setCostPurchaseDevice(costDevice);
|
||||||
|
@ -669,7 +669,7 @@ public class ProjectSettleService {
|
||||||
settleBean.setCostOther(costOtherOther);
|
settleBean.setCostOther(costOtherOther);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<ProjectSettleCostManage> manages = projectSettleCostManageRepository.findAllByTime(time);
|
List<ProjectSettleCostManage> manages = projectSettleCostManageRepository.findAllByProjectsAndTime(projectInt, time);
|
||||||
if(CollectionUtil.isNotEmpty(manages)){
|
if(CollectionUtil.isNotEmpty(manages)){
|
||||||
BigDecimal costManageExpropriation = manages.stream().filter(d -> d.getType() == ProjectSettleCostManage.TYPE_EXPROPRIATION).map(ProjectSettleCostManage::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
BigDecimal costManageExpropriation = manages.stream().filter(d -> d.getType() == ProjectSettleCostManage.TYPE_EXPROPRIATION).map(ProjectSettleCostManage::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
settleBean.setCostExpropriation(costManageExpropriation);
|
settleBean.setCostExpropriation(costManageExpropriation);
|
||||||
|
@ -681,7 +681,7 @@ public class ProjectSettleService {
|
||||||
settleBean.setCostIncomeTax(costIncomeTax);
|
settleBean.setCostIncomeTax(costIncomeTax);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<ProjectSettleProfitMargin> profits = projectSettleProfitMarginRepository.findAllByTime(time);
|
List<ProjectSettleProfitMargin> profits = projectSettleProfitMarginRepository.findAllByProjectsAndTime(projectInt, time);
|
||||||
if(CollectionUtil.isNotEmpty(profits)) {
|
if(CollectionUtil.isNotEmpty(profits)) {
|
||||||
BigDecimal grossProfit = profits.stream().filter(d -> d.getType() == ProjectSettleProfitMargin.TYPE_GROSS_PROFIT).map(ProjectSettleProfitMargin::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
BigDecimal grossProfit = profits.stream().filter(d -> d.getType() == ProjectSettleProfitMargin.TYPE_GROSS_PROFIT).map(ProjectSettleProfitMargin::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
settleBean.setGrossProfit(grossProfit);
|
settleBean.setGrossProfit(grossProfit);
|
||||||
|
@ -693,7 +693,7 @@ public class ProjectSettleService {
|
||||||
settleBean.setNetProfit(netProfit);
|
settleBean.setNetProfit(netProfit);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<ProjectSettleCashFlow> cashFlows = projectSettleCashFlowRepository.findAllByTime(time);
|
List<ProjectSettleCashFlow> cashFlows = projectSettleCashFlowRepository.findAllByProjectsAndTime(projectInt, time);
|
||||||
if(CollectionUtil.isNotEmpty(cashFlows)) {
|
if(CollectionUtil.isNotEmpty(cashFlows)) {
|
||||||
BigDecimal saleIncomeCash = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.SALE_INCOME_CASH).map(ProjectSettleCashFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
BigDecimal saleIncomeCash = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.SALE_INCOME_CASH).map(ProjectSettleCashFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
settleBean.setSaleIncomeCash(saleIncomeCash);
|
settleBean.setSaleIncomeCash(saleIncomeCash);
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
package cn.palmte.work.service;
|
package cn.palmte.work.service;
|
||||||
|
|
||||||
import cn.palmte.work.bean.SettleBean;
|
import cn.palmte.work.bean.SettleBean;
|
||||||
import cn.palmte.work.model.Project;
|
import cn.palmte.work.model.*;
|
||||||
import cn.palmte.work.model.ProjectSettleCostRepository;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import top.jfunc.common.db.bean.Page;
|
|
||||||
import top.jfunc.common.db.utils.Pagination;
|
import top.jfunc.common.db.utils.Pagination;
|
||||||
|
import top.jfunc.common.utils.CollectionUtil;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -26,10 +25,19 @@ public class ProjectSummaryService {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(ProjectSummaryService.class);
|
private static final Logger logger = LoggerFactory.getLogger(ProjectSummaryService.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProjectBudgetService projectBudgetService;
|
private ProjectBudgetIncomeRepository projectBudgetIncomeRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProjectSettleCostRepository projectSettleCostRepository;
|
private ProjectBudgetCostRepository projectBudgetCostRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ProjectBudgetCostManageRepository projectBudgetCostManageRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ProjectBudgetPlanDetailRepository projectBudgetPlanDetailRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ProjectSettleIncomeRepository projectSettleIncomeRepository;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProjectSettleService projectSettleService;
|
private ProjectSettleService projectSettleService;
|
||||||
|
@ -37,93 +45,143 @@ public class ProjectSummaryService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private Pagination pagination;
|
private Pagination pagination;
|
||||||
|
|
||||||
public List<Page<SettleBean>> getList(ConcurrentHashMap<String, String> searchInfo, int pageNumber, int pageSize, String time) {
|
public List<SettleBean> getList(ConcurrentHashMap<String, String> searchInfo, String time) {
|
||||||
List<Page<SettleBean>> pageList = new ArrayList<>();
|
//预算金额
|
||||||
if (pageNumber == 1) {
|
Map<String, BigDecimal> budget = new HashMap<>(40);
|
||||||
//预算金额
|
String sql = "select proj.id, proj.name, proj.approve_status_budget from project_settle_cost psc left join project proj on psc.project_id = proj.id where psc.time = ? group by proj.id order by proj.id asc";
|
||||||
Map<String, BigDecimal> budget = new HashMap<>(40);
|
List<Project> projectList = pagination.find(sql, Project.class, time);
|
||||||
String sql = "select proj.id, proj.name from project_settle_cost psc left join project proj on psc.project_id = proj.id where psc.time = ? group by proj.id order by proj.id asc";
|
List<Project> projects = new ArrayList<>();
|
||||||
List<Project> projects = pagination.find(sql, Project.class, time);
|
List<Integer> projectInt = new ArrayList<>();
|
||||||
// for (Project project : projects) {
|
for (Project project : projectList) {
|
||||||
// BudgetBean budgetBean = projectBudgetService.getBudget(project);
|
if (project.getApproveStatusBudget() == 2) {
|
||||||
// CashFlowBean cashFlowBean = projectBudgetService.getCashFlowBean(project, projectBudgetService.getProjectBudgetPlanDetails(project));
|
projects.add(project);
|
||||||
// budget.put("incomeDevice", budget.getOrDefault("incomeDeviceTaxExclude", new BigDecimal(0)).add(budgetBean.getIncomeDeviceTaxExclude()));
|
projectInt.add(project.getId());
|
||||||
// budget.put("incomeEngineer", budget.getOrDefault("incomeEngineerTaxExclude", new BigDecimal(0)).add(budgetBean.getIncomeEngineerTaxExclude()));
|
continue;
|
||||||
// budget.put("incomeService", budget.getOrDefault("incomeServiceTaxExclude", new BigDecimal(0)).add(budgetBean.getIncomeServiceTaxExclude()));
|
|
||||||
// budget.put("costPurchaseDevice", budget.getOrDefault("costPurchaseDeviceTaxExclude", new BigDecimal(0)).add(budgetBean.getCostPurchaseDeviceTaxExclude()));
|
|
||||||
// budget.put("costPurchaseBuild", budget.getOrDefault("costPurchaseBuildTaxExclude", new BigDecimal(0)).add(budgetBean.getCostPurchaseBuildTaxExclude()));
|
|
||||||
// budget.put("costPurchaseService", budget.getOrDefault("costPurchaseServiceTaxExclude", new BigDecimal(0)).add(budgetBean.getCostPurchaseServiceTaxExclude()));
|
|
||||||
// budget.put("costPurchaseOther", budget.getOrDefault("costPurchaseOtherTaxExclude", new BigDecimal(0)).add(budgetBean.getCostPurchaseOtherTaxExclude()));
|
|
||||||
// budget.put("costOtherOther", budget.getOrDefault("costOtherOtherTaxExclude", new BigDecimal(0)).add(budgetBean.getCostOtherOtherTaxExclude()));
|
|
||||||
// budget.put("costProjectManage", budget.getOrDefault("costProjectManageTaxExclude", new BigDecimal(0)).add(budgetBean.getCostProjectManageTaxExclude()));
|
|
||||||
// budget.put("costExpropriation", budget.getOrDefault("costExpropriationTaxExclude", new BigDecimal(0)).add(budgetBean.getCostExpropriationTaxExclude()));
|
|
||||||
// budget.put("costCompanyManage", budget.getOrDefault("costCompanyManageTaxExclude", new BigDecimal(0)).add(budgetBean.getCostCompanyManageTaxExclude()));
|
|
||||||
//
|
|
||||||
// budget.put("incomeTotal", budget.getOrDefault("incomeTotalTaxExclude", new BigDecimal(0)).add(budgetBean.getIncomeTotalTaxExclude()));
|
|
||||||
// budget.put("incomeTotalTaxInclude", budget.getOrDefault("incomeTotalTaxInclude", new BigDecimal(0)).add(budgetBean.getIncomeTotalTaxInclude()));
|
|
||||||
// budget.put("costTotal2", budget.getOrDefault("costTotalTaxExclude2", new BigDecimal(0)).add(budgetBean.getCostTotalTaxExclude()));
|
|
||||||
// budget.put("costTotalTaxInclude", budget.getOrDefault("costTotalTaxInclude", new BigDecimal(0)).add(budgetBean.getCostTotalTaxInclude()));
|
|
||||||
// budget.put("costTotal", budget.getOrDefault("costTotalTaxExclude", new BigDecimal(0)).add(budgetBean.getCostPurchaseDeviceTaxExclude().add(budgetBean.getCostPurchaseBuildTaxExclude()).add(budgetBean.getCostPurchaseServiceTaxExclude()).add(budgetBean.getCostPurchaseOtherTaxExclude())));
|
|
||||||
// budget.put("projectGrossProfit", budget.getOrDefault("projectGrossProfit", new BigDecimal(0)).add(budgetBean.getProjectGrossProfit()));
|
|
||||||
// budget.put("projectContributionProfit", budget.getOrDefault("projectContributionProfit", new BigDecimal(0)).add(budgetBean.getProjectContributionProfit()));
|
|
||||||
//
|
|
||||||
// budget.put("saleIncomeCash", budget.getOrDefault("saleIncomeCash", new BigDecimal(0)).add(cashFlowBean.getSaleIncomeCash()));
|
|
||||||
// budget.put("taxReturn", budget.getOrDefault("taxReturn", new BigDecimal(0)).add(cashFlowBean.getTaxReturn()));
|
|
||||||
// budget.put("earnestMoneyIncome", budget.getOrDefault("earnestMoneyIncome", new BigDecimal(0)).add(cashFlowBean.getEarnestMoneyIncome()));
|
|
||||||
// budget.put("purchaseCost", budget.getOrDefault("purchaseCost", new BigDecimal(0)).add(cashFlowBean.getPurchaseCost()));
|
|
||||||
// budget.put("taxCost", budget.getOrDefault("taxCost", new BigDecimal(0)).add(cashFlowBean.getTaxCost()));
|
|
||||||
// budget.put("earnestMoneyCost", budget.getOrDefault("earnestMoneyCost", new BigDecimal(0)).add(cashFlowBean.getEarnestMoneyCost()));
|
|
||||||
// budget.put("netCashFlow", budget.getOrDefault("netCashFlow", new BigDecimal(0)).add(cashFlowBean.getNetCashFlow()));
|
|
||||||
// budget.put("cashInflowFromInvestingActivities", budget.getOrDefault("cashInflowFromInvestingActivities", new BigDecimal(0)).add(cashFlowBean.getCashInflowFromInvestingActivities()));
|
|
||||||
// budget.put("cashOutflowFromInvestingActivities", budget.getOrDefault("cashOutflowFromInvestingActivities", new BigDecimal(0)).add(cashFlowBean.getCashOutflowFromInvestingActivities()));
|
|
||||||
// budget.put("netCashFromInvestingActivities", budget.getOrDefault("netCashFromInvestingActivities", new BigDecimal(0)).add(cashFlowBean.getNetCashFromInvestingActivities()));
|
|
||||||
// budget.put("financingCapitalInflow", budget.getOrDefault("financingCapitalInflow", new BigDecimal(0)).add(cashFlowBean.getFinancingCapitalInflow()));
|
|
||||||
// budget.put("financingCapitalOutflow", budget.getOrDefault("financingCapitalOutflow", new BigDecimal(0)).add(cashFlowBean.getFinancingCapitalOutflow()));
|
|
||||||
// budget.put("financingCapitalCashflow", budget.getOrDefault("financingCapitalCashflow", new BigDecimal(0)).add(cashFlowBean.getFinancingCapitalCashflow()));
|
|
||||||
// budget.put("netIncreaseMonetaryFunds", budget.getOrDefault("netIncreaseMonetaryFunds", new BigDecimal(0)).add(cashFlowBean.getNetIncreaseMonetaryFunds()));
|
|
||||||
// }
|
|
||||||
// Record budgetRecord = new Record();
|
|
||||||
// budgetRecord.getColumns().putAll(budget);
|
|
||||||
// budgetRecord.set("projectName", "预算金额(不含税)");
|
|
||||||
// budgetRecord.set("projectGrossProfitRate", budget.getOrDefault("projectGrossProfit", new BigDecimal(0)).divide(budget.getOrDefault("incomeTotalTaxExclude", new BigDecimal(1))));
|
|
||||||
// budgetRecord.set("projectContributionProfitRate", budget.getOrDefault("projectContributionProfit", new BigDecimal(0)).divide(budget.getOrDefault("incomeTotalTaxExclude", new BigDecimal(1))));
|
|
||||||
// budgetRecord.set("taxCost", budget.getOrDefault("incomeTotalTaxInclude", new BigDecimal(0)).subtract(budget.getOrDefault("incomeTotal", new BigDecimal(0))).subtract(budget.getOrDefault("costTotalTaxInclude", new BigDecimal(0))).add(budget.getOrDefault("costTotal2", new BigDecimal(0))));
|
|
||||||
// budgetRecord.set("projectNetProfit", budget.getOrDefault("projectGrossProfit", new BigDecimal(0)).subtract(budgetRecord.getBigDecimal("taxCost")));
|
|
||||||
// budgetRecord.set("projectContributionProfitRate", budgetRecord.getBigDecimal("projectNetProfit").divide(budget.getOrDefault("incomeTotalTaxExclude", new BigDecimal(1))));
|
|
||||||
SettleBean budgetBean = new SettleBean();
|
|
||||||
budgetBean.setProjectName("预算金额(不含税)");
|
|
||||||
Page<SettleBean> page = new Page<>(pageNumber, pageSize);
|
|
||||||
List<SettleBean> list = new ArrayList<>();
|
|
||||||
list.add(budgetBean);
|
|
||||||
|
|
||||||
SettleBean totalSettle = projectSettleService.getMonthTotalSettle(time);
|
|
||||||
BigDecimal divide = totalSettle.getIncomeTotal();
|
|
||||||
if (divide.equals(new BigDecimal(0))) {
|
|
||||||
divide = new BigDecimal(1);
|
|
||||||
}
|
}
|
||||||
totalSettle.setGrossProfitProfitMargin(totalSettle.getGrossProfit().divide(divide, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)));
|
ProjectSettleIncome projectNewest = projectSettleIncomeRepository.findNewByProjectId(project.getId());
|
||||||
totalSettle.setContributionProfitProfitMargin(totalSettle.getContributionProfit().divide(divide, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)));
|
if (!time.equals(projectNewest.getTime())) {
|
||||||
totalSettle.setNetProfitProfitMargin(totalSettle.getNetProfit().divide(divide, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)));
|
projects.add(project);
|
||||||
totalSettle.setProjectName("实际累计(不含税)");
|
projectInt.add(project.getId());
|
||||||
list.add(totalSettle);
|
|
||||||
|
|
||||||
for (Project project : projects) {
|
|
||||||
SettleBean monthSettle = projectSettleService.getMonthSettle(project, time);
|
|
||||||
BigDecimal divide2 = monthSettle.getIncomeTotal();
|
|
||||||
if (divide2.equals(new BigDecimal(0))) {
|
|
||||||
divide2 = new BigDecimal(1);
|
|
||||||
}
|
|
||||||
monthSettle.setGrossProfitProfitMargin(monthSettle.getGrossProfit().divide(divide2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)));
|
|
||||||
monthSettle.setContributionProfitProfitMargin(monthSettle.getContributionProfit().divide(divide2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)));
|
|
||||||
monthSettle.setNetProfitProfitMargin(monthSettle.getNetProfit().divide(divide2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)));
|
|
||||||
monthSettle.setProjectName(project.getName());
|
|
||||||
list.add(monthSettle);
|
|
||||||
}
|
}
|
||||||
page.setList(list);
|
|
||||||
pageList.add(page);
|
|
||||||
} else {
|
|
||||||
String sql = "select proj.id, proj.name from project_settle_cost psc left join project proj on psc.project_id = proj.id where psc.time = ? group by proj.id order by proj.id asc";
|
|
||||||
}
|
}
|
||||||
return pageList;
|
|
||||||
|
SettleBean budgetBean = new SettleBean();
|
||||||
|
if (projectInt.size() == 0) {
|
||||||
|
projectInt.add(0);
|
||||||
|
}
|
||||||
|
List<ProjectBudgetIncome> incomes = projectBudgetIncomeRepository.findAllByProjectIds(projectInt);
|
||||||
|
BigDecimal taxTotal = new BigDecimal(0);
|
||||||
|
if(CollectionUtil.isNotEmpty(incomes)){
|
||||||
|
BigDecimal incomeDevice = incomes.stream().filter(d -> d.getType() == ProjectBudgetIncome.TYPE_DEVICE).map(ProjectBudgetIncome::getIncomeTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setIncomeDevice(incomeDevice);
|
||||||
|
BigDecimal incomeDeviceInclude = incomes.stream().filter(d -> d.getType() == ProjectBudgetIncome.TYPE_DEVICE).map(ProjectBudgetIncome::getIncomeTaxInclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
BigDecimal incomeEngineer = incomes.stream().filter(d -> d.getType() == ProjectBudgetIncome.TYPE_ENGINEER).map(ProjectBudgetIncome::getIncomeTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setIncomeEngineer(incomeEngineer);
|
||||||
|
BigDecimal incomeEngineerInclude = incomes.stream().filter(d -> d.getType() == ProjectBudgetIncome.TYPE_ENGINEER).map(ProjectBudgetIncome::getIncomeTaxInclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
BigDecimal incomeService = incomes.stream().filter(d -> d.getType() == ProjectBudgetIncome.TYPE_SERVICE).map(ProjectBudgetIncome::getIncomeTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setIncomeService(incomeService);
|
||||||
|
BigDecimal incomeServiceInclude = incomes.stream().filter(d -> d.getType() == ProjectBudgetIncome.TYPE_SERVICE).map(ProjectBudgetIncome::getIncomeTaxInclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
taxTotal = taxTotal.subtract(budgetBean.getIncomeTotal()).add(incomeDeviceInclude).add(incomeEngineerInclude).add(incomeServiceInclude);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ProjectBudgetCost> costs = projectBudgetCostRepository.findAllByProjectIds(projectInt);
|
||||||
|
if(CollectionUtil.isNotEmpty(costs)){
|
||||||
|
BigDecimal costDevice = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_DEVICE).map(ProjectBudgetCost::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setCostPurchaseDevice(costDevice);
|
||||||
|
BigDecimal costDeviceInclude = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_DEVICE).map(ProjectBudgetCost::getCostTaxInclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
BigDecimal costBuild = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_BUILDING).map(ProjectBudgetCost::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setCostPurchaseBuild(costBuild);
|
||||||
|
BigDecimal costBuildInclude = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_BUILDING).map(ProjectBudgetCost::getCostTaxInclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
BigDecimal costService = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_SERVICE).map(ProjectBudgetCost::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setCostPurchaseService(costService);
|
||||||
|
BigDecimal costServiceInclude = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_SERVICE).map(ProjectBudgetCost::getCostTaxInclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
BigDecimal costOther = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_OTHER).map(ProjectBudgetCost::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setCostPurchaseOther(costOther);
|
||||||
|
BigDecimal costOtherInclude = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_OTHER).map(ProjectBudgetCost::getCostTaxInclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
BigDecimal costProjectManage = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_PROJECT_MANAGE).map(ProjectBudgetCost::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setCostProjectManage(costProjectManage );
|
||||||
|
BigDecimal costProjectManageInclude = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_PROJECT_MANAGE).map(ProjectBudgetCost::getCostTaxInclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
BigDecimal costOtherOther = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_OTHER_OTHER).map(ProjectBudgetCost::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setCostOther(costOtherOther);
|
||||||
|
BigDecimal costOtherOtherInclude = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_OTHER_OTHER).map(ProjectBudgetCost::getCostTaxInclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
taxTotal = taxTotal.add(budgetBean.getCostTotal()).subtract(costDeviceInclude).subtract(costBuildInclude).subtract(costServiceInclude).subtract(costOtherInclude).subtract(costProjectManageInclude).subtract(costOtherOtherInclude);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ProjectBudgetCostManage> manages = projectBudgetCostManageRepository.findAllByProjectIds(projectInt);
|
||||||
|
if(CollectionUtil.isNotEmpty(manages)){
|
||||||
|
BigDecimal costManageExpropriation = manages.stream().filter(d -> d.getType() == ProjectBudgetCostManage.TYPE_EXPROPRIATION).map(ProjectBudgetCostManage::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setCostExpropriation(costManageExpropriation);
|
||||||
|
|
||||||
|
BigDecimal costManageCompany = manages.stream().filter(d -> d.getType() == ProjectBudgetCostManage.TYPE_COMPANY_MANAGE).map(ProjectBudgetCostManage::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setCostCompanyManage(costManageCompany);
|
||||||
|
|
||||||
|
budgetBean.setCostIncomeTax(taxTotal);
|
||||||
|
}
|
||||||
|
|
||||||
|
budgetBean.setGrossProfit(budgetBean.getIncomeTotal().subtract(budgetBean.getCostTotal()).subtract(budgetBean.getCostExpropriation()));
|
||||||
|
budgetBean.setContributionProfit(budgetBean.getGrossProfit().subtract(budgetBean.getCostCompanyManage()));
|
||||||
|
budgetBean.setNetProfit(budgetBean.getContributionProfit().subtract(budgetBean.getCostIncomeTax()));
|
||||||
|
|
||||||
|
List<ProjectBudgetPlanDetail> cashFlows = projectBudgetPlanDetailRepository.findAllByProjectIds(projectInt);
|
||||||
|
BigDecimal saleIncome = cashFlows.stream().map(ProjectBudgetPlanDetail::getSaleIncome).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setSaleIncomeCash(saleIncome);
|
||||||
|
|
||||||
|
BigDecimal earnestMoneyIncome = cashFlows.stream().map(ProjectBudgetPlanDetail::getEarnestMoneyIncome).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setEarnestMoneyIncome(earnestMoneyIncome);
|
||||||
|
|
||||||
|
BigDecimal deviceCost = cashFlows.stream().map(ProjectBudgetPlanDetail::getDeviceCost).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
BigDecimal engineerCost = cashFlows.stream().map(ProjectBudgetPlanDetail::getEngineerCost).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setPurchaseCost(deviceCost.add(engineerCost));
|
||||||
|
|
||||||
|
BigDecimal projectManageCost = cashFlows.stream().map(ProjectBudgetPlanDetail::getProjectManageCost).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
BigDecimal earnestMoneyCost = cashFlows.stream().map(ProjectBudgetPlanDetail::getEarnestMoneyCost).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
BigDecimal capitalInterest = cashFlows.stream().map(ProjectBudgetPlanDetail::getCapitalInterest).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setEarnestMoneyCost(projectManageCost.add(earnestMoneyCost).add(capitalInterest));
|
||||||
|
|
||||||
|
BigDecimal underWritten = cashFlows.stream().map(ProjectBudgetPlanDetail::getUnderwrittenPlan).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setFinancingCapitalInflow(underWritten);
|
||||||
|
|
||||||
|
BigDecimal repaymentPlan = cashFlows.stream().map(ProjectBudgetPlanDetail::getRepaymentPlan).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
budgetBean.setFinancingCapitalOutflow(repaymentPlan);
|
||||||
|
|
||||||
|
budgetBean.setNetCashFlow(saleIncome.add(earnestMoneyIncome).subtract(budgetBean.getEarnestMoneyCost()));
|
||||||
|
budgetBean.setFinancingCapitalCashflow(underWritten.subtract(repaymentPlan));
|
||||||
|
budgetBean.setNetIncreaseMonetaryFunds(budgetBean.getNetCashFlow().add(budgetBean.getFinancingCapitalCashflow()));
|
||||||
|
|
||||||
|
setProfitMargin(budgetBean);
|
||||||
|
budgetBean.setProjectName("预算金额(不含税)");
|
||||||
|
List<SettleBean> list = new ArrayList<>();
|
||||||
|
list.add(budgetBean);
|
||||||
|
|
||||||
|
SettleBean totalSettle = projectSettleService.getMonthTotalSettle(projectInt, time);
|
||||||
|
setProfitMargin(totalSettle);
|
||||||
|
totalSettle.setProjectName("实际累计(不含税)");
|
||||||
|
list.add(totalSettle);
|
||||||
|
|
||||||
|
for (Project project : projects) {
|
||||||
|
SettleBean monthSettle = projectSettleService.getMonthSettle(project, time);
|
||||||
|
setProfitMargin(monthSettle);
|
||||||
|
monthSettle.setProjectName(project.getName());
|
||||||
|
list.add(monthSettle);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setProfitMargin(SettleBean monthSettle) {
|
||||||
|
BigDecimal divide2 = monthSettle.getIncomeTotal();
|
||||||
|
if (divide2.equals(new BigDecimal(0))) {
|
||||||
|
divide2 = new BigDecimal(1);
|
||||||
|
}
|
||||||
|
monthSettle.setGrossProfitProfitMargin(monthSettle.getGrossProfit().multiply(new BigDecimal(100).divide(divide2, BigDecimal.ROUND_HALF_UP)));
|
||||||
|
monthSettle.setContributionProfitProfitMargin(monthSettle.getContributionProfit().multiply(new BigDecimal(100).divide(divide2, BigDecimal.ROUND_HALF_UP)));
|
||||||
|
monthSettle.setNetProfitProfitMargin(monthSettle.getNetProfit().multiply(new BigDecimal(100).divide(divide2, BigDecimal.ROUND_HALF_UP)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,394 @@
|
||||||
|
<#assign base=request.contextPath />
|
||||||
|
|
||||||
|
<#import "../common/defaultLayout.ftl" as defaultLayout>
|
||||||
|
<@defaultLayout.layout>
|
||||||
|
|
||||||
|
<style type="text/css">
|
||||||
|
/**让所有的模态对话框都居中*/
|
||||||
|
|
||||||
|
.am-modal.am-modal-prompt.am-modal-active {
|
||||||
|
transform: translate(-50%, -50%) scale(1);
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-top: 0!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
select[readonly] option {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="admin-content">
|
||||||
|
<div class="admin-content-body">
|
||||||
|
<div class="am-cf am-padding">
|
||||||
|
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目决算表</strong> / <small>${project.name}</small></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form method="post" class="am-form" id="pmsForm" action="${base}/project/budgetEditSave">
|
||||||
|
<!--选项卡(tabs)begin-->
|
||||||
|
<div class="am-tabs am-margin" data-am-tabs>
|
||||||
|
<ul class="am-tabs-nav am-nav am-nav-tabs">
|
||||||
|
<li class="am-active"><a href="#tab1">项目决算表</a></li>
|
||||||
|
</ul>
|
||||||
|
<div class="am-tabs-bd">
|
||||||
|
<div class="am-tab-panel am-fade am-in am-active" id="tab1">
|
||||||
|
<input name="id" id="id" type="hidden" value="${project.id}" />
|
||||||
|
<span class="am-text-lg">收入</span>
|
||||||
|
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
|
||||||
|
<tbody>
|
||||||
|
<tr class="am-text-xl">
|
||||||
|
<td>类别</td>
|
||||||
|
<td>费用</td>
|
||||||
|
<td>概算总额(元)</td>
|
||||||
|
<td>预算总额(元)</td>
|
||||||
|
<td>结算总额(元)</td>
|
||||||
|
<td>决算总额(元)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>收入</td>
|
||||||
|
<td>设备类</td>
|
||||||
|
<td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类概算总额"></td>
|
||||||
|
<td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类结算总额"></td>
|
||||||
|
<td><input name="incomeDeviceFinalTotal" type="number" required title="设备类决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>收入</td>
|
||||||
|
<td>工程类</td>
|
||||||
|
<td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(estimateBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类概算总额"></td>
|
||||||
|
<td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(budgetBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类结算总额"></td>
|
||||||
|
<td><input name="incomeEngineerFinalTotal" type="number" required title="工程类决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>收入</td>
|
||||||
|
<td>服务类</td>
|
||||||
|
<td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类概算总额"></td>
|
||||||
|
<td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类结算总额"></td>
|
||||||
|
<td><input name="incomeServiceFinalTotal" type="number" required title="服务类决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>合计</td>
|
||||||
|
<td></td>
|
||||||
|
<td><input name="estimateIncomeTotalTaxExclude" type="number" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
|
||||||
|
<td><input name="budgetIncomeTotalTaxExclude" type="number" value="${Utils.format(budgetBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
|
||||||
|
<td><input name="incomeFinalTotal" type="number" readonly required title="此列累计"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<span class="am-text-lg">成本</span>
|
||||||
|
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
|
||||||
|
<tbody>
|
||||||
|
<tr class="am-text-xl">
|
||||||
|
<td>类别</td>
|
||||||
|
<td>费用</td>
|
||||||
|
<td>费用项目</td>
|
||||||
|
<td>概算总额(元)</td>
|
||||||
|
<td>预算总额(元)</td>
|
||||||
|
<td>结算总额(元)</td>
|
||||||
|
<td>决算总额(元)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>成本</td>
|
||||||
|
<td>采购成本</td>
|
||||||
|
<td>设备</td>
|
||||||
|
<td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备概算总额"></td>
|
||||||
|
<td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备结算总额"></td>
|
||||||
|
<td><input name="costPurchaseDeviceFinalTotal" type="number" required title="购买设备决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>成本</td>
|
||||||
|
<td>采购成本</td>
|
||||||
|
<td>施工</td>
|
||||||
|
<td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本概算总额"></td>
|
||||||
|
<td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本结算总额"></td>
|
||||||
|
<td><input name="costPurchaseBuildFinalTotal" type="number" required title="施工采购成本决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>成本</td>
|
||||||
|
<td>采购成本</td>
|
||||||
|
<td>服务</td>
|
||||||
|
<td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本概算总额"></td>
|
||||||
|
<td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本结算总额"></td>
|
||||||
|
<td><input name="costPurchaseServiceFinalTotal" type="number" required title="服务采购成本决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>成本</td>
|
||||||
|
<td>采购成本</td>
|
||||||
|
<td>其他</td>
|
||||||
|
<td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(estimateBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本概算总额"></td>
|
||||||
|
<td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(budgetBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本预算总额"></td>
|
||||||
|
<td><input name="costPurchaseOtherSettleTotal" value="${Utils.format(settleBean.costPurchaseOtherTaxExclude,'0')}" type="number" readonly required title="其他采购成本结算总额"></td>
|
||||||
|
<td><input name="costPurchaseOtherFinalTotal" type="number" required title="其他采购成本决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>成本</td>
|
||||||
|
<td>项目管理成本</td>
|
||||||
|
<td>项目管理成本</td>
|
||||||
|
<td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(estimateBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本概算总额"></td>
|
||||||
|
<td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(budgetBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本预算总额"></td>
|
||||||
|
<td><input name="costProjectManageSettleTotal" value="${Utils.format(settleBean.costProjectManageTaxExclude,'0')}" type="number" readonly required title="项目管理成本结算总额"></td>
|
||||||
|
<td><input name="costProjectManageFinalTotal" type="number" required title="项目管理成本决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>成本</td>
|
||||||
|
<td>其他</td>
|
||||||
|
<td>其他</td>
|
||||||
|
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(estimateBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本概算总额"></td>
|
||||||
|
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本预算总额"></td>
|
||||||
|
<td><input name="costOtherSettleTotal" value="${Utils.format(settleBean.costOtherOtherTaxExclude,'0')}" type="number" type="number"readonly required title="其他成本结算总额"></td>
|
||||||
|
<td><input name="costOtherFinalTotal" type="number" required title="其他成本决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>合计</td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td><input name="incomeTotalTaxExclude" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
|
||||||
|
<td><input name="costTotalTaxExclude" value="${Utils.format(budgetBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
|
||||||
|
<td><input name="costSettleTotal" value="${Utils.format(settleBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
|
||||||
|
<td><input name="costFinalTotal" type="number" readonly required title="此列累计"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<span class="am-text-lg">管理</span>
|
||||||
|
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
|
||||||
|
<tbody>
|
||||||
|
<tr class="am-text-xl">
|
||||||
|
<td>类别</td>
|
||||||
|
<td>费用项目</td>
|
||||||
|
<td>概算总额(元)</td>
|
||||||
|
<td>预算总额(元)</td>
|
||||||
|
<td>结算总额(元)</td>
|
||||||
|
<td>决算总额(元)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>财务费用</td>
|
||||||
|
<td>资金占用成本</td>
|
||||||
|
<td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(estimateBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本概算总额"></td>
|
||||||
|
<td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(budgetBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本结算总额"></td>
|
||||||
|
<td><input name="costExpropriationFinalTotal" type="number" required title="资金占用成本决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>公司管理费用</td>
|
||||||
|
<td></td>
|
||||||
|
<td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(estimateBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用概算总额"></td>
|
||||||
|
<td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(budgetBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用结算总额"></td>
|
||||||
|
<td><input name="costCompanyManageFinalTotal" type="number" required title="公司管理费用决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>所得税费用</td>
|
||||||
|
<td></td>
|
||||||
|
<td>/</td>
|
||||||
|
<td>/</td>
|
||||||
|
<td><input name="costIncomeTaxSettleTotal" value="${Utils.format(settleBean.costIncomeTax,'0')}" type="number" required readonly title="所得税费用结算总额"></td>
|
||||||
|
<td><input name="costIncomeTaxFinalTotal" type="number" required title="所得税费用决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>合计</td>
|
||||||
|
<td></td>
|
||||||
|
<td><input name="manageEstimateTotal" value="${Utils.format(estimateBean.getCostManageExclude(),'0')}" type="number" readonly required title="此列累计"></td>
|
||||||
|
<td><input name="manageBudgetTotal" value="${Utils.format(budgetBean.getCostManageExclude(),'0')}" type="number" readonly required title="此列累计"></td>
|
||||||
|
<td><input name="manageSettleTotal" value="${Utils.format(settleBean.getCostManageTotal(),'0')}" type="number" readonly required title="此列累计"></td>
|
||||||
|
<td><input name="manageFinalTotal" type="number" readonly required title="此列累计"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<span class="am-text-lg">利润率计算</span>
|
||||||
|
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
|
||||||
|
<tbody>
|
||||||
|
<tr class="am-text-xl">
|
||||||
|
<td>类别</td>
|
||||||
|
<td>概算总额(元)</td>
|
||||||
|
<td>预算总额(元)</td>
|
||||||
|
<td>结算总额(元)</td>
|
||||||
|
<td>决算总额(元)</td>
|
||||||
|
<td>利润率(%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>项目毛利</td>
|
||||||
|
<td><input name="projectGrossProfit" type="number" value="${Utils.format(estimateBean.getProjectGrossProfit(),'0')}" readonly required title="项目毛利概算总额"></td>
|
||||||
|
<td><input name="projectGrossProfit" type="number" value="${Utils.format(budgetBean.getProjectGrossProfit(),'0')}" readonly required title="项目毛利预算总额"></td>
|
||||||
|
<td><input name="grossProfitSettleTotal" type="number" value="${Utils.format(settleBean.grossProfit,'0')}" readonly required title="项目毛利结算总额"></td>
|
||||||
|
<td><input name="grossProfitFinalTotal" required type="number" title="项目毛利决算总额"></td>
|
||||||
|
<td><input name="grossProfitProfitMargin" type="number" required readonly title="项目毛利利润率"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>项目贡献利润</td>
|
||||||
|
<td><input name="projectContributionProfit" type="number" value="${Utils.format(estimateBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润概算总额"></td>
|
||||||
|
<td><input name="projectContributionProfit" type="number" value="${Utils.format(budgetBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润预算总额"></td>
|
||||||
|
<td><input name="contributionMarginSettleTotal" type="number" value="${Utils.format(settleBean.contributionProfit,'0')}" readonly required title="项目贡献利润结算总额"></td>
|
||||||
|
<td><input name="contributionMarginFinalTotal" type="number" required title="项目贡献利润决算总额"></td>
|
||||||
|
<td><input name="contributionMarginProfitMargin" type="number" required readonly title="项目贡献利润利润率"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>项目净利润</td>
|
||||||
|
<td>/</td>
|
||||||
|
<td><input name="netMarginBudgetTotal" type="number" value="${Utils.format(finalBean.netMarginBudgetTotal,'0')}" readonly required title="项目净利润预算总额"></td>
|
||||||
|
<td><input name="netMarginSettleTotal" type="number" value="${Utils.format(settleBean.netProfit,'0')}" readonly required title="项目净利润结算总额"></td>
|
||||||
|
<td><input name="netMarginFinalTotal" type="number" required title="项目净利润决算总额"></td>
|
||||||
|
<td><input name="netMarginProfitMargin" type="number" value="${Utils.format(finalBean.netMarginProfitMargin,'0')}" required readonly title="项目净利润利润率"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<span class="am-text-lg">现金流量表</span>
|
||||||
|
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
|
||||||
|
<tbody>
|
||||||
|
<tr class="am-text-xl">
|
||||||
|
<td>类别</td>
|
||||||
|
<td>预算总额(元)</td>
|
||||||
|
<td>结算总额(元)</td>
|
||||||
|
<td>决算总额(元)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>销售商品、提供劳务收到的现金</td>
|
||||||
|
<td><input name="budgetSaleIncomeCash" type="number" value="${Utils.format(cashFlowBean.saleIncomeCash,'0')}" readonly required title="预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.saleIncomeCash,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="saleIncomeCash" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>收到的税费返还</td>
|
||||||
|
<td>/</td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.taxReturn,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="taxReturn" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>收到其他与经营活动有关的现金</td>
|
||||||
|
<td><input name="budgetEarnestMoneyIncome" type="number" value="${Utils.format(cashFlowBean.earnestMoneyIncome,'0')}" readonly required title="预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.earnestMoneyIncome,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="earnestMoneyIncome" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>购买商品、接受劳务支付的现金</td>
|
||||||
|
<td><input name="budgetPurchaseCost" type="number" value="${Utils.format(cashFlowBean.purchaseCost,'0')}" readonly required title="预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.purchaseCost,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="purchaseCost" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>支付的各项税费</td>
|
||||||
|
<td>/</td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.taxCost,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="taxCost" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>支付其他与经营活动有关的现金</td>
|
||||||
|
<td><input name="budgetEarnestMoneyCost" type="number" value="${Utils.format(cashFlowBean.earnestMoneyCost,'0')}" readonly required title="预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.earnestMoneyCost,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="earnestMoneyCost" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>经营活动产生的现金流量净额</td>
|
||||||
|
<td><input name="budgetNetCashFlow" type="number" value="${Utils.format(cashFlowBean.getNetCashFlow(),'0')}" readonly required title="预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.netCashFlow,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="netCashFlow" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>投资活动现金流入</td>
|
||||||
|
<td>/</td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.cashInflowFromInvestingActivities,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="cashInflowFromInvestingActivities" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>投资活动现金流出</td>
|
||||||
|
<td>/</td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.cashOutflowFromInvestingActivities,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="cashOutflowFromInvestingActivities" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>投资活动产生的现金流量净额</td>
|
||||||
|
<td>/</td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.netCashFromInvestingActivities,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="netCashFromInvestingActivities" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>融资资金流入</td>
|
||||||
|
<td><input name="budgetFinancingCapitalInflow" type="number" value="${Utils.format(cashFlowBean.financingCapitalInflow,'0')}" readonly required title="预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.financingCapitalInflow,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="financingCapitalInflow" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>还款资金流出</td>
|
||||||
|
<td><input name="budgetFinancingCapitalOutflow" type="number" value="${Utils.format(cashFlowBean.financingCapitalOutflow,'0')}" readonly required title="预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.financingCapitalOutflow,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="financingCapitalOutflow" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>筹资活动产生的现金流量净额</td>
|
||||||
|
<td><input name="budgetFinancingCapitalCashflow" type="number" value="${Utils.format(cashFlowBean.getFinancingCapitalCashflow(),'0')}" readonly required title="预算总额"></td>
|
||||||
|
<td><input type="number" value="${Utils.format(settleBean.financingCapitalCashflow,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="financingCapitalCashflow" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>货币资金净增加额</td>
|
||||||
|
<td><input name="budgetNetIncreaseMonetaryFunds" type="number" value="${Utils.format(cashFlowBean.getNetIncreaseMonetaryFunds(),'0')}" readonly required title="预算总额"></td>
|
||||||
|
<td><input name="type14SettleTotal" type="number" value="${Utils.format(settleBean.netIncreaseMonetaryFunds,'0')}" readonly required title="结算总额"></td>
|
||||||
|
<td><input name="netIncreaseMonetaryFunds" type="number" required title="决算总额"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>合计</td>
|
||||||
|
<td><input name="cashFluxBudgetTotal" type="number" value="${Utils.format(cashFlowBean.getCashFluxTotal(),'0')}" readonly required title="此列累计"></td>
|
||||||
|
<td><input name="cashFluxSettleTotal" type="number" value="${Utils.format(settleBean.getCashFlowTotal(),'0')}" readonly required title="此列累计"></td>
|
||||||
|
<td><input name="cashFluxFinalTotal" type="number" readonly required title="此列累计"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!--验证表单元素(validate end-->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--选项卡(tabs)end-->
|
||||||
|
<div class="am-margin">
|
||||||
|
<button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);">返回上一级</button>
|
||||||
|
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveFinal">保存</button>
|
||||||
|
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveApprove">提交审核</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
var base = "${base}";
|
||||||
|
</script>
|
||||||
|
<script src="${base}/assets/js/project_common.js"></script>
|
||||||
|
<script src="${base}/assets/js/project_final.js"></script>
|
||||||
|
<script>
|
||||||
|
$(function () {
|
||||||
|
calculateFinal();
|
||||||
|
$("#saveFinal").click(function () {
|
||||||
|
$("#pmsForm").attr("action","${base}/project/final/save");
|
||||||
|
$("#pmsForm").submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#saveApprove").click(function () {
|
||||||
|
$("#pmsForm").attr("action",base+"/project/final/saveAndApprove");
|
||||||
|
$("#pmsForm").submit();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</@defaultLayout.layout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
<td>设备类</td>
|
<td>设备类</td>
|
||||||
<td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类概算总额"></td>
|
<td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类概算总额"></td>
|
||||||
<td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类预算总额"></td>
|
<td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类预算总额"></td>
|
||||||
<td><input type="number" value="${Utils.format(settleBean.incomeDevice,'0')}" required readonly title="设备类结算总额"></td>
|
<td><input type="number" value="${Utils.format(settleBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类结算总额"></td>
|
||||||
<td><input name="incomeDeviceFinalTotal" type="number" value="${Utils.format(finalBean.incomeDeviceFinalTotal,'0')}" required title="设备类决算总额"></td>
|
<td><input name="incomeDeviceFinalTotal" type="number" value="${Utils.format(finalBean.incomeDeviceFinalTotal,'0')}" required title="设备类决算总额"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
<td>工程类</td>
|
<td>工程类</td>
|
||||||
<td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(estimateBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类概算总额"></td>
|
<td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(estimateBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类概算总额"></td>
|
||||||
<td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(budgetBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类预算总额"></td>
|
<td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(budgetBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类预算总额"></td>
|
||||||
<td><input type="number" value="${Utils.format(settleBean.incomeEngineer,'0')}" required readonly title="工程类结算总额"></td>
|
<td><input type="number" value="${Utils.format(settleBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类结算总额"></td>
|
||||||
<td><input name="incomeEngineerFinalTotal" type="number" value="${Utils.format(finalBean.incomeEngineerFinalTotal,'0')}" required title="工程类决算总额"></td>
|
<td><input name="incomeEngineerFinalTotal" type="number" value="${Utils.format(finalBean.incomeEngineerFinalTotal,'0')}" required title="工程类决算总额"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
<td>服务类</td>
|
<td>服务类</td>
|
||||||
<td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类概算总额"></td>
|
<td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类概算总额"></td>
|
||||||
<td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类预算总额"></td>
|
<td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类预算总额"></td>
|
||||||
<td><input type="number" value="${Utils.format(settleBean.incomeService,'0')}" required readonly title="服务类结算总额"></td>
|
<td><input type="number" value="${Utils.format(settleBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类结算总额"></td>
|
||||||
<td><input name="incomeServiceFinalTotal" type="number" value="${Utils.format(finalBean.incomeServiceFinalTotal,'0')}" required title="服务类决算总额"></td>
|
<td><input name="incomeServiceFinalTotal" type="number" value="${Utils.format(finalBean.incomeServiceFinalTotal,'0')}" required title="服务类决算总额"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -74,8 +74,8 @@
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><input name="estimateIncomeTotalTaxExclude" type="number" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
|
<td><input name="estimateIncomeTotalTaxExclude" type="number" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
|
||||||
<td><input name="budgetIncomeTotalTaxExclude" type="number" value="${Utils.format(budgetBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
|
<td><input name="budgetIncomeTotalTaxExclude" type="number" value="${Utils.format(budgetBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
|
||||||
<td><input type="number" value="${Utils.format(settleBean.incomeTotal,'0')}" readonly required title="此列累计"></td>
|
<td><input type="number" value="${Utils.format(settleBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
|
||||||
<td><input name="incomeFinalTotal" type="number" readonly required title="此列累计"></td>
|
<td><input name="incomeFinalTotal" type="number" value="${Utils.format(finalBean.getIncomeTotal(),'0')}" readonly required title="此列累计"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@ -97,7 +97,7 @@
|
||||||
<td>设备</td>
|
<td>设备</td>
|
||||||
<td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备概算总额"></td>
|
<td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备概算总额"></td>
|
||||||
<td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备预算总额"></td>
|
<td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备预算总额"></td>
|
||||||
<td><input type="number" value="${Utils.format(settleBean.costPurchaseDevice,'0')}" readonly required title="购买设备结算总额"></td>
|
<td><input type="number" value="${Utils.format(settleBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备结算总额"></td>
|
||||||
<td><input name="costPurchaseDeviceFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseDeviceFinalTotal,'0')}" required title="购买设备决算总额"></td>
|
<td><input name="costPurchaseDeviceFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseDeviceFinalTotal,'0')}" required title="购买设备决算总额"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -106,7 +106,7 @@
|
||||||
<td>施工</td>
|
<td>施工</td>
|
||||||
<td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本概算总额"></td>
|
<td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本概算总额"></td>
|
||||||
<td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本预算总额"></td>
|
<td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本预算总额"></td>
|
||||||
<td><input type="number" value="${Utils.format(settleBean.costPurchaseBuild,'0')}" readonly required title="施工采购成本结算总额"></td>
|
<td><input type="number" value="${Utils.format(settleBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本结算总额"></td>
|
||||||
<td><input name="costPurchaseBuildFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseBuildFinalTotal,'0')}" required title="施工采购成本决算总额"></td>
|
<td><input name="costPurchaseBuildFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseBuildFinalTotal,'0')}" required title="施工采购成本决算总额"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -115,7 +115,7 @@
|
||||||
<td>服务</td>
|
<td>服务</td>
|
||||||
<td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本概算总额"></td>
|
<td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本概算总额"></td>
|
||||||
<td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本预算总额"></td>
|
<td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本预算总额"></td>
|
||||||
<td><input type="number" value="${Utils.format(settleBean.costPurchaseService,'0')}" readonly required title="服务采购成本结算总额"></td>
|
<td><input type="number" value="${Utils.format(settleBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本结算总额"></td>
|
||||||
<td><input name="costPurchaseServiceFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseServiceFinalTotal,'0')}" required title="服务采购成本决算总额"></td>
|
<td><input name="costPurchaseServiceFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseServiceFinalTotal,'0')}" required title="服务采购成本决算总额"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -124,7 +124,7 @@
|
||||||
<td>其他</td>
|
<td>其他</td>
|
||||||
<td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(estimateBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本概算总额"></td>
|
<td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(estimateBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本概算总额"></td>
|
||||||
<td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(budgetBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本预算总额"></td>
|
<td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(budgetBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本预算总额"></td>
|
||||||
<td><input name="costPurchaseOtherSettleTotal" value="${Utils.format(settleBean.costPurchaseOther,'0')}" type="number" readonly required title="其他采购成本结算总额"></td>
|
<td><input name="costPurchaseOtherSettleTotal" value="${Utils.format(settleBean.costPurchaseOtherTaxExclude,'0')}" type="number" readonly required title="其他采购成本结算总额"></td>
|
||||||
<td><input name="costPurchaseOtherFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseOtherFinalTotal,'0')}" required title="其他采购成本决算总额"></td>
|
<td><input name="costPurchaseOtherFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseOtherFinalTotal,'0')}" required title="其他采购成本决算总额"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -133,7 +133,7 @@
|
||||||
<td>项目管理成本</td>
|
<td>项目管理成本</td>
|
||||||
<td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(estimateBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本概算总额"></td>
|
<td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(estimateBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本概算总额"></td>
|
||||||
<td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(budgetBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本预算总额"></td>
|
<td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(budgetBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本预算总额"></td>
|
||||||
<td><input name="costProjectManageSettleTotal" value="${Utils.format(settleBean.costProjectManage,'0')}" type="number" readonly required title="项目管理成本结算总额"></td>
|
<td><input name="costProjectManageSettleTotal" value="${Utils.format(settleBean.costProjectManageTaxExclude,'0')}" type="number" readonly required title="项目管理成本结算总额"></td>
|
||||||
<td><input name="costProjectManageFinalTotal" type="number" value="${Utils.format(finalBean.costProjectManageFinalTotal,'0')}" required title="项目管理成本决算总额"></td>
|
<td><input name="costProjectManageFinalTotal" type="number" value="${Utils.format(finalBean.costProjectManageFinalTotal,'0')}" required title="项目管理成本决算总额"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -142,7 +142,7 @@
|
||||||
<td>其他</td>
|
<td>其他</td>
|
||||||
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(estimateBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本概算总额"></td>
|
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(estimateBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本概算总额"></td>
|
||||||
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本预算总额"></td>
|
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本预算总额"></td>
|
||||||
<td><input name="costOtherSettleTotal" value="${Utils.format(settleBean.costOther,'0')}" type="number" type="number"readonly required title="其他成本结算总额"></td>
|
<td><input name="costOtherSettleTotal" value="${Utils.format(settleBean.costOtherOtherTaxExclude,'0')}" type="number" type="number"readonly required title="其他成本结算总额"></td>
|
||||||
<td><input name="costOtherFinalTotal" type="number" value="${Utils.format(finalBean.costOtherFinalTotal,'0')}" required title="其他成本决算总额"></td>
|
<td><input name="costOtherFinalTotal" type="number" value="${Utils.format(finalBean.costOtherFinalTotal,'0')}" required title="其他成本决算总额"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -151,8 +151,8 @@
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><input name="incomeTotalTaxExclude" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
|
<td><input name="incomeTotalTaxExclude" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
|
||||||
<td><input name="costTotalTaxExclude" value="${Utils.format(budgetBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
|
<td><input name="costTotalTaxExclude" value="${Utils.format(budgetBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
|
||||||
<td><input name="costSettleTotal" value="${Utils.format(settleBean.costTotal,'0')}" type="number" readonly required title="此列累计"></td>
|
<td><input name="costSettleTotal" value="${Utils.format(settleBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
|
||||||
<td><input name="costFinalTotal" type="number" readonly required title="此列累计"></td>
|
<td><input name="costFinalTotal" type="number" value="${Utils.format(finalBean.getCostTotal(),'0')}" readonly required title="此列累计"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@ -172,7 +172,7 @@
|
||||||
<td>资金占用成本</td>
|
<td>资金占用成本</td>
|
||||||
<td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(estimateBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本概算总额"></td>
|
<td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(estimateBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本概算总额"></td>
|
||||||
<td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(budgetBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本预算总额"></td>
|
<td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(budgetBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本预算总额"></td>
|
||||||
<td><input type="number" value="${Utils.format(settleBean.costExpropriation,'0')}" required readonly title="资金占用成本结算总额"></td>
|
<td><input type="number" value="${Utils.format(settleBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本结算总额"></td>
|
||||||
<td><input name="costExpropriationFinalTotal" type="number" value="${Utils.format(finalBean.costExpropriationFinalTotal,'0')}" required title="资金占用成本决算总额"></td>
|
<td><input name="costExpropriationFinalTotal" type="number" value="${Utils.format(finalBean.costExpropriationFinalTotal,'0')}" required title="资金占用成本决算总额"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -180,7 +180,7 @@
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(estimateBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用概算总额"></td>
|
<td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(estimateBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用概算总额"></td>
|
||||||
<td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(budgetBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用预算总额"></td>
|
<td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(budgetBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用预算总额"></td>
|
||||||
<td><input type="number" value="${Utils.format(settleBean.costCompanyManage,'0')}" required readonly title="公司管理费用结算总额"></td>
|
<td><input type="number" value="${Utils.format(settleBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用结算总额"></td>
|
||||||
<td><input name="costCompanyManageFinalTotal" type="number" value="${Utils.format(finalBean.costCompanyManageFinalTotal,'0')}" required title="公司管理费用决算总额"></td>
|
<td><input name="costCompanyManageFinalTotal" type="number" value="${Utils.format(finalBean.costCompanyManageFinalTotal,'0')}" required title="公司管理费用决算总额"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -194,10 +194,10 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>合计</td>
|
<td>合计</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><input name="manageEstimateTotal" type="number" readonly required title="此列累计"></td>
|
<td><input name="manageEstimateTotal" value="${Utils.format(estimateBean.getCostManageExclude(),'0')}" type="number" readonly required title="此列累计"></td>
|
||||||
<td><input name="manageBudgetTotal" type="number" readonly required title="此列累计"></td>
|
<td><input name="manageBudgetTotal" value="${Utils.format(budgetBean.getCostManageExclude(),'0')}" type="number" readonly required title="此列累计"></td>
|
||||||
<td><input name="manageSettleTotal" value="${Utils.format(settleBean.getCostManageTotal(),'0')}" type="number" readonly required title="此列累计"></td>
|
<td><input name="manageSettleTotal" value="${Utils.format(settleBean.getCostManageTotal(),'0')}" type="number" readonly required title="此列累计"></td>
|
||||||
<td><input name="manageFinalTotal" type="number" readonly required title="此列累计"></td>
|
<td><input name="manageFinalTotal" type="number" value="${Utils.format(finalBean.getCostManageTotal(),'0')}" readonly required title="此列累计"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@ -225,7 +225,7 @@
|
||||||
<td>项目贡献利润</td>
|
<td>项目贡献利润</td>
|
||||||
<td><input name="projectContributionProfit" type="number" value="${Utils.format(estimateBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润概算总额"></td>
|
<td><input name="projectContributionProfit" type="number" value="${Utils.format(estimateBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润概算总额"></td>
|
||||||
<td><input name="projectContributionProfit" type="number" value="${Utils.format(budgetBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润预算总额"></td>
|
<td><input name="projectContributionProfit" type="number" value="${Utils.format(budgetBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润预算总额"></td>
|
||||||
<td><input name="contributionMarginSettleTotal" type="number" value="${Utils.format(finalBean.contributionMarginSettleTotal,'0')}" readonly required title="项目贡献利润结算总额"></td>
|
<td><input name="contributionMarginSettleTotal" type="number" value="${Utils.format(settleBean.contributionProfit,'0')}" readonly required title="项目贡献利润结算总额"></td>
|
||||||
<td><input name="contributionMarginFinalTotal" type="number" value="${Utils.format(finalBean.contributionMarginFinalTotal,'0')}" required title="项目贡献利润决算总额"></td>
|
<td><input name="contributionMarginFinalTotal" type="number" value="${Utils.format(finalBean.contributionMarginFinalTotal,'0')}" required title="项目贡献利润决算总额"></td>
|
||||||
<td><input name="contributionMarginProfitMargin" type="number" value="${Utils.format(finalBean.contributionMarginProfitMargin,'0')}" required readonly title="项目贡献利润利润率"></td>
|
<td><input name="contributionMarginProfitMargin" type="number" value="${Utils.format(finalBean.contributionMarginProfitMargin,'0')}" required readonly title="项目贡献利润利润率"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -233,7 +233,7 @@
|
||||||
<td>项目净利润</td>
|
<td>项目净利润</td>
|
||||||
<td>/</td>
|
<td>/</td>
|
||||||
<td><input name="netMarginBudgetTotal" type="number" value="${Utils.format(finalBean.netMarginBudgetTotal,'0')}" readonly required title="项目净利润预算总额"></td>
|
<td><input name="netMarginBudgetTotal" type="number" value="${Utils.format(finalBean.netMarginBudgetTotal,'0')}" readonly required title="项目净利润预算总额"></td>
|
||||||
<td><input name="netMarginSettleTotal" type="number" value="${Utils.format(finalBean.netMarginSettleTotal,'0')}" readonly required title="项目净利润结算总额"></td>
|
<td><input name="netMarginSettleTotal" type="number" value="${Utils.format(settleBean.netProfit,'0')}" readonly required title="项目净利润结算总额"></td>
|
||||||
<td><input name="netMarginFinalTotal" type="number" value="${Utils.format(finalBean.netMarginFinalTotal,'0')}" required title="项目净利润决算总额"></td>
|
<td><input name="netMarginFinalTotal" type="number" value="${Utils.format(finalBean.netMarginFinalTotal,'0')}" required title="项目净利润决算总额"></td>
|
||||||
<td><input name="netMarginProfitMargin" type="number" value="${Utils.format(finalBean.netMarginProfitMargin,'0')}" required readonly title="项目净利润利润率"></td>
|
<td><input name="netMarginProfitMargin" type="number" value="${Utils.format(finalBean.netMarginProfitMargin,'0')}" required readonly title="项目净利润利润率"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -335,9 +335,9 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>合计</td>
|
<td>合计</td>
|
||||||
<td><input name="cashFluxBudgetTotal" type="number" readonly required title="此列累计"></td>
|
<td><input name="cashFluxBudgetTotal" type="number" value="${Utils.format(cashFlowBean.getCashFluxTotal(),'0')}" readonly required title="此列累计"></td>
|
||||||
<td><input name="cashFluxSettleTotal" type="number" value="${Utils.format(settleBean.getCashFlowTotal(),'0')}" readonly required title="此列累计"></td>
|
<td><input name="cashFluxSettleTotal" type="number" value="${Utils.format(settleBean.getCashFlowTotal(),'0')}" readonly required title="此列累计"></td>
|
||||||
<td><input name="cashFluxFinalTotal" type="number" readonly required title="此列累计"></td>
|
<td><input name="cashFluxFinalTotal" type="number" value="${Utils.format(finalBean.getCashFluxTotal(),'0')}" readonly required title="此列累计"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -243,11 +243,17 @@
|
||||||
<#if (list.status== 10 && list.approveStatusSettle== 2) || (list.status== 15 && list.approveStatusFinal== 0) || (list.status== 15 && list.approveStatusFinal== 3)>
|
<#if (list.status== 10 && list.approveStatusSettle== 2) || (list.status== 15 && list.approveStatusFinal== 0) || (list.status== 15 && list.approveStatusFinal== 3)>
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="am-btn am-btn-default am-btn-xs am-text-secondary"
|
class="am-btn am-btn-default am-btn-xs am-text-secondary"
|
||||||
onclick="location.href='${base}/project/final/edit?id=${list.id}'"><span
|
onclick="location.href='${base}/project/final/add?id=${list.id}'"><span
|
||||||
class="am-icon-pencil-square-o"></span>发起决算
|
class="am-icon-pencil-square-o"></span>发起决算
|
||||||
</button>
|
</button>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
|
<button type="button"
|
||||||
|
class="am-btn am-btn-default am-btn-xs am-text-secondary"
|
||||||
|
onclick="location.href='${base}/project/final/edit?id=${list.id}'"><span
|
||||||
|
class="am-icon-pencil-square-o"></span>编辑决算
|
||||||
|
</button>
|
||||||
|
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="am-btn am-btn-default am-btn-xs am-text-secondary"
|
class="am-btn am-btn-default am-btn-xs am-text-secondary"
|
||||||
onclick="location.href='${base}/project/detail?id=${list.id}'"><span
|
onclick="location.href='${base}/project/detail?id=${list.id}'"><span
|
||||||
|
|
|
@ -26,144 +26,150 @@
|
||||||
</ul>
|
</ul>
|
||||||
<div class="am-tabs-bd">
|
<div class="am-tabs-bd">
|
||||||
<div class="am-tab-panel am-fade am-in am-active" id="tab1">
|
<div class="am-tab-panel am-fade am-in am-active" id="tab1">
|
||||||
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
|
<div class="am-scrollable-horizontal">
|
||||||
<thead>
|
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
|
||||||
<tr class="am-text-nowrap">
|
<thead>
|
||||||
<th class="table-title"></th>
|
<tr class="am-text-nowrap">
|
||||||
<th class="table-title">收入--设备类</th>
|
<th class="table-title">项目名称</th>
|
||||||
<th class="table-title">收入--工程类</th>
|
<th class="table-title">收入--设备类</th>
|
||||||
<th class="table-title">收入--服务类</th>
|
<th class="table-title">收入--工程类</th>
|
||||||
<th class="table-title">采购成本--设备类</th>
|
<th class="table-title">收入--服务类</th>
|
||||||
<th class="table-title">采购成本--施工类</th>
|
<th class="table-title">采购成本--设备类</th>
|
||||||
<th class="table-title">采购成本--服务类</th>
|
<th class="table-title">采购成本--施工类</th>
|
||||||
<th class="table-title">采购成本--其他</th>
|
<th class="table-title">采购成本--服务类</th>
|
||||||
<th class="table-title">成本--其他</th>
|
<th class="table-title">采购成本--其他</th>
|
||||||
<th class="table-title">成本--项目管理成本</th>
|
<th class="table-title">成本--其他</th>
|
||||||
<th class="table-title">财务费用--资金占用成本</th>
|
<th class="table-title">成本--项目管理成本</th>
|
||||||
<th class="table-title">公司管理费用</th>
|
<th class="table-title">财务费用--资金占用成本</th>
|
||||||
</tr>
|
<th class="table-title">公司管理费用</th>
|
||||||
</thead>
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
<#if (pager.list)?exists>
|
<#if (pager)?exists>
|
||||||
<#list pager.list as list>
|
<#list pager as list>
|
||||||
<tr>
|
<tr>
|
||||||
<td>${list.projectName!}</td>
|
<td>${list.projectName!}</td>
|
||||||
<td>${(list.incomeDevice!0)?string("0.##")}</td>
|
<td>${(list.incomeDevice!0)?string("0.##")}</td>
|
||||||
<td>${(list.incomeEngineer!0)?string("0.##")}</td>
|
<td>${(list.incomeEngineer!0)?string("0.##")}</td>
|
||||||
<td>${(list.incomeService!0)?string("0.##")}</td>
|
<td>${(list.incomeService!0)?string("0.##")}</td>
|
||||||
<td>${(list.costPurchaseDevice!0)?string("0.##")}</td>
|
<td>${(list.costPurchaseDevice!0)?string("0.##")}</td>
|
||||||
<td>${(list.costPurchaseBuild!0)?string("0.##")}</td>
|
<td>${(list.costPurchaseBuild!0)?string("0.##")}</td>
|
||||||
<td>${(list.costPurchaseService!0)?string("0.##")}</td>
|
<td>${(list.costPurchaseService!0)?string("0.##")}</td>
|
||||||
<td>${(list.costPurchaseOther!0)?string("0.##")}</td>
|
<td>${(list.costPurchaseOther!0)?string("0.##")}</td>
|
||||||
<td>${(list.costOther!0)?string("0.##")}</td>
|
<td>${(list.costOther!0)?string("0.##")}</td>
|
||||||
<td>${(list.costProjectManage!0)?string("0.##")}</td>
|
<td>${(list.costProjectManage!0)?string("0.##")}</td>
|
||||||
<td>${(list.costExpropriation!0)?string("0.##")}</td>
|
<td>${(list.costExpropriation!0)?string("0.##")}</td>
|
||||||
<td>${(list.costCompanyManage!0)?string("0.##")}</td>
|
<td>${(list.costCompanyManage!0)?string("0.##")}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</#list>
|
</#list>
|
||||||
</#if>
|
</#if>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="am-tabs-bd">
|
<div class="am-tabs-bd">
|
||||||
<div class="am-tab-panel am-fade am-in" id="tab2">
|
<div class="am-tab-panel am-fade am-in" id="tab2">
|
||||||
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
|
<div class="am-scrollable-horizontal">
|
||||||
<thead>
|
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
|
||||||
<tr>
|
<thead>
|
||||||
<th class="table-title"></th>
|
<tr>
|
||||||
<th class="table-title">营业收入</th>
|
<th class="table-title">项目名称</th>
|
||||||
<th class="table-title">营业成本</th>
|
<th class="table-title">营业收入</th>
|
||||||
<th class="table-title">项目管理成本</th>
|
<th class="table-title">营业成本</th>
|
||||||
<th class="table-title">其他</th>
|
<th class="table-title">项目管理成本</th>
|
||||||
<th class="table-title">财务费用</th>
|
<th class="table-title">其他</th>
|
||||||
<th class="table-title">项目毛利</th>
|
<th class="table-title">财务费用</th>
|
||||||
<th class="table-title">项目毛利率</th>
|
<th class="table-title">项目毛利</th>
|
||||||
<th class="table-title">公司管理费用</th>
|
<th class="table-title">项目毛利率</th>
|
||||||
<th class="table-title">项目贡献利润</th>
|
<th class="table-title">公司管理费用</th>
|
||||||
<th class="table-title">项目贡献利润率</th>
|
<th class="table-title">项目贡献利润</th>
|
||||||
<th class="table-title">所得税费用</th>
|
<th class="table-title">项目贡献利润率</th>
|
||||||
<th class="table-title">项目净利润</th>
|
<th class="table-title">所得税费用</th>
|
||||||
<th class="table-title">项目净利润率</th>
|
<th class="table-title">项目净利润</th>
|
||||||
</tr>
|
<th class="table-title">项目净利润率</th>
|
||||||
</thead>
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
<#if (pager.list)?exists>
|
<#if (pager)?exists>
|
||||||
<#list pager.list as list>
|
<#list pager as list>
|
||||||
<tr>
|
<tr>
|
||||||
<td>${list.projectName!}</td>
|
<td>${list.projectName!}</td>
|
||||||
<td>${(list.incomeTotal!0)?string("0.##")}</td>
|
<td>${(list.incomeTotal!0)?string("0.##")}</td>
|
||||||
<td>${(list.costTotal!0)?string("0.##")}</td>
|
<td>${(list.costTotal2!0)?string("0.##")}</td>
|
||||||
<td>${(list.costProjectManage!0)?string("0.##")}</td>
|
<td>${(list.costProjectManage!0)?string("0.##")}</td>
|
||||||
<td>${(list.costOther!0)?string("0.##")}</td>
|
<td>${(list.costOther!0)?string("0.##")}</td>
|
||||||
<td>${(list.costExpropriation!0)?string("0.##")}</td>
|
<td>${(list.costExpropriation!0)?string("0.##")}</td>
|
||||||
<td>${(list.grossProfit!0)?string("0.##")}</td>
|
<td>${(list.grossProfit!0)?string("0.##")}</td>
|
||||||
<td>${(list.grossProfitProfitMargin!0)?string("0.##")}</td>
|
<td>${(list.grossProfitProfitMargin!0)?string("0.##")}</td>
|
||||||
<td>${(list.costCompanyManage!0)?string("0.##")}</td>
|
<td>${(list.costCompanyManage!0)?string("0.##")}</td>
|
||||||
<td>${(list.contributionProfit!0)?string("0.##")}</td>
|
<td>${(list.contributionProfit!0)?string("0.##")}</td>
|
||||||
<td>${(list.contributionProfitProfitMargin!0)?string("0.##")}</td>
|
<td>${(list.contributionProfitProfitMargin!0)?string("0.##")}</td>
|
||||||
<td>${(list.taxCost!0)?string("0.##")}</td>
|
<td>${(list.taxCost!0)?string("0.##")}</td>
|
||||||
<td>${(list.netProfit!0)?string("0.##")}</td>
|
<td>${(list.netProfit!0)?string("0.##")}</td>
|
||||||
<td>${(list.netProfitProfitMargin!0)?string("0.##")}</td>
|
<td>${(list.netProfitProfitMargin!0)?string("0.##")}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</#list>
|
</#list>
|
||||||
</#if>
|
</#if>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="am-tabs-bd">
|
<div class="am-tabs-bd">
|
||||||
<div class="am-tab-panel am-fade am-in" id="tab3">
|
<div class="am-tab-panel am-fade am-in" id="tab3">
|
||||||
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
|
<div class="am-scrollable-horizontal">
|
||||||
<thead>
|
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
|
||||||
<tr class="am-text-nowrap">
|
<thead>
|
||||||
<th class="table-title"></th>
|
<tr class="am-text-nowrap">
|
||||||
<th class="table-title">销售商品、提供劳务收到的现金</th>
|
<th class="table-title">项目名称</th>
|
||||||
<th class="table-title">收到的税费返还</th>
|
<th class="table-title">销售商品、提供劳务收到的现金</th>
|
||||||
<th class="table-title">收到的其他与经营活动有关的现金</th>
|
<th class="table-title">收到的税费返还</th>
|
||||||
<th class="table-title">购买商品、接受劳务支付的现金</th>
|
<th class="table-title">收到的其他与经营活动有关的现金</th>
|
||||||
<th class="table-title">支付的各项税费</th>
|
<th class="table-title">购买商品、接受劳务支付的现金</th>
|
||||||
<th class="table-title">支付其他与经营活动有关的现金</th>
|
<th class="table-title">支付的各项税费</th>
|
||||||
<th class="table-title">经营活动产生的现金流量净额</th>
|
<th class="table-title">支付其他与经营活动有关的现金</th>
|
||||||
<th class="table-title">投资活动现金流入</th>
|
<th class="table-title">经营活动产生的现金流量净额</th>
|
||||||
<th class="table-title">投资活动现金流出</th>
|
<th class="table-title">投资活动现金流入</th>
|
||||||
<th class="table-title">投资活动产生的现金流量净额</th>
|
<th class="table-title">投资活动现金流出</th>
|
||||||
<th class="table-title">借款资金流入</th>
|
<th class="table-title">投资活动产生的现金流量净额</th>
|
||||||
<th class="table-title">还款资金流出</th>
|
<th class="table-title">借款资金流入</th>
|
||||||
<th class="table-title">筹资活动产生的现金流量净额</th>
|
<th class="table-title">还款资金流出</th>
|
||||||
<th class="table-title">货币资金净增加额</th>
|
<th class="table-title">筹资活动产生的现金流量净额</th>
|
||||||
</tr>
|
<th class="table-title">货币资金净增加额</th>
|
||||||
</thead>
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
<#if (pager.list)?exists>
|
<#if (pager)?exists>
|
||||||
<#list pager.list as list>
|
<#list pager as list>
|
||||||
<tr>
|
<tr>
|
||||||
<td>${list.projectName!}</td>
|
<td>${list.projectName!}</td>
|
||||||
<td>${(list.saleIncomeCash!0)?string("0.##")}</td>
|
<td>${(list.saleIncomeCash!0)?string("0.##")}</td>
|
||||||
<td>${(list.taxReturn!0)?string("0.##")}</td>
|
<td>${(list.taxReturn!0)?string("0.##")}</td>
|
||||||
<td>${(list.earnestMoneyIncome!0)?string("0.##")}</td>
|
<td>${(list.earnestMoneyIncome!0)?string("0.##")}</td>
|
||||||
<td>${(list.purchaseCost!0)?string("0.##")}</td>
|
<td>${(list.purchaseCost!0)?string("0.##")}</td>
|
||||||
<td>${(list.taxCost!0)?string("0.##")}</td>
|
<td>${(list.taxCost!0)?string("0.##")}</td>
|
||||||
<td>${(list.earnestMoneyCost!0)?string("0.##")}</td>
|
<td>${(list.earnestMoneyCost!0)?string("0.##")}</td>
|
||||||
<td>${(list.netCashFlow!0)?string("0.##")}</td>
|
<td>${(list.netCashFlow!0)?string("0.##")}</td>
|
||||||
<td>${(list.cashInflowFromInvestingActivities!0)?string("0.##")}</td>
|
<td>${(list.cashInflowFromInvestingActivities!0)?string("0.##")}</td>
|
||||||
<td>${(list.cashOutflowFromInvestingActivities!0)?string("0.##")}</td>
|
<td>${(list.cashOutflowFromInvestingActivities!0)?string("0.##")}</td>
|
||||||
<td>${(list.netCashFromInvestingActivities!0)?string("0.##")}</td>
|
<td>${(list.netCashFromInvestingActivities!0)?string("0.##")}</td>
|
||||||
<td>${(list.financingCapitalInflow!0)?string("0.##")}</td>
|
<td>${(list.financingCapitalInflow!0)?string("0.##")}</td>
|
||||||
<td>${(list.financingCapitalOutflow!0)?string("0.##")}</td>
|
<td>${(list.financingCapitalOutflow!0)?string("0.##")}</td>
|
||||||
<td>${(list.financingCapitalCashflow!0)?string("0.##")}</td>
|
<td>${(list.financingCapitalCashflow!0)?string("0.##")}</td>
|
||||||
<td>${(list.netIncreaseMonetaryFunds!0)?string("0.##")}</td>
|
<td>${(list.netIncreaseMonetaryFunds!0)?string("0.##")}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</#list>
|
</#list>
|
||||||
</#if>
|
</#if>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -181,6 +187,22 @@
|
||||||
<script>
|
<script>
|
||||||
var base = "${base}";
|
var base = "${base}";
|
||||||
</script>
|
</script>
|
||||||
|
<script src="${base}/layui/layui.js"></script>
|
||||||
|
<script>
|
||||||
|
layui.use('laydate', function(){
|
||||||
|
var laydate = layui.laydate;
|
||||||
|
|
||||||
|
laydate.render({
|
||||||
|
elem: '#time',
|
||||||
|
type: 'month',
|
||||||
|
btns: ['confirm'],
|
||||||
|
trigger: 'click',
|
||||||
|
ready: function(date){
|
||||||
|
console.log(date);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</@defaultLayout.layout>
|
</@defaultLayout.layout>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,13 +4,13 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<title>绿色智慧工地管理系统</title>
|
<title>项目四算管理系统</title>
|
||||||
<meta name="description" content="这是一个 index 页面">
|
<meta name="description" content="这是一个 index 页面">
|
||||||
<meta name="keywords" content="index">
|
<meta name="keywords" content="index">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="renderer" content="webkit">
|
<meta name="renderer" content="webkit">
|
||||||
<meta http-equiv="Cache-Control" content="no-siteapp" />
|
<meta http-equiv="Cache-Control" content="no-siteapp" />
|
||||||
<meta name="apple-mobile-web-app-title" content="绿色智慧工地管理系统" />
|
<meta name="apple-mobile-web-app-title" content="项目四算管理系统" />
|
||||||
<#include "import.ftl"/>
|
<#include "import.ftl"/>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
Loading…
Reference in New Issue