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