发起决算

master
hanbo 2021-11-10 15:49:13 +08:00
parent f6ecfcc120
commit e63c385be1
18 changed files with 2397 additions and 3 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,34 @@
package cn.palmte.work.controller.backend;
import cn.palmte.work.model.Project;
import cn.palmte.work.service.ProjectFinalSevice;
import cn.palmte.work.service.ProjectService;
import cn.palmte.work.utils.FreeMarkerUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Map;
@Controller
@RequestMapping("/project/final")
public class ProjectFinalController extends BaseController{
@Autowired
private ProjectFinalSevice projectFinalSevice;
@Autowired
private ProjectService projectService;
@RequestMapping("/edit")
public String budget(@RequestParam("id") int id, Map<String, Object> model) {
Project project = projectService.getProject(id);
model.put("project", project);
model.put("finalBean", projectFinalSevice.getFinal(project));
//freemarker可以利用的静态方法
model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils"));
return "admin/project_final_edit";
}
}

View File

@ -6,4 +6,6 @@ import java.util.List;
public interface ProjectEstimateIncomeRepository extends JpaRepository<ProjectEstimateIncome,Integer> {
List<ProjectEstimateIncome> findAllByProjectIdEquals(int id);
List<ProjectEstimateIncome> findAllByProjectIdEqualsAndTypeEquals(int id,int type);
}

View File

@ -0,0 +1,107 @@
package cn.palmte.work.model;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.math.BigDecimal;
/**
*
*/
@Entity
@Table(name = "project_final_cash_flux")
public class ProjectFinalCashFlux {
public static final int TYPE1 = 1;//销售商品、提供劳务收到的现金
public static final int TYPE2 = 2;//收到的税费返还
public static final int TYPE3 = 3;//收到其他与经营活动有关的现金
public static final int TYPE4 = 4;//购买商品、接受劳务支付的现金
public static final int TYPE5 = 5;//支付的各项税费
public static final int TYPE6 = 6;//支付其他与经营活动有关的现金
public static final int TYPE7 = 7;//经营活动产生的现金流量净额
public static final int TYPE8 = 8;//投资活动现金流入
public static final int TYPE9 = 9;//投资活动现金流出
public static final int TYPE10 = 10;//投资活动产生的现金流量净额
public static final int TYPE11 = 11;//融资资金流入
public static final int TYPE12 = 12;//还款资金流出
public static final int TYPE13 = 13;//筹资活动产生的现金流量净额
public static final int TYPE14 = 14;//货币资金净增加额
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@GenericGenerator(name = "persistenceGenerator", strategy = "increment")
private Integer id;
@Column(name = "project_id")
private int projectId;
private int type;
/**
*
*/
@Column(name = "budget_total_cash_flux")
private BigDecimal budgetTotalCashFlux;
/**
*
*/
@Column(name = "settle_total_cash_flux")
private BigDecimal settleTotalCashFlux;
/**
*
*/
@Column(name = "final_total_cash_flux")
private BigDecimal finalTotalCashFlux;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public int getProjectId() {
return projectId;
}
public void setProjectId(int projectId) {
this.projectId = projectId;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public BigDecimal getBudgetTotalCashFlux() {
return budgetTotalCashFlux;
}
public void setBudgetTotalCashFlux(BigDecimal budgetTotalCashFlux) {
this.budgetTotalCashFlux = budgetTotalCashFlux;
}
public BigDecimal getSettleTotalCashFlux() {
return settleTotalCashFlux;
}
public void setSettleTotalCashFlux(BigDecimal settleTotalCashFlux) {
this.settleTotalCashFlux = settleTotalCashFlux;
}
public BigDecimal getFinalTotalCashFlux() {
return finalTotalCashFlux;
}
public void setFinalTotalCashFlux(BigDecimal finalTotalCashFlux) {
this.finalTotalCashFlux = finalTotalCashFlux;
}
}

View File

@ -0,0 +1,7 @@
package cn.palmte.work.model;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProjectFinalCashFluxRepository extends JpaRepository<ProjectFinalCashFlux,Integer> {
}

View File

@ -0,0 +1,125 @@
package cn.palmte.work.model;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.math.BigDecimal;
/**
*
*/
@Entity
@Table(name = "project_final_cost")
public class ProjectFinalCost {
public static final int FEE_PURCHASE = 1;
public static final int FEE_PROJECT_MANAGE = 2;
public static final int FEE_OTHER = 3;
public static final int TYPE_DEVICE = 1;
public static final int TYPE_BUILDING = 2;
public static final int TYPE_SERVICE = 3;
public static final int TYPE_OTHER = 4;
public static final int TYPE_PROJECT_MANAGE = 5;
public static final int TYPE_OTHER_OTHER = 6;
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@GenericGenerator(name = "persistenceGenerator", strategy = "increment")
private Integer id;
@Column(name = "project_id")
private int projectId;
private int fee;
private int type;
/**
*
*/
@Column(name = "estimate_total_cost")
private BigDecimal estimateTotalCost;
/**
*
*/
@Column(name = "budget_total_cost")
private BigDecimal budgetTotalCost;
/**
*
*/
@Column(name = "settle_total_cost")
private BigDecimal settleTotalCost;
/**
*
*/
@Column(name = "final_total_cost")
private BigDecimal finalTotalCost;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public int getProjectId() {
return projectId;
}
public void setProjectId(int projectId) {
this.projectId = projectId;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public int getFee() {
return fee;
}
public void setFee(int fee) {
this.fee = fee;
}
public BigDecimal getEstimateTotalCost() {
return estimateTotalCost;
}
public void setEstimateTotalCost(BigDecimal estimateTotalCost) {
this.estimateTotalCost = estimateTotalCost;
}
public BigDecimal getBudgetTotalCost() {
return budgetTotalCost;
}
public void setBudgetTotalCost(BigDecimal budgetTotalCost) {
this.budgetTotalCost = budgetTotalCost;
}
public BigDecimal getSettleTotalCost() {
return settleTotalCost;
}
public void setSettleTotalCost(BigDecimal settleTotalCost) {
this.settleTotalCost = settleTotalCost;
}
public BigDecimal getFinalTotalCost() {
return finalTotalCost;
}
public void setFinalTotalCost(BigDecimal finalTotalCost) {
this.finalTotalCost = finalTotalCost;
}
}

View File

@ -0,0 +1,109 @@
package cn.palmte.work.model;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.math.BigDecimal;
/**
*
*/
@Entity
@Table(name = "project_estimate_cost_manage")
public class ProjectFinalCostManage {
public static final int TYPE_EXPROPRIATION = 1;
public static final int TYPE_COMPANY_MANAGE = 2;
public static final int TYPE_INCOME_TAX = 3;
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@GenericGenerator(name = "persistenceGenerator", strategy = "increment")
private Integer id;
@Column(name = "project_id")
private int projectId;
private int type;
/**
*
*/
@Column(name = "estimate_total_manage_cost")
private BigDecimal estimateTotalManageCost;
/**
*
*/
@Column(name = "budget_total_manage_cost")
private BigDecimal budgetTotalManageCost;
/**
*
*/
@Column(name = "settle_total_manage_cost")
private BigDecimal settleTotalManageCost;
/**
*
*/
@Column(name = "final_total_manage_cost")
private BigDecimal finalTotalManageCost;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public int getProjectId() {
return projectId;
}
public void setProjectId(int projectId) {
this.projectId = projectId;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public BigDecimal getEstimateTotalManageCost() {
return estimateTotalManageCost;
}
public void setEstimateTotalManageCost(BigDecimal estimateTotalManageCost) {
this.estimateTotalManageCost = estimateTotalManageCost;
}
public BigDecimal getBudgetTotalManageCost() {
return budgetTotalManageCost;
}
public void setBudgetTotalManageCost(BigDecimal budgetTotalManageCost) {
this.budgetTotalManageCost = budgetTotalManageCost;
}
public BigDecimal getSettleTotalManageCost() {
return settleTotalManageCost;
}
public void setSettleTotalManageCost(BigDecimal settleTotalManageCost) {
this.settleTotalManageCost = settleTotalManageCost;
}
public BigDecimal getFinalTotalManageCost() {
return finalTotalManageCost;
}
public void setFinalTotalManageCost(BigDecimal finalTotalManageCost) {
this.finalTotalManageCost = finalTotalManageCost;
}
}

View File

@ -0,0 +1,7 @@
package cn.palmte.work.model;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProjectFinalCostManageRepository extends JpaRepository<ProjectFinalCostManage,Integer> {
}

View File

@ -0,0 +1,7 @@
package cn.palmte.work.model;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProjectFinalCostRepository extends JpaRepository<ProjectFinalCost,Integer> {
}

View File

@ -0,0 +1,110 @@
package cn.palmte.work.model;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.math.BigDecimal;
/**
*
*/
@Entity
@Table(name = "project_budget_income")
public class ProjectFinalIncome {
public static final int TYPE_DEVICE = 1;
public static final int TYPE_ENGINEER = 2;
public static final int TYPE_SERVICE = 3;
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@GenericGenerator(name = "persistenceGenerator", strategy = "increment")
private Integer id;
@Column(name = "project_id")
private int projectId;
private int type;
/**
*
*/
@Column(name = "estimate_total_income")
private BigDecimal estimateTotalIncome;
/**
*
*/
@Column(name = "budget_total_income")
private BigDecimal budgetTotalIncome;
/**
*
*/
@Column(name = "settle_total_income")
private BigDecimal settleTotalIncome;
/**
*
*/
@Column(name = "final_total_income")
private BigDecimal finalTotalIncome;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public int getProjectId() {
return projectId;
}
public void setProjectId(int projectId) {
this.projectId = projectId;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public BigDecimal getEstimateTotalIncome() {
return estimateTotalIncome;
}
public void setEstimateTotalIncome(BigDecimal estimateTotalIncome) {
this.estimateTotalIncome = estimateTotalIncome;
}
public BigDecimal getBudgetTotalIncome() {
return budgetTotalIncome;
}
public void setBudgetTotalIncome(BigDecimal budgetTotalIncome) {
this.budgetTotalIncome = budgetTotalIncome;
}
public BigDecimal getSettleTotalIncome() {
return settleTotalIncome;
}
public void setSettleTotalIncome(BigDecimal settleTotalIncome) {
this.settleTotalIncome = settleTotalIncome;
}
public BigDecimal getFinalTotalIncome() {
return finalTotalIncome;
}
public void setFinalTotalIncome(BigDecimal finalTotalIncome) {
this.finalTotalIncome = finalTotalIncome;
}
}

View File

@ -0,0 +1,7 @@
package cn.palmte.work.model;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProjectFinalIncomeReposiry extends JpaRepository<ProjectFinalIncome,Integer> {
}

View File

@ -0,0 +1,81 @@
package cn.palmte.work.model;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.math.BigDecimal;
/**
*
*/
@Entity
@Table(name = "project_final_profit_margin")
public class ProjectFinalProfitMargin {
public static final int TYPE_GROSS_PROFIT = 1;//项目毛利
public static final int TYPE_CONTRIBUTION_MARGIN = 2;//项目贡献利润
public static final int TYPE_NET_MARGIN = 3;//项目净利润
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@GenericGenerator(name = "persistenceGenerator", strategy = "increment")
private Integer id;
@Column(name = "project_id")
private int projectId;
private int type;
/**
*
*/
@Column(name = "estimate_total_profit_margin")
private BigDecimal estimateTotalProfitMargin;
/**
*
*/
@Column(name = "budget_total_profit_margin")
private BigDecimal budgetTotalProfitMargin;
/**
*
*/
@Column(name = "settle_total_profit_margin")
private BigDecimal settleTotalProfitMargin;
/**
*
*/
@Column(name = "final_total_profit_margin")
private BigDecimal finalTotalProfitMargin;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public int getProjectId() {
return projectId;
}
public void setProjectId(int projectId) {
this.projectId = projectId;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
}

View File

@ -0,0 +1,7 @@
package cn.palmte.work.model;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProjectFinalProfitMarginRepository extends JpaRepository<ProjectFinalProfitMargin,Integer> {
}

View File

@ -0,0 +1,45 @@
package cn.palmte.work.service;
import cn.palmte.work.bean.FinalBean;
import cn.palmte.work.model.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ProjectFinalSevice {
@Autowired
private ProjectFinalCostRepository projectFinalCostRepository;
@Autowired
private ProjectFinalCashFluxRepository projectFinalCashFluxRepository;
@Autowired
private ProjectFinalCostManageRepository projectFinalCostManageRepository;
@Autowired
private ProjectFinalIncomeReposiry projectFinalIncomeReposiry;
@Autowired
private ProjectEstimateIncomeRepository projectEstimateIncomeRepository;
@Autowired
private ProjectBudgetCostRepository projectBudgetCostRepository;
@Autowired
private ProjectBudgetIncomeRepository projectBudgetIncomeRepository;
public FinalBean getFinal(Project project) {
FinalBean finalBean = new FinalBean();
//收入设备类总额
//工程类总额
//服务类总额
return finalBean;
}
}

View File

@ -0,0 +1,381 @@
<#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">
<!--选项卡tabsbegin-->
<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">
<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="incomeDeviceEstimateTotal" value="${Utils.format(finalBean.incomeDeviceEstimateTotal,'0')}" required readonly title="设备类概算总额"></td>
<td><input name="incomeDeviceBudgetTotal" value="${Utils.format(finalBean.incomeDeviceBudgetTotal,'0')}" required readonly title="设备类预算总额"></td>
<td><input name="incomeDeviceSettleTotal" value="${Utils.format(finalBean.incomeDeviceSettleTotal,'0')}" required readonly title="设备类结算总额"></td>
<td><input name="incomeDeviceFinalTotal" value="${Utils.format(finalBean.incomeDeviceFinalTotal,'0')}" required title="设备类决算总额"></td>
</tr>
<tr>
<td>收入</td>
<td>工程类</td>
<td><input name="incomeEngineerEstimateTotal" value="${Utils.format(finalBean.incomeEngineerEstimateTotal,'0')}" required readonly title="工程类概算总额"></td>
<td><input name="incomeEngineerBudgetTotal" value="${Utils.format(finalBean.incomeEngineerBudgetTotal,'0')}" required readonly title="工程类预算总额"></td>
<td><input name="incomeEngineerSettleTotal" value="${Utils.format(finalBean.incomeEngineerSettleTotal,'0')}" required readonly title="工程类结算总额"></td>
<td><input name="incomeEngineerFinalTotal" value="${Utils.format(finalBean.incomeEngineerFinalTotal,'0')}" required title="工程类决算总额"></td>
</tr>
<tr>
<td>收入</td>
<td>服务类</td>
<td><input name="incomeServiceEstimateTotal" value="${Utils.format(finalBean.incomeServiceEstimateTotal,'0')}" required readonly title="服务类概算总额"></td>
<td><input name="incomeServiceBudgetTotal" value="${Utils.format(finalBean.incomeServiceBudgetTotal,'0')}" required readonly title="服务类预算总额"></td>
<td><input name="incomeServiceSettleTotal" value="${Utils.format(finalBean.incomeServiceSettleTotal,'0')}" required readonly title="服务类结算总额"></td>
<td><input name="incomeServiceFinalTotal" value="${Utils.format(finalBean.incomeServiceFinalTotal,'0')}" required title="服务类决算总额"></td>
</tr>
<tr>
<td>合计</td>
<td></td>
<td><input name="incomeEstimateTotal" readonly required title="此列累计"></td>
<td><input name="incomeBudgetTotal" readonly required title="此列累计"></td>
<td><input name="incomeSettleTotal" readonly required title="此列累计"></td>
<td><input name="incomeFinalTotal" 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="costPurchaseDeviceTaxInclude" value="${Utils.format(finalBean.costPurchaseDeviceEstimateTotal,'0')}" readonly required title="购买设备概算总额"></td>
<td><input name="costPurchaseDeviceTaxExclude" value="${Utils.format(finalBean.costPurchaseDeviceBudgetTotal,'0')}" readonly required title="购买设备预算总额"></td>
<td><input name="costPurchaseDeviceTaxInclude" value="${Utils.format(finalBean.costPurchaseDeviceSettleTotal,'0')}" readonly required title="购买设备结算总额"></td>
<td><input name="costPurchaseDeviceTaxExclude" value="${Utils.format(finalBean.costPurchaseDeviceFinalTotal,'0')}" required title="购买设备决算总额"></td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>施工</td>
<td><input name="costPurchaseBuildEstimateTotal" value="${Utils.format(finalBean.costPurchaseBuildEstimateTotal,'0')}" readonly required title="施工采购成本概算总额"></td>
<td><input name="costPurchaseBuildBudgetTotal" value="${Utils.format(finalBean.costPurchaseBuildBudgetTotal,'0')}" readonly required title="施工采购成本预算总额"></td>
<td><input name="costPurchaseBuildSettleTotal" value="${Utils.format(finalBean.costPurchaseBuildSettleTotal,'0')}" readonly required title="施工采购成本结算总额"></td>
<td><input name="costPurchaseBuildFinalTotal" value="${Utils.format(finalBean.costPurchaseBuildFinalTotal,'0')}" required title="施工采购成本决算总额"></td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>服务</td>
<td><input name="costPurchaseServiceEstimateTotal" value="${Utils.format(finalBean.costPurchaseServiceEstimateTotal,'0')}" readonly required title="服务采购成本概算总额"></td>
<td><input name="costPurchaseServiceBudgetTotal" value="${Utils.format(finalBean.costPurchaseServiceBudgetTotal,'0')}" readonly required title="服务采购成本预算总额"></td>
<td><input name="costPurchaseServiceSettleTotal" value="${Utils.format(finalBean.costPurchaseServiceSettleTotal,'0')}" readonly required title="服务采购成本结算总额"></td>
<td><input name="costPurchaseServiceFinalTotal" value="${Utils.format(finalBean.costPurchaseServiceFinalTotal,'0')}" required title="服务采购成本决算总额"></td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>其他</td>
<td><input name="costPurchaseOtherEstimateTotal" value="${Utils.format(finalBean.costPurchaseOtherEstimateTotal,'0')}" readonly required title="其他采购成本概算总额"></td>
<td><input name="costPurchaseOtherBudgetTotal" value="${Utils.format(finalBean.costPurchaseOtherBudgetTotal,'0')}" readonly required title="其他采购成本预算总额"></td>
<td><input name="costPurchaseOtherSettleTotal" value="${Utils.format(finalBean.costPurchaseOtherSettleTotal,'0')}" readonly required title="其他采购成本结算总额"></td>
<td><input name="costPurchaseOtherFinalTotal" value="${Utils.format(finalBean.costPurchaseOtherFinalTotal,'0')}" required title="其他采购成本决算总额"></td>
</tr>
<tr>
<td>成本</td>
<td>项目管理成本</td>
<td>项目管理成本</td>
<td><input name="costProjectManageEstimateTotal" value="${Utils.format(finalBean.costProjectManageEstimateTotal,'0')}" readonly required title="项目管理成本概算总额"></td>
<td><input name="costProjectManageBudgetTotal" value="${Utils.format(finalBean.costProjectManageBudgetTotal,'0')}" readonly required title="项目管理成本预算总额"></td>
<td><input name="costProjectManageSettleTotal" value="${Utils.format(finalBean.costProjectManageSettleTotal,'0')}" readonly required title="项目管理成本结算总额"></td>
<td><input name="costProjectManageFinalTotal" value="${Utils.format(finalBean.costProjectManageFinalTotal,'0')}" required title="项目管理成本决算总额"></td>
</tr>
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td><input name="costOtherEstimateTotal" value="${Utils.format(finalBean.costOtherEstimateTotal,'0')}" readonly required title="其他成本概算总额"></td>
<td><input name="costOtherBudgetTotal" value="${Utils.format(finalBean.costOtherBudgetTotal,'0')}" readonly required title="其他成本预算总额"></td>
<td><input name="costOtherSettleTotal" value="${Utils.format(finalBean.costOtherSettleTotal,'0')}" readonly required title="其他成本结算总额"></td>
<td><input name="costOtherFinalTotal" value="${Utils.format(finalBean.costOtherFinalTotal,'0')}" required title="其他成本决算总额"></td>
</tr>
<tr>
<td>合计</td>
<td></td>
<td></td>
<td><input name="costEstimateTotal" readonly required title="此列累计"></td>
<td><input name="costBudgetTotal" readonly required title="此列累计"></td>
<td><input name="costSettleTotal" readonly required title="此列累计"></td>
<td><input name="costFinalTotal" 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="costExpropriationEstimateTotal" value="${Utils.format(finalBean.costExpropriationEstimateTotal,'0')}" required readonly title="资金占用成本概算总额"></td>
<td><input name="costExpropriationBudgetTotal" value="${Utils.format(finalBean.costExpropriationBudgetTotal,'0')}" required readonly title="资金占用成本预算总额"></td>
<td><input name="costExpropriationSettleTotal" value="${Utils.format(finalBean.costExpropriationSettleTotal,'0')}" required readonly title="资金占用成本结算总额"></td>
<td><input name="costExpropriationFinalTotal" value="${Utils.format(finalBean.costExpropriationFinalTotal,'0')}" required title="资金占用成本决算总额"></td>
</tr>
<tr>
<td>公司管理费用</td>
<td></td>
<td><input name="costCompanyManageEstimateTotal" value="${Utils.format(finalBean.costCompanyManageEstimateTotal,'0')}" required readonly title="公司管理费用概算总额"></td>
<td><input name="costCompanyManageBudgetTotal" value="${Utils.format(finalBean.costCompanyManageBudgetTotal,'0')}" required readonly title="公司管理费用预算总额"></td>
<td><input name="costCompanyManageSettleTotal" value="${Utils.format(finalBean.costCompanyManageSettleTotal,'0')}" required readonly title="公司管理费用结算总额"></td>
<td><input name="costCompanyManageFinalTotal" value="${Utils.format(finalBean.costCompanyManageFinalTotal,'0')}" required title="公司管理费用决算总额"></td>
</tr>
<tr>
<td>所得税费用</td>
<td></td>
<td>/</td>
<td>/</td>
<td><input name="costIncomeTaxSettleTotal" value="${Utils.format(finalBean.costIncomeTaxSettleTotal,'0')}" required readonly title="所得税费用结算总额"></td>
<td><input name="costIncomeTaxFinalTotal" value="${Utils.format(finalBean.costIncomeTaxFinalTotal,'0')}" required title="所得税费用决算总额"></td>
</tr>
<tr>
<td>合计</td>
<td></td>
<td><input name="manageEstimateTotal" readonly required title="此列累计"></td>
<td><input name="manageBudgetTotal" readonly required title="此列累计"></td>
<td><input name="manageSettleTotal" readonly required title="此列累计"></td>
<td><input name="manageFinalTotal" 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="grossProfitEstimateTotal" value="${Utils.format(finalBean.grossProfitEstimateTotal,'0')}" readonly required title="项目毛利概算总额"></td>
<td><input name="grossProfitBudgetTotal" value="${Utils.format(finalBean.grossProfitBudgetTotal,'0')}" readonly required title="项目毛利预算总额"></td>
<td><input name="grossProfitSettleTotal" value="${Utils.format(finalBean.grossProfitSettleTotal,'0')}" readonly required title="项目毛利结算总额"></td>
<td><input name="grossProfitFinalTotal" value="${Utils.format(finalBean.grossProfitFinalTotal,'0')}" required title="项目毛利决算总额"></td>
<td><input name="grossProfitProfitMargin" value="${Utils.format(finalBean.grossProfitProfitMargin,'0')}" required readonly title="项目毛利利润率"></td>
</tr>
<tr>
<td>项目贡献利润</td>
<td><input name="contributionMarginEstimateTotal" value="${Utils.format(finalBean.contributionMarginEstimateTotal,'0')}" readonly required title="项目贡献利润概算总额"></td>
<td><input name="contributionMarginBudgetTotal" value="${Utils.format(finalBean.contributionMarginBudgetTotal,'0')}" readonly required title="项目贡献利润预算总额"></td>
<td><input name="contributionMarginSettleTotal" value="${Utils.format(finalBean.contributionMarginSettleTotal,'0')}" readonly required title="项目贡献利润结算总额"></td>
<td><input name="contributionMarginFinalTotal" value="${Utils.format(finalBean.contributionMarginFinalTotal,'0')}" required title="项目贡献利润决算总额"></td>
<td><input name="contributionMarginProfitMargin" value="${Utils.format(finalBean.contributionMarginProfitMargin,'0')}" required readonly title="项目贡献利润利润率"></td>
</tr>
<tr>
<td>项目净利润</td>
<td><input name="netMarginEstimateTotal" value="${Utils.format(finalBean.netMarginEstimateTotal,'0')}" readonly required title="项目净利润概算总额"></td>
<td><input name="netMarginBudgetTotal" value="${Utils.format(finalBean.netMarginBudgetTotal,'0')}" readonly required title="项目净利润预算总额"></td>
<td><input name="netMarginSettleTotal" value="${Utils.format(finalBean.netMarginSettleTotal,'0')}" readonly required title="项目净利润结算总额"></td>
<td><input name="netMarginFinalTotal" value="${Utils.format(finalBean.netMarginFinalTotal,'0')}" required title="项目净利润决算总额"></td>
<td><input name="netMarginProfitMargin" 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="type1BudgetTotal" value="${Utils.format(finalBean.type1BudgetTotal,'0')}" readonly required title="预算总额"></td>
<td><input name="type1SettleTotal" value="${Utils.format(finalBean.type1SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type1FinalTotal" value="${Utils.format(finalBean.type1FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>收到的税费返还</td>
<td>/</td>
<td><input name="type2SettleTotal" value="${Utils.format(finalBean.type2SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type2FinalTotal" value="${Utils.format(finalBean.type2FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>收到其他与经营活动有关的现金</td>
<td><input name="type3BudgetTotal" value="${Utils.format(finalBean.type3BudgetTotal,'0')}" readonly required title="预算总额"></td>
<td><input name="type3SettleTotal" value="${Utils.format(finalBean.type3SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type3FinalTotal" value="${Utils.format(finalBean.type3FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>购买商品、接受劳务支付的现</td>
<td><input name="type4BudgetTotal" value="${Utils.format(finalBean.type4BudgetTotal,'0')}" readonly required title="预算总额"></td>
<td><input name="type4SettleTotal" value="${Utils.format(finalBean.type4SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type4FinalTotal" value="${Utils.format(finalBean.type4FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>支付的各项税费</td>
<td>/</td>
<td><input name="type5SettleTotal" value="${Utils.format(finalBean.type5SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type5FinalTotal" value="${Utils.format(finalBean.type5FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>支付其他与经营活动有关的现金</td>
<td><input name="type6BudgetTotal" value="${Utils.format(finalBean.type6BudgetTotal,'0')}" readonly required title="预算总额"></td>
<td><input name="type6SettleTotal" value="${Utils.format(finalBean.type6SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type6FinalTotal" value="${Utils.format(finalBean.type6FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>经营活动产生的现金流量净额</td>
<td><input name="type7BudgetTotal" value="${Utils.format(finalBean.type7BudgetTotal,'0')}" readonly required title="预算总额"></td>
<td><input name="type7SettleTotal" value="${Utils.format(finalBean.type7SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type7FinalTotal" value="${Utils.format(finalBean.type7FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>投资活动现金流入</td>
<td>/</td>
<td><input name="type8SettleTotal" value="${Utils.format(finalBean.type8SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type8FinalTotal" value="${Utils.format(finalBean.type8FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>投资活动现金流出</td>
<td>/</td>
<td><input name="type9SettleTotal" value="${Utils.format(finalBean.type9SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type9FinalTotal" value="${Utils.format(finalBean.type9FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>投资活动产生的现金流量净额</td>
<td>/</td>
<td><input name="type10SettleTotal" value="${Utils.format(finalBean.type10SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type10FinalTotal" value="${Utils.format(finalBean.type10FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>融资资金流入</td>
<td><input name="type11BudgetTotal" value="${Utils.format(finalBean.type11BudgetTotal,'0')}" readonly required title="预算总额"></td>
<td><input name="type11SettleTotal" value="${Utils.format(finalBean.type11SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type11FinalTotal" value="${Utils.format(finalBean.type11FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>还款资金流出</td>
<td><input name="type12BudgetTotal" value="${Utils.format(finalBean.type12BudgetTotal,'0')}" readonly required title="预算总额"></td>
<td><input name="type12SettleTotal" value="${Utils.format(finalBean.type12SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type12FinalTotal" value="${Utils.format(finalBean.type12FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>筹资活动产生的现金流量净额</td>
<td><input name="type13BudgetTotal" value="${Utils.format(finalBean.type13BudgetTotal,'0')}" readonly required title="预算总额"></td>
<td><input name="type13SettleTotal" value="${Utils.format(finalBean.type13SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type13FinalTotal" value="${Utils.format(finalBean.type13FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>货币资金净增加额</td>
<td><input name="type14BudgetTotal" value="${Utils.format(finalBean.type14BudgetTotal,'0')}" readonly required title="预算总额"></td>
<td><input name="type14SettleTotal" value="${Utils.format(finalBean.type14SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="type14FinalTotal" value="${Utils.format(finalBean.type14FinalTotal,'0')}" required title="决算总额"></td>
</tr>
<tr>
<td>合计</td>
<td><input name="cashFluxBudgetTotal" readonly required title="此列累计"></td>
<td><input name="cashFluxSettleTotal" readonly required title="此列累计"></td>
<td><input name="cashFluxFinalTotal" readonly required title="此列累计"></td>
</tr>
</tbody>
</table>
</div>
<!--验证表单元素validate end-->
</div>
</div>
<!--选项卡tabsend-->
<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>
</div>
</form>
</div>
</div>
<script>
var base = "${base}";
</script>
<script src="${base}/assets/js/project_common.js"></script>
<script src="${base}/assets/js/project_budget.js"></script>
<script src="${base}/assets/js/project_budget_income.js"></script>
<script src="${base}/assets/js/project_budget_cost.js"></script>
<script src="${base}/assets/js/project_budget_cost_project_manage.js"></script>
<script src="${base}/assets/js/project_budget_plan.js"></script>
</@defaultLayout.layout>

View File

@ -214,6 +214,11 @@
class="am-icon-pencil-square-o"></span>填写预算表
</button>
</@shiro.hasPermission>
<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>
</div>
</div>
</td>

View File

@ -22,13 +22,13 @@
新增
</button>
</@shiro.hasPermission>
<@shiro.hasPermission name="ROLE_DELRTE">
<#--<@shiro.hasPermission name="ROLE_DELRTE">
<button type="button" id="deleteButton" disabled="disabled"
class="am-btn am-btn-default"
onclick="deleteAll('${base}/role/delete')"><span
class="am-icon-trash-o"></span> 删除
</button>
</@shiro.hasPermission>
</@shiro.hasPermission>-->
</div>
</div>
</div>

View File

@ -20,9 +20,10 @@
<div class="am-topbar-right">
<ul class="am-nav am-nav-pills am-topbar-nav admin-header-list">
<li><marquee align="left" behavior="scroll" direction="left" height="20" width="200" hspace="50" vspace="20" loop="-1" scrollamount="10" scrolldelay="100" onMouseOut="this.start()" onMouseOver="this.stop()"><a href="${base}/project/listApprove" target="mainFrame">${hasApproveProjectsMessage!""}</a></marquee></li>
<li class="am-dropdown" data-am-dropdown><span style="color: red;">${message!""}</span></li>
<li class="am-dropdown" data-am-dropdown>
<a class="am-dropdown-toggle" data-am-dropdown-toggle href="javascript:;">
<span style="color: red;">${message!""}</span><span class="am-icon-user"></span>&nbsp您好, ${userName!""}&nbsp<span class="am-icon-caret-down"></span>
<span class="am-icon-user"></span>&nbsp您好, ${userName!""}&nbsp<span class="am-icon-caret-down"></span>
</a>
<ul class="am-dropdown-content">
<li><a id="change" href="javascript:void(0)"><span class="am-icon-user"></span> 修改密码</a></li>