项目状态修改
parent
0f36a3ba66
commit
7193362ceb
|
@ -4,11 +4,10 @@ package cn.palmte.work.bean;
|
|||
* @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
|
||||
*/
|
||||
public enum StatusEnum {
|
||||
CREATED(1,"项目创建"),
|
||||
ESTIMATE_ACCOUNTS(5,"概算完成"),
|
||||
BUDGET_ACCOUNTS(10,"预算完成"),
|
||||
SETTLE_ACCOUNTS(15,"结算中"),
|
||||
FINAL_ACCOUNTS(20,"决算完成");
|
||||
ESTIMATE_ACCOUNTS(1,"项目创建(概算)"),
|
||||
BUDGET_ACCOUNTS(5,"预算"),
|
||||
SETTLE_ACCOUNTS(10,"结算"),
|
||||
FINAL_ACCOUNTS(15,"决算");
|
||||
|
||||
private int status;
|
||||
private String statusDesc;
|
||||
|
@ -36,18 +35,15 @@ public enum StatusEnum {
|
|||
|
||||
public static StatusEnum parseStatus(int status){
|
||||
if(status == 1){
|
||||
return CREATED;
|
||||
}
|
||||
if(status == 5){
|
||||
return ESTIMATE_ACCOUNTS;
|
||||
}
|
||||
if(status == 10){
|
||||
if(status == 5){
|
||||
return BUDGET_ACCOUNTS;
|
||||
}
|
||||
if(status == 15){
|
||||
if(status == 10){
|
||||
return SETTLE_ACCOUNTS;
|
||||
}
|
||||
if(status == 20){
|
||||
if(status == 15){
|
||||
return FINAL_ACCOUNTS;
|
||||
}
|
||||
throw new IllegalArgumentException("Unkown status:"+status);
|
||||
|
|
|
@ -111,7 +111,7 @@ public class ProjectController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 预算保存草稿
|
||||
* 新增概算项目 保存草稿
|
||||
*/
|
||||
@RequestMapping("/estimateAddSave")
|
||||
public String estimateAddSave(Project project, EstimateBean estimateBean, Map<String, Object> model) {
|
||||
|
@ -120,7 +120,7 @@ public class ProjectController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 预算保存并提交审核
|
||||
* 新增概算项目 保存并提交审核
|
||||
*/
|
||||
@RequestMapping("/estimateAddSaveAndApprove")
|
||||
public String estimateAddSaveAndApprove(Project project, EstimateBean estimateBean, Map<String, Object> model) throws Exception {
|
||||
|
@ -128,7 +128,13 @@ public class ProjectController extends BaseController {
|
|||
return "redirect:/project/list";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 去编辑概算项目页面
|
||||
*
|
||||
* @param id
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/edit")
|
||||
public String edit(@RequestParam("id") int id, Map<String, Object> model) {
|
||||
Project project = projectService.getProject(id);
|
||||
|
@ -140,6 +146,13 @@ public class ProjectController extends BaseController {
|
|||
return "admin/project_estimate_edit";
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑概算项目保存
|
||||
* @param project
|
||||
* @param estimateBean
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/estimateEditSave")
|
||||
public String estimateEditSave(Project project, EstimateBean estimateBean, Map<String, Object> model) {
|
||||
Project projectInDb = projectService.getProject(project.getId());
|
||||
|
@ -147,6 +160,14 @@ public class ProjectController extends BaseController {
|
|||
return "redirect:/project/list";
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑概算项目保存并提交审批
|
||||
* @param project
|
||||
* @param estimateBean
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/estimateEditSaveAndApprove")
|
||||
public String estimateEditSaveAndApprove(Project project, EstimateBean estimateBean, Map<String, Object> model) throws Exception {
|
||||
Project projectInDb = projectService.getProject(project.getId());
|
||||
|
|
|
@ -14,11 +14,10 @@ import java.util.Date;
|
|||
@Entity
|
||||
@Table(name = "project")
|
||||
public class Project {
|
||||
public static final int STATUS_CREATED = 1;
|
||||
public static final int STATUS_ESTIMATE = 5;
|
||||
public static final int STATUS_BUDGET = 10;
|
||||
public static final int STATUS_SETTLE = 15;
|
||||
public static final int STATUS_FINAL = 20;
|
||||
public static final int STATUS_ESTIMATE = 1;
|
||||
public static final int STATUS_BUDGET = 5;
|
||||
public static final int STATUS_SETTLE = 10;
|
||||
public static final int STATUS_FINAL = 15;
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@GenericGenerator(name = "persistenceGenerator", strategy = "increment")
|
||||
|
@ -34,7 +33,7 @@ public class Project {
|
|||
@Column(name = "type_desc")
|
||||
private String typeDesc;
|
||||
/**
|
||||
* 项目状态:1项目创建,5概算完成,10预算完成,15结算中,20决算完成
|
||||
* 项目状态:1项目创建(概算),5预算,10结算,15决算
|
||||
*/
|
||||
private int status;
|
||||
@Column(name = "status_desc")
|
||||
|
@ -238,7 +237,7 @@ public class Project {
|
|||
}
|
||||
|
||||
public Integer getApproveStatus() {
|
||||
if(status == STATUS_CREATED || status == STATUS_ESTIMATE){
|
||||
if(status == STATUS_ESTIMATE){
|
||||
return approveStatusEstimate;
|
||||
}
|
||||
if(status == STATUS_BUDGET){
|
||||
|
|
|
@ -181,7 +181,7 @@ public class ActTaskDefService {
|
|||
//驳回后 更新项目状态为审批不通过
|
||||
if (actUtil.isProjectProcessIns(procDefKey)) {
|
||||
int projectId = Integer.parseInt(processInstance.getBusinessKey());
|
||||
projectInstanceService.updateProjectApproveUnPassed(projectId, procDefKey);
|
||||
projectInstanceService.updateApproveStatus(projectId, procDefKey, ApproveStatusEnum.APPROVAL_UNPASS);
|
||||
logger.info("updateProjectUnPassed projectId:{}, proDefKey:{}", projectId, procDefKey);
|
||||
}
|
||||
}
|
||||
|
@ -199,12 +199,12 @@ public class ActTaskDefService {
|
|||
if (ActConstant.PROCESS_DEFKEY_FINAL.equals(procDefKey)) {
|
||||
if ("财务总监".equals(actTaskDef.getTaskName())) {
|
||||
logger.info("updateProjectPassed1 projectId:{}, proDefKey:{}", projectId, procDefKey);
|
||||
projectInstanceService.updateProjectApprovePassed(projectId, procDefKey);
|
||||
projectInstanceService.updateApproveStatus(projectId, procDefKey, ApproveStatusEnum.APPROVAL_PASSED);
|
||||
}
|
||||
} else {
|
||||
if ("执行董事".equals(actTaskDef.getTaskName())) {
|
||||
logger.info("updateProjectPassed2 projectId:{}, proDefKey:{}", projectId, procDefKey);
|
||||
projectInstanceService.updateProjectApprovePassed(projectId, procDefKey);
|
||||
projectInstanceService.updateApproveStatus(projectId, procDefKey, ApproveStatusEnum.APPROVAL_PASSED);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -118,15 +118,14 @@ public class ProjectInstanceService {
|
|||
}
|
||||
|
||||
/**
|
||||
* 项目审批不通过
|
||||
* 更新审批状态
|
||||
* @param processKey 审批类型
|
||||
* @see ActConstant#PROCESS_DEFKEY_ESTIMATE
|
||||
* @see ActConstant#PROCESS_DEFKEY_BUDGET
|
||||
* @see ActConstant#PROCESS_DEFKEY_SETTLE
|
||||
* @see ActConstant#PROCESS_DEFKEY_FINAL
|
||||
*/
|
||||
public void updateProjectApproveUnPassed(int projectId, String processKey){
|
||||
ApproveStatusEnum approveStatusEnum = ApproveStatusEnum.APPROVAL_UNPASS;
|
||||
public void updateApproveStatus(int projectId, String processKey, ApproveStatusEnum approveStatusEnum){
|
||||
Project project = projectRepository.findOne(projectId);
|
||||
if(ActConstant.PROCESS_DEFKEY_ESTIMATE.equals(processKey)){
|
||||
project.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
|
||||
|
@ -143,43 +142,4 @@ public class ProjectInstanceService {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* 项目审批通过
|
||||
*
|
||||
* @param projectId
|
||||
* @param processKey
|
||||
*/
|
||||
public void updateProjectApprovePassed(int projectId, String processKey){
|
||||
ApproveStatusEnum approveStatusEnum = ApproveStatusEnum.APPROVAL_PASSED;
|
||||
Project project = projectRepository.findOne(projectId);
|
||||
if(ActConstant.PROCESS_DEFKEY_ESTIMATE.equals(processKey)){
|
||||
//概算完成
|
||||
project.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
|
||||
project.setStatus(StatusEnum.ESTIMATE_ACCOUNTS.getStatus());
|
||||
project.setStatusDesc(StatusEnum.ESTIMATE_ACCOUNTS.getStatusDesc());
|
||||
|
||||
}else if(ActConstant.PROCESS_DEFKEY_BUDGET.equals(processKey)){
|
||||
//预算完成
|
||||
project.setApproveStatusBudget(approveStatusEnum.getApproveStatus());
|
||||
project.setStatus(StatusEnum.BUDGET_ACCOUNTS.getStatus());
|
||||
project.setStatusDesc(StatusEnum.BUDGET_ACCOUNTS.getStatusDesc());
|
||||
|
||||
}else if(ActConstant.PROCESS_DEFKEY_SETTLE.equals(processKey)){
|
||||
project.setApproveStatusSettle(approveStatusEnum.getApproveStatus());
|
||||
|
||||
}else if(ActConstant.PROCESS_DEFKEY_FINAL.equals(processKey)){
|
||||
//决算完成
|
||||
project.setApproveStatusFinal(approveStatusEnum.getApproveStatus());
|
||||
project.setStatus(StatusEnum.FINAL_ACCOUNTS.getStatus());
|
||||
project.setStatusDesc(StatusEnum.FINAL_ACCOUNTS.getStatusDesc());
|
||||
|
||||
}
|
||||
|
||||
project.setApproveId(0);
|
||||
project.setApproveName("");
|
||||
|
||||
project.setLastUpdateTime(new Date());
|
||||
projectRepository.saveAndFlush(project);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -182,8 +182,8 @@ public class ProjectService {
|
|||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
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.setStatus(StatusEnum.ESTIMATE_ACCOUNTS.getStatus());
|
||||
p.setStatusDesc(StatusEnum.ESTIMATE_ACCOUNTS.getStatusDesc());
|
||||
p.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
|
||||
p = projectRepository.saveAndFlush(p);
|
||||
|
||||
|
@ -202,8 +202,8 @@ public class ProjectService {
|
|||
|
||||
private Project addProject(Project project, Admin admin, ApproveStatusEnum approveStatusEnum) {
|
||||
project.setTypeDesc(TypeEnum.parseType(project.getType()).getTypeDesc());
|
||||
project.setStatus(StatusEnum.CREATED.getStatus());
|
||||
project.setStatusDesc(StatusEnum.CREATED.getStatusDesc());
|
||||
project.setStatus(StatusEnum.ESTIMATE_ACCOUNTS.getStatus());
|
||||
project.setStatusDesc(StatusEnum.ESTIMATE_ACCOUNTS.getStatusDesc());
|
||||
project.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
|
||||
project.setCreatorId(admin.getId());
|
||||
project.setCreatorName(admin.getUserName());
|
||||
|
@ -250,10 +250,14 @@ public class ProjectService {
|
|||
/**
|
||||
* 编辑预算保存项目并审核
|
||||
*/
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
public Project budgetEditSaveAndApprove(Project project, Project projectInDb, BudgetBean budgetBean, Admin admin) throws Exception {
|
||||
if(null != projectInDb.getApproveStatusBudget() &&
|
||||
ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == projectInDb.getApproveStatusBudget()){
|
||||
//@Transactional(rollbackFor = RuntimeException.class)
|
||||
public void budgetEditSaveAndApprove(Project project, Project projectInDb, BudgetBean budgetBean, Admin admin) throws Exception {
|
||||
Integer approveStatusBudget = projectInDb.getApproveStatusBudget();
|
||||
|
||||
budgetEditSave(project, projectInDb, budgetBean, admin, ApproveStatusEnum.APPROVAL_PENDING);
|
||||
|
||||
if(null != approveStatusBudget &&
|
||||
ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == approveStatusBudget){
|
||||
//审核不通过的情况下重新编辑后就完成当前任务
|
||||
List<String> budgetProcessInsIds = projectInstanceService.getBudgetProcessInsIds(projectInDb);
|
||||
if(CollectionUtil.isNotEmpty(budgetProcessInsIds)){
|
||||
|
@ -265,7 +269,6 @@ public class ProjectService {
|
|||
//第一次或者重新发起一个流程实例
|
||||
projectInstanceService.startBudgetProcessInstance(projectInDb, admin);
|
||||
}
|
||||
return budgetEditSave(project, projectInDb, budgetBean, admin, ApproveStatusEnum.APPROVAL_PENDING);
|
||||
}
|
||||
/**
|
||||
* 编辑预算保存项目
|
||||
|
|
|
@ -64,11 +64,10 @@
|
|||
<div class="am-u-sm-10">
|
||||
<select data-am-selected id="status" name="status">
|
||||
<option value="-1">全部</option>
|
||||
<option value="1" <#if status?? && status='1'>selected</#if>>项目创建</option>
|
||||
<option value="5" <#if status?? && status='5'>selected</#if>>概算完成</option>
|
||||
<option value="10" <#if status?? && status='10'>selected</#if>>预算完成</option>
|
||||
<option value="15" <#if status?? && status='15'>selected</#if>>结算中</option>
|
||||
<option value="20" <#if status?? && status='20'>selected</#if>>决算完成</option>
|
||||
<option value="1" <#if status?? && status='1'>selected</#if>>项目创建(概算)</option>
|
||||
<option value="5" <#if status?? && status='5'>selected</#if>>预算</option>
|
||||
<option value="10" <#if status?? && status='10'>selected</#if>>结算</option>
|
||||
<option value="15" <#if status?? && status='15'>selected</#if>>决算</option>
|
||||
</select>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -201,7 +200,7 @@
|
|||
<div class="am-btn-toolbar">
|
||||
<div class="am-btn-group am-btn-group-xs">
|
||||
<#--<@shiro.hasPermission name="PROJECT_EDIT">-->
|
||||
<#if list.approveStatusEstimate==0 || list.approveStatusEstimate==3>
|
||||
<#if list.status==1 && (approveStatusEstimate==0 || list.approveStatusEstimate==3)>
|
||||
<button type="button"
|
||||
class="am-btn am-btn-default am-btn-xs am-text-secondary"
|
||||
onclick="location.href='${base}/project/edit?id=${list.id}'"><span
|
||||
|
@ -211,7 +210,7 @@
|
|||
|
||||
<#-- </@shiro.hasPermission>
|
||||
<@shiro.hasPermission name="PROJECT_EDIT">-->
|
||||
<#if list.status==5>
|
||||
<#if list.status==5 && (list.approveStatusBudget=0 || list.approveStatusBudget=3)>
|
||||
<button type="button"
|
||||
class="am-btn am-btn-default am-btn-xs am-text-secondary"
|
||||
onclick="location.href='${base}/project/budgetEdit?id=${list.id}'"><span
|
||||
|
@ -347,19 +346,3 @@
|
|||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue