From 29d98e4f488523dbfdf5980b06d7b501581d642a Mon Sep 17 00:00:00 2001 From: yuchen Date: Wed, 8 Apr 2026 15:41:29 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E5=B7=A5=E4=BD=9C=E6=B5=81?= =?UTF-8?q?=E5=BC=95=E6=93=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../accident/ReasonableAdviceController.java | 37 +- .../controller/accident/RoastController.java | 37 +- .../administration/IndexWorkController.java | 37 +- .../administration/LeaveApplyController.java | 112 +++-- .../OrganizationController.java | 37 +- .../administration/TemporaryController.java | 37 +- .../data/BaiDuAipSpeechController.java | 8 +- .../EquipmentAcceptanceApplyController.java | 37 +- .../EquipmentLoseApplyController.java | 37 +- .../EquipmentRepairPlanController.java | 37 +- .../EquipmentSaleApplyController.java | 37 +- .../EquipmentScrapApplyController.java | 43 +- .../EquipmentStopRecordController.java | 37 +- .../EquipmentTransfersApplyController.java | 37 +- .../equipment/MaintenancePlanController.java | 37 +- .../maintenance/AbnormityController.java | 35 +- .../maintenance/EquipmentPlanController.java | 21 +- .../maintenance/MaintainCarController.java | 19 +- .../maintenance/MaintenanceController.java | 163 ++++--- .../maintenance/RepairCarController.java | 19 +- .../maintenance/RepairController.java | 19 +- .../process/ProcessAdjustmentController.java | 101 ++--- .../process/RoutineWorkController.java | 37 +- .../process/WaterTestController.java | 37 +- .../report/RptCreateController.java | 37 +- .../sparepart/ContractController.java | 61 +-- .../sparepart/InStockRecordController.java | 37 +- .../sparepart/OutStockRecordController.java | 37 +- .../OutStockRecordSectionController.java | 37 +- .../sparepart/RawMaterialController.java | 37 +- .../sparepart/StockCheckController.java | 37 +- .../sparepart/SubscribeController.java | 67 ++- .../PatrolRecordController.java | 37 +- .../sipai/controller/user/UserController.java | 5 +- .../visit/VisitApplyController.java | 35 +- .../visit/VisitRegisterController.java | 35 +- ...WordAnalysisReportStructureController.java | 4 +- .../workorder/OverhaulController.java | 19 +- .../OverhaulItemEquipmentController.java | 11 +- .../OverhaulItemProjectController.java | 35 +- .../workorder/WorkorderDetailController.java | 87 ++-- .../sipai/service/accident/RoastService.java | 7 +- .../service/activiti/WorkflowService.java | 224 +++++++--- .../business/BusinessUnitAuditService.java | 9 +- .../service/business/BusinessUnitService.java | 46 +- .../EquipmentAcceptanceApplyService.java | 9 +- .../equipment/EquipmentRepairPlanService.java | 9 +- .../equipment/EquipmentScrapApplyService.java | 7 +- .../equipment/MaintenancePlanService.java | 9 +- .../service/maintenance/AbnormityService.java | 7 +- .../maintenance/MaintenanceDetailService.java | 7 +- .../maintenance/MaintenanceService.java | 11 +- .../impl/EquipmentPlanServiceImpl.java | 11 +- .../sparepart/InStockRecordService.java | 7 +- .../sparepart/OutStockRecordService.java | 7 +- .../com/sipai/service/work/CameraService.java | 4 +- .../impl/WorkorderDetailServiceImpl.java | 7 +- .../java/com/sipai/tools/UEditorUtil.java | 6 +- .../sipai/workflow/WorkflowTaskService.java | 405 ++++++++++++++++++ .../SimpleProcessDefinitionWrapper.java | 54 +++ .../workflow/simple/SimpleTaskWrapper.java | 149 +++++++ src/main/resources/workflow.properties | 2 +- 62 files changed, 1716 insertions(+), 957 deletions(-) create mode 100644 src/main/java/com/sipai/workflow/WorkflowTaskService.java create mode 100644 src/main/java/com/sipai/workflow/simple/SimpleProcessDefinitionWrapper.java create mode 100644 src/main/java/com/sipai/workflow/simple/SimpleTaskWrapper.java diff --git a/src/main/java/com/sipai/controller/accident/ReasonableAdviceController.java b/src/main/java/com/sipai/controller/accident/ReasonableAdviceController.java index 5a844e0c..7ebb3e10 100644 --- a/src/main/java/com/sipai/controller/accident/ReasonableAdviceController.java +++ b/src/main/java/com/sipai/controller/accident/ReasonableAdviceController.java @@ -24,6 +24,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -66,6 +67,8 @@ public class ReasonableAdviceController { private RuntimeService runtimeService; @Resource private TaskService taskService; + @Resource + private WorkflowTaskService workflowTaskService; @RequestMapping("/showlist.do") public String showlist(HttpServletRequest request,Model model){ @@ -415,7 +418,7 @@ public class ReasonableAdviceController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(reasonableAdvice.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(reasonableAdvice.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -438,19 +441,17 @@ public class ReasonableAdviceController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String reasonableAdviceId= pInstance.getBusinessKey(); + String reasonableAdviceId= pInstanceInfo.getBusinessKey(); ReasonableAdvice reasonableAdvice = this.reasonableAdviceService.selectById(reasonableAdviceId); model.addAttribute("reasonableAdvice", reasonableAdvice); String[] userleadid = reasonableAdvice.getUserLead().split(","); @@ -473,7 +474,7 @@ public class ReasonableAdviceController { model.addAttribute("solvername1", solvername1); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -509,12 +510,10 @@ public class ReasonableAdviceController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -524,8 +523,8 @@ public class ReasonableAdviceController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -543,7 +542,7 @@ public class ReasonableAdviceController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String reasonableAdviceId = pInstance.getBusinessKey(); + String reasonableAdviceId = pInstanceInfo.getBusinessKey(); ReasonableAdvice reasonableAdvice = this.reasonableAdviceService.selectById(reasonableAdviceId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+reasonableAdviceId+"' order by insdt desc "); if(list!=null && list.size()>0){ @@ -580,7 +579,7 @@ public class ReasonableAdviceController { variables =ActivitiUtil.fixVariableWithRoute(variables, passstatus, routeNumStr); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/accident/RoastController.java b/src/main/java/com/sipai/controller/accident/RoastController.java index ac74d622..0263c0e6 100644 --- a/src/main/java/com/sipai/controller/accident/RoastController.java +++ b/src/main/java/com/sipai/controller/accident/RoastController.java @@ -24,6 +24,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -66,6 +67,8 @@ public class RoastController { private RuntimeService runtimeService; @Resource private TaskService taskService; + @Resource + private WorkflowTaskService workflowTaskService; @RequestMapping("/showlist.do") public String showlist(HttpServletRequest request, Model model) { @@ -459,7 +462,7 @@ public class RoastController { JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords", jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(roast.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(roast.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { @@ -483,19 +486,17 @@ public class RoastController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String roastId = pInstance.getBusinessKey(); + String roastId = pInstanceInfo.getBusinessKey(); Roast roast = this.roastService.selectById(roastId); model.addAttribute("roast", roast); String[] userleadid = roast.getUserLead().split(","); @@ -518,7 +519,7 @@ public class RoastController { // model.addAttribute("solvername1", solvername1); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -556,12 +557,10 @@ public class RoastController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -571,8 +570,8 @@ public class RoastController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -590,7 +589,7 @@ public class RoastController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String roastId = pInstance.getBusinessKey(); + String roastId = pInstanceInfo.getBusinessKey(); Roast roast = this.roastService.selectById(roastId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '" + roastId + "' order by insdt desc "); if (list != null && list.size() > 0) { @@ -628,7 +627,7 @@ public class RoastController { variables = ActivitiUtil.fixVariableWithRoute(variables, passstatus, routeNumStr); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/administration/IndexWorkController.java b/src/main/java/com/sipai/controller/administration/IndexWorkController.java index 39b77d73..256408ae 100644 --- a/src/main/java/com/sipai/controller/administration/IndexWorkController.java +++ b/src/main/java/com/sipai/controller/administration/IndexWorkController.java @@ -23,6 +23,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -59,6 +60,8 @@ public class IndexWorkController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @RequestMapping("/showList.do") @@ -262,7 +265,7 @@ public class IndexWorkController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(indexWork.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(indexWork.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -285,24 +288,22 @@ public class IndexWorkController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String indexWorkId= pInstance.getBusinessKey(); + String indexWorkId= pInstanceInfo.getBusinessKey(); IndexWork indexWork = this.indexWorkService.selectById(indexWorkId); model.addAttribute("indexWork", indexWork); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -333,12 +334,10 @@ public class IndexWorkController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -348,8 +347,8 @@ public class IndexWorkController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -367,7 +366,7 @@ public class IndexWorkController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String indexWorkId = pInstance.getBusinessKey(); + String indexWorkId = pInstanceInfo.getBusinessKey(); IndexWork indexWork = this.indexWorkService.selectById(indexWorkId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+indexWorkId+"' order by insdt desc "); if(list!=null && list.size()>0){ @@ -397,7 +396,7 @@ public class IndexWorkController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/administration/LeaveApplyController.java b/src/main/java/com/sipai/controller/administration/LeaveApplyController.java index 7b937574..99696197 100644 --- a/src/main/java/com/sipai/controller/administration/LeaveApplyController.java +++ b/src/main/java/com/sipai/controller/administration/LeaveApplyController.java @@ -21,12 +21,11 @@ import com.sipai.tools.ActivitiUtil; import com.sipai.tools.CommString; import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; -import org.activiti.engine.RuntimeService; -import org.activiti.engine.TaskService; +import com.sipai.dao.workflow.WfTaskDao; +import com.sipai.entity.workflow.WfTask; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; -import org.activiti.engine.runtime.ProcessInstance; -import org.activiti.engine.task.Task; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; @@ -53,11 +52,11 @@ public class LeaveApplyController { @Resource private WorkflowService workflowService; @Resource - private RuntimeService runtimeService; - @Resource - private TaskService taskService; - @Resource private UserService userService; + @Resource + private WorkflowTaskService workflowTaskService; + @Resource + private WfTaskDao wfTaskDao; @RequestMapping("/showList.do") public String showList(HttpServletRequest request, Model model) { @@ -222,14 +221,34 @@ public class LeaveApplyController { } } if (leaveApply.getProcessid() != null && !leaveApply.getProcessid().trim().isEmpty()) { - List list = this.workflowService.getHistoryService().createHistoricTaskInstanceQuery() - .processInstanceId(leaveApply.getProcessid()).list(); - for (HistoricTaskInstance task : list) { - if (task.getAssignee() == null || task.getClaimTime() == null) { - continue; + if (!workflowTaskService.isSimpleEngine()) { + List list = this.workflowService.getHistoryService().createHistoricTaskInstanceQuery() + .processInstanceId(leaveApply.getProcessid()).list(); + for (HistoricTaskInstance task : list) { + if (task.getAssignee() == null || task.getClaimTime() == null) { + continue; + } + businessUnitRecord = new BusinessUnitRecord(task); + businessUnitRecords.add(businessUnitRecord); + } + } else { + WfTask queryTask = new WfTask(); + queryTask.setWhere("WHERE process_instance_id = " + leaveApply.getProcessid() + + " AND status != 'PENDING' ORDER BY complete_time ASC"); + List wfTasks = wfTaskDao.selectListByWhere(queryTask); + if (wfTasks != null) { + for (WfTask wt : wfTasks) { + if (wt.getAssignee() != null) { + User taskUser = userService.getUserById(wt.getAssignee()); + BusinessUnitRecord record = new BusinessUnitRecord(); + record.setInsdt(wt.getCompleteTime() != null ? wt.getCompleteTime() : wt.getCreateTime()); + record.setTaskName(wt.getNodeName()); + record.setUser(taskUser); + record.setRecord(wt.getResult() != null ? wt.getResult() : ""); + businessUnitRecords.add(record); + } + } } - businessUnitRecord = new BusinessUnitRecord(task); - businessUnitRecords.add(businessUnitRecord); } } Collections.sort(businessUnitRecords, new Comparator() { @@ -252,7 +271,7 @@ public class LeaveApplyController { model.addAttribute("businessUnitRecords", JSONArray.fromObject(businessUnitRecords)); long num = 0L; if (leaveApply.getProcessid() != null && !leaveApply.getProcessid().trim().isEmpty()) { - num = runtimeService.createProcessInstanceQuery().processInstanceId(leaveApply.getProcessid()).count(); + num = workflowTaskService.getProcessInstanceCount(leaveApply.getProcessid()); } model.addAttribute("finishFlag", processStarted && num <= 0); model.addAttribute("processStarted", processStarted); @@ -269,20 +288,36 @@ public class LeaveApplyController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + String taskName = ""; + String businessKey = ""; + String taskDefinitionKey = ""; + String processDefinitionId = ""; + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + taskName = taskInfo.getTaskName(); + taskDefinitionKey = taskInfo.getTaskDefinitionKey(); + processDefinitionId = taskInfo.getProcessDefinitionId(); + if (taskInfo.getBusinessKey() != null && !taskInfo.getBusinessKey().isEmpty()) { + businessKey = taskInfo.getBusinessKey(); + } else { + businessKey = workflowTaskService.getBusinessKey(processInstanceId); + } + + model.addAttribute("taskName", taskName); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitAudit.setBusinessid(businessKey); + businessUnitAudit.setTaskdefinitionkey(taskDefinitionKey); model.addAttribute("businessUnitAudit", businessUnitAudit); - model.addAttribute("leaveApply", this.leaveApplyService.selectById(pInstance.getBusinessKey())); + model.addAttribute("leaveApply", this.leaveApplyService.selectById(businessKey)); - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); - model.addAttribute("showTargetUsersFlag", activityImpls.size() > 0); + if (!workflowTaskService.isSimpleEngine()) { + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(processDefinitionId, taskDefinitionKey); + model.addAttribute("showTargetUsersFlag", activityImpls.size() > 0); + } else { + model.addAttribute("showTargetUsersFlag", true); + } return "administration/leaveApplyAudit"; } @@ -308,8 +343,17 @@ public class LeaveApplyController { String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + + String taskName = ""; + String taskDefinitionKey = ""; + String processDefinitionId = ""; + + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + taskName = taskInfo.getTaskName(); + taskDefinitionKey = taskInfo.getTaskDefinitionKey(); + processDefinitionId = taskInfo.getProcessDefinitionId(); + + model.addAttribute("taskName", taskName); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -318,9 +362,9 @@ public class LeaveApplyController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + String businessKey = workflowTaskService.getBusinessKey(processInstanceId); + businessUnitHandle.setBusinessid(businessKey); + businessUnitHandle.setTaskdefinitionkey(taskDefinitionKey); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -344,8 +388,12 @@ public class LeaveApplyController { rejectReason = businessUnitAudits.get(0).getAuditopinion(); } model.addAttribute("rejectReason", rejectReason); - ActivityImpl activityImpl = workflowProcessDefinitionService.getNEXTActivityImpl(task.getProcessDefinitionId(), task.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); - model.addAttribute("showTargetUsersFlag", activityImpl != null && "userTask".equals(activityImpl.getProperties().get("type"))); + if (!workflowTaskService.isSimpleEngine()) { + ActivityImpl activityImpl = workflowProcessDefinitionService.getNEXTActivityImpl(processDefinitionId, taskDefinitionKey, CommString.ACTI_Condition_PASS); + model.addAttribute("showTargetUsersFlag", activityImpl != null && "userTask".equals(activityImpl.getProperties().get("type"))); + } else { + model.addAttribute("showTargetUsersFlag", true); + } return "administration/leaveApplyHandle"; } @@ -378,7 +426,7 @@ public class LeaveApplyController { } variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); } catch (Exception e) { e.printStackTrace(); result = 0; diff --git a/src/main/java/com/sipai/controller/administration/OrganizationController.java b/src/main/java/com/sipai/controller/administration/OrganizationController.java index 8397ac08..d2e101c2 100644 --- a/src/main/java/com/sipai/controller/administration/OrganizationController.java +++ b/src/main/java/com/sipai/controller/administration/OrganizationController.java @@ -24,6 +24,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -60,6 +61,8 @@ public class OrganizationController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @RequestMapping("/showList.do") @@ -289,7 +292,7 @@ public class OrganizationController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(organization.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(organization.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -312,24 +315,22 @@ public class OrganizationController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String organizationId= pInstance.getBusinessKey(); + String organizationId= pInstanceInfo.getBusinessKey(); Organization organization = this.organizationService.selectById(organizationId); model.addAttribute("organization", organization); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -360,12 +361,10 @@ public class OrganizationController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -375,8 +374,8 @@ public class OrganizationController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -394,7 +393,7 @@ public class OrganizationController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String organizationId = pInstance.getBusinessKey(); + String organizationId = pInstanceInfo.getBusinessKey(); Organization organization = this.organizationService.selectById(organizationId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+organizationId+"' order by insdt desc "); @@ -425,7 +424,7 @@ public class OrganizationController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/administration/TemporaryController.java b/src/main/java/com/sipai/controller/administration/TemporaryController.java index b541b34c..a959cc23 100644 --- a/src/main/java/com/sipai/controller/administration/TemporaryController.java +++ b/src/main/java/com/sipai/controller/administration/TemporaryController.java @@ -23,6 +23,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -59,6 +60,8 @@ public class TemporaryController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @RequestMapping("/showList.do") @@ -261,7 +264,7 @@ public class TemporaryController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(temporary.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(temporary.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -284,24 +287,22 @@ public class TemporaryController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String temporaryId= pInstance.getBusinessKey(); + String temporaryId= pInstanceInfo.getBusinessKey(); Temporary temporary = this.temporaryService.selectById(temporaryId); model.addAttribute("temporary", temporary); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -332,12 +333,10 @@ public class TemporaryController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -347,8 +346,8 @@ public class TemporaryController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -366,7 +365,7 @@ public class TemporaryController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String temporaryId = pInstance.getBusinessKey(); + String temporaryId = pInstanceInfo.getBusinessKey(); Temporary temporary = this.temporaryService.selectById(temporaryId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+temporaryId+"' order by insdt desc "); @@ -397,7 +396,7 @@ public class TemporaryController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/data/BaiDuAipSpeechController.java b/src/main/java/com/sipai/controller/data/BaiDuAipSpeechController.java index 32c4fb20..77535d4e 100644 --- a/src/main/java/com/sipai/controller/data/BaiDuAipSpeechController.java +++ b/src/main/java/com/sipai/controller/data/BaiDuAipSpeechController.java @@ -22,7 +22,7 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import sun.misc.BASE64Decoder; +import java.util.Base64; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -92,10 +92,9 @@ public class BaiDuAipSpeechController { String type = request.getParameter("type"); String upfile_b64 = request.getParameter("upfile_b64"); - BASE64Decoder decoder = new BASE64Decoder(); try { //Base64解码 - byte[] b = decoder.decodeBuffer(upfile_b64); + byte[] b = Base64.getDecoder().decode(upfile_b64); for (int i = 0; i < b.length; ++i) { if (b[i] < 0) {//调整异常数据 b[i] += 256; @@ -129,10 +128,9 @@ public class BaiDuAipSpeechController { String type = request.getParameter("type"); String upfile_b64 = request.getParameter("upfile_b64"); - BASE64Decoder decoder = new BASE64Decoder(); try { //Base64解码 - byte[] b = decoder.decodeBuffer(upfile_b64); + byte[] b = Base64.getDecoder().decode(upfile_b64); for (int i = 0; i < b.length; ++i) { if (b[i] < 0) {//调整异常数据 b[i] += 256; diff --git a/src/main/java/com/sipai/controller/equipment/EquipmentAcceptanceApplyController.java b/src/main/java/com/sipai/controller/equipment/EquipmentAcceptanceApplyController.java index 896acab4..e8f0b496 100644 --- a/src/main/java/com/sipai/controller/equipment/EquipmentAcceptanceApplyController.java +++ b/src/main/java/com/sipai/controller/equipment/EquipmentAcceptanceApplyController.java @@ -31,6 +31,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -84,6 +85,8 @@ public class EquipmentAcceptanceApplyController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @Resource private CommonFileService commonFileService; @@ -640,7 +643,7 @@ public class EquipmentAcceptanceApplyController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(eaa.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(eaa.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -658,24 +661,22 @@ public class EquipmentAcceptanceApplyController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String eaaId= pInstance.getBusinessKey(); + String eaaId= pInstanceInfo.getBusinessKey(); EquipmentAcceptanceApply eaa = equipmentAcceptanceApplyService.selectById(eaaId); model.addAttribute("eaa", eaa); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -706,12 +707,10 @@ public class EquipmentAcceptanceApplyController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -721,8 +720,8 @@ public class EquipmentAcceptanceApplyController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -740,7 +739,7 @@ public class EquipmentAcceptanceApplyController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String eaaId = pInstance.getBusinessKey(); + String eaaId = pInstanceInfo.getBusinessKey(); EquipmentAcceptanceApply eaa = equipmentAcceptanceApplyService.selectById(eaaId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+eaaId+"' order by insdt desc "); model.addAttribute("businessUnitAudit", list.get(0)); @@ -772,7 +771,7 @@ public class EquipmentAcceptanceApplyController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/equipment/EquipmentLoseApplyController.java b/src/main/java/com/sipai/controller/equipment/EquipmentLoseApplyController.java index 3583955e..85e59101 100644 --- a/src/main/java/com/sipai/controller/equipment/EquipmentLoseApplyController.java +++ b/src/main/java/com/sipai/controller/equipment/EquipmentLoseApplyController.java @@ -28,6 +28,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -69,6 +70,8 @@ public class EquipmentLoseApplyController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @RequestMapping("/showList.do") @@ -457,7 +460,7 @@ public class EquipmentLoseApplyController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(equipmentLoseApply.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(equipmentLoseApply.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -475,24 +478,22 @@ public class EquipmentLoseApplyController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String loseApplyId= pInstance.getBusinessKey(); + String loseApplyId= pInstanceInfo.getBusinessKey(); EquipmentLoseApply loseApply = this.equipmentLoseApplyService.selectById(loseApplyId); model.addAttribute("loseApply", loseApply); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -523,12 +524,10 @@ public class EquipmentLoseApplyController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -538,8 +537,8 @@ public class EquipmentLoseApplyController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -557,7 +556,7 @@ public class EquipmentLoseApplyController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String loseApplyId = pInstance.getBusinessKey(); + String loseApplyId = pInstanceInfo.getBusinessKey(); EquipmentLoseApply loseApply = this.equipmentLoseApplyService.selectById(loseApplyId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+loseApplyId+"' order by insdt desc "); model.addAttribute("businessUnitAudit", list.get(0)); @@ -585,7 +584,7 @@ public class EquipmentLoseApplyController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/equipment/EquipmentRepairPlanController.java b/src/main/java/com/sipai/controller/equipment/EquipmentRepairPlanController.java index c7344726..f5150f19 100644 --- a/src/main/java/com/sipai/controller/equipment/EquipmentRepairPlanController.java +++ b/src/main/java/com/sipai/controller/equipment/EquipmentRepairPlanController.java @@ -26,6 +26,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -57,6 +58,8 @@ public class EquipmentRepairPlanController { private UnitService unitService; @Resource private TaskService taskService; + @Resource + private WorkflowTaskService workflowTaskService; @Resource private RuntimeService runtimeService; @Resource @@ -245,23 +248,21 @@ public class EquipmentRepairPlanController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String maintenancePlanId= pInstance.getBusinessKey(); + String maintenancePlanId= pInstanceInfo.getBusinessKey(); EquipmentRepairPlan maintenancePlan = this.equipmentRepairPlanService.selectById(maintenancePlanId); model.addAttribute("maintenancePlan", maintenancePlan); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -292,12 +293,10 @@ public class EquipmentRepairPlanController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -307,8 +306,8 @@ public class EquipmentRepairPlanController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -326,7 +325,7 @@ public class EquipmentRepairPlanController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String maintenancePlanId = pInstance.getBusinessKey(); + String maintenancePlanId = pInstanceInfo.getBusinessKey(); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+maintenancePlanId+"' order by insdt desc "); model.addAttribute("businessUnitAudit", list.get(0)); EquipmentRepairPlan maintenancePlan = this.equipmentRepairPlanService.selectById(maintenancePlanId); @@ -355,7 +354,7 @@ public class EquipmentRepairPlanController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 @@ -454,7 +453,7 @@ public class EquipmentRepairPlanController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(maintenancePlan.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(maintenancePlan.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ diff --git a/src/main/java/com/sipai/controller/equipment/EquipmentSaleApplyController.java b/src/main/java/com/sipai/controller/equipment/EquipmentSaleApplyController.java index f37efbd3..4df4f139 100644 --- a/src/main/java/com/sipai/controller/equipment/EquipmentSaleApplyController.java +++ b/src/main/java/com/sipai/controller/equipment/EquipmentSaleApplyController.java @@ -28,6 +28,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -69,6 +70,8 @@ public class EquipmentSaleApplyController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @RequestMapping("/showList.do") @@ -466,7 +469,7 @@ public class EquipmentSaleApplyController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(equipmentSaleApply.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(equipmentSaleApply.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -484,24 +487,22 @@ public class EquipmentSaleApplyController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String saleApplyId= pInstance.getBusinessKey(); + String saleApplyId= pInstanceInfo.getBusinessKey(); EquipmentSaleApply saleApply = this.equipmentSaleApplyService.selectById(saleApplyId); model.addAttribute("saleApply", saleApply); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -532,12 +533,10 @@ public class EquipmentSaleApplyController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -547,8 +546,8 @@ public class EquipmentSaleApplyController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -566,7 +565,7 @@ public class EquipmentSaleApplyController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String saleApplyId = pInstance.getBusinessKey(); + String saleApplyId = pInstanceInfo.getBusinessKey(); EquipmentSaleApply saleApply = this.equipmentSaleApplyService.selectById(saleApplyId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+saleApplyId+"' order by insdt desc "); model.addAttribute("businessUnitAudit", list.get(0)); @@ -594,7 +593,7 @@ public class EquipmentSaleApplyController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/equipment/EquipmentScrapApplyController.java b/src/main/java/com/sipai/controller/equipment/EquipmentScrapApplyController.java index 09472bf2..3f980b0d 100644 --- a/src/main/java/com/sipai/controller/equipment/EquipmentScrapApplyController.java +++ b/src/main/java/com/sipai/controller/equipment/EquipmentScrapApplyController.java @@ -32,6 +32,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -74,6 +75,8 @@ public class EquipmentScrapApplyController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @Resource private EquipmentTypeNumberService equipmentTypeNumberService; @@ -633,7 +636,7 @@ public class EquipmentScrapApplyController { JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords", jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(equipmentScrapApply.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(equipmentScrapApply.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { @@ -657,24 +660,22 @@ public class EquipmentScrapApplyController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String scrapApplyId = pInstance.getBusinessKey(); + String scrapApplyId = pInstanceInfo.getBusinessKey(); EquipmentScrapApply scrapApply = this.equipmentScrapApplyService.selectById(scrapApplyId); model.addAttribute("scrapApply", scrapApply); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -711,20 +712,18 @@ public class EquipmentScrapApplyController { // .processInstanceId(processInstanceId) // .singleResult(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); -// String outStockRecordId = pInstance.getBusinessKey(); +// String outStockRecordId = pInstanceInfo.getBusinessKey(); // List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); // if(businessUnitHandles!= null && businessUnitHandles.size()>0){ @@ -735,8 +734,8 @@ public class EquipmentScrapApplyController { // businessUnitHandle.setId(CommUtil.getUUID()); // businessUnitHandle.setProcessid(processInstanceId); // businessUnitHandle.setTaskid(taskId); -// businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); -// businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); +// businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); +// businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); // businessUnitHandle.setUnitid(unitId); // } String userIds = businessUnitHandle.getTargetusers(); @@ -754,7 +753,7 @@ public class EquipmentScrapApplyController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String scrapApplyId = pInstance.getBusinessKey(); + String scrapApplyId = pInstanceInfo.getBusinessKey(); EquipmentScrapApply scrapApply = this.equipmentScrapApplyService.selectById(scrapApplyId); // List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+scrapApplyId+"' order by insdt desc "); // model.addAttribute("businessUnitAudit", list.get(0)); @@ -784,7 +783,7 @@ public class EquipmentScrapApplyController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/equipment/EquipmentStopRecordController.java b/src/main/java/com/sipai/controller/equipment/EquipmentStopRecordController.java index 8a41a02a..055f2883 100644 --- a/src/main/java/com/sipai/controller/equipment/EquipmentStopRecordController.java +++ b/src/main/java/com/sipai/controller/equipment/EquipmentStopRecordController.java @@ -30,6 +30,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -69,6 +70,8 @@ public class EquipmentStopRecordController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private RuntimeService runtimeService; @Resource private UserService userService; @@ -475,24 +478,22 @@ public class EquipmentStopRecordController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task =this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String equipmentStopApplyId= pInstance.getBusinessKey(); + String equipmentStopApplyId= pInstanceInfo.getBusinessKey(); EquipmentStopRecord esr = this.equipmentStopRecordService.selectById(equipmentStopApplyId); model.addAttribute("esr", esr); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -527,12 +528,10 @@ public class EquipmentStopRecordController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -542,8 +541,8 @@ public class EquipmentStopRecordController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -561,7 +560,7 @@ public class EquipmentStopRecordController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String equipmentStopApplyId = pInstance.getBusinessKey(); + String equipmentStopApplyId = pInstanceInfo.getBusinessKey(); EquipmentStopRecord esr = this.equipmentStopRecordService.selectById(equipmentStopApplyId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+equipmentStopApplyId+"' order by insdt desc "); model.addAttribute("businessUnitAudit", list.get(0)); @@ -592,7 +591,7 @@ public class EquipmentStopRecordController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 @@ -694,7 +693,7 @@ public class EquipmentStopRecordController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(equipmentStopRecord.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(equipmentStopRecord.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ diff --git a/src/main/java/com/sipai/controller/equipment/EquipmentTransfersApplyController.java b/src/main/java/com/sipai/controller/equipment/EquipmentTransfersApplyController.java index ff60989b..9686c894 100644 --- a/src/main/java/com/sipai/controller/equipment/EquipmentTransfersApplyController.java +++ b/src/main/java/com/sipai/controller/equipment/EquipmentTransfersApplyController.java @@ -36,6 +36,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -80,6 +81,8 @@ public class EquipmentTransfersApplyController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @Resource private StockTransfersApplyDetailService stockTransfersApplyDetailService; @@ -542,7 +545,7 @@ public class EquipmentTransfersApplyController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(equipmentTransfersApply.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(equipmentTransfersApply.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -565,24 +568,22 @@ public class EquipmentTransfersApplyController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String transfersApplyId= pInstance.getBusinessKey(); + String transfersApplyId= pInstanceInfo.getBusinessKey(); EquipmentTransfersApply transfersApply = this.equipmentTransfersApplyService.selectById(transfersApplyId); model.addAttribute("transfersApply", transfersApply); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -620,12 +621,10 @@ public class EquipmentTransfersApplyController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -635,8 +634,8 @@ public class EquipmentTransfersApplyController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -654,7 +653,7 @@ public class EquipmentTransfersApplyController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String transfersApplyId = pInstance.getBusinessKey(); + String transfersApplyId = pInstanceInfo.getBusinessKey(); EquipmentTransfersApply transfersApply = this.equipmentTransfersApplyService.selectById(transfersApplyId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+transfersApplyId+"' order by insdt desc "); model.addAttribute("businessUnitAudit", list.get(0)); @@ -682,7 +681,7 @@ public class EquipmentTransfersApplyController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/equipment/MaintenancePlanController.java b/src/main/java/com/sipai/controller/equipment/MaintenancePlanController.java index d4e87b2d..819ac92f 100644 --- a/src/main/java/com/sipai/controller/equipment/MaintenancePlanController.java +++ b/src/main/java/com/sipai/controller/equipment/MaintenancePlanController.java @@ -33,6 +33,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -66,6 +67,8 @@ public class MaintenancePlanController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private RuntimeService runtimeService; @Resource private WorkflowProcessDefinitionService workflowProcessDefinitionService; @@ -272,23 +275,21 @@ public class MaintenancePlanController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String maintenancePlanId = pInstance.getBusinessKey(); + String maintenancePlanId = pInstanceInfo.getBusinessKey(); MaintenancePlan maintenancePlan = this.maintenancePlanService.selectById(maintenancePlanId); model.addAttribute("maintenancePlan", maintenancePlan); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -321,12 +322,10 @@ public class MaintenancePlanController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -336,8 +335,8 @@ public class MaintenancePlanController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -355,7 +354,7 @@ public class MaintenancePlanController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String maintenancePlanId = pInstance.getBusinessKey(); + String maintenancePlanId = pInstanceInfo.getBusinessKey(); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '" + maintenancePlanId + "' order by insdt desc "); if (CollectionUtils.isNotEmpty(list)){ model.addAttribute("businessUnitAudit", list.get(0)); @@ -424,7 +423,7 @@ public class MaintenancePlanController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 @@ -525,7 +524,7 @@ public class MaintenancePlanController { JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords", jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(maintenancePlan.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(maintenancePlan.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { diff --git a/src/main/java/com/sipai/controller/maintenance/AbnormityController.java b/src/main/java/com/sipai/controller/maintenance/AbnormityController.java index 6b13d85f..1bab9243 100644 --- a/src/main/java/com/sipai/controller/maintenance/AbnormityController.java +++ b/src/main/java/com/sipai/controller/maintenance/AbnormityController.java @@ -38,6 +38,7 @@ import io.swagger.annotations.*; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; @@ -90,6 +91,8 @@ public class AbnormityController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private EquipmentPlanService equipmentPlanService; @Resource private UserService userService; @@ -971,10 +974,10 @@ public class AbnormityController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -984,13 +987,13 @@ public class AbnormityController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); Abnormity entity = this.abnormityService.selectById(entityId); model.addAttribute("entity", entity); return "maintenance/abnormityHandle"; @@ -1009,10 +1012,10 @@ public class AbnormityController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -1022,8 +1025,8 @@ public class AbnormityController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } model.addAttribute("businessUnitHandle", businessUnitHandle); @@ -1033,7 +1036,7 @@ public class AbnormityController { Work work = (Work) SpringContextUtil.getBean("work"); model.addAttribute("compete", work.getCompete()); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); Abnormity entity = this.abnormityService.selectById(entityId); model.addAttribute("entity", entity); return "maintenance/abnormityHandleIssue"; @@ -1149,7 +1152,7 @@ public class AbnormityController { JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords", jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { @@ -1192,7 +1195,7 @@ public class AbnormityController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 @@ -1239,7 +1242,7 @@ public class AbnormityController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 @@ -1472,7 +1475,7 @@ public class AbnormityController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/maintenance/EquipmentPlanController.java b/src/main/java/com/sipai/controller/maintenance/EquipmentPlanController.java index 34c9f5cb..6055946e 100644 --- a/src/main/java/com/sipai/controller/maintenance/EquipmentPlanController.java +++ b/src/main/java/com/sipai/controller/maintenance/EquipmentPlanController.java @@ -31,6 +31,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -69,6 +70,8 @@ public class EquipmentPlanController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private RuntimeService runtimeService; @Resource private WorkflowProcessDefinitionService workflowProcessDefinitionService; @@ -398,19 +401,17 @@ public class EquipmentPlanController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String maintenancePlanId = pInstance.getBusinessKey(); + String maintenancePlanId = pInstanceInfo.getBusinessKey(); EquipmentPlan equipmentPlan = this.equipmentPlanService.selectById(maintenancePlanId); model.addAttribute("equipmentPlan", equipmentPlan); if (equipmentPlan != null) { @@ -430,7 +431,7 @@ public class EquipmentPlanController { } } //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -551,7 +552,7 @@ public class EquipmentPlanController { JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords", jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(equipmentPlan.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(equipmentPlan.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { diff --git a/src/main/java/com/sipai/controller/maintenance/MaintainCarController.java b/src/main/java/com/sipai/controller/maintenance/MaintainCarController.java index 7570c7aa..51543df6 100644 --- a/src/main/java/com/sipai/controller/maintenance/MaintainCarController.java +++ b/src/main/java/com/sipai/controller/maintenance/MaintainCarController.java @@ -17,6 +17,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; @@ -46,6 +47,8 @@ public class MaintainCarController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private RuntimeService runtimeService; @Resource private WorkflowProcessDefinitionService workflowProcessDefinitionService; @@ -207,24 +210,22 @@ public class MaintainCarController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String id= pInstance.getBusinessKey(); + String id= pInstanceInfo.getBusinessKey(); MaintainCar maintainCar = this.maintainCarService.selectById(id); model.addAttribute("maintainCar", maintainCar); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ diff --git a/src/main/java/com/sipai/controller/maintenance/MaintenanceController.java b/src/main/java/com/sipai/controller/maintenance/MaintenanceController.java index d0c5b47d..ef1f21b5 100644 --- a/src/main/java/com/sipai/controller/maintenance/MaintenanceController.java +++ b/src/main/java/com/sipai/controller/maintenance/MaintenanceController.java @@ -34,6 +34,7 @@ import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -90,6 +91,8 @@ public class MaintenanceController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private EquipmentCardService equipmentCardService; @Resource private BusinessUnitHandleDetailService businessUnitHandleDetailService; @@ -1538,7 +1541,7 @@ public class MaintenanceController { Maintainer maintainer = this.maintainerService.selectById(maintenance.getMaintainerid()); model.addAttribute("maintainer", maintainer);*/ //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(maintenanceDetail.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(maintenanceDetail.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { @@ -1634,7 +1637,7 @@ public class MaintenanceController { Maintainer maintainer = this.maintainerService.selectById(maintenance.getMaintainerid()); model.addAttribute("maintainer", maintainer);*/ //检测流程实例是否结束,结束则历史记录最后节点变化 -// long num =runtimeService.createProcessInstanceQuery().processInstanceId(maintenanceDetail.getProcessid()).count(); +// long num =workflowTaskService.getProcessInstanceCount(maintenanceDetail.getProcessid()); // if(num>0){ // model.addAttribute("finishFlag", false); // }else{ @@ -1825,7 +1828,7 @@ public class MaintenanceController { Maintainer maintainer = this.maintainerService.selectById(maintenance.getMaintainerid()); model.addAttribute("maintainer", maintainer); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(maintenanceDetail.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(maintenanceDetail.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { @@ -2413,9 +2416,9 @@ public class MaintenanceController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); //List commentString =workflowService.findTaskComments(taskId, processInstanceId); - model.addAttribute("taskName", task.getName()); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -2425,11 +2428,9 @@ public class MaintenanceController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); } String userIds = businessUnitHandle.getTargetusers(); @@ -2459,7 +2460,7 @@ public class MaintenanceController { model.addAttribute("businessUnitHandleDetails", JSONArray.fromObject(businessUnitHandleDetails)); model.addAttribute("maintenanceDetail", maintenanceDetail); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -2477,11 +2478,9 @@ public class MaintenanceController { String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -2491,8 +2490,8 @@ public class MaintenanceController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -2510,10 +2509,10 @@ public class MaintenanceController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstance.getBusinessKey()); + MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstanceInfo.getBusinessKey()); model.addAttribute("maintenanceDetail", maintenanceDetail); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -2558,7 +2557,7 @@ public class MaintenanceController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 @@ -2594,23 +2593,21 @@ public class MaintenanceController { String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); businessUnitAudit.setUnitid(unitId); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstance.getBusinessKey()); + MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstanceInfo.getBusinessKey()); model.addAttribute("maintenanceDetail", maintenanceDetail); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -2758,7 +2755,7 @@ public class MaintenanceController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 @@ -2788,26 +2785,24 @@ public class MaintenanceController { String unitId = request.getParameter("unitId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); businessUnitAudit.setUnitid(unitId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String maintenanceDetailId = pInstance.getBusinessKey(); + String maintenanceDetailId = pInstanceInfo.getBusinessKey(); MaintenanceDetail maintenanceDetail = this.maintenanceDetailService.selectById(maintenanceDetailId); model.addAttribute("maintenanceDetail", maintenanceDetail); List businessUnitRecords = new ArrayList<>(); BusinessUnitRecord businessUnitRecord = new BusinessUnitRecord(maintenanceDetail); businessUnitRecords.add(businessUnitRecord); - List workTasks = workflowProcessDefinitionService.getAllPDTask(pInstance.getProcessDefinitionId(), "desc"); + List workTasks = workflowProcessDefinitionService.getAllPDTask(pInstanceInfo.getProcessDefinitionId(), "desc"); List keys = new ArrayList<>(); for (WorkTask workTask : workTasks) { keys.add(workTask.getTaskKey()); @@ -2826,7 +2821,7 @@ public class MaintenanceController { } break; case BusinessUnit.UNIT_AUDIT: - List list_audit = businessUnitAuditService.selectListByWhere("where businessid='" + pInstance.getBusinessKey() + "' "); + List list_audit = businessUnitAuditService.selectListByWhere("where businessid='" + pInstanceInfo.getBusinessKey() + "' "); for (BusinessUnitAudit businessUnitAudit_item : list_audit) { businessUnitRecord = new BusinessUnitRecord(businessUnitAudit_item); businessUnitRecords.add(businessUnitRecord); @@ -2861,7 +2856,7 @@ public class MaintenanceController { model.addAttribute("localIp", localIp); model.addAttribute("businessUnitRecords", businessUnitRecords); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -4553,7 +4548,7 @@ public class MaintenanceController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -4563,11 +4558,9 @@ public class MaintenanceController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); } JSONArray json1 = JSONArray.fromObject(businessUnitHandle); @@ -4726,26 +4719,24 @@ public class MaintenanceController { String unitId = request.getParameter("unitId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); businessUnitAudit.setUnitid(unitId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String maintenanceDetailId = pInstance.getBusinessKey(); + String maintenanceDetailId = pInstanceInfo.getBusinessKey(); MaintenanceDetail maintenanceDetail = this.maintenanceDetailService.selectById(maintenanceDetailId); model.addAttribute("maintenanceDetail", maintenanceDetail); List businessUnitRecords = new ArrayList<>(); BusinessUnitRecord businessUnitRecord = new BusinessUnitRecord(maintenanceDetail); businessUnitRecords.add(businessUnitRecord); - List workTasks = workflowProcessDefinitionService.getAllPDTask(pInstance.getProcessDefinitionId(), "desc"); + List workTasks = workflowProcessDefinitionService.getAllPDTask(pInstanceInfo.getProcessDefinitionId(), "desc"); List keys = new ArrayList<>(); for (WorkTask workTask : workTasks) { keys.add(workTask.getTaskKey()); @@ -4764,7 +4755,7 @@ public class MaintenanceController { } break; case BusinessUnit.UNIT_AUDIT: - List list_audit = businessUnitAuditService.selectListByWhere("where businessid='" + pInstance.getBusinessKey() + "' "); + List list_audit = businessUnitAuditService.selectListByWhere("where businessid='" + pInstanceInfo.getBusinessKey() + "' "); for (BusinessUnitAudit businessUnitAudit_item : list_audit) { businessUnitRecord = new BusinessUnitRecord(businessUnitAudit_item); businessUnitRecords.add(businessUnitRecord); @@ -4799,7 +4790,7 @@ public class MaintenanceController { model.addAttribute("localIp", localIp); model.addAttribute("businessUnitRecords", businessUnitRecords); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -4817,11 +4808,9 @@ public class MaintenanceController { String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -4831,8 +4820,8 @@ public class MaintenanceController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -4850,10 +4839,10 @@ public class MaintenanceController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstance.getBusinessKey()); + MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstanceInfo.getBusinessKey()); model.addAttribute("maintenanceDetail", maintenanceDetail); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -4875,13 +4864,11 @@ public class MaintenanceController { String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); JSONObject jsonObject = new JSONObject(); - jsonObject.put("taskName", task.getName()); -// model.addAttribute("taskName", task.getName()); + jsonObject.put("taskName", taskInfo.getTaskName()); +// model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -4891,8 +4878,8 @@ public class MaintenanceController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -4910,11 +4897,11 @@ public class MaintenanceController { } JSONObject jsonObject1 = JSONObject.fromObject(businessUnitHandle); // model.addAttribute("businessUnitHandle", businessUnitHandle); - MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstance.getBusinessKey()); + MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstanceInfo.getBusinessKey()); JSONObject jsonObject2 = JSONObject.fromObject(maintenanceDetail); model.addAttribute("maintenanceDetail", maintenanceDetail); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { jsonObject.put("showTargetUsersFlag", true); // model.addAttribute("showTargetUsersFlag", true); @@ -4941,26 +4928,24 @@ public class MaintenanceController { String unitId = request.getParameter("unitId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); businessUnitAudit.setUnitid(unitId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String maintenanceDetailId = pInstance.getBusinessKey(); + String maintenanceDetailId = pInstanceInfo.getBusinessKey(); MaintenanceDetail maintenanceDetail = this.maintenanceDetailService.selectById(maintenanceDetailId); model.addAttribute("maintenanceDetail", maintenanceDetail); List businessUnitRecords = new ArrayList<>(); BusinessUnitRecord businessUnitRecord = new BusinessUnitRecord(maintenanceDetail); businessUnitRecords.add(businessUnitRecord); - List workTasks = workflowProcessDefinitionService.getAllPDTask(pInstance.getProcessDefinitionId(), "desc"); + List workTasks = workflowProcessDefinitionService.getAllPDTask(pInstanceInfo.getProcessDefinitionId(), "desc"); List keys = new ArrayList<>(); for (WorkTask workTask : workTasks) { keys.add(workTask.getTaskKey()); @@ -4979,7 +4964,7 @@ public class MaintenanceController { } break; case BusinessUnit.UNIT_AUDIT: - List list_audit = businessUnitAuditService.selectListByWhere("where businessid='" + pInstance.getBusinessKey() + "' "); + List list_audit = businessUnitAuditService.selectListByWhere("where businessid='" + pInstanceInfo.getBusinessKey() + "' "); for (BusinessUnitAudit businessUnitAudit_item : list_audit) { businessUnitRecord = new BusinessUnitRecord(businessUnitAudit_item); businessUnitRecords.add(businessUnitRecord); @@ -5014,7 +4999,7 @@ public class MaintenanceController { model.addAttribute("localIp", localIp); model.addAttribute("businessUnitRecords", businessUnitRecords); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { diff --git a/src/main/java/com/sipai/controller/maintenance/RepairCarController.java b/src/main/java/com/sipai/controller/maintenance/RepairCarController.java index 541a6139..ecd28bda 100644 --- a/src/main/java/com/sipai/controller/maintenance/RepairCarController.java +++ b/src/main/java/com/sipai/controller/maintenance/RepairCarController.java @@ -16,6 +16,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; @@ -43,6 +44,8 @@ public class RepairCarController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private RuntimeService runtimeService; @Resource private WorkflowProcessDefinitionService workflowProcessDefinitionService; @@ -204,24 +207,22 @@ public class RepairCarController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String id= pInstance.getBusinessKey(); + String id= pInstanceInfo.getBusinessKey(); RepairCar repairCar = this.repairCarService.selectById(id); model.addAttribute("repairCar", repairCar); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ diff --git a/src/main/java/com/sipai/controller/maintenance/RepairController.java b/src/main/java/com/sipai/controller/maintenance/RepairController.java index 7434ea19..28413cb0 100644 --- a/src/main/java/com/sipai/controller/maintenance/RepairController.java +++ b/src/main/java/com/sipai/controller/maintenance/RepairController.java @@ -24,6 +24,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; @@ -52,6 +53,8 @@ public class RepairController { private WorkflowService workflowService; @Resource private TaskService taskService; + @Resource + private WorkflowTaskService workflowTaskService; @Resource private RuntimeService runtimeService; @Resource @@ -275,7 +278,7 @@ public class RepairController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 @@ -306,19 +309,17 @@ public class RepairController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task nowtask = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", nowtask.getName()); + WorkflowTaskService.TaskInfo nowtaskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", nowtaskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(nowtask.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(nowtaskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String jobId= pInstance.getBusinessKey(); + String jobId= pInstanceInfo.getBusinessKey(); Repair repair = this.repairService.selectById(jobId); model.addAttribute("repair", repair); diff --git a/src/main/java/com/sipai/controller/process/ProcessAdjustmentController.java b/src/main/java/com/sipai/controller/process/ProcessAdjustmentController.java index 2f9349ce..5e9bdbf2 100644 --- a/src/main/java/com/sipai/controller/process/ProcessAdjustmentController.java +++ b/src/main/java/com/sipai/controller/process/ProcessAdjustmentController.java @@ -28,6 +28,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -68,6 +69,8 @@ public class ProcessAdjustmentController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private ProcessAdjustmentContentService processAdjustmentContentService; @Resource private LibraryProcessAdjustmentService libraryProcessAdjustmentService; @@ -294,7 +297,7 @@ public class ProcessAdjustmentController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 @@ -445,7 +448,7 @@ public class ProcessAdjustmentController { JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords", jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { @@ -473,25 +476,23 @@ public class ProcessAdjustmentController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(request.getParameter("unitId"));//流程节点id 不是unitId model.addAttribute("businessUnitHandle", businessUnitHandle); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId); model.addAttribute("entity", entity); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -509,25 +510,23 @@ public class ProcessAdjustmentController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitAudit.setUnitid(request.getParameter("unitId"));//流程节点id 不是unitId model.addAttribute("businessUnitAudit", businessUnitAudit); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId); model.addAttribute("entity", entity); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -548,12 +547,10 @@ public class ProcessAdjustmentController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -563,13 +560,13 @@ public class ProcessAdjustmentController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId); // list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc "); //model.addAttribute("businessUnitAudit", list.get(0)); @@ -590,24 +587,22 @@ public class ProcessAdjustmentController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId); model.addAttribute("entity", entity); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -629,24 +624,22 @@ public class ProcessAdjustmentController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId); model.addAttribute("entity", entity); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -668,25 +661,23 @@ public class ProcessAdjustmentController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(request.getParameter("unitId"));//流程节点id 不是unitId model.addAttribute("businessUnitHandle", businessUnitHandle); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId); model.addAttribute("entity", entity); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { diff --git a/src/main/java/com/sipai/controller/process/RoutineWorkController.java b/src/main/java/com/sipai/controller/process/RoutineWorkController.java index ea02885b..411ba210 100644 --- a/src/main/java/com/sipai/controller/process/RoutineWorkController.java +++ b/src/main/java/com/sipai/controller/process/RoutineWorkController.java @@ -26,6 +26,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -62,6 +63,8 @@ public class RoutineWorkController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private DocFileRelationService docFileRelationService; @RequestMapping("/showList.do") @@ -285,7 +288,7 @@ public class RoutineWorkController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 @@ -403,7 +406,7 @@ public class RoutineWorkController { JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords", jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { @@ -430,12 +433,10 @@ public class RoutineWorkController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -445,13 +446,13 @@ public class RoutineWorkController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); RoutineWork entity = this.routineWorkService.selectById(entityId); // list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc "); //model.addAttribute("businessUnitAudit", list.get(0)); @@ -471,24 +472,22 @@ public class RoutineWorkController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); RoutineWork entity = this.routineWorkService.selectById(entityId); model.addAttribute("entity", entity); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { diff --git a/src/main/java/com/sipai/controller/process/WaterTestController.java b/src/main/java/com/sipai/controller/process/WaterTestController.java index 0788dbf3..80d849cf 100644 --- a/src/main/java/com/sipai/controller/process/WaterTestController.java +++ b/src/main/java/com/sipai/controller/process/WaterTestController.java @@ -23,6 +23,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -58,6 +59,8 @@ public class WaterTestController { private RuntimeService runtimeService; @Resource private TaskService taskService; + @Resource + private WorkflowTaskService workflowTaskService; @RequestMapping("/showList.do") public String showlist(HttpServletRequest request, Model model) { @@ -237,7 +240,7 @@ public class WaterTestController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 @@ -340,7 +343,7 @@ public class WaterTestController { JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords", jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { @@ -367,12 +370,10 @@ public class WaterTestController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -382,8 +383,8 @@ public class WaterTestController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } /*String userIds = businessUnitHandle.getTargetusers(); @@ -401,7 +402,7 @@ public class WaterTestController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String inStockRecordId = pInstance.getBusinessKey(); + String inStockRecordId = pInstanceInfo.getBusinessKey(); WaterTest entity = this.waterTestService.selectById(inStockRecordId); // list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc "); //model.addAttribute("businessUnitAudit", list.get(0)); @@ -418,24 +419,22 @@ public class WaterTestController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); WaterTest entity = this.waterTestService.selectById(entityId); model.addAttribute("entity", entity); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { diff --git a/src/main/java/com/sipai/controller/report/RptCreateController.java b/src/main/java/com/sipai/controller/report/RptCreateController.java index 6d4e1d65..0ba1e9c8 100644 --- a/src/main/java/com/sipai/controller/report/RptCreateController.java +++ b/src/main/java/com/sipai/controller/report/RptCreateController.java @@ -39,6 +39,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -101,6 +102,8 @@ public class RptCreateController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private WorkflowProcessDefinitionService workflowProcessDefinitionService; @Resource private RuntimeService runtimeService; @@ -988,7 +991,7 @@ public class RptCreateController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 @@ -1031,12 +1034,10 @@ public class RptCreateController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -1046,14 +1047,14 @@ public class RptCreateController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); RptCreate entity = this.rptCreateService.selectById(entityId); model.addAttribute("entity", entity); return "report/rptCreateCreate"; @@ -1068,24 +1069,22 @@ public class RptCreateController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); RptCreate entity = this.rptCreateService.selectById(entityId); model.addAttribute("entity", entity); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -1176,7 +1175,7 @@ public class RptCreateController { JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords", jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { diff --git a/src/main/java/com/sipai/controller/sparepart/ContractController.java b/src/main/java/com/sipai/controller/sparepart/ContractController.java index 22b3b09c..1aa109ea 100644 --- a/src/main/java/com/sipai/controller/sparepart/ContractController.java +++ b/src/main/java/com/sipai/controller/sparepart/ContractController.java @@ -25,6 +25,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -71,6 +72,8 @@ public class ContractController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @Resource private BusinessUnitInquiryService businessUnitInquiryService; @@ -796,7 +799,7 @@ public class ContractController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(contract.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(contract.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -820,8 +823,8 @@ public class ContractController { String unitId = request.getParameter("unitId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); Contract contract = this.contractService.selectById(contractId); model.addAttribute("contract", contract); @@ -830,14 +833,12 @@ public class ContractController { businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); businessUnitAudit.setUnitid(unitId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -881,23 +882,21 @@ public class ContractController { //String contractId = request.getParameter("contractId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); businessUnitAudit.setUnitid(unitId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - Contract contract = this.contractService.selectById(pInstance.getBusinessKey()); + Contract contract = this.contractService.selectById(pInstanceInfo.getBusinessKey()); model.addAttribute("contract", contract); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - /*ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(task.getProcessDefinitionId(), task.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); + /*ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); if ("userTask".equals(activityImpl.getProperties().get("type"))) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -914,8 +913,8 @@ public class ContractController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitDeptApply businessUnitDeptApply = new BusinessUnitDeptApply(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitDeptApplies = this.businessUnitDeptApplyService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitDeptApplies!= null && businessUnitDeptApplies.size()>0){ businessUnitDeptApply = businessUnitDeptApplies.get(0); @@ -925,11 +924,9 @@ public class ContractController { businessUnitDeptApply.setId(CommUtil.getUUID()); businessUnitDeptApply.setProcessid(processInstanceId); businessUnitDeptApply.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitDeptApply.setSubscribeId(pInstance.getBusinessKey()); - businessUnitDeptApply.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitDeptApply.setSubscribeId(pInstanceInfo.getBusinessKey()); + businessUnitDeptApply.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); } String userIds = businessUnitDeptApply.getTargetusers(); if(userIds!= null && !userIds.isEmpty()){ @@ -956,7 +953,7 @@ public class ContractController { } model.addAttribute("rejectReson", rejectReson); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(task.getProcessDefinitionId(), task.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); + ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); if ("userTask".equals(activityImpl.getProperties().get("type"))) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -985,7 +982,7 @@ public class ContractController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitDeptApply.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitDeptApply.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitDeptApply.getTaskid(), variables); //发送消息 if(businessUnitDeptApply.getTargetusers()!=null && !businessUnitDeptApply.getTargetusers().isEmpty()){ //补全所有字段信息 @@ -1062,7 +1059,7 @@ public class ContractController { Map variables = new HashMap(); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitInquiry.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitInquiry.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitInquiry.getTaskid(), variables); //发送消息 if(businessUnitInquiry.getTargetusers()!=null && !businessUnitInquiry.getTargetusers().isEmpty()){ //补全所有字段信息 @@ -1146,8 +1143,12 @@ public class ContractController { String processInstanceId=request.getParameter("processInstanceId"); User cu= (User)request.getSession().getAttribute("cu"); int result=0; - Task task =taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult(); - result =this.contractService.doWithdraw(task); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getActiveTaskByProcessInstanceId(processInstanceId); + com.sipai.workflow.simple.SimpleTaskWrapper taskWrapper = new com.sipai.workflow.simple.SimpleTaskWrapper(); + taskWrapper.setId(taskInfo.getTaskId()); + taskWrapper.setName(taskInfo.getTaskName()); + taskWrapper.setProcessInstanceId(taskInfo.getProcessInstanceId()); + result =this.contractService.doWithdraw(taskWrapper); //END String resstr="{\"res\":\""+result+"\"}"; model.addAttribute("result", resstr); diff --git a/src/main/java/com/sipai/controller/sparepart/InStockRecordController.java b/src/main/java/com/sipai/controller/sparepart/InStockRecordController.java index b54a3860..27caec41 100644 --- a/src/main/java/com/sipai/controller/sparepart/InStockRecordController.java +++ b/src/main/java/com/sipai/controller/sparepart/InStockRecordController.java @@ -24,6 +24,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -72,6 +73,8 @@ public class InStockRecordController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @RequestMapping("/showList.do") @@ -559,7 +562,7 @@ public class InStockRecordController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(inStockRecord.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(inStockRecord.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -582,19 +585,17 @@ public class InStockRecordController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String inStockRecordId= pInstance.getBusinessKey(); + String inStockRecordId= pInstanceInfo.getBusinessKey(); InStockRecord inStockRecord = this.inStockRecordService.selectById(inStockRecordId); if (inStockRecord.getFareAdjustment() != null) { @@ -614,7 +615,7 @@ public class InStockRecordController { model.addAttribute("inStockRecord", inStockRecord); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -645,12 +646,10 @@ public class InStockRecordController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -660,8 +659,8 @@ public class InStockRecordController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -679,7 +678,7 @@ public class InStockRecordController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String inStockRecordId = pInstance.getBusinessKey(); + String inStockRecordId = pInstanceInfo.getBusinessKey(); InStockRecord inStockRecord = this.inStockRecordService.selectById(inStockRecordId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc "); model.addAttribute("businessUnitAudit", list.get(0)); @@ -707,7 +706,7 @@ public class InStockRecordController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/sparepart/OutStockRecordController.java b/src/main/java/com/sipai/controller/sparepart/OutStockRecordController.java index 941c018d..a301d38c 100644 --- a/src/main/java/com/sipai/controller/sparepart/OutStockRecordController.java +++ b/src/main/java/com/sipai/controller/sparepart/OutStockRecordController.java @@ -26,6 +26,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -76,6 +77,8 @@ public class OutStockRecordController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @Resource private EquipmentCardService equipmentCardService; @@ -491,7 +494,7 @@ public class OutStockRecordController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(outStockRecord.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(outStockRecord.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -514,24 +517,22 @@ public class OutStockRecordController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String outStockRecordId= pInstance.getBusinessKey(); + String outStockRecordId= pInstanceInfo.getBusinessKey(); OutStockRecord outStockRecord = this.outStockRecordService.selectById(outStockRecordId); model.addAttribute("outStockRecord", outStockRecord); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -577,12 +578,10 @@ public class OutStockRecordController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -592,8 +591,8 @@ public class OutStockRecordController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -611,7 +610,7 @@ public class OutStockRecordController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String outStockRecordId = pInstance.getBusinessKey(); + String outStockRecordId = pInstanceInfo.getBusinessKey(); OutStockRecord outStockRecord = this.outStockRecordService.selectById(outStockRecordId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+outStockRecordId+"' order by insdt desc "); model.addAttribute("businessUnitAudit", list.get(0)); @@ -640,7 +639,7 @@ public class OutStockRecordController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/sparepart/OutStockRecordSectionController.java b/src/main/java/com/sipai/controller/sparepart/OutStockRecordSectionController.java index 4c3f1409..81c9ca0e 100644 --- a/src/main/java/com/sipai/controller/sparepart/OutStockRecordSectionController.java +++ b/src/main/java/com/sipai/controller/sparepart/OutStockRecordSectionController.java @@ -26,6 +26,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -75,6 +76,8 @@ public class OutStockRecordSectionController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @Resource private EquipmentCardService equipmentCardService; @@ -480,7 +483,7 @@ public class OutStockRecordSectionController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(outStockRecord.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(outStockRecord.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -502,24 +505,22 @@ public class OutStockRecordSectionController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String outStockRecordId= pInstance.getBusinessKey(); + String outStockRecordId= pInstanceInfo.getBusinessKey(); OutStockRecord outStockRecord = this.outStockRecordService.selectById(outStockRecordId); model.addAttribute("outStockRecord", outStockRecord); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -550,12 +551,10 @@ public class OutStockRecordSectionController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -565,8 +564,8 @@ public class OutStockRecordSectionController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -584,7 +583,7 @@ public class OutStockRecordSectionController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String outStockRecordId = pInstance.getBusinessKey(); + String outStockRecordId = pInstanceInfo.getBusinessKey(); OutStockRecord outStockRecord = this.outStockRecordService.selectById(outStockRecordId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+outStockRecordId+"' order by insdt desc "); model.addAttribute("businessUnitAudit", list.get(0)); @@ -613,7 +612,7 @@ public class OutStockRecordSectionController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/sparepart/RawMaterialController.java b/src/main/java/com/sipai/controller/sparepart/RawMaterialController.java index 817b21c2..f5265346 100644 --- a/src/main/java/com/sipai/controller/sparepart/RawMaterialController.java +++ b/src/main/java/com/sipai/controller/sparepart/RawMaterialController.java @@ -25,6 +25,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -64,6 +65,8 @@ public class RawMaterialController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @RequestMapping("/showList.do") @@ -413,7 +416,7 @@ public class RawMaterialController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(rawMaterial.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(rawMaterial.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -436,24 +439,22 @@ public class RawMaterialController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String rawMaterialId= pInstance.getBusinessKey(); + String rawMaterialId= pInstanceInfo.getBusinessKey(); RawMaterial rawMaterial = this.rawMaterialService.selectById(rawMaterialId); model.addAttribute("rawMaterial", rawMaterial); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -490,12 +491,10 @@ public class RawMaterialController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -505,8 +504,8 @@ public class RawMaterialController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -524,7 +523,7 @@ public class RawMaterialController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String rawMaterialId = pInstance.getBusinessKey(); + String rawMaterialId = pInstanceInfo.getBusinessKey(); RawMaterial rawMaterial = this.rawMaterialService.selectById(rawMaterialId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+rawMaterialId+"' order by insdt desc "); if(list!=null && list.size()>0){ @@ -561,7 +560,7 @@ public class RawMaterialController { variables =ActivitiUtil.fixVariableWithRoute(variables, passstatus, routeNumStr); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/sparepart/StockCheckController.java b/src/main/java/com/sipai/controller/sparepart/StockCheckController.java index 59a0c831..e19fe632 100644 --- a/src/main/java/com/sipai/controller/sparepart/StockCheckController.java +++ b/src/main/java/com/sipai/controller/sparepart/StockCheckController.java @@ -30,6 +30,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -77,6 +78,8 @@ public class StockCheckController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @@ -469,7 +472,7 @@ public class StockCheckController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(stockCheck.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(stockCheck.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -491,24 +494,22 @@ public class StockCheckController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String stockCheckId= pInstance.getBusinessKey(); + String stockCheckId= pInstanceInfo.getBusinessKey(); StockCheck stockCheck = this.stockCheckService.selectById(stockCheckId); model.addAttribute("stockCheck", stockCheck); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -557,12 +558,10 @@ public class StockCheckController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitHandles!= null && businessUnitHandles.size()>0){ businessUnitHandle = businessUnitHandles.get(0); @@ -572,8 +571,8 @@ public class StockCheckController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } String userIds = businessUnitHandle.getTargetusers(); @@ -591,7 +590,7 @@ public class StockCheckController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String stockCheckId = pInstance.getBusinessKey(); + String stockCheckId = pInstanceInfo.getBusinessKey(); StockCheck stockCheck = this.stockCheckService.selectById(stockCheckId); List list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+stockCheckId+"' order by insdt desc "); model.addAttribute("businessUnitAudit", list.get(0)); @@ -619,7 +618,7 @@ public class StockCheckController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/sparepart/SubscribeController.java b/src/main/java/com/sipai/controller/sparepart/SubscribeController.java index de30da97..db30b56e 100644 --- a/src/main/java/com/sipai/controller/sparepart/SubscribeController.java +++ b/src/main/java/com/sipai/controller/sparepart/SubscribeController.java @@ -24,6 +24,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -71,6 +72,8 @@ public class SubscribeController { private RuntimeService runtimeService; @Resource private TaskService taskService; + @Resource + private WorkflowTaskService workflowTaskService; @Resource private UserService userService; @Resource @@ -846,7 +849,7 @@ public class SubscribeController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(subscribe.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(subscribe.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -871,8 +874,8 @@ public class SubscribeController { String unitId = request.getParameter("unitId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); Subscribe subscribe = this.subscribeService.selectById(subscribeId); model.addAttribute("subscribe", subscribe); @@ -881,14 +884,12 @@ public class SubscribeController { businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); businessUnitAudit.setUnitid(unitId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -922,23 +923,21 @@ public class SubscribeController { //String subscribeId = request.getParameter("subscribeId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); businessUnitAudit.setUnitid(unitId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - Subscribe subscribe = this.subscribeService.selectById(pInstance.getBusinessKey()); + Subscribe subscribe = this.subscribeService.selectById(pInstanceInfo.getBusinessKey()); model.addAttribute("subscribe", subscribe); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - /*ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(task.getProcessDefinitionId(), task.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); + /*ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); if ("userTask".equals(activityImpl.getProperties().get("type"))) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -955,9 +954,9 @@ public class SubscribeController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitInquiry businessUnitInquiry = new BusinessUnitInquiry(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); //List commentString =workflowService.findTaskComments(taskId, processInstanceId); - model.addAttribute("taskName", task.getName()); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitInquiries = this.businessUnitInquiryService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitInquiries!= null && businessUnitInquiries.size()>0){ businessUnitInquiry = businessUnitInquiries.get(0); @@ -967,11 +966,9 @@ public class SubscribeController { businessUnitInquiry.setId(CommUtil.getUUID()); businessUnitInquiry.setProcessid(processInstanceId); businessUnitInquiry.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitInquiry.setSubscribeId(pInstance.getBusinessKey()); - businessUnitInquiry.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitInquiry.setSubscribeId(pInstanceInfo.getBusinessKey()); + businessUnitInquiry.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); } String userIds = businessUnitInquiry.getTargetusers(); if(userIds!= null && !userIds.isEmpty()){ @@ -997,7 +994,7 @@ public class SubscribeController { } model.addAttribute("rejectReson", rejectReson); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(task.getProcessDefinitionId(), task.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); + ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); if ("userTask".equals(activityImpl.getProperties().get("type"))) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -1014,9 +1011,9 @@ public class SubscribeController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitDeptApply businessUnitDeptApply = new BusinessUnitDeptApply(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); //List commentString =workflowService.findTaskComments(taskId, processInstanceId); - model.addAttribute("taskName", task.getName()); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitDeptApplies = this.businessUnitDeptApplyService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitDeptApplies!= null && businessUnitDeptApplies.size()>0){ businessUnitDeptApply = businessUnitDeptApplies.get(0); @@ -1026,11 +1023,9 @@ public class SubscribeController { businessUnitDeptApply.setId(CommUtil.getUUID()); businessUnitDeptApply.setProcessid(processInstanceId); businessUnitDeptApply.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitDeptApply.setSubscribeId(pInstance.getBusinessKey()); - businessUnitDeptApply.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitDeptApply.setSubscribeId(pInstanceInfo.getBusinessKey()); + businessUnitDeptApply.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); } String userIds = businessUnitDeptApply.getTargetusers(); if(userIds!= null && !userIds.isEmpty()){ @@ -1056,7 +1051,7 @@ public class SubscribeController { } model.addAttribute("rejectReson", rejectReson); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(task.getProcessDefinitionId(), task.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); + ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); if ("userTask".equals(activityImpl.getProperties().get("type"))) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -1085,7 +1080,7 @@ public class SubscribeController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitDeptApply.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitDeptApply.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitDeptApply.getTaskid(), variables); //发送消息 if(businessUnitDeptApply.getTargetusers()!=null && !businessUnitDeptApply.getTargetusers().isEmpty()){ //补全所有字段信息 @@ -1140,7 +1135,7 @@ public class SubscribeController { Map variables = new HashMap(); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitInquiry.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitInquiry.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitInquiry.getTaskid(), variables); //发送消息 if(businessUnitInquiry.getTargetusers()!=null && !businessUnitInquiry.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/timeefficiency/PatrolRecordController.java b/src/main/java/com/sipai/controller/timeefficiency/PatrolRecordController.java index e80e2fa3..bb360122 100644 --- a/src/main/java/com/sipai/controller/timeefficiency/PatrolRecordController.java +++ b/src/main/java/com/sipai/controller/timeefficiency/PatrolRecordController.java @@ -41,6 +41,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -116,6 +117,8 @@ public class PatrolRecordController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private RuntimeService runtimeService; @Resource private WorkflowProcessDefinitionService workflowProcessDefinitionService; @@ -2309,7 +2312,7 @@ public class PatrolRecordController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 @@ -2363,12 +2366,10 @@ public class PatrolRecordController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -2378,14 +2379,14 @@ public class PatrolRecordController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); PatrolRecord patrolRecord = patrolRecordService.selectById(entityId); model.addAttribute("entity", patrolRecord); return "timeefficiency/patrolRecordTaskCreate"; @@ -2405,24 +2406,22 @@ public class PatrolRecordController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); PatrolRecord entity = this.patrolRecordService.selectById(entityId); model.addAttribute("entity", entity); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -2515,7 +2514,7 @@ public class PatrolRecordController { JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords", jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { diff --git a/src/main/java/com/sipai/controller/user/UserController.java b/src/main/java/com/sipai/controller/user/UserController.java index 7a737c9b..b685458f 100644 --- a/src/main/java/com/sipai/controller/user/UserController.java +++ b/src/main/java/com/sipai/controller/user/UserController.java @@ -30,7 +30,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; -import sun.misc.BASE64Encoder; +import java.util.Base64; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -593,8 +593,7 @@ public class UserController { in.read(data); in.close(); //将二进制字节用base64编码,以字符串方式存到数据库中 - BASE64Encoder encoder = new BASE64Encoder(); - String headPortrait = encoder.encode(data); + String headPortrait = Base64.getEncoder().encodeToString(data); User cu = (User) request.getSession().getAttribute("cu"); UserDetail userDetail = this.userDetailService.selectByUserId(cu.getId()); int res = 0; diff --git a/src/main/java/com/sipai/controller/visit/VisitApplyController.java b/src/main/java/com/sipai/controller/visit/VisitApplyController.java index ee027a99..afc4015d 100644 --- a/src/main/java/com/sipai/controller/visit/VisitApplyController.java +++ b/src/main/java/com/sipai/controller/visit/VisitApplyController.java @@ -26,6 +26,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -63,6 +64,8 @@ public class VisitApplyController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @RequestMapping("/showList.do") @@ -337,7 +340,7 @@ public class VisitApplyController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(visitApply.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(visitApply.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -357,8 +360,8 @@ public class VisitApplyController { String unitId = request.getParameter("unitId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); VisitApply visitApply = this.visitApplyService.selectById(visitApplyId); model.addAttribute("visitApply", visitApply); @@ -367,14 +370,12 @@ public class VisitApplyController { businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); businessUnitAudit.setUnitid(unitId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -412,8 +413,8 @@ public class VisitApplyController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitDeptApplies = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitDeptApplies!= null && businessUnitDeptApplies.size()>0){ businessUnitHandle = businessUnitDeptApplies.get(0); @@ -423,11 +424,9 @@ public class VisitApplyController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); } String userIds = businessUnitHandle.getTargetusers(); if(userIds!= null && !userIds.isEmpty()){ @@ -454,7 +453,7 @@ public class VisitApplyController { } model.addAttribute("rejectReson", rejectReson); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(task.getProcessDefinitionId(), task.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); + ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); if ("userTask".equals(activityImpl.getProperties().get("type"))) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -489,7 +488,7 @@ public class VisitApplyController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/visit/VisitRegisterController.java b/src/main/java/com/sipai/controller/visit/VisitRegisterController.java index af864f27..43eb3066 100644 --- a/src/main/java/com/sipai/controller/visit/VisitRegisterController.java +++ b/src/main/java/com/sipai/controller/visit/VisitRegisterController.java @@ -24,6 +24,7 @@ import io.swagger.annotations.*; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -57,6 +58,8 @@ public class VisitRegisterController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private UserService userService; @RequestMapping("/showList.do") @@ -344,7 +347,7 @@ public class VisitRegisterController { JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords",jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num =runtimeService.createProcessInstanceQuery().processInstanceId(visitRegister.getProcessid()).count(); + long num =workflowTaskService.getProcessInstanceCount(visitRegister.getProcessid()); if(num>0){ model.addAttribute("finishFlag", false); }else{ @@ -364,8 +367,8 @@ public class VisitRegisterController { String unitId = request.getParameter("unitId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); VisitRegister visitRegister = this.visitRegisterService.selectById(visitRegisterId); model.addAttribute("visitRegister", visitRegister); @@ -374,14 +377,12 @@ public class VisitRegisterController { businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); businessUnitAudit.setUnitid(unitId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -427,8 +428,8 @@ public class VisitRegisterController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitDeptApplies = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); if(businessUnitDeptApplies!= null && businessUnitDeptApplies.size()>0){ businessUnitHandle = businessUnitDeptApplies.get(0); @@ -438,11 +439,9 @@ public class VisitRegisterController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); } String userIds = businessUnitHandle.getTargetusers(); if(userIds!= null && !userIds.isEmpty()){ @@ -469,7 +468,7 @@ public class VisitRegisterController { } model.addAttribute("rejectReson", rejectReson); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(task.getProcessDefinitionId(), task.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); + ActivityImpl activityImpl=workflowProcessDefinitionService.getNEXTActivityImpl(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); if ("userTask".equals(activityImpl.getProperties().get("type"))) { model.addAttribute("showTargetUsersFlag", true); }else{ @@ -504,7 +503,7 @@ public class VisitRegisterController { variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 diff --git a/src/main/java/com/sipai/controller/work/WordAnalysisReportStructureController.java b/src/main/java/com/sipai/controller/work/WordAnalysisReportStructureController.java index d2854eec..63017b14 100644 --- a/src/main/java/com/sipai/controller/work/WordAnalysisReportStructureController.java +++ b/src/main/java/com/sipai/controller/work/WordAnalysisReportStructureController.java @@ -18,7 +18,7 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; -import sun.misc.BASE64Decoder; +import java.util.Base64; import javax.annotation.Resource; import javax.script.ScriptEngine; @@ -719,7 +719,7 @@ public class WordAnalysisReportStructureController { String id = strconts[0]; String img = strconts[2]; - byte[] b2 = new BASE64Decoder().decodeBuffer(img); + byte[] b2 = Base64.getDecoder().decode(img); for (int i = 0; i < b2.length; ++i) { if (b2[i] < 0) {// 调整异常数据 b2[i] += 256; diff --git a/src/main/java/com/sipai/controller/workorder/OverhaulController.java b/src/main/java/com/sipai/controller/workorder/OverhaulController.java index 6fb0f1a5..fa683451 100644 --- a/src/main/java/com/sipai/controller/workorder/OverhaulController.java +++ b/src/main/java/com/sipai/controller/workorder/OverhaulController.java @@ -19,6 +19,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; @@ -48,6 +49,8 @@ public class OverhaulController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private RuntimeService runtimeService; @Resource private EquipmentStopRecordService equipmentStopRecordService; @@ -146,24 +149,22 @@ public class OverhaulController { model.addAttribute("taskId", taskId); String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String equipmentStopApplyId = pInstance.getBusinessKey(); + String equipmentStopApplyId = pInstanceInfo.getBusinessKey(); EquipmentStopRecord esr = this.equipmentStopRecordService.selectById(equipmentStopApplyId); model.addAttribute("esr", esr); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { diff --git a/src/main/java/com/sipai/controller/workorder/OverhaulItemEquipmentController.java b/src/main/java/com/sipai/controller/workorder/OverhaulItemEquipmentController.java index 12de3513..47f1ff2d 100644 --- a/src/main/java/com/sipai/controller/workorder/OverhaulItemEquipmentController.java +++ b/src/main/java/com/sipai/controller/workorder/OverhaulItemEquipmentController.java @@ -23,6 +23,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.task.Task; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -58,6 +59,8 @@ public class OverhaulItemEquipmentController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private WorkflowService workflowService; @Resource private OverhaulService overhaulService; @@ -239,7 +242,7 @@ public class OverhaulItemEquipmentController { int result = 0; if (processStatus == 0) { try { - runtimeService.deleteProcessInstance(equipmentPlan.getProcessid(), ""); + workflowTaskService.deleteProcessInstance(equipmentPlan.getProcessid()); result = 1; // 需要更新流程状态: overhaul.setId(id); @@ -273,7 +276,7 @@ public class OverhaulItemEquipmentController { //受让人 variables.put(CommString.ACTI_KEK_Assignee, null); //complete的作用估计是进入流程的下一步 - taskService.complete(taskId, variables); + workflowTaskService.completeTask(taskId, variables); //通过的话,更新状态为实施中 overhaul.setId(id); overhaul.setProcessStatus("31"); @@ -323,7 +326,7 @@ public class OverhaulItemEquipmentController { String taskId = request.getParameter("taskId"); if (taskId.equals("")) { - taskId = this.taskService.createTaskQuery().processInstanceBusinessKey(equipmentPlan.getId()).singleResult().getId(); + taskId = workflowTaskService.getActiveTaskIdByBusinessKey(equipmentPlan.getId()); } int result = 0; Map variables = new HashMap(); @@ -335,7 +338,7 @@ public class OverhaulItemEquipmentController { variables.put(CommString.ACTI_KEK_Assignee, null); variables.put("userIds", request.getParameter("auditId")); String id = request.getParameter("id"); - taskService.complete(taskId, variables); + workflowTaskService.completeTask(taskId, variables); OverhaulStatistics overhaulStatistics1 = overhaulItemEquipmentService.selectByOverhaulId(overhaulStatistics.getId()); if (overhaulStatistics1 != null && !overhaulStatistics1.equals("")) { overhaulStatistics.setCreateTime(CommUtil.nowDate()); diff --git a/src/main/java/com/sipai/controller/workorder/OverhaulItemProjectController.java b/src/main/java/com/sipai/controller/workorder/OverhaulItemProjectController.java index 4a987bee..e77ad51c 100644 --- a/src/main/java/com/sipai/controller/workorder/OverhaulItemProjectController.java +++ b/src/main/java/com/sipai/controller/workorder/OverhaulItemProjectController.java @@ -27,6 +27,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; @@ -60,6 +61,8 @@ public class OverhaulItemProjectController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private RuntimeService runtimeService; @Resource private BusinessUnitHandleService businessUnitHandleService; @@ -254,19 +257,17 @@ public class OverhaulItemProjectController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task nowtask = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", nowtask.getName()); + WorkflowTaskService.TaskInfo nowtaskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", nowtaskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(nowtask.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(nowtaskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String jobId= pInstance.getBusinessKey(); + String jobId= pInstanceInfo.getBusinessKey(); OverhaulItemProject overhaulItemProject = this.overhaulItemProjectService.selectById(jobId); model.addAttribute("overhaulItemProject",overhaulItemProject); @@ -298,7 +299,7 @@ public class OverhaulItemProjectController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ //补全所有字段信息 @@ -334,24 +335,22 @@ public class OverhaulItemProjectController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String jobId= pInstance.getBusinessKey(); + String jobId= pInstanceInfo.getBusinessKey(); OverhaulItemProject overhaulItemProject = this.overhaulItemProjectService.selectById(jobId); model.addAttribute("overhaulItemProject",overhaulItemProject); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size()>0) { model.addAttribute("showTargetUsersFlag", true); }else{ diff --git a/src/main/java/com/sipai/controller/workorder/WorkorderDetailController.java b/src/main/java/com/sipai/controller/workorder/WorkorderDetailController.java index d28d0a71..9465e142 100644 --- a/src/main/java/com/sipai/controller/workorder/WorkorderDetailController.java +++ b/src/main/java/com/sipai/controller/workorder/WorkorderDetailController.java @@ -32,6 +32,7 @@ import io.swagger.annotations.*; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.runtime.ProcessInstance; @@ -73,6 +74,8 @@ public class WorkorderDetailController { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private RuntimeService runtimeService; @Resource private EquipmentPlanMainYearService equipmentPlanMainYearService; @@ -482,12 +485,10 @@ public class WorkorderDetailController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -497,13 +498,13 @@ public class WorkorderDetailController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String inStockRecordId = pInstance.getBusinessKey(); + String inStockRecordId = pInstanceInfo.getBusinessKey(); WorkorderDetail entity = this.workorderDetailService.selectById(inStockRecordId); model.addAttribute("entity", entity); return "workorder/workorderDetailRepairIssue"; @@ -523,24 +524,22 @@ public class WorkorderDetailController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); WorkorderDetail entity = this.workorderDetailService.selectById(entityId); model.addAttribute("entity", entity); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -565,12 +564,10 @@ public class WorkorderDetailController { String taskId = request.getParameter("taskId"); String processInstanceId = request.getParameter("processInstanceId"); String unitId = request.getParameter("unitId"); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); List businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); if (businessUnitHandles != null && businessUnitHandles.size() > 0) { businessUnitHandle = businessUnitHandles.get(0); @@ -580,8 +577,8 @@ public class WorkorderDetailController { businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setTaskid(taskId); - businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); - businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); + businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); businessUnitHandle.setUnitid(unitId); } /*String userIds = businessUnitHandle.getTargetusers(); @@ -599,7 +596,7 @@ public class WorkorderDetailController { model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("nowDate", CommUtil.nowDate()); - String inStockRecordId = pInstance.getBusinessKey(); + String inStockRecordId = pInstanceInfo.getBusinessKey(); WorkorderDetail entity = this.workorderDetailService.selectById(inStockRecordId); // list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc "); //model.addAttribute("businessUnitAudit", list.get(0)); @@ -629,7 +626,7 @@ public class WorkorderDetailController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 @@ -704,7 +701,7 @@ public class WorkorderDetailController { variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Assignee, null); - taskService.complete(businessUnitHandle.getTaskid(), variables); + workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables); //发送消息 if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { //补全所有字段信息 @@ -740,24 +737,22 @@ public class WorkorderDetailController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); WorkorderDetail entity = this.workorderDetailService.selectById(entityId); model.addAttribute("entity", entity); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -777,24 +772,22 @@ public class WorkorderDetailController { String processInstanceId = request.getParameter("processInstanceId"); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); - Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); - model.addAttribute("taskName", task.getName()); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId); + model.addAttribute("taskName", taskInfo.getTaskName()); businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setTaskid(taskId); - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); - businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId); + businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey()); + businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey()); model.addAttribute("businessUnitAudit", businessUnitAudit); - String entityId = pInstance.getBusinessKey(); + String entityId = pInstanceInfo.getBusinessKey(); WorkorderDetail entity = this.workorderDetailService.selectById(entityId); model.addAttribute("entity", entity); //获取任务下一节点,若为任务节点,则显示目标用户div,否则不显示 - List activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); + List activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey()); if (activityImpls.size() > 0) { model.addAttribute("showTargetUsersFlag", true); } else { @@ -961,7 +954,7 @@ public class WorkorderDetailController { JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords", jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { @@ -1071,7 +1064,7 @@ public class WorkorderDetailController { JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); model.addAttribute("businessUnitRecords", jsonArray); //检测流程实例是否结束,结束则历史记录最后节点变化 - long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); + long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid()); if (num > 0) { model.addAttribute("finishFlag", false); } else { diff --git a/src/main/java/com/sipai/service/accident/RoastService.java b/src/main/java/com/sipai/service/accident/RoastService.java index 8f5f85d8..4a96fe6f 100644 --- a/src/main/java/com/sipai/service/accident/RoastService.java +++ b/src/main/java/com/sipai/service/accident/RoastService.java @@ -20,6 +20,7 @@ import com.sipai.tools.CommService; import com.sipai.tools.CommUtil; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; @@ -55,6 +56,8 @@ public class RoastService implements CommService { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private RuntimeService runtimeService; @Resource private BusinessUnitHandleDetailService businessUnitHandleDetailService; @@ -78,8 +81,8 @@ public class RoastService implements CommService { //清除对应的流程 String pInstancId = roast.getProcessid(); if (pInstancId != null) { - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pInstancId).singleResult(); - if (pInstance != null) { + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId); + if (pInstanceInfo != null) { workflowService.delProcessInstance(pInstancId); } //处理详情也需要删除 diff --git a/src/main/java/com/sipai/service/activiti/WorkflowService.java b/src/main/java/com/sipai/service/activiti/WorkflowService.java index e3aafdfb..28f3ae85 100644 --- a/src/main/java/com/sipai/service/activiti/WorkflowService.java +++ b/src/main/java/com/sipai/service/activiti/WorkflowService.java @@ -62,6 +62,15 @@ import org.springframework.transaction.annotation.Transactional; import com.sipai.workflow.IWorkflowEngine; import com.sipai.workflow.simple.SimpleProcessInstanceWrapper; +import com.sipai.workflow.simple.SimpleTaskWrapper; +import com.sipai.workflow.simple.SimpleWorkflowEngine; +import com.sipai.workflow.simple.SimpleProcessDefinitionWrapper; +import com.sipai.dao.workflow.WfTaskDao; +import com.sipai.dao.workflow.WfProcessInstanceDao; +import com.sipai.dao.workflow.WfProcessDefinitionDao; +import com.sipai.entity.workflow.WfTask; +import com.sipai.entity.workflow.WfProcessInstance; +import com.sipai.entity.workflow.WfProcessDefinition; import javax.annotation.Resource; import java.text.SimpleDateFormat; @@ -76,6 +85,12 @@ public class WorkflowService { @Resource private IWorkflowEngine workflowEngine; + @Resource + private WfTaskDao wfTaskDao; + @Resource + private WfProcessInstanceDao wfProcessInstanceDao; + @Resource + private WfProcessDefinitionDao wfProcessDefinitionDao; private RuntimeService runtimeService; @@ -166,6 +181,13 @@ public class WorkflowService { return workflowEngine; } + /** + * 判断当前是否使用自研引擎 + */ + private boolean isSimpleEngine() { + return workflowEngine instanceof SimpleWorkflowEngine; + } + //启动流程(委托给IWorkflowEngine) public ProcessInstance startWorkflow(String businessKey, String userId, String processDefKey, Map variables) { // 通过统一引擎接口启动流程 @@ -324,63 +346,127 @@ public class WorkflowService { JSONArray json = new JSONArray(); // 开始时间 long stime = System.currentTimeMillis(); - // 根据当前人的ID查询 - //TaskQuery taskQuery = taskService.createTaskQuery().taskCandidateOrAssigned(userId); - //根据当前人的ID和流程key查询 - TaskQuery taskQuery = taskService.createTaskQuery().taskCandidateOrAssigned(userId).processDefinitionKey(modelKey); - List list = taskQuery.list(); + List tasks; + int total; + + if (isSimpleEngine()) { + // ===== 自研引擎模式:从wf表查询 ===== + WfTask queryTask = new WfTask(); + String where = "WHERE status = 'PENDING' AND (assignee = '" + userId + + "' OR candidate_users LIKE '%" + userId + "%')"; + if (modelKey != null && !modelKey.isEmpty()) { + where += " AND process_instance_id IN (SELECT id FROM wf_process_instance WHERE process_key LIKE '%" + modelKey + "%' AND status = 'RUNNING')"; + } + queryTask.setWhere(where); + List wfTasks = wfTaskDao.selectListByWhere(queryTask); + total = wfTasks != null ? wfTasks.size() : 0; + results.put("total", total); + // 排序+分页 + if (wfTasks != null) { + wfTasks = wfTasks.stream() + .sorted((s1, s2) -> { + String t1 = s1.getCreateTime() != null ? s1.getCreateTime() : ""; + String t2 = s2.getCreateTime() != null ? s2.getCreateTime() : ""; + return t2.compareTo(t1); + }) + .skip((long)(pageNo - 1) * pageSize).limit(pageSize) + .collect(Collectors.toList()); + } else { + wfTasks = new ArrayList<>(); + } + // 转换为Activiti Task接口对象 + tasks = new ArrayList<>(); + for (WfTask wt : wfTasks) { + Date createDate = null; + try { if (wt.getCreateTime() != null) createDate = sdf.parse(wt.getCreateTime()); } catch (Exception e) {} + tasks.add(new SimpleTaskWrapper( + String.valueOf(wt.getId()), wt.getNodeName(), wt.getAssignee(), + String.valueOf(wt.getProcessInstanceId()), + wt.getProcessInstanceId() != null ? String.valueOf(wt.getProcessInstanceId()) : null, + wt.getNodeDefId() != null ? String.valueOf(wt.getNodeDefId()) : null, + wt.getStatus(), createDate)); + } + } else { + // ===== Activiti引擎模式:原有逻辑 ===== + TaskQuery taskQuery = taskService.createTaskQuery().taskCandidateOrAssigned(userId).processDefinitionKey(modelKey); + List list = taskQuery.list(); + total = list.size(); + results.put("total", total); + list = list.stream().sorted((s1, s2) -> s2.getCreateTime().compareTo(s1.getCreateTime())).collect(Collectors.toList()); + tasks = list.stream().skip((long)(pageNo - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); + } + // 结束时间 long etime = System.currentTimeMillis(); // 计算执行时间 System.out.println("执行时长:" + (etime - stime) / 1000); - int total = list.size(); - results.put("total", total); - //按照时间排序 - list = list.stream().sorted((s1, s2) -> s2.getCreateTime().compareTo(s1.getCreateTime())).collect(Collectors.toList()); - //分页 - List tasks = list.stream().skip((pageNo - 1) * pageSize).limit(pageSize). - collect(Collectors.toList()); + // 开始时间 stime = System.currentTimeMillis(); // 根据流程的业务ID查询实体并关联 for (int i = 0; i < tasks.size(); i++) { Task task = tasks.get(i); - Map variables = taskService.getVariables(task.getId()); - if (type != null && type.get("key") != null) { - String key = type.get("key").toString(); - String value = type.get("value").toString(); - if (variables.containsKey(key) && !variables.get(key).toString().equals(value)) { - continue; - } + Map variables; + ProcessInstance processInstance; + String businessKey; - } - String processInstanceId = task.getProcessInstanceId(); - if (type != null && type.get("processInstanceId") != null && !processInstanceId.equals(type.get("processInstanceId").toString())) { - continue; - } - ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); -// ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).active().singleResult(); - //流程实例挂起时,上获取的active processInstance为null - if (processInstance == null) { - continue; - } - String businessKey = processInstance.getBusinessKey(); - if (businessKey == null) { - //callactivity调用的流程启动时无businesskey,通过variable中businessKey查找 - if (variables.get("businessKey") != null) { - businessKey = variables.get("businessKey").toString(); - } else { + if (isSimpleEngine()) { + // 自研引擎:从wf表获取流程实例和变量 + String processInstanceId = task.getProcessInstanceId(); + WfProcessInstance wfInst = wfProcessInstanceDao.selectByPrimaryKey(Long.parseLong(processInstanceId)); + if (wfInst == null) continue; + businessKey = wfInst.getBusinessKey(); + if (businessKey == null) continue; + variables = new HashMap<>(); + variables.put("businessKey", businessKey); + if (((SimpleTaskWrapper)task).getDescription() != null) { + // candidateUsers stored in SimpleTaskWrapper doesn't have a direct getter, get from wfTask + } + processInstance = new SimpleProcessInstanceWrapper( + processInstanceId, businessKey, wfInst.getProcessKey()); + } else { + // Activiti引擎:原有逻辑 + variables = taskService.getVariables(task.getId()); + if (type != null && type.get("key") != null) { + String key = type.get("key").toString(); + String value = type.get("value").toString(); + if (variables.containsKey(key) && !variables.get(key).toString().equals(value)) { + continue; + } + } + String processInstanceId = task.getProcessInstanceId(); + if (type != null && type.get("processInstanceId") != null && !processInstanceId.equals(type.get("processInstanceId").toString())) { continue; } - } else { - variables.put("businessKey", businessKey); + processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + if (processInstance == null) continue; + businessKey = processInstance.getBusinessKey(); + if (businessKey == null) { + if (variables.get("businessKey") != null) { + businessKey = variables.get("businessKey").toString(); + } else { + continue; + } + } else { + variables.put("businessKey", businessKey); + } } TodoTask todoTask = new TodoTask(); todoTask.setTask(task); todoTask.setProcessInstance(processInstance); - ProcessDefinition processDefinition = getProcessDefinition(processInstance.getProcessDefinitionId()); + + // 获取流程定义信息 + ProcessDefinition processDefinition = null; + if (isSimpleEngine()) { + String processKey = ((SimpleProcessInstanceWrapper) processInstance).getProcessDefinitionKey(); + // 构建一个简单的ProcessDefinition信息,用processKey作为key + final String pk = processKey; + processDefinition = new SimpleProcessDefinitionWrapper(pk); + } else { + processDefinition = getProcessDefinition(processInstance.getProcessDefinitionId()); + } todoTask.setProcessDefinition(processDefinition); todoTask.setVariables(variables); @@ -875,16 +961,22 @@ public class WorkflowService { } //activiti属性 - ExecutionEntity pInstance = (ExecutionEntity) object.getProcessInstance(); - if (pInstance != null) { -// System.out.println(pInstance.getProcessVariables().toString()); -// JSONObject jb=JSONObject.fromObject(pInstance.getProcessVariables()); + ProcessInstance pInstanceObj = object.getProcessInstance(); + if (pInstanceObj != null) { JSONObject jbpInstance = new JSONObject(); - jbpInstance.put("activityId", pInstance.getActivityId()); - jbpInstance.put("businessKey", pInstance.getBusinessKey()); - jbpInstance.put("id", pInstance.getId()); - //pInstance判断当前任务是否是激活或挂起,1是激活,2是挂起 - jbpInstance.put("suspended", pInstance.getSuspensionState()); + if (pInstanceObj instanceof ExecutionEntity) { + ExecutionEntity pInstance = (ExecutionEntity) pInstanceObj; + jbpInstance.put("activityId", pInstance.getActivityId()); + jbpInstance.put("businessKey", pInstance.getBusinessKey()); + jbpInstance.put("id", pInstance.getId()); + jbpInstance.put("suspended", pInstance.getSuspensionState()); + } else { + // 自研引擎模式 + jbpInstance.put("activityId", pInstanceObj.getActivityId()); + jbpInstance.put("businessKey", pInstanceObj.getBusinessKey()); + jbpInstance.put("id", pInstanceObj.getId()); + jbpInstance.put("suspended", 1); // 1=激活 + } item.put("processInstance", jbpInstance); } @@ -902,7 +994,7 @@ public class WorkflowService { } if (task != null) { JSONObject jbpTask = new JSONObject(); - jbpTask.put("createTime", sdf.format(task.getCreateTime())); + jbpTask.put("createTime", task.getCreateTime() != null ? sdf.format(task.getCreateTime()) : ""); jbpTask.put("executionId", task.getExecutionId()); jbpTask.put("name", task.getName()); jbpTask.put("id", task.getId()); @@ -912,14 +1004,36 @@ public class WorkflowService { jbpTask.put("taskDefinitionKey", task.getTaskDefinitionKey()); jbpTask.put("status", task.getDescription()); //上一个节点执行人 - HistoricTaskInstance historicTaskInstance = queryUpOneNode(task.getId()); User user = null; - if (historicTaskInstance != null) { - user = userService.getUserById(historicTaskInstance.getAssignee()); + if (!isSimpleEngine()) { + HistoricTaskInstance historicTaskInstance = queryUpOneNode(task.getId()); + if (historicTaskInstance != null) { + user = userService.getUserById(historicTaskInstance.getAssignee()); + } else { + String processInstanceId = task.getProcessInstanceId(); + String startUserId = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult().getStartUserId(); + if (startUserId != null && !startUserId.isEmpty()) { + user = userService.getUserById(startUserId); + } + } } else { - String startUserId = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult().getStartUserId();//获取发起人 - if (startUserId != null && !startUserId.isEmpty()) { - user = userService.getUserById(startUserId); + // 自研引擎:查上一个已完成的task获取处理人 + try { + WfTask prevQuery = new WfTask(); + prevQuery.setWhere("WHERE process_instance_id = " + task.getProcessInstanceId() + + " AND status != 'PENDING' ORDER BY complete_time DESC"); + List prevTasks = wfTaskDao.selectListByWhere(prevQuery); + if (prevTasks != null && !prevTasks.isEmpty()) { + user = userService.getUserById(prevTasks.get(0).getAssignee()); + } else { + // 没有上一步,取发起人 + WfProcessInstance wfInst = wfProcessInstanceDao.selectByPrimaryKey(Long.parseLong(task.getProcessInstanceId())); + if (wfInst != null && wfInst.getStarter() != null) { + user = userService.getUserById(wfInst.getStarter()); + } + } + } catch (Exception ex) { + logger.error("查询上一节点处理人失败", ex); } } jbpTask.put("prevAssignee", user); diff --git a/src/main/java/com/sipai/service/business/BusinessUnitAuditService.java b/src/main/java/com/sipai/service/business/BusinessUnitAuditService.java index 7e0ae58c..3e2e935c 100644 --- a/src/main/java/com/sipai/service/business/BusinessUnitAuditService.java +++ b/src/main/java/com/sipai/service/business/BusinessUnitAuditService.java @@ -12,6 +12,7 @@ import com.sipai.tools.CommService; import com.sipai.tools.CommString; import org.activiti.engine.HistoryService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricActivityInstance; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -28,6 +29,8 @@ public class BusinessUnitAuditService implements CommService{ private BusinessUnitAuditDao businessUnitAuditDao; @Resource private TaskService taskService; + @Resource + private WorkflowTaskService workflowTaskService; @Resource private WorkflowProcessDefinitionService workflowProcessDefinitionService; @Resource @@ -97,7 +100,7 @@ public class BusinessUnitAuditService implements CommService{ variables.put(CommString.ACTI_KEK_Candidate_Users, entity.getTargetusers()); } if(entity.getAuditopinion()!=null && !entity.getAuditopinion().isEmpty()){ - taskService.addComment(entity.getTaskid(), entity.getProcessid(), entity.getAuditopinion()); + workflowTaskService.addComment(entity.getTaskid(), entity.getProcessid(), entity.getAuditopinion()); } }else{ //不通过 @@ -128,11 +131,11 @@ public class BusinessUnitAuditService implements CommService{ // 设置退回目标处理人(若仍为空则由流程变量 userIds 确定候选人,不再回退到工单创建人) variables.put(CommString.ACTI_KEK_Assignee, targetAssignee); if(entity.getAuditopinion()!=null && !entity.getAuditopinion().isEmpty()){ - taskService.addComment(entity.getTaskid(), entity.getProcessid(), entity.getAuditopinion()); + workflowTaskService.addComment(entity.getTaskid(), entity.getProcessid(), entity.getAuditopinion()); } } //int res=0; - taskService.complete(entity.getTaskid(), variables); + workflowTaskService.completeTask(entity.getTaskid(), variables); int res; BusinessUnitAudit businessUnitAudit = businessUnitAuditDao.selectByPrimaryKey(entity.getId()); if (businessUnitAudit!=null&&!businessUnitAdapter.equals("")){ diff --git a/src/main/java/com/sipai/service/business/BusinessUnitService.java b/src/main/java/com/sipai/service/business/BusinessUnitService.java index e6a7303e..1b8c36a5 100644 --- a/src/main/java/com/sipai/service/business/BusinessUnitService.java +++ b/src/main/java/com/sipai/service/business/BusinessUnitService.java @@ -7,6 +7,7 @@ import org.activiti.engine.HistoryService; import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricActivityInstance; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.impl.RepositoryServiceImpl; @@ -35,6 +36,8 @@ public class BusinessUnitService implements CommService{ @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private HistoryService historyService; @Resource private RepositoryService repositoryService; @@ -86,18 +89,18 @@ public class BusinessUnitService implements CommService{ int res =0; try { - runtimeService.deleteProcessInstance(taskout.getId(), "canceled-测试"); + workflowTaskService.deleteProcessInstance(taskout.getId()); // 取得当前任务 HistoricTaskInstance currTask = historyService .createHistoricTaskInstanceQuery().taskId(taskout.getId()) .singleResult(); //根据流程id查询代办任务中流程信息 - Task task = taskService.createTaskQuery().processInstanceId(currTask.getProcessInstanceId()).singleResult(); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getActiveTaskByProcessInstanceId(currTask.getProcessInstanceId()); //取回流程接点 当前任务id 取回任务id - callBackProcess(task.getId(),currTask.getId()); + callBackProcess(taskInfo.getTaskId(),currTask.getId()); //删除历史流程走向记录 historyService.deleteHistoricTaskInstance(currTask.getId()); - historyService.deleteHistoricTaskInstance(task.getId()); + historyService.deleteHistoricTaskInstance(taskInfo.getTaskId()); res=1; System.out.println("流程撤回成功"); return res; @@ -126,9 +129,9 @@ public class BusinessUnitService implements CommService{ // 查找所有并行任务节点,同时驳回 List taskList = findTaskListByKey(findProcessInstanceByTaskId( taskId).getId(), findTaskById(taskId).getTaskDefinitionKey()); - for (Task task : taskList) { - commitProcess(task.getId(), variables, activityId); - } + for (Task task : taskList) { + commitProcess(task.getId(), variables, activityId); + } } @@ -150,9 +153,9 @@ public class BusinessUnitService implements CommService{ // 查找所有并行任务节点,同时取回 List taskList = findTaskListByKey(findProcessInstanceByTaskId( taskId).getId(), findTaskById(taskId).getTaskDefinitionKey()); - for (Task task : taskList) { - commitProcess(task.getId(), null, activityId); - } + for (Task task : taskList) { + commitProcess(task.getId(), null, activityId); + } } @@ -196,7 +199,7 @@ public class BusinessUnitService implements CommService{ } // 跳转节点为空,默认提交操作 if (StringUtils.isEmpty(activityId)) { - taskService.complete(taskId, variables); + workflowTaskService.completeTask(taskId, variables); } else {// 流程转向操作 turnTransition(taskId, activityId, variables); } @@ -422,14 +425,16 @@ public class BusinessUnitService implements CommService{ * @return * @throws Exception */ - private TaskEntity findTaskById(String taskId) throws Exception { - TaskEntity task = (TaskEntity) taskService.createTaskQuery().taskId( - taskId).singleResult(); + private TaskEntity findTaskById(String taskId) throws Exception { + if (workflowTaskService.isSimpleEngine()) { + throw new Exception("自研引擎不支持此操作"); + } + TaskEntity task = (TaskEntity) taskService.createTaskQuery().taskId(taskId).singleResult(); if (task == null) { throw new Exception("任务实例未找到!"); } return task; - } + } /** @@ -439,10 +444,13 @@ public class BusinessUnitService implements CommService{ * @param key * @return */ - private List findTaskListByKey(String processInstanceId, String key) { + private List findTaskListByKey(String processInstanceId, String key) { + if (workflowTaskService.isSimpleEngine()) { + return new java.util.ArrayList<>(); + } return taskService.createTaskQuery().processInstanceId( processInstanceId).taskDefinitionKey(key).list(); - } + } /** @@ -580,7 +588,7 @@ public class BusinessUnitService implements CommService{ * 被转办人Code */ public void transferAssignee(String taskId, String userCode) { - taskService.setAssignee(taskId, userCode); + workflowTaskService.setAssignee(taskId, userCode); } /** @@ -609,7 +617,7 @@ public class BusinessUnitService implements CommService{ newTransition.setDestination(pointActivity); // 执行转向任务 - taskService.complete(taskId, variables); + workflowTaskService.completeTask(taskId, variables); // 删除目标节点新流入 pointActivity.getIncomingTransitions().remove(newTransition); diff --git a/src/main/java/com/sipai/service/equipment/EquipmentAcceptanceApplyService.java b/src/main/java/com/sipai/service/equipment/EquipmentAcceptanceApplyService.java index 2786e3ad..916251bd 100644 --- a/src/main/java/com/sipai/service/equipment/EquipmentAcceptanceApplyService.java +++ b/src/main/java/com/sipai/service/equipment/EquipmentAcceptanceApplyService.java @@ -12,6 +12,7 @@ import com.sipai.service.activiti.WorkflowService; import com.sipai.service.business.BusinessUnitAuditService; import com.sipai.tools.CommService; import org.activiti.engine.RuntimeService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; @@ -35,6 +36,8 @@ public class EquipmentAcceptanceApplyService implements CommService0) { for (EquipmentRepairPlan item : list) { String pInstancId = item.getProcessid(); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(pInstancId) - .singleResult(); - if(pInstance != null){ + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId); + if(pInstanceInfo != null){ //删掉关联的流程 this.workflowService.delProcessInstance(pInstancId); } diff --git a/src/main/java/com/sipai/service/equipment/EquipmentScrapApplyService.java b/src/main/java/com/sipai/service/equipment/EquipmentScrapApplyService.java index f70dec68..d75fc45a 100644 --- a/src/main/java/com/sipai/service/equipment/EquipmentScrapApplyService.java +++ b/src/main/java/com/sipai/service/equipment/EquipmentScrapApplyService.java @@ -17,6 +17,7 @@ import com.sipai.tools.CommService; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; @@ -51,6 +52,8 @@ public class EquipmentScrapApplyService implements CommService{ private BusinessUnitAuditService businessUnitAuditService; @Resource private TaskService taskService; + @Resource + private WorkflowTaskService workflowTaskService; @Resource private RuntimeService runtimeService; @@ -140,10 +143,8 @@ public class MaintenancePlanService implements CommService{ if (list!=null && list.size()>0) { for (MaintenancePlan item : list) { String pInstancId = item.getProcessid(); - ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() - .processInstanceId(pInstancId) - .singleResult(); - if(pInstance != null){ + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId); + if(pInstanceInfo != null){ //删掉关联的流程 this.workflowService.delProcessInstance(pInstancId); } diff --git a/src/main/java/com/sipai/service/maintenance/AbnormityService.java b/src/main/java/com/sipai/service/maintenance/AbnormityService.java index ef3c6ae8..87dada65 100644 --- a/src/main/java/com/sipai/service/maintenance/AbnormityService.java +++ b/src/main/java/com/sipai/service/maintenance/AbnormityService.java @@ -36,6 +36,7 @@ import com.sipai.tools.DateUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; @@ -77,6 +78,8 @@ public class AbnormityService implements CommService { @Resource private RuntimeService runtimeService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private BusinessUnitHandleDetailService businessUnitHandleDetailService; @Resource private WorkorderDetailService workorderDetailService; @@ -258,8 +261,8 @@ public class AbnormityService implements CommService { for (Abnormity item : abnormities) { String pInstancId = item.getProcessid(); if (pInstancId != null) { - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pInstancId).singleResult(); - if (pInstance != null) { + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId); + if (pInstanceInfo != null) { workflowService.delProcessInstance(pInstancId); } //处理详情也需要删除 diff --git a/src/main/java/com/sipai/service/maintenance/MaintenanceDetailService.java b/src/main/java/com/sipai/service/maintenance/MaintenanceDetailService.java index 56850133..f2cb5ca8 100644 --- a/src/main/java/com/sipai/service/maintenance/MaintenanceDetailService.java +++ b/src/main/java/com/sipai/service/maintenance/MaintenanceDetailService.java @@ -24,6 +24,7 @@ import com.sipai.tools.CommUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.activiti.engine.RuntimeService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; @@ -79,6 +80,8 @@ public class MaintenanceDetailService implements CommService @Resource private RuntimeService runtimeService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private CompanyService companyService; @Override @@ -445,8 +448,8 @@ public class MaintenanceDetailService implements CommService for (MaintenanceDetail item : maintenanceDetails) { String pInstancId = item.getProcessid(); if (pInstancId != null) { - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pInstancId).singleResult(); - if (pInstance != null) { + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId); + if (pInstanceInfo != null) { workflowService.delProcessInstance(pInstancId); } //处理详情也需要删除 diff --git a/src/main/java/com/sipai/service/maintenance/MaintenanceService.java b/src/main/java/com/sipai/service/maintenance/MaintenanceService.java index f235ab7b..23d6a5f6 100644 --- a/src/main/java/com/sipai/service/maintenance/MaintenanceService.java +++ b/src/main/java/com/sipai/service/maintenance/MaintenanceService.java @@ -17,6 +17,7 @@ import com.sipai.tools.CommService; import com.sipai.tools.CommUtil; import org.activiti.engine.IdentityService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.springframework.stereotype.Service; @@ -43,6 +44,8 @@ public class MaintenanceService implements CommService{ private WorkflowService workflowService; @Resource private TaskService taskService; + @Resource + private WorkflowTaskService workflowTaskService; @Resource private IdentityService identityService; @Resource @@ -213,14 +216,14 @@ public class MaintenanceService implements CommService{ //流程引擎联动,此时maintenance为数据库中最新的 if(result==1 && status_flag && !start_flag){ String processInstancesId=maintenance.getProcessid(); - Task task=taskService.createTaskQuery().processInstanceId(processInstancesId).singleResult(); + WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getActiveTaskByProcessInstanceId(processInstancesId); //if(task!=null){ - String taskId = task.getId(); + String taskId = taskInfo.getTaskId(); /*if(comment!=null && !comment.isEmpty()){ - taskService.addComment(taskId, processInstancesId, comment); + workflowTaskService.addComment(taskId, processInstancesId, comment); }*/ Map variables = this.getTaskVariables(maintenance); - taskService.complete(taskId, variables); + workflowTaskService.completeTask(taskId, variables); //} //保存维护记录 maintenanceRecordService.saveRecord(maintenance); diff --git a/src/main/java/com/sipai/service/maintenance/impl/EquipmentPlanServiceImpl.java b/src/main/java/com/sipai/service/maintenance/impl/EquipmentPlanServiceImpl.java index 2b3db51d..9801175f 100644 --- a/src/main/java/com/sipai/service/maintenance/impl/EquipmentPlanServiceImpl.java +++ b/src/main/java/com/sipai/service/maintenance/impl/EquipmentPlanServiceImpl.java @@ -31,6 +31,7 @@ import com.sipai.tools.SpringContextUtil; import com.sipai.tools.Work; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; @@ -66,6 +67,8 @@ public class EquipmentPlanServiceImpl implements EquipmentPlanService { @Resource private TaskService taskService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private RuntimeService runtimeService; @Resource private EquipmentPlanTypeService equipmentPlanTypeService; @@ -101,8 +104,8 @@ public class EquipmentPlanServiceImpl implements EquipmentPlanService { if (equipmentPlan != null) { String pInstancId = equipmentPlan.getProcessid(); if (pInstancId != null) { - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pInstancId).singleResult(); - if (pInstance != null) { + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId); + if (pInstanceInfo != null) { workflowService.delProcessInstance(pInstancId); } //处理详情也需要删除 @@ -214,8 +217,8 @@ public class EquipmentPlanServiceImpl implements EquipmentPlanService { for (EquipmentPlan item : entityList) { String pInstancId = item.getProcessid(); if (pInstancId != null) { - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pInstancId).singleResult(); - if (pInstance != null) { + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId); + if (pInstanceInfo != null) { workflowService.delProcessInstance(pInstancId); } //处理详情也需要删除 diff --git a/src/main/java/com/sipai/service/sparepart/InStockRecordService.java b/src/main/java/com/sipai/service/sparepart/InStockRecordService.java index a00ab6d3..890598c1 100644 --- a/src/main/java/com/sipai/service/sparepart/InStockRecordService.java +++ b/src/main/java/com/sipai/service/sparepart/InStockRecordService.java @@ -18,6 +18,7 @@ import com.sipai.tools.CommService; import com.sipai.tools.CommUtil; import com.sipai.tools.ThreadPoolUpdateMoney; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; @@ -57,6 +58,8 @@ public class InStockRecordService implements CommService{ private BusinessUnitAuditService businessUnitAuditService; @Resource private TaskService taskService; + @Resource + private WorkflowTaskService workflowTaskService; @Resource private UnitService unitService; @Resource @@ -578,8 +581,8 @@ public class InStockRecordService implements CommService{ Map variables = new HashMap(); variables.put(CommString.ACTI_KEK_Candidate_Users, inStockRecord.getAuditManId()); variables.put(CommString.ACTI_KEK_Assignee, null); - List tasks =taskService.createTaskQuery().processInstanceId(inStockRecord.getProcessid()).orderByTaskCreateTime().desc().list(); - taskService.complete(tasks.get(0).getId(), variables); + WorkflowTaskService.TaskInfo tasksInfo = workflowTaskService.getActiveTaskByProcessInstanceId(inStockRecord.getProcessid()); + workflowTaskService.completeTask(tasksInfo.getTaskId(), variables); int res=this.update(inStockRecord); inStockRecord = this.selectById(inStockRecord.getId()); //发送消息 diff --git a/src/main/java/com/sipai/service/sparepart/OutStockRecordService.java b/src/main/java/com/sipai/service/sparepart/OutStockRecordService.java index a60ca569..3fa7d3f1 100644 --- a/src/main/java/com/sipai/service/sparepart/OutStockRecordService.java +++ b/src/main/java/com/sipai/service/sparepart/OutStockRecordService.java @@ -18,6 +18,7 @@ import com.sipai.service.user.UserService; import com.sipai.tools.CommService; import com.sipai.tools.CommUtil; import org.activiti.engine.TaskService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; @@ -59,6 +60,8 @@ public class OutStockRecordService implements CommService{ private BusinessUnitAuditService businessUnitAuditService; @Resource private TaskService taskService; + @Resource + private WorkflowTaskService workflowTaskService; @Resource private UserService userService; @Resource @@ -660,8 +663,8 @@ public class OutStockRecordService implements CommService{ Map variables = new HashMap(); variables.put(CommString.ACTI_KEK_Candidate_Users, outStockRecord.getAuditManId()); variables.put(CommString.ACTI_KEK_Assignee, null); - List tasks = taskService.createTaskQuery().processInstanceId(outStockRecord.getProcessid()).orderByTaskCreateTime().desc().list(); - taskService.complete(tasks.get(0).getId(), variables); + WorkflowTaskService.TaskInfo tasksInfo = workflowTaskService.getActiveTaskByProcessInstanceId(outStockRecord.getProcessid()); + workflowTaskService.completeTask(tasksInfo.getTaskId(), variables); int res=this.update(outStockRecord); outStockRecord = this.selectById(outStockRecord.getId()); //发送消息 diff --git a/src/main/java/com/sipai/service/work/CameraService.java b/src/main/java/com/sipai/service/work/CameraService.java index 90b51fe6..22dfe49e 100644 --- a/src/main/java/com/sipai/service/work/CameraService.java +++ b/src/main/java/com/sipai/service/work/CameraService.java @@ -17,7 +17,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; -import sun.misc.BASE64Decoder; +import java.util.Base64; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -584,7 +584,7 @@ public class CameraService implements CommService { // System.out.println(imgData); - byte[] b = new BASE64Decoder().decodeBuffer(imgData); + byte[] b = Base64.getDecoder().decode(imgData); for (int i = 0; i < b.length; ++i) { if (b[i] < 0) {// 调整异常数据 b[i] += 256; diff --git a/src/main/java/com/sipai/service/workorder/impl/WorkorderDetailServiceImpl.java b/src/main/java/com/sipai/service/workorder/impl/WorkorderDetailServiceImpl.java index a58663c6..4d529598 100644 --- a/src/main/java/com/sipai/service/workorder/impl/WorkorderDetailServiceImpl.java +++ b/src/main/java/com/sipai/service/workorder/impl/WorkorderDetailServiceImpl.java @@ -41,6 +41,7 @@ import com.sipai.tools.Mqtt; import com.sipai.tools.MqttUtil; import net.sf.json.JSONArray; import org.activiti.engine.RuntimeService; +import com.sipai.workflow.WorkflowTaskService; import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; @@ -78,6 +79,8 @@ public class WorkorderDetailServiceImpl implements WorkorderDetailService { @Resource private RuntimeService runtimeService; @Resource + private WorkflowTaskService workflowTaskService; + @Resource private BusinessUnitHandleDetailService businessUnitHandleDetailService; @Resource private BusinessUnitHandleService businessUnitHandleService; @@ -283,8 +286,8 @@ public class WorkorderDetailServiceImpl implements WorkorderDetailService { for (WorkorderDetail item : maintenanceDetails) { String pInstancId = item.getProcessid(); if (pInstancId != null) { - ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pInstancId).singleResult(); - if (pInstance != null) { + WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId); + if (pInstanceInfo != null) { workflowService.delProcessInstance(pInstancId); } //处理详情也需要删除 diff --git a/src/main/java/com/sipai/tools/UEditorUtil.java b/src/main/java/com/sipai/tools/UEditorUtil.java index 8834dde9..01990238 100644 --- a/src/main/java/com/sipai/tools/UEditorUtil.java +++ b/src/main/java/com/sipai/tools/UEditorUtil.java @@ -8,7 +8,7 @@ import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.fileupload.util.Streams; -import sun.misc.BASE64Decoder; +import java.util.Base64; import javax.servlet.http.HttpServletRequest; import java.io.*; @@ -129,11 +129,11 @@ public class UEditorUtil { String base64Data = this.request.getParameter(fieldName); this.fileName = this.getName("test.png"); this.url = savePath + "/" + this.fileName; - BASE64Decoder decoder = new BASE64Decoder(); + try { File outFile = new File(this.getPhysicalPath(this.url)); OutputStream ro = new FileOutputStream(outFile); - byte[] b = decoder.decodeBuffer(base64Data); + byte[] b = Base64.getDecoder().decode(base64Data); for (int i = 0; i < b.length; ++i) { if (b[i] < 0) { b[i] += 256; diff --git a/src/main/java/com/sipai/workflow/WorkflowTaskService.java b/src/main/java/com/sipai/workflow/WorkflowTaskService.java new file mode 100644 index 00000000..5d07cafd --- /dev/null +++ b/src/main/java/com/sipai/workflow/WorkflowTaskService.java @@ -0,0 +1,405 @@ +package com.sipai.workflow; + +import com.sipai.dao.workflow.WfProcessInstanceDao; +import com.sipai.dao.workflow.WfTaskDao; +import com.sipai.entity.workflow.WfProcessInstance; +import com.sipai.entity.workflow.WfTask; +import com.sipai.workflow.simple.SimpleWorkflowEngine; +import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; +import com.sipai.dao.workflow.WfProcessDefinitionDao; +import com.sipai.entity.workflow.WfProcessDefinition; + +/** + * 统一任务服务 - 路由层 + * 封装 Controller 中对 taskService / runtimeService 的直接调用 + * 根据引擎类型自动路由到 Activiti 或自研引擎 + */ +@Service +public class WorkflowTaskService { + + private static final Logger logger = LoggerFactory.getLogger(WorkflowTaskService.class); + + @Resource + private IWorkflowEngine workflowEngine; + @Resource + private TaskService taskService; + @Resource + private RuntimeService runtimeService; + @Resource + private WfTaskDao wfTaskDao; + @Resource + private WfProcessInstanceDao wfProcessInstanceDao; + + /** + * 判断当前是否使用自研引擎 + */ + public boolean isSimpleEngine() { + return workflowEngine instanceof SimpleWorkflowEngine; + } + + // ==================== Task 相关 ==================== + + /** + * 根据 taskId 获取任务名称 + */ + public String getTaskName(String taskId) { + if (isSimpleEngine()) { + WfTask wfTask = wfTaskDao.selectByPrimaryKey(Long.parseLong(taskId)); + return wfTask != null ? wfTask.getNodeName() : ""; + } else { + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + return task != null ? task.getName() : ""; + } + } + + /** + * 根据 taskId 获取任务定义Key(Activiti为taskDefinitionKey,Simple为nodeDefId) + */ + public String getTaskDefinitionKey(String taskId) { + if (isSimpleEngine()) { + WfTask wfTask = wfTaskDao.selectByPrimaryKey(Long.parseLong(taskId)); + return wfTask != null && wfTask.getNodeDefId() != null ? String.valueOf(wfTask.getNodeDefId()) : ""; + } else { + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + return task != null ? task.getTaskDefinitionKey() : ""; + } + } + + /** + * 根据 taskId 获取流程定义ID + */ + public String getProcessDefinitionId(String taskId) { + if (isSimpleEngine()) { + WfTask wfTask = wfTaskDao.selectByPrimaryKey(Long.parseLong(taskId)); + if (wfTask != null && wfTask.getProcessInstanceId() != null) { + WfProcessInstance inst = wfProcessInstanceDao.selectByPrimaryKey(wfTask.getProcessInstanceId()); + return inst != null ? inst.getProcessKey() : ""; + } + return ""; + } else { + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + return task != null ? task.getProcessDefinitionId() : ""; + } + } + + /** + * 根据流程实例ID获取 businessKey + */ + public String getBusinessKey(String processInstanceId) { + if (isSimpleEngine()) { + try { + WfProcessInstance inst = wfProcessInstanceDao.selectByPrimaryKey(Long.parseLong(processInstanceId)); + return inst != null ? inst.getBusinessKey() : ""; + } catch (Exception e) { + return ""; + } + } else { + ProcessInstance pi = runtimeService.createProcessInstanceQuery() + .processInstanceId(processInstanceId).singleResult(); + return pi != null ? pi.getBusinessKey() : ""; + } + } + + /** + * 判断流程实例是否仍在运行中 + */ + public boolean isProcessRunning(String processInstanceId) { + if (processInstanceId == null || processInstanceId.trim().isEmpty()) { + return false; + } + if (isSimpleEngine()) { + try { + WfProcessInstance inst = wfProcessInstanceDao.selectByPrimaryKey(Long.parseLong(processInstanceId)); + return inst != null && "RUNNING".equals(inst.getStatus()); + } catch (Exception e) { + return false; + } + } else { + long count = runtimeService.createProcessInstanceQuery() + .processInstanceId(processInstanceId).count(); + return count > 0; + } + } + + /** + * 获取流程实例运行中的数量(兼容原来的 count() 调用) + */ + public long getProcessInstanceCount(String processInstanceId) { + return isProcessRunning(processInstanceId) ? 1 : 0; + } + + /** + * 完成任务 + */ + public void completeTask(String taskId, Map variables) { + if (isSimpleEngine()) { + workflowEngine.completeTask(taskId, variables); + } else { + taskService.complete(taskId, variables); + } + } + + /** + * 签收任务 + */ + public void claimTask(String taskId, String userId) { + if (isSimpleEngine()) { + workflowEngine.claimTask(taskId, userId); + } else { + taskService.claim(taskId, userId); + } + } + + /** + * 获取任务变量 + */ + public Map getTaskVariables(String taskId) { + if (isSimpleEngine()) { + return workflowEngine.getTaskVariables(taskId); + } else { + return taskService.getVariables(taskId); + } + } + + /** + * 一次性获取任务的所有常用信息(减少多次查询) + * 返回包含 taskName, taskDefinitionKey, processDefinitionId, processInstanceId 的信息 + */ + public TaskInfo getTaskInfo(String taskId) { + TaskInfo info = new TaskInfo(); + if (isSimpleEngine()) { + WfTask wfTask = wfTaskDao.selectByPrimaryKey(Long.parseLong(taskId)); + if (wfTask != null) { + info.setTaskId(taskId); + info.setTaskName(wfTask.getNodeName()); + info.setTaskDefinitionKey(wfTask.getNodeDefId() != null ? String.valueOf(wfTask.getNodeDefId()) : ""); + info.setProcessInstanceId(wfTask.getProcessInstanceId() != null ? String.valueOf(wfTask.getProcessInstanceId()) : ""); + if (wfTask.getProcessInstanceId() != null) { + WfProcessInstance inst = wfProcessInstanceDao.selectByPrimaryKey(wfTask.getProcessInstanceId()); + if (inst != null) { + info.setProcessDefinitionId(inst.getProcessKey()); + info.setBusinessKey(inst.getBusinessKey()); + } + } + } + } else { + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + if (task != null) { + info.setTaskId(taskId); + info.setTaskName(task.getName()); + info.setTaskDefinitionKey(task.getTaskDefinitionKey()); + info.setProcessDefinitionId(task.getProcessDefinitionId()); + info.setProcessInstanceId(task.getProcessInstanceId()); + } + } + return info; + } + + /** + * 一次性获取流程实例信息 + */ + public ProcessInfo getProcessInfo(String processInstanceId) { + ProcessInfo info = new ProcessInfo(); + info.setProcessInstanceId(processInstanceId); + if (isSimpleEngine()) { + try { + WfProcessInstance inst = wfProcessInstanceDao.selectByPrimaryKey(Long.parseLong(processInstanceId)); + if (inst != null) { + info.setBusinessKey(inst.getBusinessKey()); + info.setProcessDefinitionId(inst.getProcessKey()); + info.setRunning("RUNNING".equals(inst.getStatus())); + } + } catch (Exception e) { + logger.error("获取流程实例信息失败: {}", processInstanceId, e); + } + } else { + ProcessInstance pi = runtimeService.createProcessInstanceQuery() + .processInstanceId(processInstanceId).singleResult(); + if (pi != null) { + info.setBusinessKey(pi.getBusinessKey()); + info.setProcessDefinitionId(pi.getProcessDefinitionId()); + info.setRunning(true); + } else { + info.setRunning(false); + } + } + return info; + } + + /** + * 添加任务评论 + */ + public void addComment(String taskId, String processInstanceId, String message) { + if (isSimpleEngine()) { + // 自研引擎:评论已存在BusinessUnitAudit表中,此处可忽略 + logger.debug("自研引擎跳过addComment: taskId={}, message={}", taskId, message); + } else { + taskService.addComment(taskId, processInstanceId, message); + } + } + + /** + * 设置任务处理人 + */ + public void setAssignee(String taskId, String userId) { + if (isSimpleEngine()) { + try { + WfTask wfTask = wfTaskDao.selectByPrimaryKey(Long.parseLong(taskId)); + if (wfTask != null) { + wfTask.setAssignee(userId); + wfTaskDao.updateByPrimaryKeySelective(wfTask); + } + } catch (Exception e) { + logger.error("设置任务处理人失败: taskId={}, userId={}", taskId, userId, e); + } + } else { + taskService.setAssignee(taskId, userId); + } + } + + /** + * 删除流程实例 + */ + public void deleteProcessInstance(String processInstanceId) { + workflowEngine.deleteProcessInstance(processInstanceId); + } + + /** + * 挂起流程实例 + */ + public void suspendProcessInstance(String processInstanceId) { + if (isSimpleEngine()) { + // 自研引擎暂不支持挂起,可扩展 + logger.warn("自研引擎暂不支持挂起流程实例: {}", processInstanceId); + } else { + runtimeService.suspendProcessInstanceById(processInstanceId); + } + } + + /** + * 激活流程实例 + */ + public void activateProcessInstance(String processInstanceId) { + if (isSimpleEngine()) { + logger.warn("自研引擎暂不支持激活流程实例: {}", processInstanceId); + } else { + runtimeService.activateProcessInstanceById(processInstanceId); + } + } + + /** + * 获取流程实例当前活跃的节点ID列表 + */ + public List getActiveActivityIds(String processInstanceId) { + return workflowEngine.getActiveActivityIds(processInstanceId); + } + + /** + * 根据流程实例ID获取当前活跃任务(替代 taskService.createTaskQuery().processInstanceId(x).active().singleResult()) + */ + public TaskInfo getActiveTaskByProcessInstanceId(String processInstanceId) { + TaskInfo info = new TaskInfo(); + if (isSimpleEngine()) { + WfTask queryTask = new WfTask(); + queryTask.setWhere("WHERE process_instance_id = " + processInstanceId + " AND status = 'PENDING'"); + List tasks = wfTaskDao.selectListByWhere(queryTask); + if (tasks != null && !tasks.isEmpty()) { + WfTask wfTask = tasks.get(0); + info.setTaskId(String.valueOf(wfTask.getId())); + info.setTaskName(wfTask.getNodeName()); + info.setTaskDefinitionKey(wfTask.getNodeDefId() != null ? String.valueOf(wfTask.getNodeDefId()) : ""); + info.setProcessInstanceId(String.valueOf(wfTask.getProcessInstanceId())); + } + } else { + Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult(); + if (task != null) { + info.setTaskId(task.getId()); + info.setTaskName(task.getName()); + info.setTaskDefinitionKey(task.getTaskDefinitionKey()); + info.setProcessInstanceId(task.getProcessInstanceId()); + info.setProcessDefinitionId(task.getProcessDefinitionId()); + } + } + return info; + } + + /** + * 根据businessKey获取当前活跃任务ID(替代 taskService.createTaskQuery().processInstanceBusinessKey(x).singleResult().getId()) + */ + public String getActiveTaskIdByBusinessKey(String businessKey) { + if (isSimpleEngine()) { + // 先查流程实例 + WfProcessInstance queryInst = new WfProcessInstance(); + queryInst.setWhere("WHERE business_key = '" + businessKey + "' AND status = 'RUNNING'"); + List instances = wfProcessInstanceDao.selectListByWhere(queryInst); + if (instances != null && !instances.isEmpty()) { + WfTask queryTask = new WfTask(); + queryTask.setWhere("WHERE process_instance_id = " + instances.get(0).getId() + " AND status = 'PENDING'"); + List tasks = wfTaskDao.selectListByWhere(queryTask); + if (tasks != null && !tasks.isEmpty()) { + return String.valueOf(tasks.get(0).getId()); + } + } + return null; + } else { + Task task = taskService.createTaskQuery().processInstanceBusinessKey(businessKey).singleResult(); + return task != null ? task.getId() : null; + } + } + + // ==================== 内部数据类 ==================== + + /** + * 任务信息封装 + */ + public static class TaskInfo { + private String taskId; + private String taskName; + private String taskDefinitionKey; + private String processDefinitionId; + private String processInstanceId; + private String businessKey; + + public String getTaskId() { return taskId; } + public void setTaskId(String taskId) { this.taskId = taskId; } + public String getTaskName() { return taskName; } + public void setTaskName(String taskName) { this.taskName = taskName; } + public String getTaskDefinitionKey() { return taskDefinitionKey; } + public void setTaskDefinitionKey(String taskDefinitionKey) { this.taskDefinitionKey = taskDefinitionKey; } + public String getProcessDefinitionId() { return processDefinitionId; } + public void setProcessDefinitionId(String processDefinitionId) { this.processDefinitionId = processDefinitionId; } + public String getProcessInstanceId() { return processInstanceId; } + public void setProcessInstanceId(String processInstanceId) { this.processInstanceId = processInstanceId; } + public String getBusinessKey() { return businessKey; } + public void setBusinessKey(String businessKey) { this.businessKey = businessKey; } + } + + /** + * 流程实例信息封装 + */ + public static class ProcessInfo { + private String processInstanceId; + private String businessKey; + private String processDefinitionId; + private boolean running; + + public String getProcessInstanceId() { return processInstanceId; } + public void setProcessInstanceId(String processInstanceId) { this.processInstanceId = processInstanceId; } + public String getBusinessKey() { return businessKey; } + public void setBusinessKey(String businessKey) { this.businessKey = businessKey; } + public String getProcessDefinitionId() { return processDefinitionId; } + public void setProcessDefinitionId(String processDefinitionId) { this.processDefinitionId = processDefinitionId; } + public boolean isRunning() { return running; } + public void setRunning(boolean running) { this.running = running; } + } +} diff --git a/src/main/java/com/sipai/workflow/simple/SimpleProcessDefinitionWrapper.java b/src/main/java/com/sipai/workflow/simple/SimpleProcessDefinitionWrapper.java new file mode 100644 index 00000000..569876d7 --- /dev/null +++ b/src/main/java/com/sipai/workflow/simple/SimpleProcessDefinitionWrapper.java @@ -0,0 +1,54 @@ +package com.sipai.workflow.simple; + +import org.activiti.engine.repository.ProcessDefinition; + +/** + * 自研流程引擎的ProcessDefinition轻量包装类 + */ +public class SimpleProcessDefinitionWrapper implements ProcessDefinition { + + private String key; + + public SimpleProcessDefinitionWrapper(String key) { + this.key = key; + } + + @Override + public String getKey() { return key; } + + @Override + public String getId() { return key; } + + @Override + public String getName() { return key; } + + @Override + public String getCategory() { return null; } + + @Override + public int getVersion() { return 1; } + + @Override + public String getResourceName() { return null; } + + @Override + public String getDeploymentId() { return null; } + + @Override + public String getDiagramResourceName() { return null; } + + @Override + public String getDescription() { return null; } + + @Override + public boolean hasStartFormKey() { return false; } + + @Override + public boolean hasGraphicalNotation() { return false; } + + @Override + public boolean isSuspended() { return false; } + + @Override + public String getTenantId() { return null; } +} diff --git a/src/main/java/com/sipai/workflow/simple/SimpleTaskWrapper.java b/src/main/java/com/sipai/workflow/simple/SimpleTaskWrapper.java new file mode 100644 index 00000000..62940b8c --- /dev/null +++ b/src/main/java/com/sipai/workflow/simple/SimpleTaskWrapper.java @@ -0,0 +1,149 @@ +package com.sipai.workflow.simple; + +import org.activiti.engine.task.DelegationState; +import org.activiti.engine.task.Task; + +import java.util.Date; +import java.util.Map; + +/** + * 自研流程引擎的Task轻量包装类 + * 实现Activiti的Task接口,供WorkflowService构建TodoTask使用 + */ +public class SimpleTaskWrapper implements Task { + + private String id; + private String name; + private String assignee; + private String processInstanceId; + private String processDefinitionId; + private String executionId; + private String taskDefinitionKey; + private String description; + private Date createTime; + + public SimpleTaskWrapper() {} + + public SimpleTaskWrapper(String id, String name, String assignee, + String processInstanceId, String processDefinitionId, + String taskDefinitionKey, String description, Date createTime) { + this.id = id; + this.name = name; + this.assignee = assignee; + this.processInstanceId = processInstanceId; + this.processDefinitionId = processDefinitionId; + this.executionId = processInstanceId; + this.taskDefinitionKey = taskDefinitionKey; + this.description = description; + this.createTime = createTime; + } + + @Override + public String getId() { return id; } + + public void setId(String id) { this.id = id; } + + public void setProcessInstanceId(String processInstanceId) { this.processInstanceId = processInstanceId; } + + @Override + public String getName() { return name; } + + @Override + public void setName(String name) { this.name = name; } + + @Override + public String getAssignee() { return assignee; } + + @Override + public void setAssignee(String assignee) { this.assignee = assignee; } + + @Override + public String getProcessInstanceId() { return processInstanceId; } + + @Override + public String getProcessDefinitionId() { return processDefinitionId; } + + @Override + public String getExecutionId() { return executionId; } + + @Override + public String getTaskDefinitionKey() { return taskDefinitionKey; } + + @Override + public String getDescription() { return description; } + + @Override + public void setDescription(String description) { this.description = description; } + + @Override + public Date getCreateTime() { return createTime; } + + @Override + public String getOwner() { return null; } + + @Override + public void setOwner(String owner) {} + + @Override + public DelegationState getDelegationState() { return null; } + + @Override + public void setDelegationState(DelegationState delegationState) {} + + @Override + public void setLocalizedName(String s) {} + + @Override + public void setLocalizedDescription(String s) {} + + @Override + public Date getDueDate() { return null; } + + @Override + public void setDueDate(Date dueDate) {} + + @Override + public int getPriority() { return 0; } + + @Override + public void setPriority(int priority) {} + + @Override + public String getParentTaskId() { return null; } + + @Override + public void setParentTaskId(String parentTaskId) {} + + @Override + public boolean isSuspended() { return false; } + + @Override + public String getTenantId() { return null; } + + @Override + public void setTenantId(String tenantId) {} + + @Override + public String getFormKey() { return null; } + + @Override + public void setFormKey(String formKey) {} + + @Override + public Map getTaskLocalVariables() { return null; } + + @Override + public Map getProcessVariables() { return null; } + + @Override + public String getCategory() { return null; } + + @Override + public void setCategory(String category) {} + + @Override + public void delegate(String userId) { + + } + +} diff --git a/src/main/resources/workflow.properties b/src/main/resources/workflow.properties index c0a13e73..5e2ff44c 100644 --- a/src/main/resources/workflow.properties +++ b/src/main/resources/workflow.properties @@ -1,2 +1,2 @@ #工作流引擎切换配置 activiti:使用Activiti引擎 simple:使用自研引擎 -workflow.engine=activiti +workflow.engine=simple