Merge remote-tracking branch 'origin/master'

master
xxssyyyyssxx 2021-11-16 09:06:30 +08:00
commit 0dbf746912
26 changed files with 694 additions and 278 deletions

View File

@ -21,26 +21,40 @@ public class FinalBean {
*/ */
private BigDecimal incomeServiceFinalTotal; private BigDecimal incomeServiceFinalTotal;
/**
*
*
* @return
*/
public BigDecimal getIncomeTotal() {
BigDecimal incomeDeviceFinalTotal = getIncomeDeviceFinalTotal();
BigDecimal incomeEngineerFinalTotal = getIncomeEngineerFinalTotal();
BigDecimal incomeServiceFinalTotal = getIncomeServiceFinalTotal();
if (null == incomeDeviceFinalTotal || null == incomeEngineerFinalTotal || null == incomeServiceFinalTotal) {
return new BigDecimal(0);
}
return incomeDeviceFinalTotal.add(incomeEngineerFinalTotal).add(incomeServiceFinalTotal);
}
//========================成本表================================ //========================成本表================================
/** /**
* *
*/ */
private BigDecimal costPurchaseDeviceFinalTotal; private BigDecimal costPurchaseDeviceFinalTotal;
/** /**
* *
*/ */
private BigDecimal costPurchaseBuildFinalTotal; private BigDecimal costPurchaseBuildFinalTotal;
/** /**
* *
*/ */
private BigDecimal costPurchaseServiceFinalTotal; private BigDecimal costPurchaseServiceFinalTotal;
/** /**
* *
*/ */
private BigDecimal costPurchaseOtherFinalTotal; private BigDecimal costPurchaseOtherFinalTotal;
@ -54,6 +68,28 @@ public class FinalBean {
*/ */
private BigDecimal costOtherFinalTotal; private BigDecimal costOtherFinalTotal;
/**
*
*
* @return
*/
public BigDecimal getCostTotal() {
BigDecimal costPurchaseDeviceFinalTotal = getCostPurchaseDeviceFinalTotal();
BigDecimal costPurchaseBuildFinalTotal = getCostPurchaseBuildFinalTotal();
BigDecimal costPurchaseServiceFinalTotal = getCostPurchaseServiceFinalTotal();
BigDecimal costPurchaseOtherFinalTotal = getCostPurchaseOtherFinalTotal();
BigDecimal costProjectManageFinalTotal = getCostProjectManageFinalTotal();
BigDecimal costOtherFinalTotal = getCostOtherFinalTotal();
if (null == costPurchaseDeviceFinalTotal || null == costPurchaseBuildFinalTotal || null == costPurchaseServiceFinalTotal
|| null == costPurchaseOtherFinalTotal || null == costProjectManageFinalTotal || null == costOtherFinalTotal) {
return new BigDecimal(0);
}
return costPurchaseDeviceFinalTotal.add(costPurchaseBuildFinalTotal).add(costPurchaseServiceFinalTotal)
.add(costPurchaseOtherFinalTotal).add(costProjectManageFinalTotal).add(costOtherFinalTotal);
}
//========================管理表================================ //========================管理表================================
@ -72,6 +108,23 @@ public class FinalBean {
*/ */
private BigDecimal costIncomeTaxFinalTotal; private BigDecimal costIncomeTaxFinalTotal;
/**
*
*
* @return
*/
public BigDecimal getCostManageTotal() {
BigDecimal costExpropriationFinalTotal = getCostExpropriationFinalTotal();
BigDecimal costCompanyManageFinalTotal = getCostCompanyManageFinalTotal();
BigDecimal costIncomeTaxFinalTotal = getCostIncomeTaxFinalTotal();
if (null == costExpropriationFinalTotal || null == costCompanyManageFinalTotal || null == costIncomeTaxFinalTotal) {
return new BigDecimal(0);
}
return costExpropriationFinalTotal.add(costCompanyManageFinalTotal).add(costIncomeTaxFinalTotal);
}
//========================利润率计算表================================ //========================利润率计算表================================
@ -109,11 +162,11 @@ public class FinalBean {
/** /**
* a * a
* */ */
private BigDecimal saleIncomeCash; private BigDecimal saleIncomeCash;
/** /**
* b * b
* */ */
private BigDecimal taxReturn; private BigDecimal taxReturn;
/** /**
* c * c
@ -128,7 +181,7 @@ public class FinalBean {
*/ */
private BigDecimal taxCost; private BigDecimal taxCost;
/** /**
*f * f
*/ */
private BigDecimal earnestMoneyCost; private BigDecimal earnestMoneyCost;
/** /**
@ -157,7 +210,7 @@ public class FinalBean {
*/ */
private BigDecimal financingCapitalOutflow; private BigDecimal financingCapitalOutflow;
/** /**
*m * m
* m=k-l * m=k-l
*/ */
private BigDecimal financingCapitalCashflow; private BigDecimal financingCapitalCashflow;
@ -167,6 +220,39 @@ public class FinalBean {
*/ */
private BigDecimal netIncreaseMonetaryFunds; 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 getIncomeDeviceFinalTotal() { public BigDecimal getIncomeDeviceFinalTotal() {
return incomeDeviceFinalTotal; return incomeDeviceFinalTotal;
} }

View File

@ -94,7 +94,7 @@ public class ActProcInsController extends BaseController {
variables.put(ActConstant.START_PROCESS_USERID, InterfaceUtil.getAdminId()); variables.put(ActConstant.START_PROCESS_USERID, InterfaceUtil.getAdminId());
String procInsId = null; String procInsId = null;
try { try {
procInsId = actProcInsService.startProcessInstance(procDefKey, variables); procInsId = actProcInsService.startProcessInstance(procDefKey, "", variables);
} catch (Exception e) { } catch (Exception e) {
logger.error("", e); logger.error("", e);
return ResponseMsg.buildFailedMsg("流程启动失败:" + e.getMessage()); return ResponseMsg.buildFailedMsg("流程启动失败:" + e.getMessage());

View File

@ -4,7 +4,9 @@ import cn.palmte.work.bean.*;
import cn.palmte.work.model.*; import cn.palmte.work.model.*;
import cn.palmte.work.service.ProjectBudgetService; import cn.palmte.work.service.ProjectBudgetService;
import cn.palmte.work.service.ProjectEstimateService; import cn.palmte.work.service.ProjectEstimateService;
import cn.palmte.work.service.ProjectFinalSevice;
import cn.palmte.work.service.ProjectService; import cn.palmte.work.service.ProjectService;
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;
import cn.palmte.work.utils.Utils; import cn.palmte.work.utils.Utils;
@ -19,10 +21,7 @@ import org.springframework.format.datetime.DateFormatter;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import top.jfunc.common.db.bean.Page;
import top.jfunc.common.utils.CollectionUtil;
import javax.persistence.criteria.CriteriaBuilder;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
@ -48,6 +47,14 @@ public class ProjectController extends BaseController {
private ProjectEstimateService projectEstimateService; private ProjectEstimateService projectEstimateService;
@Autowired @Autowired
private ProjectBudgetService projectBudgetService; private ProjectBudgetService projectBudgetService;
@Autowired
private ProjectTaskRecordService projectTaskRecordService;
@Autowired
private ActProcInsService actProcInsService;
@Autowired
private ProjectInstanceRelationRepository projectInstanceRelationRepository;
@Autowired
private ProjectFinalSevice projectFinalSevice;
/** /**
* *
@ -334,9 +341,11 @@ public class ProjectController extends BaseController {
model.put("underwrittenPlanStatistic", projectBudgetService.getProjectUnderwrittenPlanStatisticBean(projectBudgetPlanDetails)); model.put("underwrittenPlanStatistic", projectBudgetService.getProjectUnderwrittenPlanStatisticBean(projectBudgetPlanDetails));
//现金表 //现金表
model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails)); model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails));
model.put("finalBean", new FinalBean()); model.put("finalBean", projectFinalSevice.getFinal(project));
//freemarker可以利用的静态方法 //freemarker可以利用的静态方法
model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils")); model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils"));
List<ProjectTaskRecord> list = projectTaskRecordService.list(id);
model.put("taskRecords", list);
return "admin/project_detail"; return "admin/project_detail";
} }
@ -370,12 +379,56 @@ public class ProjectController extends BaseController {
model.put("underwrittenPlanStatistic", projectBudgetService.getProjectUnderwrittenPlanStatisticBean(projectBudgetPlanDetails)); model.put("underwrittenPlanStatistic", projectBudgetService.getProjectUnderwrittenPlanStatisticBean(projectBudgetPlanDetails));
//现金表 //现金表
model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails)); model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails));
model.put("finalBean", new FinalBean()); model.put("finalBean", projectFinalSevice.getFinal(project));
//freemarker可以利用的静态方法 //freemarker可以利用的静态方法
model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils")); model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils"));
return "admin/project_approve"; return "admin/project_approve";
} }
/**
*
* @param projectId
* @param json
* @return
*/
@ResponseBody
@RequestMapping("/completeTask/{projectId}")
public ResponseMsg completeTask(@PathVariable int projectId, @RequestBody String json) {
return projectService.completeTask(projectId, json);
}
/**
*
* @param projectId
* @param model
* @return
*/
@RequestMapping("/taskRecords/{projectId}")
public String taskRecords(@PathVariable int projectId, Map<String, Object> model) {
model.put("projectId", projectId);
List<ProjectTaskRecord> list = projectTaskRecordService.list(projectId);
if (list != null && !list.isEmpty()) {
model.put("list", list);
}
return "admin/project_task_record_list";
}
/**
*
*
* @param response
* @param projectId
* @throws Exception
*/
@RequestMapping("/procInsPng/{projectId}")
public void png(HttpServletResponse response, @PathVariable("projectId") int projectId) throws Exception {
List<ProjectInstanceRelation> relationList = projectInstanceRelationRepository.findByProjectIdOrderByCreateTimeDesc(projectId);
if (relationList == null || relationList.isEmpty()) {
return;
}
actProcInsService.createProcInsPng(response, relationList.get(0).getProcessInsId());
}
@InitBinder @InitBinder
public void initBinder(WebDataBinder webDataBinder) { public void initBinder(WebDataBinder webDataBinder) {

View File

@ -52,9 +52,9 @@ public class ProjectFinalController extends BaseController{
} }
@RequestMapping("/save") @RequestMapping("/save")
public void 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);
return "redirect:/project/list";
} }
} }

View File

@ -2,6 +2,10 @@ package cn.palmte.work.model;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface ProjectFinalCashFluxRepository extends JpaRepository<ProjectFinalCashFlux,Integer> { public interface ProjectFinalCashFluxRepository extends JpaRepository<ProjectFinalCashFlux,Integer> {
List<ProjectFinalCashFlux> findByProjectIdEquals(int id);
} }

View File

@ -2,6 +2,10 @@ package cn.palmte.work.model;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface ProjectFinalCostManageRepository extends JpaRepository<ProjectFinalCostManage,Integer> { public interface ProjectFinalCostManageRepository extends JpaRepository<ProjectFinalCostManage,Integer> {
List<ProjectFinalCostManage> findByProjectIdEquals(int id);
} }

View File

@ -2,6 +2,10 @@ package cn.palmte.work.model;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface ProjectFinalCostRepository extends JpaRepository<ProjectFinalCost,Integer> { public interface ProjectFinalCostRepository extends JpaRepository<ProjectFinalCost,Integer> {
List<ProjectFinalCost> findByProjectIdEquals(int id);
} }

View File

@ -2,6 +2,8 @@ package cn.palmte.work.model;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
public interface ProjectFinalIncomeReposiry extends JpaRepository<ProjectFinalIncome,Integer> { import java.util.List;
public interface ProjectFinalIncomeReposiry extends JpaRepository<ProjectFinalIncome,Integer> {
List<ProjectFinalIncome> findByProjectIdEquals(int id);
} }

View File

@ -9,4 +9,6 @@ public interface ProjectInstanceRelationRepository extends JpaRepository<Project
* idid * idid
*/ */
List<ProjectInstanceRelation> findAllByProjectIdEqualsAndProcessTypeEqualsOrderByCreateTimeDesc(int projectId, String processType); List<ProjectInstanceRelation> findAllByProjectIdEqualsAndProcessTypeEqualsOrderByCreateTimeDesc(int projectId, String processType);
List<ProjectInstanceRelation> findByProjectIdOrderByCreateTimeDesc(int projectId);
} }

View File

@ -1,13 +1,8 @@
package cn.palmte.work.service; package cn.palmte.work.service;
import cn.palmte.work.bean.ApproveStatusEnum;
import cn.palmte.work.config.activiti.ActConstant;
import cn.palmte.work.utils.ActUtil;
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.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
@ -19,27 +14,15 @@ import java.util.*;
@Service @Service
public class ActCallbackScript { public class ActCallbackScript {
private static final Logger logger = LoggerFactory.getLogger(ActCallbackScript.class); private static final Logger logger = LoggerFactory.getLogger(ActCallbackScript.class);
@Autowired
private ActUtil actUtil;
@Autowired
private ProjectInstanceService projectInstanceService;
/** /**
* *
* *
* @param map * @param map
*/ */
public void updateApproveStatus(Map map) { public void demo(Map map) {
logger.info("--- updateApproveStatus--- : {} ", map); logger.info("--- updateApproveStatus--- : {} ", map);
//String startUserId = (String) map.get(ActConstant.START_PROCESS_USERID);
String procInsId = (String) map.get(ActConstant.PROC_INS_ID);
String procDefKey = (String) map.get(ActConstant.PROC_DEF_KEY);
logger.info(" updateApproveStatus procInsId:{}, procDefKey:{}", procInsId, procDefKey);
int projectId = actUtil.getProjectId(procInsId);
if (projectId > 0) {
projectInstanceService.updateApproveStatus(projectId, ApproveStatusEnum.APPROVAL_PASSED, procDefKey);
}
} }

View File

@ -2,9 +2,13 @@ package cn.palmte.work.service;
import cn.palmte.work.config.activiti.ActConstant; import cn.palmte.work.config.activiti.ActConstant;
import cn.palmte.work.utils.ActUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.runtime.ProcessInstanceQuery;
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;
@ -30,14 +34,20 @@ public class ActListenerService {
@Autowired @Autowired
private ProjectInstanceService projectInstanceService; private ProjectInstanceService projectInstanceService;
@Autowired
private RuntimeService runtimeService;
@Autowired
private ActUtil actUtil;
/** /**
* *
* *
* @param delegateTask * @param delegateTask
* @throws Exception * @throws Exception
*/ */
public void create(DelegateTask delegateTask) throws Exception { public void create(DelegateTask delegateTask) throws Exception {
logger.info("--- {}", JSONObject.toJSONString(delegateTask)); logger.info("--节点创建后监听-- name:{}, {}", delegateTask.getName(), JSONObject.toJSONString(delegateTask));
String procDefId = delegateTask.getProcessDefinitionId(); String procDefId = delegateTask.getProcessDefinitionId();
String procInsId = delegateTask.getProcessInstanceId(); String procInsId = delegateTask.getProcessInstanceId();
@ -45,41 +55,53 @@ public class ActListenerService {
List<String> candidateUsers = actTaskDefService.findCandidateUsers(procDefId, procInsId, taskDefKey); List<String> candidateUsers = actTaskDefService.findCandidateUsers(procDefId, procInsId, taskDefKey);
logger.info("addCandidateUsers : {}", candidateUsers); logger.info("addCandidateUsers : {}", candidateUsers);
ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery();
Object projectIdObj = delegateTask.getVariable(ActConstant.KEY_PROJECT_ID); List<ProcessInstance> list = processInstanceQuery.list();
logger.info("projectIdObj : {}", projectIdObj); System.out.println(list);
ProcessInstance processInstance = processInstanceQuery.processInstanceId(delegateTask.getProcessInstanceId()).singleResult();
if (candidateUsers != null && !candidateUsers.isEmpty() && projectIdObj != null) { if (actUtil.isProjectProcessIns(processInstance)) {
try { updateProjectApprover(candidateUsers, processInstance);
int adminId = Integer.parseInt(candidateUsers.get(0));
projectInstanceService.updateApprover((Integer) projectIdObj, adminId);
} catch (Exception e) {
logger.error("", e);
}
} }
delegateTask.addCandidateUsers(candidateUsers); delegateTask.addCandidateUsers(candidateUsers);
} }
/*public void multiTaskcreate(DelegateTask delegateTask) throws Exception { /**
logger.info("--- {}", JSONObject.toJSONString(delegateTask)); *
*
String procDefId = delegateTask.getProcessDefinitionId(); * @param delegateExecution
String procInsId = delegateTask.getProcessInstanceId(); * @throws Exception
String taskDefKey = delegateTask.getTaskDefinitionKey(); */
Set<String> candidateUsers = actTaskDefService.findCandidateUsers(procDefId, procInsId, taskDefKey); public List<String> getMultiCandidateUsers(DelegateExecution delegateExecution) throws Exception {
logger.info("addCandidateUsers : {}", candidateUsers); logger.info("--多实例任务查询办理人-- eventName:{}, {}", delegateExecution.getEventName(), delegateExecution);
delegateTask.addCandidateUsers(candidateUsers);
}*/
public List<String> multipleInstanceTask(DelegateExecution delegateExecution) throws Exception {
String procInsId = delegateExecution.getProcessInstanceId(); String procInsId = delegateExecution.getProcessInstanceId();
String procDefId = delegateExecution.getProcessDefinitionId(); String procDefId = delegateExecution.getProcessDefinitionId();
String taskDefKey = delegateExecution.getCurrentActivityId(); String taskDefKey = delegateExecution.getCurrentActivityId();
return actTaskDefService.findCandidateUsers(procDefId, procInsId, taskDefKey); List<String> candidateUsers = actTaskDefService.findCandidateUsers(procDefId, procInsId, taskDefKey);
logger.info("--getMultiCandidateUsers-- {}", candidateUsers);
return candidateUsers;
} }
/**
*
*
* @param candidateUsers
* @param processInstance
*/
private void updateProjectApprover(List<String> candidateUsers, ProcessInstance processInstance) {
String businessKey = processInstance.getBusinessKey();
logger.info("businessKey : {}", businessKey);
if (candidateUsers != null && !candidateUsers.isEmpty() && businessKey != null) {
try {
int adminId = Integer.parseInt(candidateUsers.get(0));
projectInstanceService.updateApprover(Integer.parseInt(businessKey), adminId);
} catch (Exception e) {
logger.error("", e);
}
}
}
} }

View File

@ -114,6 +114,7 @@ public class ActModelService {
BpmnJsonConverter jsonConverter = new BpmnJsonConverter(); BpmnJsonConverter jsonConverter = new BpmnJsonConverter();
BpmnModel model = jsonConverter.convertToBpmnModel(modelNode); BpmnModel model = jsonConverter.convertToBpmnModel(modelNode);
//任务创建后监听器
ActivitiListener activitiListener = new ActivitiListener(); ActivitiListener activitiListener = new ActivitiListener();
activitiListener.setEvent(TaskListener.EVENTNAME_CREATE); activitiListener.setEvent(TaskListener.EVENTNAME_CREATE);
activitiListener.setImplementation("${actListenerService.create(task)}"); activitiListener.setImplementation("${actListenerService.create(task)}");
@ -135,20 +136,25 @@ public class ActModelService {
taskDef = new ActTaskDef(); taskDef = new ActTaskDef();
taskDef.setTaskName(element.getName()); taskDef.setTaskName(element.getName());
taskDef.setTaskKey(element.getId()); taskDef.setTaskKey(element.getId());
MultiInstanceLoopCharacteristics loopCharacteristics = userTaskElement.getLoopCharacteristics(); MultiInstanceLoopCharacteristics loopCharacteristics = userTaskElement.getLoopCharacteristics();
if (loopCharacteristics != null) { if (loopCharacteristics != null) { //多实列
taskDef.setTaskType(ActConstant.TASK_TYPE_SINGE); loopCharacteristics.setInputDataItem("${actListenerService.getMultiCandidateUsers(execution)}");
loopCharacteristics.setInputDataItem("${actListenerService.multipleInstanceTask(execution)}");
loopCharacteristics.setElementVariable("assignee"); loopCharacteristics.setElementVariable("assignee");
userTaskElement.setAssignee("${assignee}"); userTaskElement.setAssignee("${assignee}");
taskDef.setTaskType(ActConstant.TASK_TYPE_MULTI);
}else { }else {
userTaskElement.setTaskListeners(activitiListenerList); userTaskElement.setTaskListeners(activitiListenerList);
taskDef.setTaskType(ActConstant.TASK_TYPE_SINGE);
} }
if (i == 1) { if (i == 1) {//画流程图时,要保证第一个用户任务一定要先画
taskDef.setTaskIndex(ActConstant.TASK_INDEX_FIRST_USER_TASK); taskDef.setTaskIndex(ActConstant.TASK_INDEX_FIRST_USER_TASK);
first = taskDef; first = taskDef;
} }
taskList.add(taskDef); taskList.add(taskDef);
} }
i ++; i ++;

View File

@ -2,6 +2,7 @@ package cn.palmte.work.service;
import cn.palmte.work.bean.ApproveStatusEnum; import cn.palmte.work.bean.ApproveStatusEnum;
import cn.palmte.work.config.activiti.ActConstant;
import cn.palmte.work.model.ActTaskDefRepository; import cn.palmte.work.model.ActTaskDefRepository;
import cn.palmte.work.pojo.ActProcIns; import cn.palmte.work.pojo.ActProcIns;
import cn.palmte.work.utils.ActUtil; import cn.palmte.work.utils.ActUtil;
@ -71,7 +72,7 @@ public class ActProcInsService {
* @param variables * @param variables
* @return * @return
*/ */
public String startProcessInstance(String procDefKey, Map<String, Object> variables) throws Exception { public String startProcessInstance(String procDefKey, String businessKey, Map<String, Object> variables) throws Exception {
List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().processDefinitionKey(procDefKey).active().orderByProcessDefinitionVersion().desc().list(); List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().processDefinitionKey(procDefKey).active().orderByProcessDefinitionVersion().desc().list();
if (list == null || list.isEmpty()) { if (list == null || list.isEmpty()) {
throw new Exception("procDefKey(" + procDefKey + ")未定义"); throw new Exception("procDefKey(" + procDefKey + ")未定义");
@ -80,8 +81,10 @@ public class ActProcInsService {
//取最新版本的流程定义进行启动流程实列 //取最新版本的流程定义进行启动流程实列
ProcessDefinition processDefinition = list.get(0); ProcessDefinition processDefinition = list.get(0);
String adminId = InterfaceUtil.getAdminId() + "";
variables.put(ActConstant.START_PROCESS_USERID, adminId);
//启动流程 //启动流程
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId(), variables); ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId(), businessKey, variables);
String procInsId = processInstance.getProcessInstanceId(); String procInsId = processInstance.getProcessInstanceId();
Task task = taskService.createTaskQuery().processInstanceId(procInsId).singleResult(); Task task = taskService.createTaskQuery().processInstanceId(procInsId).singleResult();
@ -90,18 +93,18 @@ public class ActProcInsService {
} }
//设置发起人为办理人 然后完成任务 任务转入下一个审批节点 //设置发起人为办理人 然后完成任务 任务转入下一个审批节点
String assignee = InterfaceUtil.getAdminId() + ""; task.setAssignee(adminId);
task.setAssignee(assignee);
String taskId = task.getId(); String taskId = task.getId();
String comment = "提交" + processDefinition.getName(); String comment = "提交" + processDefinition.getName();
Authentication.setAuthenticatedUserId(assignee); Authentication.setAuthenticatedUserId(adminId);
taskService.addComment(taskId, procInsId, comment); taskService.addComment(taskId, procInsId, comment);
taskService.complete(taskId); taskService.complete(taskId);
actTaskDefRepository.updateHiTaskAssign(assignee, procInsId, taskId);
actTaskDefRepository.updateHiActAssign(assignee, procInsId, taskId);
projectTaskRecordService.saveTaskRecord(task, ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus(), comment); if (actUtil.isProjectProcessIns(processInstance)) {
projectTaskRecordService.saveTaskRecord(Integer.parseInt(processInstance.getBusinessKey()),
task, ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus(), comment);
}
return processInstance.getId(); return processInstance.getId();
} }

View File

@ -11,6 +11,7 @@ import com.alibaba.fastjson.JSONObject;
import org.activiti.engine.*; import org.activiti.engine.*;
import org.activiti.engine.impl.identity.Authentication; import org.activiti.engine.impl.identity.Authentication;
import org.activiti.engine.impl.persistence.entity.TaskEntity; import org.activiti.engine.impl.persistence.entity.TaskEntity;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -42,6 +43,8 @@ public class ActTaskDefService {
private ActUtil actUtil; private ActUtil actUtil;
@Autowired @Autowired
private ProjectInstanceService projectInstanceService; private ProjectInstanceService projectInstanceService;
@Autowired
private RuntimeService runtimeService;
/** /**
@ -63,22 +66,22 @@ public class ActTaskDefService {
Authentication.setAuthenticatedUserId(userId); Authentication.setAuthenticatedUserId(userId);
taskService.addComment(taskId, procInsId, message); taskService.addComment(taskId, procInsId, message);
actTaskDefRepository.updateHiTaskAssign(userId, procInsId, taskId);
actTaskDefRepository.updateHiActAssign(userId, procInsId, taskId);
Task currentTask = taskService.createTaskQuery().taskId(taskId).singleResult(); Task currentTask = taskService.createTaskQuery().taskId(taskId).singleResult();
ActTaskDef actTaskDef = findFirstByProcDefIdAndTaskKey(currentTask.getProcessDefinitionId(), currentTask.getTaskDefinitionKey()); ActTaskDef actTaskDef = findFirstByProcDefIdAndTaskKey(currentTask.getProcessDefinitionId(), currentTask.getTaskDefinitionKey());
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(procInsId).singleResult();
taskService.setAssignee(taskId, userId);
if (ActConstant.TASK_TYPE_SINGE == actTaskDef.getTaskType()) { if (ActConstant.TASK_TYPE_SINGE == actTaskDef.getTaskType()) {
//或签处理 handleSinge(processInstance, taskId, type, actTaskDef);
handleSinge(taskId, procInsId, type, userId, actTaskDef);
} else if (ActConstant.TASK_TYPE_MULTI == actTaskDef.getTaskType()) { } else if (ActConstant.TASK_TYPE_MULTI == actTaskDef.getTaskType()) {
//会签处理 //多实列 会签处理
handleMulti(taskId, procInsId, type, userId, actTaskDef); handleMulti(processInstance, taskId, type, actTaskDef);
} }
//保存审批记录 if (actUtil.isProjectProcessIns(processInstance)) {
projectTaskRecordService.saveTaskRecord(currentTask, type, message); //保存审批记录
projectTaskRecordService.saveTaskRecord(Integer.parseInt(processInstance.getBusinessKey()), currentTask, type, message);
}
} }
@ -95,9 +98,9 @@ public class ActTaskDefService {
List<String> assignUserList; List<String> assignUserList;
for (Task task : taskList) { for (Task task : taskList) {
assignUserList = actUtil.getAssignUserList(task.getId()); assignUserList = actUtil.getAssignUserList(task.getId());
if (assignUserList.contains(String.valueOf(adminId))) { //if (assignUserList.contains(String.valueOf(adminId))) {
completeTask(task.getId(), procInsId, comment, type); completeTask(task.getId(), procInsId, comment, type);
} //}
} }
} }
@ -105,27 +108,24 @@ public class ActTaskDefService {
* *
* *
* @param taskId * @param taskId
* @param procInsId * @param processInstance
* @param type * @param type
* @param userId
* @param actTaskDef * @param actTaskDef
*/ */
private void handleMulti(String taskId, String procInsId, int type, String userId, ActTaskDef actTaskDef) { private void handleMulti(ProcessInstance processInstance, String taskId, int type, ActTaskDef actTaskDef) {
/* Double instanceCount = Double.parseDouble(ActUtil.filterNullToZero(taskService.getVariable(taskId, ActConstant.NUMBER_OF_INSTANCES))); //会签任务总数
Double instanceActiveCount = Double.parseDouble(ActUtil.filterNullToZero(taskService.getVariable(taskId, ActConstant.NUMBER_OF_ACTIVE_INSTANCES))); //活动的会签任务数
Double instanceCompleteCount = Double.parseDouble(ActUtil.filterNullToZero(taskService.getVariable(taskId, ActConstant.NUMBER_OF_COMPLETED_INSTANCES))); //完成会签任务数*/
if (ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == type) { if (ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == type) {
//一个人驳回 整个任务节点驳回 //一个人驳回 整个任务节点驳回
List<Task> taskList = taskService.createTaskQuery().processInstanceId(procInsId).list(); List<Task> taskList = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list();
for (int i = 0; i < taskList.size(); i++) { for (int i = 0; i < taskList.size(); i++) {
TaskEntity taskEntity = (TaskEntity) taskList.get(i); TaskEntity taskEntity = (TaskEntity) taskList.get(i);
if (!taskId.equals(taskEntity.getId())) { if (!taskId.equals(taskEntity.getId())) {
taskEntity.setProcessInstanceId(null); /* taskEntity.setProcessInstanceId(null);
taskEntity.setExecutionId(null); taskEntity.setExecutionId(null);
taskService.saveTask(taskEntity); taskService.saveTask(taskEntity);*/
taskService.addComment(taskEntity.getId(), procInsId, "会签驳回,任务失效");
taskService.deleteTask(taskEntity.getId(), false); // 不删除历史记录 taskService.addComment(taskEntity.getId(), processInstance.getId(), "会签驳回,任务自动失效");
taskService.complete(taskEntity.getId());
//taskService.deleteTask(taskEntity.getId(), false); // 不删除历史记录
} }
} }
@ -141,25 +141,28 @@ public class ActTaskDefService {
* *
* *
* @param taskId * @param taskId
* @param procInsId * @param processInstance
* @param type * @param type
* @param userId
* @param actTaskDef * @param actTaskDef
*/ */
private void handleSinge(String taskId, String procInsId, int type, String userId, ActTaskDef actTaskDef) { private void handleSinge(ProcessInstance processInstance, String taskId, int type, ActTaskDef actTaskDef) {
String procDefKey = actTaskDef.getProcDefKey();
if (ApproveStatusEnum.APPROVAL_PASSED.getApproveStatus() == type) { if (ApproveStatusEnum.APPROVAL_PASSED.getApproveStatus() == type) {
//审批通过 //审批通过
taskService.setAssignee(taskId, userId);
taskService.complete(taskId); taskService.complete(taskId);
//执行配置的审批通过脚本 //执行配置的审批通过脚本
int endScript = actTaskDef.getEndScript(); int endScript = actTaskDef.getEndScript();
if (endScript != 0) { if (endScript != 0) {
actUtil.invokeEventScript(endScript, procInsId, actTaskDef); actUtil.invokeEventScript(endScript, processInstance.getId(), actTaskDef);
} else { } else {
logger.info("未配置审批通过脚本 task:{}", actTaskDef.getTaskName()); logger.info("未配置审批通过脚本 task:{}", actTaskDef.getTaskName());
} }
if (actUtil.isProjectProcessIns(procDefKey)) {
updateProjectPassed(processInstance, actTaskDef, procDefKey);
}
} else if (ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == type) { } else if (ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == type) {
//驳回 //驳回
String rollbackTaskKey = actTaskDef.getRollbackTaskKey(); String rollbackTaskKey = actTaskDef.getRollbackTaskKey();
@ -168,19 +171,31 @@ public class ActTaskDefService {
//执行配置的驳回脚本 //执行配置的驳回脚本
int rollbackScript = actTaskDef.getRollbackScript(); int rollbackScript = actTaskDef.getRollbackScript();
if (rollbackScript != 0) { if (rollbackScript != 0) {
actUtil.invokeEventScript(rollbackScript, procInsId, actTaskDef); actUtil.invokeEventScript(rollbackScript, processInstance.getId(), actTaskDef);
} else { } else {
logger.info("未配置驳回脚本 task:{}", actTaskDef.getTaskName()); logger.info("未配置驳回脚本 task:{}", actTaskDef.getTaskName());
} }
int projectId = actUtil.getProjectId(procInsId); if (actUtil.isProjectProcessIns(procDefKey)) {
if (projectId > 0) { projectInstanceService.updateApproveStatus(Integer.parseInt(processInstance.getBusinessKey()), ApproveStatusEnum.APPROVAL_UNPASS, procDefKey);
projectInstanceService.updateApproveStatus(projectId, ApproveStatusEnum.APPROVAL_UNPASS, actTaskDef.getProcDefKey());
} }
} }
} }
private void updateProjectPassed(ProcessInstance processInstance, ActTaskDef actTaskDef, String procDefKey) {
if (ActConstant.PROCESS_DEFKEY_FINAL.equals(procDefKey)) {
if ("财务总监".equals(actTaskDef.getTaskName())) {
projectInstanceService.updateApproveStatus(Integer.parseInt(processInstance.getBusinessKey()), ApproveStatusEnum.APPROVAL_PASSED, procDefKey);
}
} else {
if ("执行董事".equals(actTaskDef.getTaskName())) {
projectInstanceService.updateApproveStatus(Integer.parseInt(processInstance.getBusinessKey()), ApproveStatusEnum.APPROVAL_PASSED, procDefKey);
}
}
}
/** /**
* *
* *

View File

@ -7,6 +7,8 @@ import cn.palmte.work.bean.FinalBean;
import cn.palmte.work.model.*; import cn.palmte.work.model.*;
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 top.jfunc.common.utils.CollectionUtil;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
@ -33,6 +35,7 @@ public class ProjectFinalSevice {
@Autowired @Autowired
private ProjectBudgetService projectBudgetService; private ProjectBudgetService projectBudgetService;
@Transactional
public void save(Project project, FinalBean finalBean) { public void save(Project project, FinalBean finalBean) {
//预算表数据 //预算表数据
EstimateBean estimate = projectEstimateService.getEstimate(project); EstimateBean estimate = projectEstimateService.getEstimate(project);
@ -185,7 +188,7 @@ public class ProjectFinalSevice {
projectFinalCashFlux1.setBudgetTotalCashFlux(cashFlowBean.getSaleIncomeCash()); projectFinalCashFlux1.setBudgetTotalCashFlux(cashFlowBean.getSaleIncomeCash());
projectFinalCashFlux1.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux1.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux1.setFinalTotalCashFlux(finalBean.getSaleIncomeCash()); projectFinalCashFlux1.setFinalTotalCashFlux(finalBean.getSaleIncomeCash());
list.add(projectFinalCashFlux1); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux1);
ProjectFinalCashFlux projectFinalCashFlux2 = new ProjectFinalCashFlux(); ProjectFinalCashFlux projectFinalCashFlux2 = new ProjectFinalCashFlux();
projectFinalCashFlux2.setProjectId(project.getId()); projectFinalCashFlux2.setProjectId(project.getId());
@ -193,7 +196,7 @@ public class ProjectFinalSevice {
projectFinalCashFlux2.setBudgetTotalCashFlux(cashFlowBean.getTaxReturn()); projectFinalCashFlux2.setBudgetTotalCashFlux(cashFlowBean.getTaxReturn());
projectFinalCashFlux2.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux2.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux2.setFinalTotalCashFlux(finalBean.getTaxReturn()); projectFinalCashFlux2.setFinalTotalCashFlux(finalBean.getTaxReturn());
list.add(projectFinalCashFlux2); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux2);
ProjectFinalCashFlux projectFinalCashFlux3 = new ProjectFinalCashFlux(); ProjectFinalCashFlux projectFinalCashFlux3 = new ProjectFinalCashFlux();
projectFinalCashFlux3.setProjectId(project.getId()); projectFinalCashFlux3.setProjectId(project.getId());
@ -201,7 +204,7 @@ public class ProjectFinalSevice {
projectFinalCashFlux3.setBudgetTotalCashFlux(cashFlowBean.getEarnestMoneyIncome()); projectFinalCashFlux3.setBudgetTotalCashFlux(cashFlowBean.getEarnestMoneyIncome());
projectFinalCashFlux3.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux3.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux3.setFinalTotalCashFlux(finalBean.getEarnestMoneyIncome()); projectFinalCashFlux3.setFinalTotalCashFlux(finalBean.getEarnestMoneyIncome());
list.add(projectFinalCashFlux3); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux3);
ProjectFinalCashFlux projectFinalCashFlux4 = new ProjectFinalCashFlux(); ProjectFinalCashFlux projectFinalCashFlux4 = new ProjectFinalCashFlux();
projectFinalCashFlux4.setProjectId(project.getId()); projectFinalCashFlux4.setProjectId(project.getId());
@ -209,7 +212,7 @@ public class ProjectFinalSevice {
projectFinalCashFlux4.setBudgetTotalCashFlux(cashFlowBean.getPurchaseCost()); projectFinalCashFlux4.setBudgetTotalCashFlux(cashFlowBean.getPurchaseCost());
projectFinalCashFlux4.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux4.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux4.setFinalTotalCashFlux(finalBean.getPurchaseCost()); projectFinalCashFlux4.setFinalTotalCashFlux(finalBean.getPurchaseCost());
list.add(projectFinalCashFlux4); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux4);
ProjectFinalCashFlux projectFinalCashFlux5 = new ProjectFinalCashFlux(); ProjectFinalCashFlux projectFinalCashFlux5 = new ProjectFinalCashFlux();
projectFinalCashFlux5.setProjectId(project.getId()); projectFinalCashFlux5.setProjectId(project.getId());
@ -217,7 +220,7 @@ public class ProjectFinalSevice {
projectFinalCashFlux5.setBudgetTotalCashFlux(cashFlowBean.getTaxCost()); projectFinalCashFlux5.setBudgetTotalCashFlux(cashFlowBean.getTaxCost());
projectFinalCashFlux5.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux5.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux5.setFinalTotalCashFlux(finalBean.getTaxCost()); projectFinalCashFlux5.setFinalTotalCashFlux(finalBean.getTaxCost());
list.add(projectFinalCashFlux5); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux5);
ProjectFinalCashFlux projectFinalCashFlux6 = new ProjectFinalCashFlux(); ProjectFinalCashFlux projectFinalCashFlux6 = new ProjectFinalCashFlux();
projectFinalCashFlux6.setProjectId(project.getId()); projectFinalCashFlux6.setProjectId(project.getId());
@ -225,7 +228,7 @@ public class ProjectFinalSevice {
projectFinalCashFlux6.setBudgetTotalCashFlux(cashFlowBean.getEarnestMoneyCost()); projectFinalCashFlux6.setBudgetTotalCashFlux(cashFlowBean.getEarnestMoneyCost());
projectFinalCashFlux6.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux6.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux6.setFinalTotalCashFlux(finalBean.getEarnestMoneyCost()); projectFinalCashFlux6.setFinalTotalCashFlux(finalBean.getEarnestMoneyCost());
list.add(projectFinalCashFlux6); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux6);
ProjectFinalCashFlux projectFinalCashFlux7 = new ProjectFinalCashFlux(); ProjectFinalCashFlux projectFinalCashFlux7 = new ProjectFinalCashFlux();
projectFinalCashFlux7.setProjectId(project.getId()); projectFinalCashFlux7.setProjectId(project.getId());
@ -233,7 +236,7 @@ public class ProjectFinalSevice {
projectFinalCashFlux7.setBudgetTotalCashFlux(cashFlowBean.getNetCashFlow()); projectFinalCashFlux7.setBudgetTotalCashFlux(cashFlowBean.getNetCashFlow());
projectFinalCashFlux7.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux7.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux7.setFinalTotalCashFlux(finalBean.getNetCashFlow()); projectFinalCashFlux7.setFinalTotalCashFlux(finalBean.getNetCashFlow());
list.add(projectFinalCashFlux7); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux7);
ProjectFinalCashFlux projectFinalCashFlux8 = new ProjectFinalCashFlux(); ProjectFinalCashFlux projectFinalCashFlux8 = new ProjectFinalCashFlux();
projectFinalCashFlux8.setProjectId(project.getId()); projectFinalCashFlux8.setProjectId(project.getId());
@ -241,7 +244,7 @@ public class ProjectFinalSevice {
projectFinalCashFlux8.setBudgetTotalCashFlux(cashFlowBean.getCashInflowFromInvestingActivities()); projectFinalCashFlux8.setBudgetTotalCashFlux(cashFlowBean.getCashInflowFromInvestingActivities());
projectFinalCashFlux8.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux8.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux8.setFinalTotalCashFlux(finalBean.getCashInflowFromInvestingActivities()); projectFinalCashFlux8.setFinalTotalCashFlux(finalBean.getCashInflowFromInvestingActivities());
list.add(projectFinalCashFlux8); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux8);
ProjectFinalCashFlux projectFinalCashFlux9 = new ProjectFinalCashFlux(); ProjectFinalCashFlux projectFinalCashFlux9 = new ProjectFinalCashFlux();
projectFinalCashFlux9.setProjectId(project.getId()); projectFinalCashFlux9.setProjectId(project.getId());
@ -249,7 +252,7 @@ public class ProjectFinalSevice {
projectFinalCashFlux9.setBudgetTotalCashFlux(cashFlowBean.getCashOutflowFromInvestingActivities()); projectFinalCashFlux9.setBudgetTotalCashFlux(cashFlowBean.getCashOutflowFromInvestingActivities());
projectFinalCashFlux9.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux9.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux9.setFinalTotalCashFlux(finalBean.getCashOutflowFromInvestingActivities()); projectFinalCashFlux9.setFinalTotalCashFlux(finalBean.getCashOutflowFromInvestingActivities());
list.add(projectFinalCashFlux9); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux9);
ProjectFinalCashFlux projectFinalCashFlux10 = new ProjectFinalCashFlux(); ProjectFinalCashFlux projectFinalCashFlux10 = new ProjectFinalCashFlux();
projectFinalCashFlux10.setProjectId(project.getId()); projectFinalCashFlux10.setProjectId(project.getId());
@ -257,7 +260,7 @@ public class ProjectFinalSevice {
projectFinalCashFlux10.setBudgetTotalCashFlux(cashFlowBean.getNetCashFromInvestingActivities()); projectFinalCashFlux10.setBudgetTotalCashFlux(cashFlowBean.getNetCashFromInvestingActivities());
projectFinalCashFlux10.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux10.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux10.setFinalTotalCashFlux(finalBean.getNetCashFromInvestingActivities()); projectFinalCashFlux10.setFinalTotalCashFlux(finalBean.getNetCashFromInvestingActivities());
list.add(projectFinalCashFlux10); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux10);
ProjectFinalCashFlux projectFinalCashFlux11 = new ProjectFinalCashFlux(); ProjectFinalCashFlux projectFinalCashFlux11 = new ProjectFinalCashFlux();
projectFinalCashFlux11.setProjectId(project.getId()); projectFinalCashFlux11.setProjectId(project.getId());
@ -265,7 +268,7 @@ public class ProjectFinalSevice {
projectFinalCashFlux11.setBudgetTotalCashFlux(cashFlowBean.getFinancingCapitalInflow()); projectFinalCashFlux11.setBudgetTotalCashFlux(cashFlowBean.getFinancingCapitalInflow());
projectFinalCashFlux11.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux11.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux11.setFinalTotalCashFlux(finalBean.getFinancingCapitalInflow()); projectFinalCashFlux11.setFinalTotalCashFlux(finalBean.getFinancingCapitalInflow());
list.add(projectFinalCashFlux11); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux11);
ProjectFinalCashFlux projectFinalCashFlux12 = new ProjectFinalCashFlux(); ProjectFinalCashFlux projectFinalCashFlux12 = new ProjectFinalCashFlux();
projectFinalCashFlux12.setProjectId(project.getId()); projectFinalCashFlux12.setProjectId(project.getId());
@ -273,7 +276,7 @@ public class ProjectFinalSevice {
projectFinalCashFlux12.setBudgetTotalCashFlux(cashFlowBean.getFinancingCapitalOutflow()); projectFinalCashFlux12.setBudgetTotalCashFlux(cashFlowBean.getFinancingCapitalOutflow());
projectFinalCashFlux12.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux12.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux12.setFinalTotalCashFlux(finalBean.getFinancingCapitalOutflow()); projectFinalCashFlux12.setFinalTotalCashFlux(finalBean.getFinancingCapitalOutflow());
list.add(projectFinalCashFlux12); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux12);
ProjectFinalCashFlux projectFinalCashFlux13 = new ProjectFinalCashFlux(); ProjectFinalCashFlux projectFinalCashFlux13 = new ProjectFinalCashFlux();
projectFinalCashFlux13.setProjectId(project.getId()); projectFinalCashFlux13.setProjectId(project.getId());
@ -281,7 +284,7 @@ public class ProjectFinalSevice {
projectFinalCashFlux13.setBudgetTotalCashFlux(cashFlowBean.getFinancingCapitalCashflow()); projectFinalCashFlux13.setBudgetTotalCashFlux(cashFlowBean.getFinancingCapitalCashflow());
projectFinalCashFlux13.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux13.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux13.setFinalTotalCashFlux(finalBean.getFinancingCapitalCashflow()); projectFinalCashFlux13.setFinalTotalCashFlux(finalBean.getFinancingCapitalCashflow());
list.add(projectFinalCashFlux13); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux13);
ProjectFinalCashFlux projectFinalCashFlux14 = new ProjectFinalCashFlux(); ProjectFinalCashFlux projectFinalCashFlux14 = new ProjectFinalCashFlux();
projectFinalCashFlux14.setProjectId(project.getId()); projectFinalCashFlux14.setProjectId(project.getId());
@ -289,10 +292,108 @@ public class ProjectFinalSevice {
projectFinalCashFlux14.setBudgetTotalCashFlux(cashFlowBean.getNetIncreaseMonetaryFunds()); projectFinalCashFlux14.setBudgetTotalCashFlux(cashFlowBean.getNetIncreaseMonetaryFunds());
projectFinalCashFlux14.setFinalTotalCashFlux(new BigDecimal(0)); projectFinalCashFlux14.setFinalTotalCashFlux(new BigDecimal(0));
projectFinalCashFlux14.setFinalTotalCashFlux(finalBean.getNetIncreaseMonetaryFunds()); projectFinalCashFlux14.setFinalTotalCashFlux(finalBean.getNetIncreaseMonetaryFunds());
list.add(projectFinalCashFlux14); projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux14);
projectFinalCashFluxRepository.save(list);
} }
public FinalBean getFinal(Project project) {
FinalBean finalBean = new FinalBean();
List<ProjectFinalIncome> projectFinalIncomes = projectFinalIncomeReposiry.findByProjectIdEquals(project.getId());
if(CollectionUtil.isNotEmpty(projectFinalIncomes)){
for (ProjectFinalIncome projectFinalIncome : projectFinalIncomes) {
if(ProjectFinalIncome.TYPE_DEVICE == projectFinalIncome.getType()){
finalBean.setIncomeDeviceFinalTotal(projectFinalIncome.getFinalTotalIncome());
}else if(ProjectFinalIncome.TYPE_ENGINEER == projectFinalIncome.getType()){
finalBean.setIncomeEngineerFinalTotal(projectFinalIncome.getFinalTotalIncome());
}else if(ProjectFinalIncome.TYPE_SERVICE == projectFinalIncome.getType()){
finalBean.setIncomeServiceFinalTotal(projectFinalIncome.getFinalTotalIncome());
}
}
}
List<ProjectFinalCost> projectFinalCosts = projectFinalCostRepository.findByProjectIdEquals(project.getId());
if(CollectionUtil.isNotEmpty(projectFinalCosts)){
for (ProjectFinalCost projectFinalCost : projectFinalCosts) {
if(ProjectFinalCost.TYPE_DEVICE == projectFinalCost.getType()){
finalBean.setCostPurchaseDeviceFinalTotal(projectFinalCost.getFinalTotalCost());
}else if(ProjectFinalCost.TYPE_BUILDING == projectFinalCost.getType()){
finalBean.setCostPurchaseBuildFinalTotal(projectFinalCost.getFinalTotalCost());
}else if(ProjectFinalCost.TYPE_SERVICE == projectFinalCost.getType()){
finalBean.setCostPurchaseServiceFinalTotal(projectFinalCost.getFinalTotalCost());
}else if(ProjectFinalCost.TYPE_OTHER == projectFinalCost.getType()){
finalBean.setCostPurchaseOtherFinalTotal(projectFinalCost.getFinalTotalCost());
}else if(ProjectFinalCost.TYPE_PROJECT_MANAGE == projectFinalCost.getType()){
finalBean.setCostProjectManageFinalTotal(projectFinalCost.getFinalTotalCost());
}else if (ProjectFinalCost.TYPE_OTHER_OTHER == projectFinalCost.getType()){
finalBean.setCostOtherFinalTotal(projectFinalCost.getFinalTotalCost());
}
}
}
List<ProjectFinalCostManage> projectFinalCostManages = projectFinalCostManageRepository.findByProjectIdEquals(project.getId());
if(CollectionUtil.isNotEmpty(projectFinalCostManages)){
for (ProjectFinalCostManage projectFinalCostManage : projectFinalCostManages) {
if(ProjectFinalCostManage.TYPE_EXPROPRIATION == projectFinalCostManage.getType()){
finalBean.setCostExpropriationFinalTotal(projectFinalCostManage.getFinalTotalManageCost());
}else if(ProjectFinalCostManage.TYPE_COMPANY_MANAGE == projectFinalCostManage.getType()){
finalBean.setCostCompanyManageFinalTotal(projectFinalCostManage.getFinalTotalManageCost());
}else if(ProjectFinalCostManage.TYPE_INCOME_TAX == projectFinalCostManage.getType()){
finalBean.setCostIncomeTaxFinalTotal(projectFinalCostManage.getFinalTotalManageCost());
}
}
}
List<ProjectFinalCashFlux> projectFinalCashFluxes = projectFinalCashFluxRepository.findByProjectIdEquals(project.getId());
if(CollectionUtil.isNotEmpty(projectFinalCashFluxes)){
for (ProjectFinalCashFlux projectFinalCashFlux : projectFinalCashFluxes) {
if(ProjectFinalCashFlux.TYPE1 == projectFinalCashFlux.getType()){
finalBean.setSaleIncomeCash(projectFinalCashFlux.getFinalTotalCashFlux());
}
if(ProjectFinalCashFlux.TYPE2 == projectFinalCashFlux.getType()){
finalBean.setTaxReturn(projectFinalCashFlux.getFinalTotalCashFlux());
}
if(ProjectFinalCashFlux.TYPE3 == projectFinalCashFlux.getType()){
finalBean.setEarnestMoneyIncome(projectFinalCashFlux.getFinalTotalCashFlux());
}
if(ProjectFinalCashFlux.TYPE4 == projectFinalCashFlux.getType()){
finalBean.setPurchaseCost(projectFinalCashFlux.getFinalTotalCashFlux());
}
if(ProjectFinalCashFlux.TYPE5 == projectFinalCashFlux.getType()){
finalBean.setTaxCost(projectFinalCashFlux.getFinalTotalCashFlux());
}
if(ProjectFinalCashFlux.TYPE6 == projectFinalCashFlux.getType()){
finalBean.setEarnestMoneyCost(projectFinalCashFlux.getFinalTotalCashFlux());
}
if(ProjectFinalCashFlux.TYPE7 == projectFinalCashFlux.getType()){
finalBean.setNetCashFlow(projectFinalCashFlux.getFinalTotalCashFlux());
}
if(ProjectFinalCashFlux.TYPE8 == projectFinalCashFlux.getType()){
finalBean.setCashInflowFromInvestingActivities(projectFinalCashFlux.getFinalTotalCashFlux());
}
if(ProjectFinalCashFlux.TYPE9 == projectFinalCashFlux.getType()){
finalBean.setCashOutflowFromInvestingActivities(projectFinalCashFlux.getFinalTotalCashFlux());
}
if(ProjectFinalCashFlux.TYPE10 == projectFinalCashFlux.getType()){
finalBean.setNetCashFromInvestingActivities(projectFinalCashFlux.getFinalTotalCashFlux());
}
if(ProjectFinalCashFlux.TYPE11 == projectFinalCashFlux.getType()){
finalBean.setFinancingCapitalInflow(projectFinalCashFlux.getFinalTotalCashFlux());
}
if(ProjectFinalCashFlux.TYPE12 == projectFinalCashFlux.getType()){
finalBean.setFinancingCapitalOutflow(projectFinalCashFlux.getFinalTotalCashFlux());
}
if(ProjectFinalCashFlux.TYPE13 == projectFinalCashFlux.getType()){
finalBean.setFinancingCapitalCashflow(projectFinalCashFlux.getFinalTotalCashFlux());
}
if(ProjectFinalCashFlux.TYPE14 == projectFinalCashFlux.getType()){
finalBean.setNetIncreaseMonetaryFunds(projectFinalCashFlux.getFinalTotalCashFlux());
}
}
}
return finalBean;
}
} }

View File

@ -89,11 +89,9 @@ public class ProjectInstanceService {
private void startProcess(Project project, Admin admin, String processDefkey) throws Exception { private void startProcess(Project project, Admin admin, String processDefkey) throws Exception {
HashMap<String, Object> variables = new HashMap<>(); HashMap<String, Object> variables = new HashMap<>();
variables.put(ActConstant.START_PROCESS_USERID, admin.getId());
variables.put(ActConstant.KEY_PROJECT_ID, project.getId());
variables.put(ActConstant.KEY_PROJECT_TYPE, project.getType()); variables.put(ActConstant.KEY_PROJECT_TYPE, project.getType());
String businessKey = String.valueOf(project.getId());
String processInstanceId = actProcInsService.startProcessInstance(processDefkey, variables); String processInstanceId = actProcInsService.startProcessInstance(processDefkey, businessKey, variables);
//保存流程实例id与项目的关联关系 //保存流程实例id与项目的关联关系
ProjectInstanceRelation relation = new ProjectInstanceRelation(); ProjectInstanceRelation relation = new ProjectInstanceRelation();

View File

@ -1,9 +1,9 @@
package cn.palmte.work.service; package cn.palmte.work.service;
import cn.palmte.work.bean.*; import cn.palmte.work.bean.*;
import cn.palmte.work.model.Admin; import cn.palmte.work.model.*;
import cn.palmte.work.model.Project; import com.alibaba.fastjson.JSON;
import cn.palmte.work.model.ProjectRepository; import com.alibaba.fastjson.JSONObject;
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;
@ -34,6 +34,8 @@ public class ProjectService {
private ProjectInstanceService projectInstanceService; private ProjectInstanceService projectInstanceService;
@Autowired @Autowired
private ActTaskDefService actTaskDefService; private ActTaskDefService actTaskDefService;
@Autowired
private ProjectInstanceRelationRepository projectInstanceRelationRepository;
private QueryHelper getQueryHelper(Map<String, String> searchInfo, int pageNumber, int pageSize) { private QueryHelper getQueryHelper(Map<String, String> searchInfo, int pageNumber, int pageSize) {
@ -277,4 +279,17 @@ public class ProjectService {
projectBudgetService.saveBudget(p, budgetBean); projectBudgetService.saveBudget(p, budgetBean);
return p; return p;
} }
public ResponseMsg completeTask(int projectId, String json) {
List<ProjectInstanceRelation> relationList = projectInstanceRelationRepository.findByProjectIdOrderByCreateTimeDesc(projectId);
if (relationList == null || relationList.isEmpty()) {
return ResponseMsg.buildFailedMsg("审核失败");
}
ProjectInstanceRelation projectInstanceRelation = relationList.get(0);
JSONObject obj = JSON.parseObject(json);
actTaskDefService.completeTaskByProcInsId(projectInstanceRelation.getProcessInsId(),
obj.getIntValue("type"), obj.getString("message"));
return ResponseMsg.buildSuccessMsg("审核成功");
}
} }

View File

@ -36,11 +36,7 @@ public class ProjectTaskRecordService {
* @param status * @param status
* @param comment * @param comment
*/ */
public void saveTaskRecord(Task task, int status, String comment) { public void saveTaskRecord(int projectId, Task task, int status, String comment) {
int projectId = actUtil.getProjectId(task.getProcessInstanceId());
if (projectId == 0) {
return;
}
task.getProcessDefinitionId(); task.getProcessDefinitionId();
ProjectTaskRecord record = new ProjectTaskRecord(); ProjectTaskRecord record = new ProjectTaskRecord();
record.setProjectId(projectId); record.setProjectId(projectId);

View File

@ -13,6 +13,8 @@ import org.activiti.engine.ManagementService;
import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngine;
import org.activiti.engine.RepositoryService; import org.activiti.engine.RepositoryService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.IdentityLink; import org.activiti.engine.task.IdentityLink;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
import org.activiti.image.ProcessDiagramGenerator; import org.activiti.image.ProcessDiagramGenerator;
@ -75,14 +77,6 @@ public class ActUtil {
return "0"; return "0";
} }
public int getProjectId(String procInsId) {
Record record = getVariable(ActConstant.KEY_PROJECT_ID, procInsId);
if (record != null) {
return Integer.valueOf(record.get("text"));
}
return 0;
}
/** /**
* *
@ -249,6 +243,22 @@ public class ActUtil {
} }
public boolean isProjectProcessIns(ProcessInstance processInstance) {
if (processInstance == null) {
return false;
}
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processInstance.getProcessDefinitionId()).singleResult();
String procDefKey = processDefinition.getKey();
return isProjectProcessIns(procDefKey);
}
public boolean isProjectProcessIns(String procDefKey) {
return procDefKey.equals(ActConstant.PROCESS_DEFKEY_ESTIMATE)
|| procDefKey.equals(ActConstant.PROCESS_DEFKEY_BUDGET)
|| procDefKey.equals(ActConstant.PROCESS_DEFKEY_SETTLE)
|| procDefKey.equals(ActConstant.PROCESS_DEFKEY_FINAL);
}
/** /**
* xml * xml

View File

@ -120,7 +120,7 @@ function calCostFinalTotal() {
if(costPurchaseDeviceFinalTotal && costPurchaseBuildFinalTotal && costPurchaseServiceFinalTotal && if(costPurchaseDeviceFinalTotal && costPurchaseBuildFinalTotal && costPurchaseServiceFinalTotal &&
costPurchaseOtherFinalTotal && costProjectManageFinalTotal && costOtherFinalTotal){ costPurchaseOtherFinalTotal && costProjectManageFinalTotal && costOtherFinalTotal){
costFinalTotal.val(parseFloat(costPurchaseBuildFinalTotal)+parseFloat(costPurchaseBuildFinalTotal)+parseFloat(costPurchaseServiceFinalTotal)+ costFinalTotal.val(parseFloat(costPurchaseDeviceFinalTotal)+parseFloat(costPurchaseBuildFinalTotal)+parseFloat(costPurchaseServiceFinalTotal)+
parseFloat(costPurchaseOtherFinalTotal)+parseFloat(costProjectManageFinalTotal)+parseFloat(costOtherFinalTotal)); parseFloat(costPurchaseOtherFinalTotal)+parseFloat(costProjectManageFinalTotal)+parseFloat(costOtherFinalTotal));
}else { }else {
costFinalTotal.val(""); costFinalTotal.val("");

View File

@ -20,10 +20,10 @@
<th class="table-title">任务名称</th> <th class="table-title">任务名称</th>
<#--<th class="table-title">任务类型</th>--> <#--<th class="table-title">任务类型</th>-->
<th class="table-date">回退任务</th> <th class="table-date">回退任务</th>
<th class="table-set am-text-center">审批人</th> <th class="table-set ">按人员设置审批人</th>
<th class="table-set am-text-center">审批角色</th> <th class="table-set ">按角色设置审批人</th>
<th class="table-set am-text-center">审批通过脚本</th> <th class="table-set ">审批通过脚本</th>
<th class="table-set am-text-center">审批驳回脚本</th> <th class="table-set ">审批驳回脚本</th>
<th class="table-set am-text-center">操作</th> <th class="table-set am-text-center">操作</th>
</tr> </tr>
</thead> </thead>

View File

@ -1075,14 +1075,14 @@
<td>合计</td> <td>合计</td>
<td></td> <td></td>
<td><input name="incomeEstimateTotal" type="number" <td><input name="incomeEstimateTotal" type="number"
value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" readonly
readonly required title="此列累计"></td> readonly required title="此列累计"></td>
<td><input name="incomeBudgetTotal" type="number" <td><input name="incomeBudgetTotal" type="number"
value="${Utils.format(budgetBean.getIncomeTotalTaxExclude(),'0')}" value="${Utils.format(budgetBean.getIncomeTotalTaxExclude(),'0')}" readonly
readonly required title="此列累计"></td> readonly required title="此列累计"></td>
<td><input name="incomeSettleTotal" type="number" readonly required title="此列累计"> <td><input name="incomeSettleTotal" type="number" readonly required title="此列累计">
</td> </td>
<td><input name="incomeFinalTotal" type="number" readonly required title="此列累计"> <td><input name="incomeFinalTotal" value="${Utils.format(finalBean.getIncomeTotal(),'0')}" type="number" readonly required title="此列累计">
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -1111,7 +1111,7 @@
readonly required title="购买设备预算总额"></td> readonly required title="购买设备预算总额"></td>
<td><input name="costPurchaseDeviceTaxInclude" type="number" readonly required <td><input name="costPurchaseDeviceTaxInclude" type="number" readonly required
title="购买设备结算总额"></td> title="购买设备结算总额"></td>
<td><input name="costPurchaseDeviceFinalTotal" type="number" <td><input name="costPurchaseDeviceFinalTotal" type="number" readonly
value="${Utils.format(finalBean.costPurchaseDeviceFinalTotal,'0')}" value="${Utils.format(finalBean.costPurchaseDeviceFinalTotal,'0')}"
required title="购买设备决算总额"></td> required title="购买设备决算总额"></td>
</tr> </tr>
@ -1127,7 +1127,7 @@
readonly required title="施工采购成本预算总额"></td> readonly required title="施工采购成本预算总额"></td>
<td><input name="costPurchaseBuildSettleTotal" type="number" readonly required <td><input name="costPurchaseBuildSettleTotal" type="number" readonly required
title="施工采购成本结算总额"></td> title="施工采购成本结算总额"></td>
<td><input name="costPurchaseBuildFinalTotal" type="number" <td><input name="costPurchaseBuildFinalTotal" type="number" readonly
value="${Utils.format(finalBean.costPurchaseBuildFinalTotal,'0')}" value="${Utils.format(finalBean.costPurchaseBuildFinalTotal,'0')}"
required title="施工采购成本决算总额"></td> required title="施工采购成本决算总额"></td>
</tr> </tr>
@ -1143,7 +1143,7 @@
readonly required title="服务采购成本预算总额"></td> readonly required title="服务采购成本预算总额"></td>
<td><input name="costPurchaseServiceSettleTotal" type="number" readonly required <td><input name="costPurchaseServiceSettleTotal" type="number" readonly required
title="服务采购成本结算总额"></td> title="服务采购成本结算总额"></td>
<td><input name="costPurchaseServiceFinalTotal" type="number" <td><input name="costPurchaseServiceFinalTotal" type="number" readonly
value="${Utils.format(finalBean.costPurchaseServiceFinalTotal,'0')}" value="${Utils.format(finalBean.costPurchaseServiceFinalTotal,'0')}"
required title="服务采购成本决算总额"></td> required title="服务采购成本决算总额"></td>
</tr> </tr>
@ -1159,7 +1159,7 @@
readonly required title="其他采购成本预算总额"></td> readonly required title="其他采购成本预算总额"></td>
<td><input name="costPurchaseOtherSettleTotal" type="number" readonly required <td><input name="costPurchaseOtherSettleTotal" type="number" readonly required
title="其他采购成本结算总额"></td> title="其他采购成本结算总额"></td>
<td><input name="costPurchaseOtherFinalTotal" type="number" <td><input name="costPurchaseOtherFinalTotal" type="number" readonly
value="${Utils.format(finalBean.costPurchaseOtherFinalTotal,'0')}" value="${Utils.format(finalBean.costPurchaseOtherFinalTotal,'0')}"
required title="其他采购成本决算总额"></td> required title="其他采购成本决算总额"></td>
</tr> </tr>
@ -1175,7 +1175,7 @@
readonly required title="项目管理成本预算总额"></td> readonly required title="项目管理成本预算总额"></td>
<td><input name="costProjectManageSettleTotal" type="number" readonly required <td><input name="costProjectManageSettleTotal" type="number" readonly required
title="项目管理成本结算总额"></td> title="项目管理成本结算总额"></td>
<td><input name="costProjectManageFinalTotal" type="number" <td><input name="costProjectManageFinalTotal" type="number" readonly
value="${Utils.format(finalBean.costProjectManageFinalTotal,'0')}" value="${Utils.format(finalBean.costProjectManageFinalTotal,'0')}"
required title="项目管理成本决算总额"></td> required title="项目管理成本决算总额"></td>
</tr> </tr>
@ -1206,7 +1206,7 @@
value="${Utils.format(budgetBean.getCostTotalTaxExclude(),'0')}" value="${Utils.format(budgetBean.getCostTotalTaxExclude(),'0')}"
type="number" readonly required title="此列累计"></td> type="number" readonly required title="此列累计"></td>
<td><input name="costSettleTotal" type="number" readonly required title="此列累计"></td> <td><input name="costSettleTotal" type="number" readonly required title="此列累计"></td>
<td><input name="costFinalTotal" type="number" readonly required title="此列累计"></td> <td><input name="costFinalTotal" value="${Utils.format(finalBean.getCostTotal(),'0')}" type="number" readonly required title="此列累计"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -1232,7 +1232,7 @@
required readonly title="资金占用成本预算总额"></td> required readonly title="资金占用成本预算总额"></td>
<td><input name="costExpropriationSettleTotal" type="number" required readonly <td><input name="costExpropriationSettleTotal" type="number" required readonly
title="资金占用成本结算总额"></td> title="资金占用成本结算总额"></td>
<td><input name="costExpropriationFinalTotal" type="number" <td><input name="costExpropriationFinalTotal" type="number" readonly
value="${Utils.format(finalBean.costExpropriationFinalTotal,'0')}" value="${Utils.format(finalBean.costExpropriationFinalTotal,'0')}"
required title="资金占用成本决算总额"></td> required title="资金占用成本决算总额"></td>
</tr> </tr>
@ -1247,7 +1247,7 @@
required readonly title="公司管理费用预算总额"></td> required readonly title="公司管理费用预算总额"></td>
<td><input name="costCompanyManageSettleTotal" type="number" required readonly <td><input name="costCompanyManageSettleTotal" type="number" required readonly
title="公司管理费用结算总额"></td> title="公司管理费用结算总额"></td>
<td><input name="costCompanyManageFinalTotal" type="number" <td><input name="costCompanyManageFinalTotal" type="number" readonly
value="${Utils.format(finalBean.costCompanyManageFinalTotal,'0')}" value="${Utils.format(finalBean.costCompanyManageFinalTotal,'0')}"
required title="公司管理费用决算总额"></td> required title="公司管理费用决算总额"></td>
</tr> </tr>
@ -1258,7 +1258,7 @@
<td>/</td> <td>/</td>
<td><input name="costIncomeTaxSettleTotal" type="number" required readonly <td><input name="costIncomeTaxSettleTotal" type="number" required readonly
title="所得税费用结算总额"></td> title="所得税费用结算总额"></td>
<td><input name="costIncomeTaxFinalTotal" type="number" <td><input name="costIncomeTaxFinalTotal" type="number" readonly
value="${Utils.format(finalBean.costIncomeTaxFinalTotal,'0')}" required value="${Utils.format(finalBean.costIncomeTaxFinalTotal,'0')}" required
title="所得税费用决算总额"></td> title="所得税费用决算总额"></td>
</tr> </tr>
@ -1271,7 +1271,7 @@
</td> </td>
<td><input name="manageSettleTotal" type="number" readonly required title="此列累计"> <td><input name="manageSettleTotal" type="number" readonly required title="此列累计">
</td> </td>
<td><input name="manageFinalTotal" type="number" readonly required title="此列累计"> <td><input name="manageFinalTotal" value="${Utils.format(finalBean.getCostManageTotal(),'0')}" type="number" readonly required title="此列累计">
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -1300,7 +1300,7 @@
value="${Utils.format(finalBean.grossProfitSettleTotal,'0')}" readonly value="${Utils.format(finalBean.grossProfitSettleTotal,'0')}" readonly
required title="项目毛利结算总额"></td> required title="项目毛利结算总额"></td>
<td><input name="grossProfitFinalTotal" type="number" <td><input name="grossProfitFinalTotal" type="number"
value="${Utils.format(finalBean.grossProfitFinalTotal,'0')}" required value="${Utils.format(finalBean.grossProfitFinalTotal,'0')}" required readonly
title="项目毛利决算总额"></td> title="项目毛利决算总额"></td>
<td><input name="grossProfitProfitMargin" type="number" <td><input name="grossProfitProfitMargin" type="number"
value="${Utils.format(finalBean.grossProfitProfitMargin,'0')}" required value="${Utils.format(finalBean.grossProfitProfitMargin,'0')}" required
@ -1318,7 +1318,7 @@
value="${Utils.format(finalBean.contributionMarginSettleTotal,'0')}" value="${Utils.format(finalBean.contributionMarginSettleTotal,'0')}"
readonly required title="项目贡献利润结算总额"></td> readonly required title="项目贡献利润结算总额"></td>
<td><input name="contributionMarginFinalTotal" type="number" <td><input name="contributionMarginFinalTotal" type="number"
value="${Utils.format(finalBean.contributionMarginFinalTotal,'0')}" value="${Utils.format(finalBean.contributionMarginFinalTotal,'0')}" readonly
required title="项目贡献利润决算总额"></td> required title="项目贡献利润决算总额"></td>
<td><input name="contributionMarginProfitMargin" type="number" <td><input name="contributionMarginProfitMargin" type="number"
value="${Utils.format(finalBean.contributionMarginProfitMargin,'0')}" value="${Utils.format(finalBean.contributionMarginProfitMargin,'0')}"
@ -1336,7 +1336,7 @@
value="${Utils.format(finalBean.netMarginSettleTotal,'0')}" readonly value="${Utils.format(finalBean.netMarginSettleTotal,'0')}" readonly
required title="项目净利润结算总额"></td> required title="项目净利润结算总额"></td>
<td><input name="netMarginFinalTotal" type="number" <td><input name="netMarginFinalTotal" type="number"
value="${Utils.format(finalBean.netMarginFinalTotal,'0')}" required value="${Utils.format(finalBean.netMarginFinalTotal,'0')}" required readonly
title="项目净利润决算总额"></td> title="项目净利润决算总额"></td>
<td><input name="netMarginProfitMargin" type="number" <td><input name="netMarginProfitMargin" type="number"
value="${Utils.format(finalBean.netMarginProfitMargin,'0')}" required value="${Utils.format(finalBean.netMarginProfitMargin,'0')}" required
@ -1361,7 +1361,7 @@
required title="预算总额"></td> required title="预算总额"></td>
<td><input name="type1SettleTotal" type="number" readonly required title="结算总额"> <td><input name="type1SettleTotal" type="number" readonly required title="结算总额">
</td> </td>
<td><input name="saleIncomeCash" type="number" <td><input name="saleIncomeCash" type="number" readonly
value="${Utils.format(finalBean.saleIncomeCash,'0')}" required value="${Utils.format(finalBean.saleIncomeCash,'0')}" required
title="决算总额"></td> title="决算总额"></td>
</tr> </tr>
@ -1371,7 +1371,7 @@
<td><input name="type2SettleTotal" type="number" <td><input name="type2SettleTotal" type="number"
value="${Utils.format(cashFlowBean.taxReturn,'0')}" readonly required value="${Utils.format(cashFlowBean.taxReturn,'0')}" readonly required
title="结算总额"></td> title="结算总额"></td>
<td><input name="taxReturn" type="number" <td><input name="taxReturn" type="number" readonly
value="${Utils.format(finalBean.taxReturn,'0')}" required title="决算总额"> value="${Utils.format(finalBean.taxReturn,'0')}" required title="决算总额">
</td> </td>
</tr> </tr>
@ -1382,7 +1382,7 @@
required title="预算总额"></td> required title="预算总额"></td>
<td><input name="type3SettleTotal" type="number" readonly required title="结算总额"> <td><input name="type3SettleTotal" type="number" readonly required title="结算总额">
</td> </td>
<td><input name="earnestMoneyIncome" type="number" <td><input name="earnestMoneyIncome" type="number" readonly
value="${Utils.format(finalBean.earnestMoneyIncome,'0')}" required value="${Utils.format(finalBean.earnestMoneyIncome,'0')}" required
title="决算总额"></td> title="决算总额"></td>
</tr> </tr>
@ -1393,7 +1393,7 @@
title="预算总额"></td> title="预算总额"></td>
<td><input name="type4SettleTotal" type="number" readonly required title="结算总额"> <td><input name="type4SettleTotal" type="number" readonly required title="结算总额">
</td> </td>
<td><input name="purchaseCost" type="number" <td><input name="purchaseCost" type="number" readonly
value="${Utils.format(finalBean.purchaseCost,'0')}" required value="${Utils.format(finalBean.purchaseCost,'0')}" required
title="决算总额"></td> title="决算总额"></td>
</tr> </tr>
@ -1403,7 +1403,7 @@
<td><input name="type5SettleTotal" type="number" <td><input name="type5SettleTotal" type="number"
value="${Utils.format(finalBean.type5SettleTotal,'0')}" readonly required value="${Utils.format(finalBean.type5SettleTotal,'0')}" readonly required
title="结算总额"></td> title="结算总额"></td>
<td><input name="taxCost" type="number" <td><input name="taxCost" type="number" readonly
value="${Utils.format(finalBean.taxCost,'0')}" required title="决算总额"> value="${Utils.format(finalBean.taxCost,'0')}" required title="决算总额">
</td> </td>
</tr> </tr>
@ -1414,7 +1414,7 @@
required title="预算总额"></td> required title="预算总额"></td>
<td><input name="type6SettleTotal" type="number" readonly required title="结算总额"> <td><input name="type6SettleTotal" type="number" readonly required title="结算总额">
</td> </td>
<td><input name="earnestMoneyCost" type="number" <td><input name="earnestMoneyCost" type="number" readonly
value="${Utils.format(finalBean.earnestMoneyCost,'0')}" required value="${Utils.format(finalBean.earnestMoneyCost,'0')}" required
title="决算总额"></td> title="决算总额"></td>
</tr> </tr>
@ -1425,7 +1425,7 @@
required title="预算总额"></td> required title="预算总额"></td>
<td><input name="type7SettleTotal" type="number" readonly required title="结算总额"> <td><input name="type7SettleTotal" type="number" readonly required title="结算总额">
</td> </td>
<td><input name="netCashFlow" type="number" <td><input name="netCashFlow" type="number" readonly
value="${Utils.format(finalBean.netCashFlow,'0')}" required title="决算总额"> value="${Utils.format(finalBean.netCashFlow,'0')}" required title="决算总额">
</td> </td>
</tr> </tr>
@ -1434,7 +1434,7 @@
<td>/</td> <td>/</td>
<td><input name="type8SettleTotal" type="number" readonly required title="结算总额"> <td><input name="type8SettleTotal" type="number" readonly required title="结算总额">
</td> </td>
<td><input name="cashInflowFromInvestingActivities" <td><input name="cashInflowFromInvestingActivities" readonly
value="${Utils.format(finalBean.cashInflowFromInvestingActivities,'0')}" value="${Utils.format(finalBean.cashInflowFromInvestingActivities,'0')}"
type="number" required title="决算总额"></td> type="number" required title="决算总额"></td>
</tr> </tr>
@ -1444,7 +1444,7 @@
<td><input name="type9SettleTotal" type="number" <td><input name="type9SettleTotal" type="number"
value="${Utils.format(finalBean.type9SettleTotal,'0')}" readonly required value="${Utils.format(finalBean.type9SettleTotal,'0')}" readonly required
title="结算总额"></td> title="结算总额"></td>
<td><input name="cashOutflowFromInvestingActivities" type="number" <td><input name="cashOutflowFromInvestingActivities" type="number" readonly
value="${Utils.format(finalBean.cashOutflowFromInvestingActivities,'0')}" value="${Utils.format(finalBean.cashOutflowFromInvestingActivities,'0')}"
required title="决算总额"></td> required title="决算总额"></td>
</tr> </tr>
@ -1454,7 +1454,7 @@
<td><input name="type10SettleTotal" type="number" <td><input name="type10SettleTotal" type="number"
value="${Utils.format(finalBean.type10SettleTotal,'0')}" readonly value="${Utils.format(finalBean.type10SettleTotal,'0')}" readonly
required title="结算总额"></td> required title="结算总额"></td>
<td><input name="netCashFromInvestingActivities" type="number" <td><input name="netCashFromInvestingActivities" type="number" readonly
value="${Utils.format(finalBean.netCashFromInvestingActivities,'0')}" value="${Utils.format(finalBean.netCashFromInvestingActivities,'0')}"
required title="决算总额"></td> required title="决算总额"></td>
</tr> </tr>
@ -1466,7 +1466,7 @@
<td><input name="type11SettleTotal" type="number" <td><input name="type11SettleTotal" type="number"
value="${Utils.format(finalBean.type11SettleTotal,'0')}" readonly value="${Utils.format(finalBean.type11SettleTotal,'0')}" readonly
required title="结算总额"></td> required title="结算总额"></td>
<td><input name="financingCapitalInflow" type="number" <td><input name="financingCapitalInflow" type="number" readonly
value="${Utils.format(finalBean.financingCapitalInflow,'0')}" required value="${Utils.format(finalBean.financingCapitalInflow,'0')}" required
title="决算总额"></td> title="决算总额"></td>
</tr> </tr>
@ -1478,7 +1478,7 @@
<td><input name="type12SettleTotal" type="number" <td><input name="type12SettleTotal" type="number"
value="${Utils.format(finalBean.type12SettleTotal,'0')}" readonly value="${Utils.format(finalBean.type12SettleTotal,'0')}" readonly
required title="结算总额"></td> required title="结算总额"></td>
<td><input name="financingCapitalOutflow" type="number" <td><input name="financingCapitalOutflow" type="number" readonly
value="${Utils.format(finalBean.financingCapitalOutflow,'0')}" required value="${Utils.format(finalBean.financingCapitalOutflow,'0')}" required
title="决算总额"></td> title="决算总额"></td>
</tr> </tr>
@ -1490,7 +1490,7 @@
<td><input name="type13SettleTotal" type="number" <td><input name="type13SettleTotal" type="number"
value="${Utils.format(finalBean.type13SettleTotal,'0')}" readonly value="${Utils.format(finalBean.type13SettleTotal,'0')}" readonly
required title="结算总额"></td> required title="结算总额"></td>
<td><input name="financingCapitalCashflow" type="number" <td><input name="financingCapitalCashflow" type="number" readonly
value="${Utils.format(finalBean.financingCapitalCashflow,'0')}" required value="${Utils.format(finalBean.financingCapitalCashflow,'0')}" required
title="决算总额"></td> title="决算总额"></td>
</tr> </tr>
@ -1502,7 +1502,7 @@
<td><input name="type14SettleTotal" type="number" <td><input name="type14SettleTotal" type="number"
value="${Utils.format(finalBean.type14SettleTotal,'0')}" readonly value="${Utils.format(finalBean.type14SettleTotal,'0')}" readonly
required title="结算总额"></td> required title="结算总额"></td>
<td><input name="netIncreaseMonetaryFunds" type="number" <td><input name="netIncreaseMonetaryFunds" type="number" readonly
value="${Utils.format(finalBean.netIncreaseMonetaryFunds,'0')}" required value="${Utils.format(finalBean.netIncreaseMonetaryFunds,'0')}" required
title="决算总额"></td> title="决算总额"></td>
</tr> </tr>
@ -1512,7 +1512,7 @@
</td> </td>
<td><input name="cashFluxSettleTotal" type="number" readonly required title="此列累计"> <td><input name="cashFluxSettleTotal" type="number" readonly required title="此列累计">
</td> </td>
<td><input name="cashFluxFinalTotal" type="number" readonly required title="此列累计"> <td><input name="cashFluxFinalTotal" value="${Utils.format(finalBean.getCashFluxTotal(),'0')}" type="number" readonly required title="此列累计">
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -2004,10 +2004,10 @@
<div class="am-u-sm-12 am-u-md-4 switch-button" style="height: 25px;"> <div class="am-u-sm-12 am-u-md-4 switch-button" style="height: 25px;">
<label class="am-radio-inline"> <label class="am-radio-inline">
<input type="radio" value="" name="docVlGender" required> 审核通过 <input type="radio" value="2" name="docVlGender" required> 审核通过
</label> </label>
<label class="am-radio-inline"> <label class="am-radio-inline">
<input type="radio" name="docVlGender"> 审核不通过 <input type="radio" value="3" name="docVlGender"> 审核不通过
</label> </label>
</div> </div>
@ -2031,7 +2031,7 @@
</div> </div>
<div class="am-modal-footer"> <div class="am-modal-footer">
<span class="am-modal-btn" data-am-modal-cancel>取消</span> <span class="am-modal-btn" data-am-modal-cancel>取消</span>
<span class="am-modal-btn" data-am-modal-confirm>保存</span> <span class="am-modal-btn" data-am-modal-confirm onclick="completeTask('${project.id}')">确定</span>
</div> </div>
</div> </div>
</div> </div>
@ -2077,6 +2077,32 @@
appendTrIncome(); appendTrIncome();
}); });
}); });
var completeTask = function (projectId) {
var message = $("#doc-vld-ta-2").val();
var type = $("input[name='docVlGender']:checked").val();
var params = {
type: type,
message: message
};
$.ajax({
url: '${base}/project/completeTask/' + projectId,
data: JSON.stringify(params),
dataType: "json",
contentType: "application/json",
type: 'post',
async: false,
success: function (data) {
if (data.status == 0) {
alert(data.msg);
window.location.href = '${base}/project/list';
} else if (data.status == 1) {
alert(data.msg);
}
}
});
}
</script> </script>

View File

@ -766,7 +766,7 @@
<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" required readonly title="设备类结算总额"></td> <td><input type="number" 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')}" readonly required title="设备类决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>收入</td> <td>收入</td>
@ -774,7 +774,7 @@
<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" required readonly title="工程类结算总额"></td> <td><input type="number" 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 readonly title="工程类决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>收入</td> <td>收入</td>
@ -782,7 +782,7 @@
<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" required readonly title="服务类结算总额"></td> <td><input type="number" 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 readonly title="服务类决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>合计</td> <td>合计</td>
@ -790,7 +790,7 @@
<td><input name="incomeEstimateTotal" type="number" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td> <td><input name="incomeEstimateTotal" type="number" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
<td><input name="incomeBudgetTotal" type="number" value="${Utils.format(budgetBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td> <td><input name="incomeBudgetTotal" type="number" value="${Utils.format(budgetBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
<td><input name="incomeSettleTotal" type="number" readonly required title="此列累计"></td> <td><input name="incomeSettleTotal" type="number" 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>
@ -813,7 +813,7 @@
<td><input name="costPurchaseDeviceTaxInclude" type="number" value="${Utils.format(estimateBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备概算总额"></td> <td><input name="costPurchaseDeviceTaxInclude" 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 name="costPurchaseDeviceTaxInclude" type="number"readonly required title="购买设备结算总额"></td> <td><input name="costPurchaseDeviceTaxInclude" type="number"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')}" readonly required title="购买设备决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>成本</td> <td>成本</td>
@ -822,7 +822,7 @@
<td><input name="costPurchaseBuildEstimateTotal" type="number" value="${Utils.format(estimateBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本概算总额"></td> <td><input name="costPurchaseBuildEstimateTotal" type="number" value="${Utils.format(estimateBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本概算总额"></td>
<td><input name="costPurchaseBuildBudgetTotal" type="number" value="${Utils.format(budgetBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本预算总额"></td> <td><input name="costPurchaseBuildBudgetTotal" type="number" value="${Utils.format(budgetBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本预算总额"></td>
<td><input name="costPurchaseBuildSettleTotal" type="number" readonly required title="施工采购成本结算总额"></td> <td><input name="costPurchaseBuildSettleTotal" type="number" 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')}" readonly required title="施工采购成本决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>成本</td> <td>成本</td>
@ -831,7 +831,7 @@
<td><input name="costPurchaseServiceEstimateTotal" type="number" value="${Utils.format(estimateBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本概算总额"></td> <td><input name="costPurchaseServiceEstimateTotal" type="number" value="${Utils.format(estimateBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本概算总额"></td>
<td><input name="costPurchaseServiceBudgetTotal" type="number" value="${Utils.format(budgetBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本预算总额"></td> <td><input name="costPurchaseServiceBudgetTotal" type="number" value="${Utils.format(budgetBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本预算总额"></td>
<td><input name="costPurchaseServiceSettleTotal" type="number" readonly required title="服务采购成本结算总额"></td> <td><input name="costPurchaseServiceSettleTotal" type="number" 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 readonly title="服务采购成本决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>成本</td> <td>成本</td>
@ -840,7 +840,7 @@
<td><input name="costPurchaseOtherEstimateTotal" type="number" value="${Utils.format(estimateBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本概算总额"></td> <td><input name="costPurchaseOtherEstimateTotal" type="number" value="${Utils.format(estimateBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本概算总额"></td>
<td><input name="costPurchaseOtherBudgetTotal" type="number" value="${Utils.format(budgetBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本预算总额"></td> <td><input name="costPurchaseOtherBudgetTotal" type="number" value="${Utils.format(budgetBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本预算总额"></td>
<td><input name="costPurchaseOtherSettleTotal" type="number" readonly required title="其他采购成本结算总额"></td> <td><input name="costPurchaseOtherSettleTotal" 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 readonly title="其他采购成本决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>成本</td> <td>成本</td>
@ -849,7 +849,7 @@
<td><input name="costProjectManageEstimateTotal" type="number" value="${Utils.format(estimateBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本概算总额"></td> <td><input name="costProjectManageEstimateTotal" type="number" value="${Utils.format(estimateBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本概算总额"></td>
<td><input name="costProjectManageBudgetTotal" type="number" value="${Utils.format(budgetBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本预算总额"></td> <td><input name="costProjectManageBudgetTotal" type="number" value="${Utils.format(budgetBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本预算总额"></td>
<td><input name="costProjectManageSettleTotal" type="number" readonly required title="项目管理成本结算总额"></td> <td><input name="costProjectManageSettleTotal" 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 readonly title="项目管理成本决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>成本</td> <td>成本</td>
@ -858,7 +858,7 @@
<td><input name="costOtherEstimateTotal" type="number" value="${Utils.format(estimateBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本概算总额"></td> <td><input name="costOtherEstimateTotal" type="number" value="${Utils.format(estimateBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本概算总额"></td>
<td><input name="costOtherBudgetTotal" type="number" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本预算总额"></td> <td><input name="costOtherBudgetTotal" type="number" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本预算总额"></td>
<td><input name="costOtherSettleTotal" type="number" type="number"readonly required title="其他成本结算总额"></td> <td><input name="costOtherSettleTotal" 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 readonly title="其他成本决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>合计</td> <td>合计</td>
@ -867,7 +867,7 @@
<td><input name="costEstimateTotal" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td> <td><input name="costEstimateTotal" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="costBudgetTotal" value="${Utils.format(budgetBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td> <td><input name="costBudgetTotal" value="${Utils.format(budgetBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="costSettleTotal" type="number" readonly required title="此列累计"></td> <td><input name="costSettleTotal" 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>
@ -888,7 +888,7 @@
<td><input name="costExpropriationEstimateTotal" type="number" value="${Utils.format(estimateBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本概算总额"></td> <td><input name="costExpropriationEstimateTotal" type="number" value="${Utils.format(estimateBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本概算总额"></td>
<td><input name="costExpropriationBudgetTotal" type="number" value="${Utils.format(budgetBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本预算总额"></td> <td><input name="costExpropriationBudgetTotal" type="number" value="${Utils.format(budgetBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本预算总额"></td>
<td><input name="costExpropriationSettleTotal" type="number" required readonly title="资金占用成本结算总额"></td> <td><input name="costExpropriationSettleTotal" type="number" 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 readonly title="资金占用成本决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>公司管理费用</td> <td>公司管理费用</td>
@ -896,7 +896,7 @@
<td><input name="costCompanyManageEstimateTotal" type="number" value="${Utils.format(estimateBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用概算总额"></td> <td><input name="costCompanyManageEstimateTotal" type="number" value="${Utils.format(estimateBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用概算总额"></td>
<td><input name="costCompanyManageBudgetTotal" type="number" value="${Utils.format(budgetBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用预算总额"></td> <td><input name="costCompanyManageBudgetTotal" type="number" value="${Utils.format(budgetBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用预算总额"></td>
<td><input name="costCompanyManageSettleTotal" type="number" required readonly title="公司管理费用结算总额"></td> <td><input name="costCompanyManageSettleTotal" type="number" 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 readonly title="公司管理费用决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>所得税费用</td> <td>所得税费用</td>
@ -904,7 +904,7 @@
<td>/</td> <td>/</td>
<td>/</td> <td>/</td>
<td><input name="costIncomeTaxSettleTotal" type="number" required readonly title="所得税费用结算总额"></td> <td><input name="costIncomeTaxSettleTotal" type="number" required readonly title="所得税费用结算总额"></td>
<td><input name="costIncomeTaxFinalTotal" type="number" value="${Utils.format(finalBean.costIncomeTaxFinalTotal,'0')}" required title="所得税费用决算总额"></td> <td><input name="costIncomeTaxFinalTotal" type="number" value="${Utils.format(finalBean.costIncomeTaxFinalTotal,'0')}" required readonly title="所得税费用决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>合计</td> <td>合计</td>
@ -912,7 +912,7 @@
<td><input name="manageEstimateTotal" type="number" readonly required title="此列累计"></td> <td><input name="manageEstimateTotal" type="number" readonly required title="此列累计"></td>
<td><input name="manageBudgetTotal" type="number" readonly required title="此列累计"></td> <td><input name="manageBudgetTotal" type="number" readonly required title="此列累计"></td>
<td><input name="manageSettleTotal" type="number" readonly required title="此列累计"></td> <td><input name="manageSettleTotal" 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>
@ -933,7 +933,7 @@
<td><input name="grossProfitEstimateTotal" type="number" value="${Utils.format(finalBean.grossProfitEstimateTotal,'0')}" readonly required title="项目毛利概算总额"></td> <td><input name="grossProfitEstimateTotal" type="number" value="${Utils.format(finalBean.grossProfitEstimateTotal,'0')}" readonly required title="项目毛利概算总额"></td>
<td><input name="grossProfitBudgetTotal" type="number" value="${Utils.format(finalBean.grossProfitBudgetTotal,'0')}" readonly required title="项目毛利预算总额"></td> <td><input name="grossProfitBudgetTotal" type="number" value="${Utils.format(finalBean.grossProfitBudgetTotal,'0')}" readonly required title="项目毛利预算总额"></td>
<td><input name="grossProfitSettleTotal" type="number" value="${Utils.format(finalBean.grossProfitSettleTotal,'0')}" readonly required title="项目毛利结算总额"></td> <td><input name="grossProfitSettleTotal" type="number" value="${Utils.format(finalBean.grossProfitSettleTotal,'0')}" readonly required title="项目毛利结算总额"></td>
<td><input name="grossProfitFinalTotal" type="number" value="${Utils.format(finalBean.grossProfitFinalTotal,'0')}" required title="项目毛利决算总额"></td> <td><input name="grossProfitFinalTotal" type="number" value="${Utils.format(finalBean.grossProfitFinalTotal,'0')}" required readonly title="项目毛利决算总额"></td>
<td><input name="grossProfitProfitMargin" type="number" value="${Utils.format(finalBean.grossProfitProfitMargin,'0')}" required readonly title="项目毛利利润率"></td> <td><input name="grossProfitProfitMargin" type="number" value="${Utils.format(finalBean.grossProfitProfitMargin,'0')}" required readonly title="项目毛利利润率"></td>
</tr> </tr>
<tr> <tr>
@ -941,7 +941,7 @@
<td><input name="contributionMarginEstimateTotal" type="number" value="${Utils.format(finalBean.contributionMarginEstimateTotal,'0')}" readonly required title="项目贡献利润概算总额"></td> <td><input name="contributionMarginEstimateTotal" type="number" value="${Utils.format(finalBean.contributionMarginEstimateTotal,'0')}" readonly required title="项目贡献利润概算总额"></td>
<td><input name="contributionMarginBudgetTotal" type="number" value="${Utils.format(finalBean.contributionMarginBudgetTotal,'0')}" readonly required title="项目贡献利润预算总额"></td> <td><input name="contributionMarginBudgetTotal" type="number" value="${Utils.format(finalBean.contributionMarginBudgetTotal,'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(finalBean.contributionMarginSettleTotal,'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 readonly 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>
<tr> <tr>
@ -949,7 +949,7 @@
<td><input name="netMarginEstimateTotal" type="number" value="${Utils.format(finalBean.netMarginEstimateTotal,'0')}" readonly required title="项目净利润概算总额"></td> <td><input name="netMarginEstimateTotal" type="number" value="${Utils.format(finalBean.netMarginEstimateTotal,'0')}" readonly required title="项目净利润概算总额"></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(finalBean.netMarginSettleTotal,'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 readonly 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>
</tbody> </tbody>
@ -968,91 +968,91 @@
<td>销售商品、提供劳务收到的现金</td> <td>销售商品、提供劳务收到的现金</td>
<td><input name="type1BudgetTotal" type="number" value="${Utils.format(cashFlowBean.saleIncomeCash,'0')}" readonly required title="预算总额"></td> <td><input name="type1BudgetTotal" type="number" value="${Utils.format(cashFlowBean.saleIncomeCash,'0')}" readonly required title="预算总额"></td>
<td><input name="type1SettleTotal" type="number" readonly required title="结算总额"></td> <td><input name="type1SettleTotal" type="number" readonly required title="结算总额"></td>
<td><input name="saleIncomeCash" type="number" value="${Utils.format(finalBean.saleIncomeCash,'0')}" required title="决算总额"></td> <td><input name="saleIncomeCash" type="number" value="${Utils.format(finalBean.saleIncomeCash,'0')}" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>收到的税费返还</td> <td>收到的税费返还</td>
<td>/</td> <td>/</td>
<td><input name="type2SettleTotal" type="number" value="${Utils.format(cashFlowBean.taxReturn,'0')}" readonly required title="结算总额"></td> <td><input name="type2SettleTotal" type="number" value="${Utils.format(cashFlowBean.taxReturn,'0')}" readonly required title="结算总额"></td>
<td><input name="taxReturn" type="number" value="${Utils.format(finalBean.taxReturn,'0')}" required title="决算总额"></td> <td><input name="taxReturn" type="number" value="${Utils.format(finalBean.taxReturn,'0')}" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>收到其他与经营活动有关的现金</td> <td>收到其他与经营活动有关的现金</td>
<td><input name="type3BudgetTotal" type="number" value="${Utils.format(cashFlowBean.earnestMoneyIncome,'0')}" readonly required title="预算总额"></td> <td><input name="type3BudgetTotal" type="number" value="${Utils.format(cashFlowBean.earnestMoneyIncome,'0')}" readonly required title="预算总额"></td>
<td><input name="type3SettleTotal" type="number" readonly required title="结算总额"></td> <td><input name="type3SettleTotal" type="number" readonly required title="结算总额"></td>
<td><input name="earnestMoneyIncome" type="number" value="${Utils.format(finalBean.earnestMoneyIncome,'0')}" required title="决算总额"></td> <td><input name="earnestMoneyIncome" type="number" value="${Utils.format(finalBean.earnestMoneyIncome,'0')}" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>购买商品、接受劳务支付的现金</td> <td>购买商品、接受劳务支付的现金</td>
<td><input name="type4BudgetTotal" type="number" value="${Utils.format(cashFlowBean.purchaseCost,'0')}" readonly required title="预算总额"></td> <td><input name="type4BudgetTotal" type="number" value="${Utils.format(cashFlowBean.purchaseCost,'0')}" readonly required title="预算总额"></td>
<td><input name="type4SettleTotal" type="number" readonly required title="结算总额"></td> <td><input name="type4SettleTotal" type="number" readonly required title="结算总额"></td>
<td><input name="purchaseCost" type="number" value="${Utils.format(finalBean.purchaseCost,'0')}" required title="决算总额"></td> <td><input name="purchaseCost" type="number" value="${Utils.format(finalBean.purchaseCost,'0')}" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>支付的各项税费</td> <td>支付的各项税费</td>
<td>/</td> <td>/</td>
<td><input name="type5SettleTotal" type="number" value="${Utils.format(finalBean.type5SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input name="type5SettleTotal" type="number" value="${Utils.format(finalBean.type5SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="taxCost" type="number" value="${Utils.format(finalBean.taxCost,'0')}" required title="决算总额"></td> <td><input name="taxCost" type="number" value="${Utils.format(finalBean.taxCost,'0')}" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>支付其他与经营活动有关的现金</td> <td>支付其他与经营活动有关的现金</td>
<td><input name="type6BudgetTotal" type="number" value="${Utils.format(cashFlowBean.earnestMoneyCost,'0')}" readonly required title="预算总额"></td> <td><input name="type6BudgetTotal" type="number" value="${Utils.format(cashFlowBean.earnestMoneyCost,'0')}" readonly required title="预算总额"></td>
<td><input name="type6SettleTotal" type="number" readonly required title="结算总额"></td> <td><input name="type6SettleTotal" type="number" readonly required title="结算总额"></td>
<td><input name="earnestMoneyCost" type="number" value="${Utils.format(finalBean.earnestMoneyCost,'0')}" required title="决算总额"></td> <td><input name="earnestMoneyCost" type="number" value="${Utils.format(finalBean.earnestMoneyCost,'0')}" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>经营活动产生的现金流量净额</td> <td>经营活动产生的现金流量净额</td>
<td><input name="type7BudgetTotal" type="number" value="${Utils.format(cashFlowBean.getNetCashFlow(),'0')}" readonly required title="预算总额"></td> <td><input name="type7BudgetTotal" type="number" value="${Utils.format(cashFlowBean.getNetCashFlow(),'0')}" readonly required title="预算总额"></td>
<td><input name="type7SettleTotal" type="number" readonly required title="结算总额"></td> <td><input name="type7SettleTotal" type="number" readonly required title="结算总额"></td>
<td><input name="netCashFlow" type="number" value="${Utils.format(finalBean.netCashFlow,'0')}" required title="决算总额"></td> <td><input name="netCashFlow" type="number" value="${Utils.format(finalBean.netCashFlow,'0')}" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>投资活动现金流入</td> <td>投资活动现金流入</td>
<td>/</td> <td>/</td>
<td><input name="type8SettleTotal" type="number" readonly required title="结算总额"></td> <td><input name="type8SettleTotal" type="number" readonly required title="结算总额"></td>
<td><input name="cashInflowFromInvestingActivities" value="${Utils.format(finalBean.cashInflowFromInvestingActivities,'0')}" type="number" required title="决算总额"></td> <td><input name="cashInflowFromInvestingActivities" value="${Utils.format(finalBean.cashInflowFromInvestingActivities,'0')}" type="number" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>投资活动现金流出</td> <td>投资活动现金流出</td>
<td>/</td> <td>/</td>
<td><input name="type9SettleTotal" type="number" value="${Utils.format(finalBean.type9SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input name="type9SettleTotal" type="number" value="${Utils.format(finalBean.type9SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="cashOutflowFromInvestingActivities" type="number" value="${Utils.format(finalBean.cashOutflowFromInvestingActivities,'0')}" required title="决算总额"></td> <td><input name="cashOutflowFromInvestingActivities" type="number" value="${Utils.format(finalBean.cashOutflowFromInvestingActivities,'0')}" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>投资活动产生的现金流量净额</td> <td>投资活动产生的现金流量净额</td>
<td>/</td> <td>/</td>
<td><input name="type10SettleTotal" type="number" value="${Utils.format(finalBean.type10SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input name="type10SettleTotal" type="number" value="${Utils.format(finalBean.type10SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="netCashFromInvestingActivities" type="number" value="${Utils.format(finalBean.netCashFromInvestingActivities,'0')}" required title="决算总额"></td> <td><input name="netCashFromInvestingActivities" type="number" value="${Utils.format(finalBean.netCashFromInvestingActivities,'0')}" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>融资资金流入</td> <td>融资资金流入</td>
<td><input name="type11BudgetTotal" type="number" value="${Utils.format(cashFlowBean.financingCapitalInflow,'0')}" readonly required title="预算总额"></td> <td><input name="type11BudgetTotal" type="number" value="${Utils.format(cashFlowBean.financingCapitalInflow,'0')}" readonly required title="预算总额"></td>
<td><input name="type11SettleTotal" type="number" value="${Utils.format(finalBean.type11SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input name="type11SettleTotal" type="number" value="${Utils.format(finalBean.type11SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="financingCapitalInflow" type="number" value="${Utils.format(finalBean.financingCapitalInflow,'0')}" required title="决算总额"></td> <td><input name="financingCapitalInflow" type="number" value="${Utils.format(finalBean.financingCapitalInflow,'0')}" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>还款资金流出</td> <td>还款资金流出</td>
<td><input name="type12BudgetTotal" type="number" value="${Utils.format(cashFlowBean.financingCapitalOutflow,'0')}" readonly required title="预算总额"></td> <td><input name="type12BudgetTotal" type="number" value="${Utils.format(cashFlowBean.financingCapitalOutflow,'0')}" readonly required title="预算总额"></td>
<td><input name="type12SettleTotal" type="number" value="${Utils.format(finalBean.type12SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input name="type12SettleTotal" type="number" value="${Utils.format(finalBean.type12SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="financingCapitalOutflow" type="number" value="${Utils.format(finalBean.financingCapitalOutflow,'0')}" required title="决算总额"></td> <td><input name="financingCapitalOutflow" type="number" value="${Utils.format(finalBean.financingCapitalOutflow,'0')}" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>筹资活动产生的现金流量净额</td> <td>筹资活动产生的现金流量净额</td>
<td><input name="type13BudgetTotal" type="number" value="${Utils.format(cashFlowBean.getFinancingCapitalCashflow(),'0')}" readonly required title="预算总额"></td> <td><input name="type13BudgetTotal" type="number" value="${Utils.format(cashFlowBean.getFinancingCapitalCashflow(),'0')}" readonly required title="预算总额"></td>
<td><input name="type13SettleTotal" type="number" value="${Utils.format(finalBean.type13SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input name="type13SettleTotal" type="number" value="${Utils.format(finalBean.type13SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="financingCapitalCashflow" type="number" value="${Utils.format(finalBean.financingCapitalCashflow,'0')}" required title="决算总额"></td> <td><input name="financingCapitalCashflow" type="number" value="${Utils.format(finalBean.financingCapitalCashflow,'0')}" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>货币资金净增加额</td> <td>货币资金净增加额</td>
<td><input name="type14BudgetTotal" type="number" value="${Utils.format(cashFlowBean.getNetIncreaseMonetaryFunds(),'0')}" readonly required title="预算总额"></td> <td><input name="type14BudgetTotal" type="number" value="${Utils.format(cashFlowBean.getNetIncreaseMonetaryFunds(),'0')}" readonly required title="预算总额"></td>
<td><input name="type14SettleTotal" type="number" value="${Utils.format(finalBean.type14SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input name="type14SettleTotal" type="number" value="${Utils.format(finalBean.type14SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="netIncreaseMonetaryFunds" type="number" value="${Utils.format(finalBean.netIncreaseMonetaryFunds,'0')}" required title="决算总额"></td> <td><input name="netIncreaseMonetaryFunds" type="number" value="${Utils.format(finalBean.netIncreaseMonetaryFunds,'0')}" readonly required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>合计</td> <td>合计</td>
<td><input name="cashFluxBudgetTotal" type="number" readonly required title="此列累计"></td> <td><input name="cashFluxBudgetTotal" type="number" readonly required title="此列累计"></td>
<td><input name="cashFluxSettleTotal" type="number" readonly required title="此列累计"></td> <td><input name="cashFluxSettleTotal" type="number" 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>
@ -1060,10 +1060,6 @@
<!--验证表单元素validate end--> <!--验证表单元素validate end-->
</div> </div>
</div> </div>
@ -1338,13 +1334,14 @@
<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">
<div class="am-g am-form-group am-margin-top" style="display: flex;"> <div class="am-g am-form-group am-margin-top" style="display: flex;">
<div class="am-u-sm-4 am-u-md-2 am-text-right"> <div class="am-u-sm-4 am-u-md-2 am-text-right">
<span style="color: red;">*</span>审核意见:</div> 审核意见
<div class="am-u-sm-4 am-u-md-2 am-text-right"> </div>
<div class="am-u-sm-6 am-u-md-6"> <div class="am-u-sm-4 am-u-md-4 am-text-left">
<span>${project.name}</span> <#list taskRecords as node>
</div> <span>${node.assigneeName} : ${node.taskComment} &nbsp;&nbsp; ${node.createTime}</span>
<hr/>
</#list>
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -72,9 +72,9 @@
<tr> <tr>
<td>合计</td> <td>合计</td>
<td></td> <td></td>
<td><input name="incomeEstimateTotal" 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="incomeBudgetTotal" 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 name="incomeSettleTotal" type="number" readonly required title="此列累计"></td> <td><input type="number" readonly required title="此列累计"></td>
<td><input name="incomeFinalTotal" type="number" readonly required title="此列累计"></td> <td><input name="incomeFinalTotal" type="number" readonly required title="此列累计"></td>
</tr> </tr>
</tbody> </tbody>
@ -95,35 +95,35 @@
<td>成本</td> <td>成本</td>
<td>采购成本</td> <td>采购成本</td>
<td>设备</td> <td>设备</td>
<td><input name="costPurchaseDeviceTaxInclude" 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 name="costPurchaseDeviceTaxInclude" type="number"readonly required title="购买设备结算总额"></td> <td><input type="number"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>
<td>成本</td> <td>成本</td>
<td>采购成本</td> <td>采购成本</td>
<td>施工</td> <td>施工</td>
<td><input name="costPurchaseBuildEstimateTotal" 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="costPurchaseBuildBudgetTotal" 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 name="costPurchaseBuildSettleTotal" type="number" readonly required title="施工采购成本结算总额"></td> <td><input type="number" 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>
<td>成本</td> <td>成本</td>
<td>采购成本</td> <td>采购成本</td>
<td>服务</td> <td>服务</td>
<td><input name="costPurchaseServiceEstimateTotal" 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="costPurchaseServiceBudgetTotal" 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 name="costPurchaseServiceSettleTotal" type="number" readonly required title="服务采购成本结算总额"></td> <td><input type="number" 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>
<td>成本</td> <td>成本</td>
<td>采购成本</td> <td>采购成本</td>
<td>其他</td> <td>其他</td>
<td><input name="costPurchaseOtherEstimateTotal" 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="costPurchaseOtherBudgetTotal" 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" type="number" readonly required title="其他采购成本结算总额"></td> <td><input name="costPurchaseOtherSettleTotal" 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>
@ -131,8 +131,8 @@
<td>成本</td> <td>成本</td>
<td>项目管理成本</td> <td>项目管理成本</td>
<td>项目管理成本</td> <td>项目管理成本</td>
<td><input name="costProjectManageEstimateTotal" 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="costProjectManageBudgetTotal" 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" type="number" readonly required title="项目管理成本结算总额"></td> <td><input name="costProjectManageSettleTotal" 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>
@ -140,8 +140,8 @@
<td>成本</td> <td>成本</td>
<td>其他</td> <td>其他</td>
<td>其他</td> <td>其他</td>
<td><input name="costOtherEstimateTotal" 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="costOtherBudgetTotal" 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" type="number" type="number"readonly required title="其他成本结算总额"></td> <td><input name="costOtherSettleTotal" 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>
@ -149,8 +149,8 @@
<td>合计</td> <td>合计</td>
<td></td> <td></td>
<td></td> <td></td>
<td><input name="costEstimateTotal" 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="costBudgetTotal" 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" type="number" readonly required title="此列累计"></td> <td><input name="costSettleTotal" type="number" readonly required title="此列累计"></td>
<td><input name="costFinalTotal" type="number" readonly required title="此列累计"></td> <td><input name="costFinalTotal" type="number" readonly required title="此列累计"></td>
</tr> </tr>
@ -170,17 +170,17 @@
<tr> <tr>
<td>财务费用</td> <td>财务费用</td>
<td>资金占用成本</td> <td>资金占用成本</td>
<td><input name="costExpropriationEstimateTotal" 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="costExpropriationBudgetTotal" 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 name="costExpropriationSettleTotal" type="number" required readonly title="资金占用成本结算总额"></td> <td><input type="number" 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>
<td>公司管理费用</td> <td>公司管理费用</td>
<td></td> <td></td>
<td><input name="costCompanyManageEstimateTotal" 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="costCompanyManageBudgetTotal" 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 name="costCompanyManageSettleTotal" type="number" required readonly title="公司管理费用结算总额"></td> <td><input type="number" 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>
@ -215,23 +215,23 @@
</tr> </tr>
<tr> <tr>
<td>项目毛利</td> <td>项目毛利</td>
<td><input name="grossProfitEstimateTotal" type="number" value="${Utils.format(finalBean.grossProfitEstimateTotal,'0')}" readonly required title="项目毛利概算总额"></td> <td><input name="projectGrossProfit" type="number" value="${Utils.format(estimateBean.getProjectGrossProfit(),'0')}" readonly required title="项目毛利概算总额"></td>
<td><input name="grossProfitBudgetTotal" type="number" value="${Utils.format(finalBean.grossProfitBudgetTotal,'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(finalBean.grossProfitSettleTotal,'0')}" readonly required title="项目毛利结算总额"></td> <td><input name="grossProfitSettleTotal" type="number" value="${Utils.format(finalBean.grossProfitSettleTotal,'0')}" readonly required title="项目毛利结算总额"></td>
<td><input name="grossProfitFinalTotal" type="number" value="${Utils.format(finalBean.grossProfitFinalTotal,'0')}" required title="项目毛利决算总额"></td> <td><input name="grossProfitFinalTotal" type="number" value="${Utils.format(finalBean.grossProfitFinalTotal,'0')}" required title="项目毛利决算总额"></td>
<td><input name="grossProfitProfitMargin" type="number" value="${Utils.format(finalBean.grossProfitProfitMargin,'0')}" required readonly title="项目毛利利润率"></td> <td><input name="grossProfitProfitMargin" type="number" value="${Utils.format(finalBean.grossProfitProfitMargin,'0')}" required readonly title="项目毛利利润率"></td>
</tr> </tr>
<tr> <tr>
<td>项目贡献利润</td> <td>项目贡献利润</td>
<td><input name="contributionMarginEstimateTotal" type="number" value="${Utils.format(finalBean.contributionMarginEstimateTotal,'0')}" readonly required title="项目贡献利润概算总额"></td> <td><input name="projectContributionProfit" type="number" value="${Utils.format(estimateBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润概算总额"></td>
<td><input name="contributionMarginBudgetTotal" type="number" value="${Utils.format(finalBean.contributionMarginBudgetTotal,'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(finalBean.contributionMarginSettleTotal,'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>
<tr> <tr>
<td>项目净利润</td> <td>项目净利润</td>
<td><input name="netMarginEstimateTotal" type="number" value="${Utils.format(finalBean.netMarginEstimateTotal,'0')}" readonly required title="项目净利润概算总额"></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(finalBean.netMarginSettleTotal,'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>
@ -251,85 +251,85 @@
</tr> </tr>
<tr> <tr>
<td>销售商品、提供劳务收到的现金</td> <td>销售商品、提供劳务收到的现金</td>
<td><input name="type1BudgetTotal" type="number" value="${Utils.format(cashFlowBean.saleIncomeCash,'0')}" readonly required title="预算总额"></td> <td><input name="budgetSaleIncomeCash" type="number" value="${Utils.format(cashFlowBean.saleIncomeCash,'0')}" readonly required title="预算总额"></td>
<td><input name="type1SettleTotal" type="number" readonly required title="结算总额"></td> <td><input type="number" readonly required title="结算总额"></td>
<td><input name="saleIncomeCash" type="number" value="${Utils.format(finalBean.saleIncomeCash,'0')}" required title="决算总额"></td> <td><input name="saleIncomeCash" type="number" value="${Utils.format(finalBean.saleIncomeCash,'0')}" required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>收到的税费返还</td> <td>收到的税费返还</td>
<td>/</td> <td>/</td>
<td><input name="type2SettleTotal" type="number" value="${Utils.format(cashFlowBean.taxReturn,'0')}" readonly required title="结算总额"></td> <td><input type="number" readonly required title="结算总额"></td>
<td><input name="taxReturn" type="number" value="${Utils.format(finalBean.taxReturn,'0')}" required title="决算总额"></td> <td><input name="taxReturn" type="number" value="${Utils.format(finalBean.taxReturn,'0')}" required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>收到其他与经营活动有关的现金</td> <td>收到其他与经营活动有关的现金</td>
<td><input name="type3BudgetTotal" type="number" value="${Utils.format(cashFlowBean.earnestMoneyIncome,'0')}" readonly required title="预算总额"></td> <td><input name="budgetEarnestMoneyIncome" type="number" value="${Utils.format(cashFlowBean.earnestMoneyIncome,'0')}" readonly required title="预算总额"></td>
<td><input name="type3SettleTotal" type="number" readonly required title="结算总额"></td> <td><input type="number" readonly required title="结算总额"></td>
<td><input name="earnestMoneyIncome" type="number" value="${Utils.format(finalBean.earnestMoneyIncome,'0')}" required title="决算总额"></td> <td><input name="earnestMoneyIncome" type="number" value="${Utils.format(finalBean.earnestMoneyIncome,'0')}" required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>购买商品、接受劳务支付的现金</td> <td>购买商品、接受劳务支付的现金</td>
<td><input name="type4BudgetTotal" type="number" value="${Utils.format(cashFlowBean.purchaseCost,'0')}" readonly required title="预算总额"></td> <td><input name="budgetPurchaseCost" type="number" value="${Utils.format(cashFlowBean.purchaseCost,'0')}" readonly required title="预算总额"></td>
<td><input name="type4SettleTotal" type="number" readonly required title="结算总额"></td> <td><input type="number" readonly required title="结算总额"></td>
<td><input name="purchaseCost" type="number" value="${Utils.format(finalBean.purchaseCost,'0')}" required title="决算总额"></td> <td><input name="purchaseCost" type="number" value="${Utils.format(finalBean.purchaseCost,'0')}" required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>支付的各项税费</td> <td>支付的各项税费</td>
<td>/</td> <td>/</td>
<td><input name="type5SettleTotal" type="number" value="${Utils.format(finalBean.type5SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input type="number" readonly required title="结算总额"></td>
<td><input name="taxCost" type="number" value="${Utils.format(finalBean.taxCost,'0')}" required title="决算总额"></td> <td><input name="taxCost" type="number" value="${Utils.format(finalBean.taxCost,'0')}" required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>支付其他与经营活动有关的现金</td> <td>支付其他与经营活动有关的现金</td>
<td><input name="type6BudgetTotal" type="number" value="${Utils.format(cashFlowBean.earnestMoneyCost,'0')}" readonly required title="预算总额"></td> <td><input name="budgetEarnestMoneyCost" type="number" value="${Utils.format(cashFlowBean.earnestMoneyCost,'0')}" readonly required title="预算总额"></td>
<td><input name="type6SettleTotal" type="number" readonly required title="结算总额"></td> <td><input type="number" readonly required title="结算总额"></td>
<td><input name="earnestMoneyCost" type="number" value="${Utils.format(finalBean.earnestMoneyCost,'0')}" required title="决算总额"></td> <td><input name="earnestMoneyCost" type="number" value="${Utils.format(finalBean.earnestMoneyCost,'0')}" required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>经营活动产生的现金流量净额</td> <td>经营活动产生的现金流量净额</td>
<td><input name="type7BudgetTotal" type="number" value="${Utils.format(cashFlowBean.getNetCashFlow(),'0')}" readonly required title="预算总额"></td> <td><input name="budgetNetCashFlow" type="number" value="${Utils.format(cashFlowBean.getNetCashFlow(),'0')}" readonly required title="预算总额"></td>
<td><input name="type7SettleTotal" type="number" readonly required title="结算总额"></td> <td><input type="number" readonly required title="结算总额"></td>
<td><input name="netCashFlow" type="number" value="${Utils.format(finalBean.netCashFlow,'0')}" required title="决算总额"></td> <td><input name="netCashFlow" type="number" value="${Utils.format(finalBean.netCashFlow,'0')}" required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>投资活动现金流入</td> <td>投资活动现金流入</td>
<td>/</td> <td>/</td>
<td><input name="type8SettleTotal" type="number" readonly required title="结算总额"></td> <td><input type="number" readonly required title="结算总额"></td>
<td><input name="cashInflowFromInvestingActivities" value="${Utils.format(finalBean.cashInflowFromInvestingActivities,'0')}" type="number" required title="决算总额"></td> <td><input name="cashInflowFromInvestingActivities" value="${Utils.format(finalBean.cashInflowFromInvestingActivities,'0')}" type="number" required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>投资活动现金流出</td> <td>投资活动现金流出</td>
<td>/</td> <td>/</td>
<td><input name="type9SettleTotal" type="number" value="${Utils.format(finalBean.type9SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input type="number" readonly required title="结算总额"></td>
<td><input name="cashOutflowFromInvestingActivities" type="number" value="${Utils.format(finalBean.cashOutflowFromInvestingActivities,'0')}" required title="决算总额"></td> <td><input name="cashOutflowFromInvestingActivities" type="number" value="${Utils.format(finalBean.cashOutflowFromInvestingActivities,'0')}" required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>投资活动产生的现金流量净额</td> <td>投资活动产生的现金流量净额</td>
<td>/</td> <td>/</td>
<td><input name="type10SettleTotal" type="number" value="${Utils.format(finalBean.type10SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input type="number" readonly required title="结算总额"></td>
<td><input name="netCashFromInvestingActivities" type="number" value="${Utils.format(finalBean.netCashFromInvestingActivities,'0')}" required title="决算总额"></td> <td><input name="netCashFromInvestingActivities" type="number" value="${Utils.format(finalBean.netCashFromInvestingActivities,'0')}" required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>融资资金流入</td> <td>融资资金流入</td>
<td><input name="type11BudgetTotal" type="number" value="${Utils.format(cashFlowBean.financingCapitalInflow,'0')}" readonly required title="预算总额"></td> <td><input name="budgetFinancingCapitalInflow" type="number" value="${Utils.format(cashFlowBean.financingCapitalInflow,'0')}" readonly required title="预算总额"></td>
<td><input name="type11SettleTotal" type="number" value="${Utils.format(finalBean.type11SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input type="number" readonly required title="结算总额"></td>
<td><input name="financingCapitalInflow" type="number" value="${Utils.format(finalBean.financingCapitalInflow,'0')}" required title="决算总额"></td> <td><input name="financingCapitalInflow" type="number" value="${Utils.format(finalBean.financingCapitalInflow,'0')}" required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>还款资金流出</td> <td>还款资金流出</td>
<td><input name="type12BudgetTotal" type="number" value="${Utils.format(cashFlowBean.financingCapitalOutflow,'0')}" readonly required title="预算总额"></td> <td><input name="budgetFinancingCapitalOutflow" type="number" value="${Utils.format(cashFlowBean.financingCapitalOutflow,'0')}" readonly required title="预算总额"></td>
<td><input name="type12SettleTotal" type="number" value="${Utils.format(finalBean.type12SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input type="number" readonly required title="结算总额"></td>
<td><input name="financingCapitalOutflow" type="number" value="${Utils.format(finalBean.financingCapitalOutflow,'0')}" required title="决算总额"></td> <td><input name="financingCapitalOutflow" type="number" value="${Utils.format(finalBean.financingCapitalOutflow,'0')}" required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>筹资活动产生的现金流量净额</td> <td>筹资活动产生的现金流量净额</td>
<td><input name="type13BudgetTotal" type="number" value="${Utils.format(cashFlowBean.getFinancingCapitalCashflow(),'0')}" readonly required title="预算总额"></td> <td><input name="budgetFinancingCapitalCashflow" type="number" value="${Utils.format(cashFlowBean.getFinancingCapitalCashflow(),'0')}" readonly required title="预算总额"></td>
<td><input name="type13SettleTotal" type="number" value="${Utils.format(finalBean.type13SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input type="number" readonly required title="结算总额"></td>
<td><input name="financingCapitalCashflow" type="number" value="${Utils.format(finalBean.financingCapitalCashflow,'0')}" required title="决算总额"></td> <td><input name="financingCapitalCashflow" type="number" value="${Utils.format(finalBean.financingCapitalCashflow,'0')}" required title="决算总额"></td>
</tr> </tr>
<tr> <tr>
<td>货币资金净增加额</td> <td>货币资金净增加额</td>
<td><input name="type14BudgetTotal" type="number" value="${Utils.format(cashFlowBean.getNetIncreaseMonetaryFunds(),'0')}" readonly required title="预算总额"></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(finalBean.type14SettleTotal,'0')}" readonly required title="结算总额"></td> <td><input name="type14SettleTotal" type="number" value="${Utils.format(finalBean.type14SettleTotal,'0')}" readonly required title="结算总额"></td>
<td><input name="netIncreaseMonetaryFunds" type="number" value="${Utils.format(finalBean.netIncreaseMonetaryFunds,'0')}" required title="决算总额"></td> <td><input name="netIncreaseMonetaryFunds" type="number" value="${Utils.format(finalBean.netIncreaseMonetaryFunds,'0')}" required title="决算总额"></td>
</tr> </tr>

View File

@ -229,6 +229,13 @@
onclick="location.href='${base}/project/approve?id=${list.id}'"><span onclick="location.href='${base}/project/approve?id=${list.id}'"><span
class="am-icon-pencil-square-o"></span>审核 class="am-icon-pencil-square-o"></span>审核
</button> </button>
<button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/taskRecords/${list.id?c}'"><span
class="am-icon-pencil-square-o"></span>查看审核流程
</button>
</div> </div>
</div> </div>
</td> </td>

View File

@ -0,0 +1,82 @@
<#assign base=request.contextPath />
<#import "../common/defaultLayout.ftl" as defaultLayout>
<@defaultLayout.layout>
<link rel="stylesheet" type="text/css" href="${base}/common/css/time-axis.css">
<div class="admin-content">
<div class="am-cf am-padding" style="padding:1rem 1.6rem 1.6rem 1rem;margin:0px;">
<!-- padding:1px 2px 3px 4px;上、右、下,和左 -->
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目管理</strong> /
<small>审核流程</small>
</div>
</div>
<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>
</ul>
<div class="am-tabs-bd">
<div class="am-tab-panel am-fade am-in am-active" id="tab1">
<div class="main">
<ul class="time-axis">
<#if list?exists >
<#list list as node>
<li class="time-axis-item">
<div class="time-axis-date" style="margin-left: -96px"> ${node.createTime}
<span></span>
</div>
<div class="time-axis-title"> ${node.roleName}-${node.assigneeName}:
<#if node.taskStatus==2>审批通过</#if>
<#if node.taskStatus==3>审批不通过</#if>
</div>
<div class="time-axis-title">
${node.taskComment}
</div>
</li>
</#list>
<#else>
<div class="am-kai" align="center">
<h3>没有找到任何记录!</h3>
</div>
</#if>
</ul>
</div>
</div>
</div>
<div class="am-tabs-bd">
<div class="am-tab-panel am-fade am-in" id="tab2">
<img id="img" name="img" style="width: 950px" src="${base}/project/procInsPng/${projectId}">
</div>
</div>
</div>
<div class="am-margin">
<button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);">
返回上一级
</button>
</div>
</div>
</@defaultLayout.layout>
<script type="text/javascript" src="${base}/assets/js/jquery-3.4.1.min.js"></script>