项目的审批状态管理
parent
13e47b6317
commit
081206f50b
|
@ -126,13 +126,15 @@ public class ProjectController extends BaseController {
|
||||||
|
|
||||||
@RequestMapping("/estimateEditSave")
|
@RequestMapping("/estimateEditSave")
|
||||||
public String estimateEditSave(Project project, EstimateBean estimateBean, Map<String, Object> model) {
|
public String estimateEditSave(Project project, EstimateBean estimateBean, Map<String, Object> model) {
|
||||||
projectService.estimateEditSave(project, estimateBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT);
|
Project projectInDb = projectService.getProject(project.getId());
|
||||||
|
projectService.estimateEditSave(project, projectInDb, estimateBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT);
|
||||||
return "redirect:/project/list";
|
return "redirect:/project/list";
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/estimateEditSaveAndApprove")
|
@RequestMapping("/estimateEditSaveAndApprove")
|
||||||
public String estimateEditSaveAndApprove(Project project, EstimateBean estimateBean, Map<String, Object> model) throws Exception {
|
public String estimateEditSaveAndApprove(Project project, EstimateBean estimateBean, Map<String, Object> model) throws Exception {
|
||||||
projectService.estimateEditSaveAndApprove(project, estimateBean, InterfaceUtil.getAdmin());
|
Project projectInDb = projectService.getProject(project.getId());
|
||||||
|
projectService.estimateEditSaveAndApprove(project, projectInDb, estimateBean, InterfaceUtil.getAdmin());
|
||||||
return "redirect:/project/list";
|
return "redirect:/project/list";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -171,7 +173,8 @@ public class ProjectController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/budgetEditSave")
|
@RequestMapping("/budgetEditSave")
|
||||||
public String budgetEditSave(Project project, BudgetBean budgetBean, Map<String, Object> model) {
|
public String budgetEditSave(Project project, BudgetBean budgetBean, Map<String, Object> model) {
|
||||||
projectService.budgetEditSave(project, budgetBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT);
|
Project projectInDb = projectService.getProject(project.getId());
|
||||||
|
projectService.budgetEditSave(project, projectInDb, budgetBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT);
|
||||||
return "redirect:/project/list";
|
return "redirect:/project/list";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,7 +183,8 @@ public class ProjectController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/budgetEditSaveAndApprove")
|
@RequestMapping("/budgetEditSaveAndApprove")
|
||||||
public String budgetEditSaveAndApprove(Project project, BudgetBean budgetBean, Map<String, Object> model) throws Exception {
|
public String budgetEditSaveAndApprove(Project project, BudgetBean budgetBean, Map<String, Object> model) throws Exception {
|
||||||
projectService.budgetEditSaveAndApprove(project, budgetBean, InterfaceUtil.getAdmin());
|
Project projectInDb = projectService.getProject(project.getId());
|
||||||
|
projectService.budgetEditSaveAndApprove(project, projectInDb, budgetBean, InterfaceUtil.getAdmin());
|
||||||
return "redirect:/project/list";
|
return "redirect:/project/list";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -152,14 +152,14 @@ public class ProjectService {
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = RuntimeException.class)
|
@Transactional(rollbackFor = RuntimeException.class)
|
||||||
public Project estimateEditSaveAndApprove(Project project,
|
public Project estimateEditSaveAndApprove(Project project,
|
||||||
|
Project projectInDb,
|
||||||
EstimateBean estimateBean,
|
EstimateBean estimateBean,
|
||||||
Admin admin) throws Exception {
|
Admin admin) throws Exception {
|
||||||
Project p = estimateEditSave(project, estimateBean, admin, ApproveStatusEnum.APPROVAL_PENDING);
|
|
||||||
|
|
||||||
if(null != p.getApproveStatusEstimate() &&
|
if(null != projectInDb.getApproveStatusEstimate() &&
|
||||||
ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == p.getApproveStatusEstimate()){
|
ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == projectInDb.getApproveStatusEstimate()){
|
||||||
//审核不通过的情况下重新编辑后就完成当前任务【此时任务节点在第一个,也就是发起审批】
|
//审核不通过的情况下重新编辑后就完成当前任务【此时任务节点在第一个,也就是发起审批】
|
||||||
List<String> estimateProcessInsIds = projectInstanceService.getEstimateProcessInsIds(p);
|
List<String> estimateProcessInsIds = projectInstanceService.getEstimateProcessInsIds(projectInDb);
|
||||||
if(CollectionUtil.isNotEmpty(estimateProcessInsIds)){
|
if(CollectionUtil.isNotEmpty(estimateProcessInsIds)){
|
||||||
actTaskDefService.completeTaskByProcInsId(estimateProcessInsIds.get(0),
|
actTaskDefService.completeTaskByProcInsId(estimateProcessInsIds.get(0),
|
||||||
ApproveStatusEnum.APPROVAL_PASSED.getApproveStatus(),
|
ApproveStatusEnum.APPROVAL_PASSED.getApproveStatus(),
|
||||||
|
@ -167,25 +167,25 @@ public class ProjectService {
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
//第一次或者重新发起一个流程实例【第一次或者以前的审批都已经过了】
|
//第一次或者重新发起一个流程实例【第一次或者以前的审批都已经过了】
|
||||||
projectInstanceService.startEstimateProcessInstance(p, admin);
|
projectInstanceService.startEstimateProcessInstance(projectInDb, admin);
|
||||||
}
|
}
|
||||||
return p;
|
return estimateEditSave(project, projectInDb, estimateBean, admin, ApproveStatusEnum.APPROVAL_PENDING);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 编辑概算保存项目
|
* 编辑概算保存项目
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = RuntimeException.class)
|
@Transactional(rollbackFor = RuntimeException.class)
|
||||||
public Project estimateEditSave(Project project, EstimateBean estimateBean, Admin admin, ApproveStatusEnum approveStatusEnum) {
|
public Project estimateEditSave(Project project, Project projectInDb, EstimateBean estimateBean, Admin admin, ApproveStatusEnum approveStatusEnum) {
|
||||||
Project p = editProject(project, admin, approveStatusEnum);
|
Project p = editProject(project, projectInDb);
|
||||||
p.setStatus(StatusEnum.CREATED.getStatus());
|
p.setStatus(StatusEnum.CREATED.getStatus());
|
||||||
p.setStatusDesc(StatusEnum.CREATED.getStatusDesc());
|
p.setStatusDesc(StatusEnum.CREATED.getStatusDesc());
|
||||||
p.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
|
p.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
|
||||||
|
p = projectRepository.saveAndFlush(p);
|
||||||
|
|
||||||
ProjectConfigBean projectConfigBeanConfig = projectBudgetService.getProjectConfigBeanConfig();
|
ProjectConfigBean projectConfigBeanConfig = projectBudgetService.getProjectConfigBeanConfig();
|
||||||
project.setProjectContributionProfitRateThreshold(projectConfigBeanConfig.getProjectContributionProfitRateThreshold());
|
project.setProjectContributionProfitRateThreshold(projectConfigBeanConfig.getProjectContributionProfitRateThreshold());
|
||||||
project.setUnderwrittenTaxRate(projectConfigBeanConfig.getUnderwrittenTaxRate());
|
project.setUnderwrittenTaxRate(projectConfigBeanConfig.getUnderwrittenTaxRate());
|
||||||
|
|
||||||
p = projectRepository.saveAndFlush(p);
|
|
||||||
//清空重新保存概算信息
|
//清空重新保存概算信息
|
||||||
projectEstimateService.clearEstimate(p);
|
projectEstimateService.clearEstimate(p);
|
||||||
projectEstimateService.saveEstimate(p, estimateBean);
|
projectEstimateService.saveEstimate(p, estimateBean);
|
||||||
|
@ -222,36 +222,35 @@ public class ProjectService {
|
||||||
return project;
|
return project;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Project editProject(Project project, Admin admin, ApproveStatusEnum approveStatusEnum) {
|
private Project editProject(Project project, Project projectInDb) {
|
||||||
Project p = getProject(project.getId());
|
|
||||||
|
|
||||||
//只有如下可以修改
|
//只有如下可以修改
|
||||||
p.setStartDate(project.getStartDate());
|
projectInDb.setStartDate(project.getStartDate());
|
||||||
p.setEndDate(project.getEndDate());
|
projectInDb.setEndDate(project.getEndDate());
|
||||||
p.setAdvanceInterestAmount(project.getAdvanceInterestAmount());
|
projectInDb.setAdvanceInterestAmount(project.getAdvanceInterestAmount());
|
||||||
p.setAdvancePeakAmount(project.getAdvancePeakAmount());
|
projectInDb.setAdvancePeakAmount(project.getAdvancePeakAmount());
|
||||||
p.setContractAmount(project.getContractAmount());
|
projectInDb.setContractAmount(project.getContractAmount());
|
||||||
p.setHuazhiProductAmount(project.getHuazhiProductAmount());
|
projectInDb.setHuazhiProductAmount(project.getHuazhiProductAmount());
|
||||||
p.setZiguangOtherAmount(project.getZiguangOtherAmount());
|
projectInDb.setZiguangOtherAmount(project.getZiguangOtherAmount());
|
||||||
p.setMainContractCollectionTerms(project.getMainContractCollectionTerms());
|
projectInDb.setMainContractCollectionTerms(project.getMainContractCollectionTerms());
|
||||||
|
|
||||||
p.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
|
/// projectInDb.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
|
||||||
|
|
||||||
p.setLastUpdateTime(new Date());
|
projectInDb.setLastUpdateTime(new Date());
|
||||||
|
|
||||||
return p;
|
return projectInDb;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑预算保存项目并审核
|
* 编辑预算保存项目并审核
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = RuntimeException.class)
|
@Transactional(rollbackFor = RuntimeException.class)
|
||||||
public Project budgetEditSaveAndApprove(Project project, BudgetBean budgetBean, Admin admin) throws Exception {
|
public Project budgetEditSaveAndApprove(Project project, Project projectInDb, BudgetBean budgetBean, Admin admin) throws Exception {
|
||||||
Project p = budgetEditSave(project, budgetBean, admin, ApproveStatusEnum.APPROVAL_PENDING);
|
if(null != projectInDb.getApproveStatusBudget() &&
|
||||||
if(null != p.getApproveStatusBudget() &&
|
ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == projectInDb.getApproveStatusBudget()){
|
||||||
ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == p.getApproveStatusBudget()){
|
|
||||||
//审核不通过的情况下重新编辑后就完成当前任务
|
//审核不通过的情况下重新编辑后就完成当前任务
|
||||||
List<String> budgetProcessInsIds = projectInstanceService.getBudgetProcessInsIds(p);
|
List<String> budgetProcessInsIds = projectInstanceService.getBudgetProcessInsIds(projectInDb);
|
||||||
if(CollectionUtil.isNotEmpty(budgetProcessInsIds)){
|
if(CollectionUtil.isNotEmpty(budgetProcessInsIds)){
|
||||||
actTaskDefService.completeTaskByProcInsId(budgetProcessInsIds.get(0),
|
actTaskDefService.completeTaskByProcInsId(budgetProcessInsIds.get(0),
|
||||||
ApproveStatusEnum.APPROVAL_PASSED.getApproveStatus(),
|
ApproveStatusEnum.APPROVAL_PASSED.getApproveStatus(),
|
||||||
|
@ -259,19 +258,19 @@ public class ProjectService {
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
//第一次或者重新发起一个流程实例
|
//第一次或者重新发起一个流程实例
|
||||||
projectInstanceService.startBudgetProcessInstance(p, admin);
|
projectInstanceService.startBudgetProcessInstance(projectInDb, admin);
|
||||||
}
|
}
|
||||||
return p;
|
return budgetEditSave(project, projectInDb, budgetBean, admin, ApproveStatusEnum.APPROVAL_PENDING);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 编辑预算保存项目
|
* 编辑预算保存项目
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = RuntimeException.class)
|
@Transactional(rollbackFor = RuntimeException.class)
|
||||||
public Project budgetEditSave(Project project, BudgetBean budgetBean, Admin admin, ApproveStatusEnum approveStatusEnum) {
|
public Project budgetEditSave(Project project, Project projectInDb, BudgetBean budgetBean, Admin admin, ApproveStatusEnum approveStatusEnum) {
|
||||||
Project p = editProject(project, admin, approveStatusEnum);
|
Project p = editProject(project, projectInDb);
|
||||||
p.setStatus(StatusEnum.BUDGET_ACCOUNTS.getStatus());
|
p.setStatus(StatusEnum.BUDGET_ACCOUNTS.getStatus());
|
||||||
p.setStatusDesc(StatusEnum.BUDGET_ACCOUNTS.getStatusDesc());
|
p.setStatusDesc(StatusEnum.BUDGET_ACCOUNTS.getStatusDesc());
|
||||||
p.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
|
p.setApproveStatusBudget(approveStatusEnum.getApproveStatus());
|
||||||
p = projectRepository.saveAndFlush(p);
|
p = projectRepository.saveAndFlush(p);
|
||||||
//清空重新保存概算信息
|
//清空重新保存概算信息
|
||||||
projectBudgetService.clearBudget(p);
|
projectBudgetService.clearBudget(p);
|
||||||
|
|
Loading…
Reference in New Issue