diff --git a/src/main/java/cn/palmte/work/bean/SettleBean.java b/src/main/java/cn/palmte/work/bean/SettleBean.java index fb366e7..1caeb29 100644 --- a/src/main/java/cn/palmte/work/bean/SettleBean.java +++ b/src/main/java/cn/palmte/work/bean/SettleBean.java @@ -21,6 +21,21 @@ public class SettleBean { */ private BigDecimal incomeService; + /** + * 获取所有收入总额 + * + * @return + */ + public BigDecimal getIncomeTotal() { + BigDecimal incomeDevice = getIncomeDevice(); + BigDecimal incomeEngineer = getIncomeEngineer(); + BigDecimal incomeService = getIncomeService(); + if (null == incomeDevice || null == incomeEngineer || null == incomeService) { + return new BigDecimal(0); + } + return incomeDevice.add(incomeEngineer).add(incomeService); + } + //========================成本表================================ @@ -55,6 +70,28 @@ public class SettleBean { private BigDecimal costOther; + /** + * 获取所有成本总额 + * + * @return + */ + public BigDecimal getCostTotal() { + BigDecimal costPurchaseDevice = getCostPurchaseDevice(); + BigDecimal costPurchaseBuild = getCostPurchaseBuild(); + BigDecimal costPurchaseService = getCostPurchaseService(); + BigDecimal costPurchaseOther = getCostPurchaseOther(); + BigDecimal costProjectManage = getCostProjectManage(); + BigDecimal costOther = getCostOther(); + + if (null == costPurchaseDevice || null == costPurchaseBuild || null == costPurchaseService + || null == costPurchaseOther || null == costProjectManage || null == costOther) { + return new BigDecimal(0); + } + + return costPurchaseDevice.add(costPurchaseBuild).add(costPurchaseService) + .add(costPurchaseOther).add(costProjectManage).add(costOther); + } + //========================管理表================================ /** @@ -72,6 +109,18 @@ public class SettleBean { */ private BigDecimal costIncomeTax; + public BigDecimal getCostManageTotal() { + BigDecimal costExpropriation = getCostExpropriation(); + BigDecimal costCompanyManage = getCostCompanyManage(); + BigDecimal costIncomeTax = getCostIncomeTax(); + + if (null == costExpropriation || null == costCompanyManage || null == costIncomeTax) { + return new BigDecimal(0); + } + + return costExpropriation.add(costCompanyManage).add(costIncomeTax); + } + //========================利润率计算表================================ @@ -167,6 +216,38 @@ public class SettleBean { */ private BigDecimal netIncreaseMonetaryFunds; + /** + * 获取所有现金流量总额 + * @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); + } + public BigDecimal getIncomeDevice() { return incomeDevice; } diff --git a/src/main/java/cn/palmte/work/config/activiti/ActivitiConfig.java b/src/main/java/cn/palmte/work/config/activiti/ActivitiConfig.java index 513994d..3b3aa8f 100644 --- a/src/main/java/cn/palmte/work/config/activiti/ActivitiConfig.java +++ b/src/main/java/cn/palmte/work/config/activiti/ActivitiConfig.java @@ -1,5 +1,6 @@ package cn.palmte.work.config.activiti; +import org.activiti.engine.ProcessEngineConfiguration; import org.activiti.spring.SpringProcessEngineConfiguration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -32,7 +33,7 @@ public class ActivitiConfig { //true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建。(开发时常用) //create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)。(单元测试常用) //drop-create: 在activiti启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)。 - config.setDatabaseSchemaUpdate("true"); + config.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE); return config; } diff --git a/src/main/java/cn/palmte/work/controller/backend/ActTaskDefController.java b/src/main/java/cn/palmte/work/controller/backend/ActTaskDefController.java index c7c5bb6..882a093 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ActTaskDefController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ActTaskDefController.java @@ -101,6 +101,7 @@ public class ActTaskDefController extends BaseController { public String taskList(@PathVariable String procInsId, Map model) { List list = actTaskDefService.hisTaskList(procInsId); model.put("taskList", list); + model.put("procInsId", procInsId); return "/admin/act_his_task_list"; } diff --git a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java index 80d6e24..7c6b4fb 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java @@ -63,6 +63,8 @@ public class ProjectController extends BaseController { private HistoryService historyService; @Autowired private ActTaskDefService actTaskDefService; + @Autowired + private ProjectSettleService projectSettleService; /** * 项目列表 @@ -350,9 +352,11 @@ public class ProjectController extends BaseController { @RequestMapping("/detail") public String detail(@RequestParam("id") int id, Map model) { Project project = projectService.getProject(id); + String time = "2021-11"; EstimateBean estimateBean = projectEstimateService.getEstimate(project); model.put("estimateBean", estimateBean); model.put("project", project); + model.put("formerBean", projectSettleService.getFormerSettle(project, time)); BudgetBean budgetBean = projectBudgetService.getBudget(project); //预算主页面数据 model.put("budgetBean", budgetBean); @@ -387,10 +391,12 @@ public class ProjectController extends BaseController { */ @RequestMapping("/approve") public String approve(@RequestParam("id") int id, @RequestParam String listFrom, Map model) { + String time = "2021-11"; Project project = projectService.getProject(id); EstimateBean estimateBean = projectEstimateService.getEstimate(project); model.put("estimateBean", estimateBean); model.put("project", project); + model.put("formerBean", projectSettleService.getFormerSettle(project, time)); model.put("listFrom", listFrom); BudgetBean budgetBean = projectBudgetService.getBudget(project); //预算主页面数据 diff --git a/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java b/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java index 312102f..0a4c908 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java @@ -42,6 +42,7 @@ public class ProjectFinalController extends BaseController{ model.put("project", project); model.put("estimateBean", projectEstimateService.getEstimate(project)); model.put("budgetBean", projectBudgetService.getBudget(project)); + model.put("settleBean",projectFinalSevice.getSettle(project)); model.put("finalBean",new FinalBean()); //现金表 model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails)); diff --git a/src/main/java/cn/palmte/work/model/ProjectSettleCostManageRepository.java b/src/main/java/cn/palmte/work/model/ProjectSettleCostManageRepository.java index b58feb5..d6d71a1 100644 --- a/src/main/java/cn/palmte/work/model/ProjectSettleCostManageRepository.java +++ b/src/main/java/cn/palmte/work/model/ProjectSettleCostManageRepository.java @@ -16,5 +16,6 @@ public interface ProjectSettleCostManageRepository extends JpaRepository findAllByProjectIdBefore(int id, String time); - List findAllByProjectId(int id); + @Query(value = "select sum(cost_tax_exclude) from project_settle_cost_manage where project_id = ? and type = ?", nativeQuery = true) + long costTaxExcludeSum(int projectId,int type); } diff --git a/src/main/java/cn/palmte/work/model/ProjectSettleCostRepository.java b/src/main/java/cn/palmte/work/model/ProjectSettleCostRepository.java index c927d54..f73df6f 100644 --- a/src/main/java/cn/palmte/work/model/ProjectSettleCostRepository.java +++ b/src/main/java/cn/palmte/work/model/ProjectSettleCostRepository.java @@ -16,5 +16,6 @@ public interface ProjectSettleCostRepository extends JpaRepository findAllByProjectIdBefore(int id, String time); - List findAllByProjectId(int id); + @Query(value = "select sum(cost_tax_exclude) from project_settle_cost where project_id = ? and type = ?", nativeQuery = true) + long costTaxExcludeSum(int projectId,int type); } diff --git a/src/main/java/cn/palmte/work/model/ProjectSettleIncomeRepository.java b/src/main/java/cn/palmte/work/model/ProjectSettleIncomeRepository.java index 220c209..1458909 100644 --- a/src/main/java/cn/palmte/work/model/ProjectSettleIncomeRepository.java +++ b/src/main/java/cn/palmte/work/model/ProjectSettleIncomeRepository.java @@ -16,8 +16,8 @@ public interface ProjectSettleIncomeRepository extends JpaRepository findAllByProjectIdBefore(int id, String time); - @Query(value = "select * from project_settle_income where project_id = ?1 order by id desc limit 0, 1", nativeQuery = true) - ProjectSettleIncome findNewByProjectId(int id); + @Query(value = "select sum(income_tax_exclude) from project_settle_income where project_id = ? and type = ?", nativeQuery = true) + long incomeTaxExcludeSum(int projectId,int type); + - List findAllByProjectId(int id); } diff --git a/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java b/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java index ecb1aa4..708ee9f 100644 --- a/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java +++ b/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java @@ -1,9 +1,6 @@ package cn.palmte.work.service; -import cn.palmte.work.bean.BudgetBean; -import cn.palmte.work.bean.CashFlowBean; -import cn.palmte.work.bean.EstimateBean; -import cn.palmte.work.bean.FinalBean; +import cn.palmte.work.bean.*; import cn.palmte.work.model.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -35,6 +32,18 @@ public class ProjectFinalSevice { @Autowired private ProjectBudgetService projectBudgetService; + @Autowired + private ProjectSettleIncomeRepository projectSettleIncomeRepository; + + @Autowired + private ProjectSettleCostRepository projectSettleCostRepository; + + @Autowired + private ProjectSettleCostManageRepository projectSettleCostManageRepository; + + @Autowired + private ProjectSettleCashFlowRepository projectSettleCashFlowRepository; + @Transactional public void save(Project project, FinalBean finalBean) { //预算表数据 @@ -396,4 +405,68 @@ public class ProjectFinalSevice { } return finalBean; } + + public SettleBean getSettle(Project project) { + SettleBean settleBean = new SettleBean(); + long incomeDivice = projectSettleIncomeRepository.incomeTaxExcludeSum(project.getId(), ProjectSettleIncome.TYPE_DEVICE); + long incomeEngineer = projectSettleIncomeRepository.incomeTaxExcludeSum(project.getId(), ProjectSettleIncome.TYPE_ENGINEER); + long incomeService = projectSettleIncomeRepository.incomeTaxExcludeSum(project.getId(), ProjectSettleIncome.TYPE_SERVICE); + + settleBean.setIncomeDevice(new BigDecimal(incomeDivice)); + settleBean.setIncomeEngineer(new BigDecimal(incomeEngineer)); + settleBean.setIncomeService(new BigDecimal(incomeService)); + + long costDevice = projectSettleCostRepository.costTaxExcludeSum(project.getId(), ProjectSettleCost.TYPE_DEVICE); + long costBuilding = projectSettleCostRepository.costTaxExcludeSum(project.getId(), ProjectSettleCost.TYPE_BUILDING); + long costService = projectSettleCostRepository.costTaxExcludeSum(project.getId(), ProjectSettleCost.TYPE_SERVICE); + long costOther = projectSettleCostRepository.costTaxExcludeSum(project.getId(), ProjectSettleCost.TYPE_OTHER); + long costProjectManage = projectSettleCostRepository.costTaxExcludeSum(project.getId(), ProjectSettleCost.TYPE_PROJECT_MANAGE); + long costOtherOther = projectSettleCostRepository.costTaxExcludeSum(project.getId(), ProjectSettleCost.TYPE_OTHER_OTHER); + + settleBean.setCostPurchaseDevice(new BigDecimal(costDevice)); + settleBean.setCostPurchaseBuild(new BigDecimal(costBuilding)); + settleBean.setCostPurchaseService(new BigDecimal(costService)); + settleBean.setCostOther(new BigDecimal(costOther)); + settleBean.setCostProjectManage(new BigDecimal(costProjectManage)); + settleBean.setCostPurchaseOther(new BigDecimal(costOtherOther)); + + long costExpropriation = projectSettleCostManageRepository.costTaxExcludeSum(project.getId(), ProjectSettleCostManage.TYPE_EXPROPRIATION); + long costCompanyMange = projectSettleCostManageRepository.costTaxExcludeSum(project.getId(), ProjectSettleCostManage.TYPE_COMPANY_MANAGE); + long costIncomeTax = projectSettleCostManageRepository.costTaxExcludeSum(project.getId(), ProjectSettleCostManage.TYPE_INCOME_TAX); + + settleBean.setCostExpropriation(new BigDecimal(costExpropriation)); + settleBean.setCostCompanyManage(new BigDecimal(costCompanyMange)); + settleBean.setCostIncomeTax(new BigDecimal(costIncomeTax)); + + long type1 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.SALE_INCOME_CASH); + long type2 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.TAX_RETURN); + long type3 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.EARNEST_MONEY_INCOME); + long type4 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.PURCHASE_COST); + long type5 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.TAX_COST); + long type6 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.EARNEST_MONEY_COST); + long type7 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.NET_CASH_FLOW); + long type8 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.CASH_INFLOW_FROM_INVESTING_ACTIVITIES); + long type9 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.CASH_OUTFLOW_FROM_INVESTING_ACTIVITIES); + long type10 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.NET_CASH_FROM_INVESTING_ACTIVITIES); + long type11 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.FINANCING_CAPITAL_INFLOW); + long type12 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.FINANCING_CAPITAL_OUTFLOW); + long type13 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.FINANCING_CAPITAL_CASHFLOW); + long type14 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.NET_INCREASE_MONETARY_FUNDS); + + settleBean.setSaleIncomeCash(new BigDecimal(type1)); + settleBean.setTaxReturn(new BigDecimal(type2)); + settleBean.setEarnestMoneyIncome(new BigDecimal(type3)); + settleBean.setPurchaseCost(new BigDecimal(type4)); + settleBean.setTaxCost(new BigDecimal(type5)); + settleBean.setEarnestMoneyCost(new BigDecimal(type6)); + settleBean.setNetCashFlow(new BigDecimal(type7)); + settleBean.setCashInflowFromInvestingActivities(new BigDecimal(type8)); + settleBean.setCashOutflowFromInvestingActivities(new BigDecimal(type9)); + settleBean.setNetCashFromInvestingActivities(new BigDecimal(type10)); + settleBean.setFinancingCapitalInflow(new BigDecimal(type11)); + settleBean.setFinancingCapitalOutflow(new BigDecimal(type12)); + settleBean.setFinancingCapitalCashflow(new BigDecimal(type13)); + settleBean.setNetIncreaseMonetaryFunds(new BigDecimal(type14)); + return settleBean; + } } diff --git a/src/main/resources/static/assets/js/project_budget.js b/src/main/resources/static/assets/js/project_budget.js index 05f74f1..061854f 100644 --- a/src/main/resources/static/assets/js/project_budget.js +++ b/src/main/resources/static/assets/js/project_budget.js @@ -157,7 +157,7 @@ function bindChangeableInput() { * 低于阀值就返回提示信息,否则返回"" */ function verifyProjectContributionProfitRate() { - var projectContributionProfitRate = f2($("input[name='projectContributionProfitRate']").val()); + var projectContributionProfitRate = f2(inputVal("projectContributionProfitRate")); var projectContributionProfitRateThreshold = f2($("#projectContributionProfitRateThreshold").val()); if(projectContributionProfitRate
工作流程 / - 审批过程 + 审批过程和流程图
-
-
- - - - - - - - - - - - - - - - <#if (taskList)?exists> - <#list taskList as list> - - - - - - - - + +
+
+
+ +
序号任务节点处理人开始时间结束时间用时意见操作
${list_index+1!}${list.taskName!}${list.assign!}${list.startTime?datetime}<#if list.endTime??> - ${list.endTime?datetime} - ${list.duration!}${list.comments!} - - <#if !list.endTime??> - - - - - - -
+ + + + + + + + + - - - -
序号任务节点处理人开始时间结束时间用时意见
- -
- - <#if (pager.list)?exists && (pager.list?size>0) > -
- <#include "../common/common_pager.ftl"> -
- <#else> -
-

没有找到任何记录!

-
- + + + <#if (taskList)?exists> + <#list taskList as list> + + ${list_index+1!} + ${list.taskName!} + ${list.assign!} + ${list.startTime?datetime} + <#if list.endTime??> + ${list.endTime?datetime} + + ${list.duration!} + ${list.comments!} + + + + + +
+ +
+
+ +
+
+ +
- <#----> diff --git a/src/main/resources/templates/admin/act_model_list.ftl b/src/main/resources/templates/admin/act_model_list.ftl index 76e5b9a..aa68f8d 100644 --- a/src/main/resources/templates/admin/act_model_list.ftl +++ b/src/main/resources/templates/admin/act_model_list.ftl @@ -78,7 +78,7 @@ @@ -191,24 +191,33 @@ var deploy = function (id) { - var params = {id: id}; - $.ajax({ - url: '${base}/actModel/deploy', - data: params, - dataType: "json", - async: false, - success: function (data) { - layer.msg(data.msg); - } - }); + if (window.confirm('部署后请在流程定义里配置任务审批人,新发起的审批将按最新的流程定义运行,确定要部署吗? ')) { + var params = {id: id}; + $.ajax({ + url: '${base}/actModel/deploy', + data: params, + dataType: "json", + async: false, + success: function (data) { + layer.msg(data.msg); + } + }); + } } - - $(function () { - - - }); - + var design = function (id) { + layer.open({ + type: 2, + title: '', + shadeClose: true, + shade: 0.8, + area: ['90%', '90%'], + content: '${base}/activiti-editor/modeler.html?modelId==' + id, + end: function () { + location.reload(); + } + }); + }; diff --git a/src/main/resources/templates/admin/act_proc_def_list.ftl b/src/main/resources/templates/admin/act_proc_def_list.ftl index 4670920..ff15939 100644 --- a/src/main/resources/templates/admin/act_proc_def_list.ftl +++ b/src/main/resources/templates/admin/act_proc_def_list.ftl @@ -78,7 +78,7 @@ @@ -269,4 +269,15 @@ }); } + var pngView = function (id) { + layer.open({ + type: 2, + title: '', + shadeClose: true, + shade: 0.8, + area: ['90%', '60%'], + content: '${base}/actProcDef/procDefPng/' + id, + }); + }; + \ No newline at end of file diff --git a/src/main/resources/templates/admin/act_proc_ins_list.ftl b/src/main/resources/templates/admin/act_proc_ins_list.ftl index ede550a..1fde6f3 100644 --- a/src/main/resources/templates/admin/act_proc_ins_list.ftl +++ b/src/main/resources/templates/admin/act_proc_ins_list.ftl @@ -49,13 +49,6 @@ - -