项目状态修改
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
|
* @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);
|
||||||
|
|
|
@ -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());
|
||||||
|
|
|
@ -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;
|
||||||
/**
|
/**
|
||||||
* 项目状态:1项目创建,5概算完成,10预算完成,15结算中,20决算完成
|
* 项目状态:1项目创建(概算),5预算,10结算,15决算
|
||||||
*/
|
*/
|
||||||
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){
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 编辑预算保存项目
|
* 编辑预算保存项目
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue