分月项目统计页面实现
parent
01b0f0e997
commit
80e3905180
|
@ -0,0 +1,71 @@
|
|||
package cn.palmte.work.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 主要指标数据
|
||||
*/
|
||||
@Data
|
||||
public class PrimaryIndicatorBean {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 收入--设备类
|
||||
*/
|
||||
private long incomeDevice;
|
||||
|
||||
/**
|
||||
* 收入--施工类
|
||||
*/
|
||||
private long incomeEngineer;
|
||||
|
||||
/**
|
||||
* 收入--服务类
|
||||
*/
|
||||
private long incomeService;
|
||||
|
||||
/**
|
||||
* 采购成本--设备类
|
||||
*/
|
||||
private long costPurchaseDevice;
|
||||
|
||||
/**
|
||||
* 采购成本--施工类
|
||||
*/
|
||||
private long costPurchaseBuild;
|
||||
|
||||
/**
|
||||
* 采购成本--服务类
|
||||
*/
|
||||
private long costPurchaseService;
|
||||
|
||||
/**
|
||||
* 采购成本--其他
|
||||
*/
|
||||
private long costPurchaseOther;
|
||||
|
||||
/**
|
||||
* 成本--其他
|
||||
*/
|
||||
private long costOtherOther;
|
||||
|
||||
/**
|
||||
* 成本--项目管理成本
|
||||
*/
|
||||
private long costProjectManage;
|
||||
|
||||
/**
|
||||
* 财务费用--资金占用成本
|
||||
*/
|
||||
private long costExpropriation;
|
||||
|
||||
/**
|
||||
* 公司管理费用
|
||||
*/
|
||||
private long costCompanyManage;
|
||||
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package cn.palmte.work.controller.backend;
|
||||
|
||||
import cn.palmte.work.bean.PrimaryIndicatorBean;
|
||||
import cn.palmte.work.service.StatisticsService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/statistics")
|
||||
public class StatisticsController extends BaseController{
|
||||
|
||||
@Autowired
|
||||
private StatisticsService statisticsService;
|
||||
|
||||
@RequestMapping("/month")
|
||||
public String month(Map<String, Object> model){
|
||||
List<PrimaryIndicatorBean> primaryIndicatorList = statisticsService.getPrimaryIndicator();
|
||||
model.put("primaryIndicatorList",primaryIndicatorList);
|
||||
return "admin/month_statistics";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,9 +1,14 @@
|
|||
package cn.palmte.work.model;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ProjectBudgetCostManageRepository extends JpaRepository<ProjectBudgetCostManage,Integer> {
|
||||
List<ProjectBudgetCostManage> findAllByProjectIdEquals(int id);
|
||||
|
||||
@Query(value = "select sum(cost_tax_exclude) from project_budget_cost_manage where type = ?", nativeQuery = true)
|
||||
long costTaxExcludeSum(int type);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,9 +1,17 @@
|
|||
package cn.palmte.work.model;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ProjectBudgetCostRepository extends JpaRepository<ProjectBudgetCost,Integer> {
|
||||
List<ProjectBudgetCost> findAllByProjectIdEquals(int id);
|
||||
|
||||
@Query(value = "select sum(cost_tax_include) from project_budget_cost where type = ?", nativeQuery = true)
|
||||
long costTaxIncludeSum(int type);
|
||||
|
||||
@Query(value = "select sum(cost_tax_exclude) from project_budget_cost where type = ?", nativeQuery = true)
|
||||
long costTaxExcludeSum(int type);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,9 +1,18 @@
|
|||
package cn.palmte.work.model;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ProjectBudgetIncomeRepository extends JpaRepository<ProjectBudgetIncome,Integer> {
|
||||
List<ProjectBudgetIncome> findAllByProjectIdEquals(int id);
|
||||
|
||||
@Query(value = "select sum(income_tax_include) from project_budget_income where type = ?", nativeQuery = true)
|
||||
long incomeTaxIncludeSum(int type);
|
||||
|
||||
@Query(value = "select sum(income_tax_exclude) from project_budget_income where type = ?", nativeQuery = true)
|
||||
long incomeTaxExcludeSum(int type);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,118 @@
|
|||
package cn.palmte.work.service;
|
||||
|
||||
import cn.palmte.work.bean.PrimaryIndicatorBean;
|
||||
import cn.palmte.work.model.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class StatisticsService {
|
||||
|
||||
@Autowired
|
||||
private ProjectBudgetCostRepository projectBudgetCostRepository;
|
||||
|
||||
@Autowired
|
||||
private ProjectBudgetIncomeRepository projectBudgetIncomeRepository;
|
||||
|
||||
@Autowired
|
||||
private ProjectBudgetCostManageRepository projectBudgetCostManageRepository;
|
||||
|
||||
/**
|
||||
* 分月项目统计 获取主要指标数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<PrimaryIndicatorBean> getPrimaryIndicator() {
|
||||
List<PrimaryIndicatorBean> list = new ArrayList<>();
|
||||
PrimaryIndicatorBean include = new PrimaryIndicatorBean();
|
||||
include.setTitle("预算金额(含税)");
|
||||
//收入数据
|
||||
long deviceIncomeTaxIncludeSum = projectBudgetIncomeRepository.incomeTaxIncludeSum(ProjectBudgetIncome.TYPE_DEVICE);
|
||||
long engineerIncomeTaxIncludeSum = projectBudgetIncomeRepository.incomeTaxIncludeSum(ProjectBudgetIncome.TYPE_ENGINEER);
|
||||
long serviceIncomeTaxIncludeSum = projectBudgetIncomeRepository.incomeTaxIncludeSum(ProjectBudgetIncome.TYPE_SERVICE);
|
||||
|
||||
include.setIncomeDevice(deviceIncomeTaxIncludeSum);
|
||||
include.setIncomeEngineer(engineerIncomeTaxIncludeSum);
|
||||
include.setIncomeService(serviceIncomeTaxIncludeSum);
|
||||
|
||||
//成本
|
||||
long deviceCostTaxIncludeSum = projectBudgetCostRepository.costTaxIncludeSum(ProjectBudgetCost.TYPE_DEVICE);
|
||||
long buildingCostTaxIncludeSum = projectBudgetCostRepository.costTaxIncludeSum(ProjectBudgetCost.TYPE_BUILDING);
|
||||
long serviceCostTaxIncludeSum = projectBudgetCostRepository.costTaxIncludeSum(ProjectBudgetCost.TYPE_SERVICE);
|
||||
long otherCostTaxIncludeSum = projectBudgetCostRepository.costTaxIncludeSum(ProjectBudgetCost.TYPE_OTHER);
|
||||
long projectManageCostTaxIncludeSum = projectBudgetCostRepository.costTaxIncludeSum(ProjectBudgetCost.TYPE_PROJECT_MANAGE);
|
||||
long otherOtherCostTaxIncludeSum = projectBudgetCostRepository.costTaxIncludeSum(ProjectBudgetCost.TYPE_OTHER_OTHER);
|
||||
|
||||
include.setCostPurchaseDevice(deviceCostTaxIncludeSum);
|
||||
include.setCostPurchaseBuild(buildingCostTaxIncludeSum);
|
||||
include.setCostPurchaseService(serviceCostTaxIncludeSum);
|
||||
include.setCostPurchaseOther(otherCostTaxIncludeSum);
|
||||
include.setCostProjectManage(projectManageCostTaxIncludeSum);
|
||||
include.setCostOtherOther(otherOtherCostTaxIncludeSum);
|
||||
|
||||
list.add(include);
|
||||
|
||||
PrimaryIndicatorBean exclude = new PrimaryIndicatorBean();
|
||||
exclude.setTitle("预算金额(不含税)");
|
||||
//收入数据
|
||||
long deviceIncomeTaxExcludeSum = projectBudgetIncomeRepository.incomeTaxExcludeSum(ProjectBudgetIncome.TYPE_DEVICE);
|
||||
long engineerIncomeTaxExcludeSum = projectBudgetIncomeRepository.incomeTaxExcludeSum(ProjectBudgetIncome.TYPE_ENGINEER);
|
||||
long serviceIncomeTaxExcludeSum = projectBudgetIncomeRepository.incomeTaxExcludeSum(ProjectBudgetIncome.TYPE_SERVICE);
|
||||
|
||||
exclude.setIncomeDevice(deviceIncomeTaxExcludeSum);
|
||||
exclude.setIncomeEngineer(engineerIncomeTaxExcludeSum);
|
||||
exclude.setIncomeService(serviceIncomeTaxExcludeSum);
|
||||
|
||||
//成本
|
||||
long deviceCostTaxExcludeSum = projectBudgetCostRepository.costTaxExcludeSum(ProjectBudgetCost.TYPE_DEVICE);
|
||||
long buildingCostTaxExcludeSum = projectBudgetCostRepository.costTaxExcludeSum(ProjectBudgetCost.TYPE_BUILDING);
|
||||
long serviceCostTaxExcludeSum = projectBudgetCostRepository.costTaxExcludeSum(ProjectBudgetCost.TYPE_SERVICE);
|
||||
long otherCostTaxExcludeSum = projectBudgetCostRepository.costTaxExcludeSum(ProjectBudgetCost.TYPE_OTHER);
|
||||
long projectManageCostTaxExcludeSum = projectBudgetCostRepository.costTaxExcludeSum(ProjectBudgetCost.TYPE_PROJECT_MANAGE);
|
||||
long otherOtherCostTaxExcludeSum = projectBudgetCostRepository.costTaxExcludeSum(ProjectBudgetCost.TYPE_OTHER_OTHER);
|
||||
|
||||
exclude.setCostPurchaseDevice(deviceCostTaxExcludeSum);
|
||||
exclude.setCostPurchaseBuild(buildingCostTaxExcludeSum);
|
||||
exclude.setCostPurchaseService(serviceCostTaxExcludeSum);
|
||||
exclude.setCostPurchaseOther(otherCostTaxExcludeSum);
|
||||
exclude.setCostProjectManage(projectManageCostTaxExcludeSum);
|
||||
exclude.setCostOtherOther(otherOtherCostTaxExcludeSum);
|
||||
|
||||
//管理
|
||||
long expropriationSum = projectBudgetCostManageRepository.costTaxExcludeSum(ProjectBudgetCostManage.TYPE_EXPROPRIATION);
|
||||
long companyManageSum = projectBudgetCostManageRepository.costTaxExcludeSum(ProjectBudgetCostManage.TYPE_COMPANY_MANAGE);
|
||||
|
||||
exclude.setCostExpropriation(expropriationSum);
|
||||
exclude.setCostCompanyManage(companyManageSum);
|
||||
|
||||
list.add(exclude);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分月项目统计 获取损益表数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List getIncomeStatement() {
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分月项目统计 获取现金流量表数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List getCashFlow() {
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,144 @@
|
|||
<#assign base=request.contextPath />
|
||||
<#import "../common/defaultLayout.ftl" as defaultLayout>
|
||||
<@defaultLayout.layout>
|
||||
<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>分月项目统计</small></div>
|
||||
</div>
|
||||
|
||||
<form method="post" class="am-form" id="pmsForm">
|
||||
<!--选项卡(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>
|
||||
<li><a href="#tab2">损益表</a></li>
|
||||
<li><a href="#tab3">现金流量表</a></li>
|
||||
</ul>
|
||||
<div class="am-tabs-bd">
|
||||
<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;">
|
||||
<thead>
|
||||
<tr class="am-text-nowrap">
|
||||
<td>类别</td>
|
||||
<td>收入--设备类</td>
|
||||
<td>收入--施工类</td>
|
||||
<td>收入--服务类</td>
|
||||
<td>采购成本--设备类</td>
|
||||
<td>采购成本--施工类</td>
|
||||
<td>采购成本--服务类</td>
|
||||
<td>采购成本--其他</td>
|
||||
<td>成本--其他</td>
|
||||
<td>成本--项目管理成本</td>
|
||||
<td>财务费用--资金占用成本</td>
|
||||
<td>公司管理费用</td>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<#if (primaryIndicatorList)?exists && (primaryIndicatorList?size>0)>
|
||||
<#list primaryIndicatorList as list>
|
||||
<tr>
|
||||
<td>${list.title!}</td>
|
||||
<td>${list.incomeDevice!}</td>
|
||||
<td>${list.incomeEngineer!}</td>
|
||||
<td>${list.incomeService!}</td>
|
||||
<td>${list.costPurchaseDevice!}</td>
|
||||
<td>${list.costPurchaseBuild!}</td>
|
||||
<td>${list.costPurchaseService!}</td>
|
||||
<td>${list.costPurchaseOther!}</td>
|
||||
<td>${list.costOtherOther!}</td>
|
||||
<td>${list.costProjectManage!}</td>
|
||||
<td>${list.costExpropriation!}</td>
|
||||
<td>${list.costCompanyManage!}</td>
|
||||
</tr>
|
||||
</#list>
|
||||
</#if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="am-tabs-bd">
|
||||
<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;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>/</td>
|
||||
<td>营业收入</td>
|
||||
<td>营业成本</td>
|
||||
<td>项目管理成本</td>
|
||||
<td>其他</td>
|
||||
<td>财务费用</td>
|
||||
<td>项目毛利</td>
|
||||
<td>项目毛利率</td>
|
||||
<td>公司管理费用</td>
|
||||
<td>项目贡献利润</td>
|
||||
<td>项目贡献利润率</td>
|
||||
<td>所得税费用</td>
|
||||
<td>项目净利润</td>
|
||||
<td>项目净利润率</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-tabs-bd">
|
||||
<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;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>/</td>
|
||||
<td>销售商品、提供劳务收到的现金</td>
|
||||
<td>收到的税费返还</td>
|
||||
<td>收到其他与经营活动有关的现金</td>
|
||||
<td>购买商品、接受劳务支付的现金</td>
|
||||
<td>支付的各项税费</td>
|
||||
<td>支付其他与经营活动有关的现金</td>
|
||||
<td>经营活动产生的现金流量净额</td>
|
||||
<td>投资活动现金流入</td>
|
||||
<td>投资活动现金流出</td>
|
||||
<td>投资活动产生的现金流量净额</td>
|
||||
<td>借款资金流入</td>
|
||||
<td>还款资金流出</td>
|
||||
<td>筹资活动产生的现金流量净额</td>
|
||||
<td>货币资金净增加额</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</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>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var base = "${base}";
|
||||
</script>
|
||||
</@defaultLayout.layout>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue