From e5bd15c6c3f84adb731f23e896cfe5dd433e0f64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Thu, 21 Apr 2022 21:58:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8A=82=E7=82=B9=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E3=80=81=E6=A0=87=E7=AD=BE=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xm/core/service/XmProjectService.java | 51 ++++++++-------- .../com/xm/core/service/XmTaskService.java | 61 +++++++++---------- 2 files changed, 54 insertions(+), 58 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/service/XmProjectService.java b/xm-core/src/main/java/com/xm/core/service/XmProjectService.java index 7528c987..bd499433 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmProjectService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmProjectService.java @@ -385,9 +385,9 @@ public class XmProjectService extends BaseService { if("complete".equals(eventName)) { if("1".equals(agree)) { - this.updateFlowStateByProcInst("", flowVars); + this.updateFlowStateByProcInst("",bizProject, flowVars); }else { - this.updateFlowStateByProcInst("", flowVars); + this.updateFlowStateByProcInst("",bizProject, flowVars); } }else { @@ -412,10 +412,7 @@ public class XmProjectService extends BaseService { throw new BizException("该项目正在审批中,不能再发起审批"); } } - - flowVars.put("id", this.createKey("id")); - this.insert("insertProcessApprova", flowVars); - this.updateFlowStateByProcInst("1", flowVars); + this.updateFlowStateByProcInst("1",bizProject, flowVars); }else if("PROCESS_COMPLETED".equals(eventName)) { if("1".equals(agree)) { @@ -432,6 +429,8 @@ public class XmProjectService extends BaseService { project.setBudgetCtrl(bizProject.getBudgetCtrl()); project.setDescription(bizProject.getDescription()); project.setAssessRemarks(bizProject.getAssessRemarks()); + project.setBizProcInstId((String) flowVars.get("procInstId")); + project.setBizFlowState("2"); //project.setCode(project.getCode()); this.updateSomeFieldByPk(project); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-基本信息", "修改基本信息" ); @@ -440,8 +439,8 @@ public class XmProjectService extends BaseService { XmProject project=new XmProject(); project.setId(bizProject.getId()); project.setStatus("3"); - //todo 立项通过需要把预算数据同步到财务系统,把项目数据同步到财务系统 - + project.setBizProcInstId((String) flowVars.get("procInstId")); + project.setBizFlowState("2"); this.updateSomeFieldByPk(project); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-立项", "项目立项通过审批" ); this.createBaseline(bizProject.getId(),"项目立项通过审批"); @@ -450,55 +449,57 @@ public class XmProjectService extends BaseService { XmProject project=new XmProject(); project.setId(bizProject.getId()); project.setEndTime(bizProject.getEndTime()); + project.setBizProcInstId((String) flowVars.get("procInstId")); + project.setBizFlowState("2"); this.updateSomeFieldByPk(project); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-逾期", "项目逾期申请通过审批" ); }else if("xm_project_over_approva".equals(bizKey) ) { //结项 XmProject project=new XmProject(); project.setId(bizProject.getId()); + project.setBizProcInstId((String) flowVars.get("procInstId")); + project.setBizFlowState("2"); project.setStatus("6"); this.updateSomeFieldByPk(project); this.createBaseline(bizProject.getId(),"项目结项申请通过审批"); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-结项", "项目结项申请通过审批" ); }else if("xm_project_budget_change_approva".equals(bizKey) ) { //总预算调整,需要同步预算到财务系统 - + this.editBudget(bizProject); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-预算调整", "项目预算调整申请通过审批" ); }else if("xm_project_restart_approva".equals(bizKey) ) { //重新启动 XmProject project=new XmProject(); project.setId(bizProject.getId()); - project.setStatus("ssz"); + project.setStatus("4"); this.updateSomeFieldByPk(project); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-重新启动", "项目重新启动申请通过审批" ); }else if("xm_project_pause_approva".equals(bizKey) ) { //暂停 XmProject project=new XmProject(); project.setId(bizProject.getId()); project.setLocked("0"); + project.setBizProcInstId((String) flowVars.get("procInstId")); + project.setBizFlowState("2"); this.updateSomeFieldByPk(project); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-暂停", "项目暂停申请通过审批" ); } - this.updateFlowStateByProcInst("2", flowVars); - }else { - this.updateFlowStateByProcInst("3", flowVars); + }else { + this.updateFlowStateByProcInst("3",bizProject, flowVars); } }else if("PROCESS_CANCELLED".equals(eventName)) { - this.updateFlowStateByProcInst("4", flowVars); + this.updateFlowStateByProcInst("4",bizProject, flowVars); } } } - - private void updateFlowStateByProcInstForDeleteSuccess(Map flowVars) { - this.update("updateFlowStateByProcInstForDeleteSuccess", flowVars); - - } - public void updateFlowStateByProcInst(String flowState,Map flowVars) { - flowVars.put("flowState", flowState); - flowVars.put("bizFlowState", flowState); - if("1".equals(flowState)) { - flowVars.put("bizProcInstId", flowVars.get("procInstId")); + public void updateFlowStateByProcInst(String flowState,XmProject project,Map flowVars) { + if(!StringUtils.hasText(flowState)){ + return; } - this.update("updateProcessApprova", flowVars); + XmProject projectUpdate=new XmProject(); + projectUpdate.setId(project.getId()); + projectUpdate.setBizFlowState(flowState); + projectUpdate.setBizProcInstId((String) flowVars.get("procInstId")); + this.updateSomeFieldByPk(projectUpdate); } Date getDateFromObject(Object date){ diff --git a/xm-core/src/main/java/com/xm/core/service/XmTaskService.java b/xm-core/src/main/java/com/xm/core/service/XmTaskService.java index 75316475..8c11e684 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmTaskService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmTaskService.java @@ -300,7 +300,7 @@ public class XmTaskService extends BaseService { public List selectTaskListByIds(List ids){ return super.selectList("selectTaskListByIds",map("ids",ids)); } - + /** * 流程审批过程中回调该接口,更新业务数据 @@ -309,45 +309,45 @@ public class XmTaskService extends BaseService { * PROCESS_COMPLETED 流程正常结束 全局 * PROCESS_CANCELLED 流程删除 全局 * create 人工任务启动 - * complete 人工任务完成 + * complete 人工任务完成 * assignment 人工任务分配给了具体的人 * delete 人工任务被删除 * TASK_COMPLETED_FORM_DATA_UPDATE 人工任务提交完成后,智能表单数据更新 - * + * * 其中 create/complete/assignment/delete事件是需要在模型中人工节点上配置了委托代理表达式 ${taskBizCallListener}才会推送过来。 * 在人工任务节点上配置 任务监听器 建议事件为 complete,其它assignment/create/complete/delete也可以,一般建议在complete,委托代理表达式 ${taskBizCallListener} - * - * @param flowVars {flowBranchId,agree,procInstId,startUserid,assignee,actId,taskName,mainTitle,branchId,bizKey,commentMsg,eventName,modelKey} 等 + * + * @param flowVars {flowBranchId,agree,procInstId,startUserid,assignee,actId,taskName,mainTitle,branchId,bizKey,commentMsg,eventName,modelKey} 等 * @return 如果tips.isOk==false,将影响流程提交 **/ @Transactional - public void processApprova(Map flowVars) { - String eventName=(String) flowVars.get("eventName"); - String agree=(String) flowVars.get("agree"); + public void processApprova(Map flowVars) { + String eventName=(String) flowVars.get("eventName"); + String agree=(String) flowVars.get("agree"); String bizKey=(String) flowVars.get("bizKey"); XmTask bizXmTask=null; - if("xm_task_approva".equals(bizKey) ) { + if("xm_task_approva".equals(bizKey) ) { if(!flowVars.containsKey("data")) { throw new BizException("缺乏任务信息,请将任务信息放在flowVars.data中"); } - bizXmTask= BaseUtils.fromMap((Map)flowVars.get("data"), XmTask.class); + bizXmTask= BaseUtils.fromMap((Map)flowVars.get("data"), XmTask.class); flowVars.put("xmTaskId", bizXmTask.getId()); }else { throw new BizException("不支持的业务,请上送业务编码【bizKey】参数"); } - if("complete".equals(eventName)) { + if("complete".equals(eventName)) { if("1".equals(agree)) { this.updateFlowStateByProcInst("", flowVars); }else { this.updateFlowStateByProcInst("", flowVars); } }else { - if("PROCESS_STARTED".equals(eventName)) { - Map bizQuery=new HashMap<>(); + if("PROCESS_STARTED".equals(eventName)) { + Map bizQuery=new HashMap<>(); bizQuery.put("id", bizXmTask.getId()); if(StringUtils.isEmpty(bizXmTask.getId())) { throw new BizException("请上送任务编号flowVars.data.id"); - } + } List> bizList=this.selectListMapByWhere(bizQuery); if(bizList==null || bizList.size()==0) { throw new BizException("没有找到对应项目任务单,项目任务单为【"+bizXmTask.getId()+"】"); @@ -358,33 +358,28 @@ public class XmTaskService extends BaseService { } } flowVars.put("id", this.createKey("id")); - this.insert("insertProcessApprova", flowVars); - this.updateFlowStateByProcInst("1", flowVars); + this.updateFlowStateByProcInst("1", flowVars); }else if("PROCESS_COMPLETED".equals(eventName)) { - if("1".equals(agree)) { - this.updateFlowStateByProcInst("2", flowVars); - - }else { + if("1".equals(agree)) { + this.updateFlowStateByProcInst("2", flowVars); + + }else { this.updateFlowStateByProcInst("3", flowVars); - } - }else if("PROCESS_CANCELLED".equals(eventName)) { + } + }else if("PROCESS_CANCELLED".equals(eventName)) { this.updateFlowStateByProcInst("4", flowVars); } - } - } - @Transactional - private void updateFlowStateByProcInstForDeleteSuccess(Map flowVars) { - this.update("updateFlowStateByProcInstForDeleteSuccess", flowVars); - + } } @Transactional public void updateFlowStateByProcInst(String flowState,Map flowVars) { - flowVars.put("flowState", flowState); - flowVars.put("bizFlowState", flowState); - if("1".equals(flowState)) { - flowVars.put("bizProcInstId", flowVars.get("procInstId")); + if(StringUtils.hasText((String) flowVars.get("xmTaskId"))){ + XmTask xmTask=new XmTask(); + xmTask.setId((String) flowVars.get("taskId")); + xmTask.setBizFlowState(flowState); + xmTask.setBizProcInstId((String) flowVars.get("procInstId")); + this.updateSomeFieldByPk(xmTask); } - this.update("updateProcessApprova", flowVars); } @Transactional public void batchImportFromTemplate(List xmTasks) {