项目状态修改

master
pengqiang 2021-11-17 10:14:01 +08:00
parent 0f36a3ba66
commit 7193362ceb
7 changed files with 60 additions and 98 deletions

View File

@ -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 * @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
*/ */
public enum StatusEnum { public enum StatusEnum {
CREATED(1,"项目创建"), ESTIMATE_ACCOUNTS(1,"项目创建(概算)"),
ESTIMATE_ACCOUNTS(5,"概算完成"), BUDGET_ACCOUNTS(5,"预算"),
BUDGET_ACCOUNTS(10,"预算完成"), SETTLE_ACCOUNTS(10,"结算"),
SETTLE_ACCOUNTS(15,"结算中"), FINAL_ACCOUNTS(15,"决算");
FINAL_ACCOUNTS(20,"决算完成");
private int status; private int status;
private String statusDesc; private String statusDesc;
@ -36,18 +35,15 @@ public enum StatusEnum {
public static StatusEnum parseStatus(int status){ public static StatusEnum parseStatus(int status){
if(status == 1){ if(status == 1){
return CREATED;
}
if(status == 5){
return ESTIMATE_ACCOUNTS; return ESTIMATE_ACCOUNTS;
} }
if(status == 10){ if(status == 5){
return BUDGET_ACCOUNTS; return BUDGET_ACCOUNTS;
} }
if(status == 15){ if(status == 10){
return SETTLE_ACCOUNTS; return SETTLE_ACCOUNTS;
} }
if(status == 20){ if(status == 15){
return FINAL_ACCOUNTS; return FINAL_ACCOUNTS;
} }
throw new IllegalArgumentException("Unkown status:"+status); throw new IllegalArgumentException("Unkown status:"+status);

View File

@ -111,7 +111,7 @@ public class ProjectController extends BaseController {
} }
/** /**
* 稿 * 稿
*/ */
@RequestMapping("/estimateAddSave") @RequestMapping("/estimateAddSave")
public String estimateAddSave(Project project, EstimateBean estimateBean, Map<String, Object> model) { public String estimateAddSave(Project project, EstimateBean estimateBean, Map<String, Object> model) {
@ -120,7 +120,7 @@ public class ProjectController extends BaseController {
} }
/** /**
* *
*/ */
@RequestMapping("/estimateAddSaveAndApprove") @RequestMapping("/estimateAddSaveAndApprove")
public String estimateAddSaveAndApprove(Project project, EstimateBean estimateBean, Map<String, Object> model) throws Exception { 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"; return "redirect:/project/list";
} }
/**
*
*
* @param id
* @param model
* @return
*/
@RequestMapping("/edit") @RequestMapping("/edit")
public String edit(@RequestParam("id") int id, Map<String, Object> model) { public String edit(@RequestParam("id") int id, Map<String, Object> model) {
Project project = projectService.getProject(id); Project project = projectService.getProject(id);
@ -140,6 +146,13 @@ public class ProjectController extends BaseController {
return "admin/project_estimate_edit"; return "admin/project_estimate_edit";
} }
/**
*
* @param project
* @param estimateBean
* @param model
* @return
*/
@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) {
Project projectInDb = projectService.getProject(project.getId()); Project projectInDb = projectService.getProject(project.getId());
@ -147,6 +160,14 @@ public class ProjectController extends BaseController {
return "redirect:/project/list"; return "redirect:/project/list";
} }
/**
*
* @param project
* @param estimateBean
* @param model
* @return
* @throws Exception
*/
@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 {
Project projectInDb = projectService.getProject(project.getId()); Project projectInDb = projectService.getProject(project.getId());

View File

@ -14,11 +14,10 @@ import java.util.Date;
@Entity @Entity
@Table(name = "project") @Table(name = "project")
public class Project { public class Project {
public static final int STATUS_CREATED = 1; public static final int STATUS_ESTIMATE = 1;
public static final int STATUS_ESTIMATE = 5; public static final int STATUS_BUDGET = 5;
public static final int STATUS_BUDGET = 10; public static final int STATUS_SETTLE = 10;
public static final int STATUS_SETTLE = 15; public static final int STATUS_FINAL = 15;
public static final int STATUS_FINAL = 20;
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@GenericGenerator(name = "persistenceGenerator", strategy = "increment") @GenericGenerator(name = "persistenceGenerator", strategy = "increment")
@ -34,7 +33,7 @@ public class Project {
@Column(name = "type_desc") @Column(name = "type_desc")
private String typeDesc; private String typeDesc;
/** /**
* 15101520 * 1()51015
*/ */
private int status; private int status;
@Column(name = "status_desc") @Column(name = "status_desc")
@ -238,7 +237,7 @@ public class Project {
} }
public Integer getApproveStatus() { public Integer getApproveStatus() {
if(status == STATUS_CREATED || status == STATUS_ESTIMATE){ if(status == STATUS_ESTIMATE){
return approveStatusEstimate; return approveStatusEstimate;
} }
if(status == STATUS_BUDGET){ if(status == STATUS_BUDGET){

View File

@ -181,7 +181,7 @@ public class ActTaskDefService {
//驳回后 更新项目状态为审批不通过 //驳回后 更新项目状态为审批不通过
if (actUtil.isProjectProcessIns(procDefKey)) { if (actUtil.isProjectProcessIns(procDefKey)) {
int projectId = Integer.parseInt(processInstance.getBusinessKey()); int projectId = Integer.parseInt(processInstance.getBusinessKey());
projectInstanceService.updateProjectApproveUnPassed(projectId, procDefKey); projectInstanceService.updateApproveStatus(projectId, procDefKey, ApproveStatusEnum.APPROVAL_UNPASS);
logger.info("updateProjectUnPassed projectId:{}, proDefKey:{}", projectId, procDefKey); logger.info("updateProjectUnPassed projectId:{}, proDefKey:{}", projectId, procDefKey);
} }
} }
@ -199,12 +199,12 @@ public class ActTaskDefService {
if (ActConstant.PROCESS_DEFKEY_FINAL.equals(procDefKey)) { if (ActConstant.PROCESS_DEFKEY_FINAL.equals(procDefKey)) {
if ("财务总监".equals(actTaskDef.getTaskName())) { if ("财务总监".equals(actTaskDef.getTaskName())) {
logger.info("updateProjectPassed1 projectId:{}, proDefKey:{}", projectId, procDefKey); logger.info("updateProjectPassed1 projectId:{}, proDefKey:{}", projectId, procDefKey);
projectInstanceService.updateProjectApprovePassed(projectId, procDefKey); projectInstanceService.updateApproveStatus(projectId, procDefKey, ApproveStatusEnum.APPROVAL_PASSED);
} }
} else { } else {
if ("执行董事".equals(actTaskDef.getTaskName())) { if ("执行董事".equals(actTaskDef.getTaskName())) {
logger.info("updateProjectPassed2 projectId:{}, proDefKey:{}", projectId, procDefKey); logger.info("updateProjectPassed2 projectId:{}, proDefKey:{}", projectId, procDefKey);
projectInstanceService.updateProjectApprovePassed(projectId, procDefKey); projectInstanceService.updateApproveStatus(projectId, procDefKey, ApproveStatusEnum.APPROVAL_PASSED);
} }
} }

View File

@ -118,15 +118,14 @@ public class ProjectInstanceService {
} }
/** /**
* *
* @param processKey * @param processKey
* @see ActConstant#PROCESS_DEFKEY_ESTIMATE * @see ActConstant#PROCESS_DEFKEY_ESTIMATE
* @see ActConstant#PROCESS_DEFKEY_BUDGET * @see ActConstant#PROCESS_DEFKEY_BUDGET
* @see ActConstant#PROCESS_DEFKEY_SETTLE * @see ActConstant#PROCESS_DEFKEY_SETTLE
* @see ActConstant#PROCESS_DEFKEY_FINAL * @see ActConstant#PROCESS_DEFKEY_FINAL
*/ */
public void updateProjectApproveUnPassed(int projectId, String processKey){ public void updateApproveStatus(int projectId, String processKey, ApproveStatusEnum approveStatusEnum){
ApproveStatusEnum approveStatusEnum = ApproveStatusEnum.APPROVAL_UNPASS;
Project project = projectRepository.findOne(projectId); Project project = projectRepository.findOne(projectId);
if(ActConstant.PROCESS_DEFKEY_ESTIMATE.equals(processKey)){ if(ActConstant.PROCESS_DEFKEY_ESTIMATE.equals(processKey)){
project.setApproveStatusEstimate(approveStatusEnum.getApproveStatus()); 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);
}
} }

View File

@ -182,8 +182,8 @@ public class ProjectService {
@Transactional(rollbackFor = RuntimeException.class) @Transactional(rollbackFor = RuntimeException.class)
public Project estimateEditSave(Project project, Project projectInDb, EstimateBean estimateBean, Admin admin, ApproveStatusEnum approveStatusEnum) { public Project estimateEditSave(Project project, Project projectInDb, EstimateBean estimateBean, Admin admin, ApproveStatusEnum approveStatusEnum) {
Project p = editProject(project, projectInDb); Project p = editProject(project, projectInDb);
p.setStatus(StatusEnum.CREATED.getStatus()); p.setStatus(StatusEnum.ESTIMATE_ACCOUNTS.getStatus());
p.setStatusDesc(StatusEnum.CREATED.getStatusDesc()); p.setStatusDesc(StatusEnum.ESTIMATE_ACCOUNTS.getStatusDesc());
p.setApproveStatusEstimate(approveStatusEnum.getApproveStatus()); p.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
p = projectRepository.saveAndFlush(p); p = projectRepository.saveAndFlush(p);
@ -202,8 +202,8 @@ public class ProjectService {
private Project addProject(Project project, Admin admin, ApproveStatusEnum approveStatusEnum) { private Project addProject(Project project, Admin admin, ApproveStatusEnum approveStatusEnum) {
project.setTypeDesc(TypeEnum.parseType(project.getType()).getTypeDesc()); project.setTypeDesc(TypeEnum.parseType(project.getType()).getTypeDesc());
project.setStatus(StatusEnum.CREATED.getStatus()); project.setStatus(StatusEnum.ESTIMATE_ACCOUNTS.getStatus());
project.setStatusDesc(StatusEnum.CREATED.getStatusDesc()); project.setStatusDesc(StatusEnum.ESTIMATE_ACCOUNTS.getStatusDesc());
project.setApproveStatusEstimate(approveStatusEnum.getApproveStatus()); project.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
project.setCreatorId(admin.getId()); project.setCreatorId(admin.getId());
project.setCreatorName(admin.getUserName()); project.setCreatorName(admin.getUserName());
@ -250,10 +250,14 @@ public class ProjectService {
/** /**
* *
*/ */
@Transactional(rollbackFor = RuntimeException.class) //@Transactional(rollbackFor = RuntimeException.class)
public Project budgetEditSaveAndApprove(Project project, Project projectInDb, BudgetBean budgetBean, Admin admin) throws Exception { public void budgetEditSaveAndApprove(Project project, Project projectInDb, BudgetBean budgetBean, Admin admin) throws Exception {
if(null != projectInDb.getApproveStatusBudget() && Integer approveStatusBudget = projectInDb.getApproveStatusBudget();
ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == projectInDb.getApproveStatusBudget()){
budgetEditSave(project, projectInDb, budgetBean, admin, ApproveStatusEnum.APPROVAL_PENDING);
if(null != approveStatusBudget &&
ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == approveStatusBudget){
//审核不通过的情况下重新编辑后就完成当前任务 //审核不通过的情况下重新编辑后就完成当前任务
List<String> budgetProcessInsIds = projectInstanceService.getBudgetProcessInsIds(projectInDb); List<String> budgetProcessInsIds = projectInstanceService.getBudgetProcessInsIds(projectInDb);
if(CollectionUtil.isNotEmpty(budgetProcessInsIds)){ if(CollectionUtil.isNotEmpty(budgetProcessInsIds)){
@ -265,7 +269,6 @@ public class ProjectService {
//第一次或者重新发起一个流程实例 //第一次或者重新发起一个流程实例
projectInstanceService.startBudgetProcessInstance(projectInDb, admin); projectInstanceService.startBudgetProcessInstance(projectInDb, admin);
} }
return budgetEditSave(project, projectInDb, budgetBean, admin, ApproveStatusEnum.APPROVAL_PENDING);
} }
/** /**
* *

View File

@ -64,11 +64,10 @@
<div class="am-u-sm-10"> <div class="am-u-sm-10">
<select data-am-selected id="status" name="status"> <select data-am-selected id="status" name="status">
<option value="-1">全部</option> <option value="-1">全部</option>
<option value="1" <#if status?? && status='1'>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="5" <#if status?? && status='5'>selected</#if>>预算</option>
<option value="10" <#if status?? && status='10'>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="15" <#if status?? && status='15'>selected</#if>>决算</option>
<option value="20" <#if status?? && status='20'>selected</#if>>决算完成</option>
</select> </select>
</div> </div>
</td> </td>
@ -201,7 +200,7 @@
<div class="am-btn-toolbar"> <div class="am-btn-toolbar">
<div class="am-btn-group am-btn-group-xs"> <div class="am-btn-group am-btn-group-xs">
<#--<@shiro.hasPermission name="PROJECT_EDIT">--> <#--<@shiro.hasPermission name="PROJECT_EDIT">-->
<#if list.approveStatusEstimate==0 || list.approveStatusEstimate==3> <#if list.status==1 && (approveStatusEstimate==0 || list.approveStatusEstimate==3)>
<button type="button" <button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary" class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/edit?id=${list.id}'"><span onclick="location.href='${base}/project/edit?id=${list.id}'"><span
@ -211,7 +210,7 @@
<#-- </@shiro.hasPermission> <#-- </@shiro.hasPermission>
<@shiro.hasPermission name="PROJECT_EDIT">--> <@shiro.hasPermission name="PROJECT_EDIT">-->
<#if list.status==5> <#if list.status==5 && (list.approveStatusBudget=0 || list.approveStatusBudget=3)>
<button type="button" <button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary" class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/budgetEdit?id=${list.id}'"><span onclick="location.href='${base}/project/budgetEdit?id=${list.id}'"><span
@ -347,19 +346,3 @@
}); });
</script> </script>