重构工作流引擎

This commit is contained in:
yuchen
2026-04-08 15:41:29 +08:00
parent beca10e242
commit 29d98e4f48
62 changed files with 1716 additions and 957 deletions

View File

@ -24,6 +24,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -66,6 +67,8 @@ public class ReasonableAdviceController {
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private WorkflowTaskService workflowTaskService;
@RequestMapping("/showlist.do") @RequestMapping("/showlist.do")
public String showlist(HttpServletRequest request,Model model){ public String showlist(HttpServletRequest request,Model model){
@ -415,7 +418,7 @@ public class ReasonableAdviceController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(reasonableAdvice.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(reasonableAdvice.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -438,19 +441,17 @@ public class ReasonableAdviceController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String reasonableAdviceId= pInstance.getBusinessKey(); String reasonableAdviceId= pInstanceInfo.getBusinessKey();
ReasonableAdvice reasonableAdvice = this.reasonableAdviceService.selectById(reasonableAdviceId); ReasonableAdvice reasonableAdvice = this.reasonableAdviceService.selectById(reasonableAdviceId);
model.addAttribute("reasonableAdvice", reasonableAdvice); model.addAttribute("reasonableAdvice", reasonableAdvice);
String[] userleadid = reasonableAdvice.getUserLead().split(","); String[] userleadid = reasonableAdvice.getUserLead().split(",");
@ -473,7 +474,7 @@ public class ReasonableAdviceController {
model.addAttribute("solvername1", solvername1); model.addAttribute("solvername1", solvername1);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -509,12 +510,10 @@ public class ReasonableAdviceController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -524,8 +523,8 @@ public class ReasonableAdviceController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -543,7 +542,7 @@ public class ReasonableAdviceController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String reasonableAdviceId = pInstance.getBusinessKey(); String reasonableAdviceId = pInstanceInfo.getBusinessKey();
ReasonableAdvice reasonableAdvice = this.reasonableAdviceService.selectById(reasonableAdviceId); ReasonableAdvice reasonableAdvice = this.reasonableAdviceService.selectById(reasonableAdviceId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+reasonableAdviceId+"' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+reasonableAdviceId+"' order by insdt desc ");
if(list!=null && list.size()>0){ if(list!=null && list.size()>0){
@ -580,7 +579,7 @@ public class ReasonableAdviceController {
variables =ActivitiUtil.fixVariableWithRoute(variables, passstatus, routeNumStr); variables =ActivitiUtil.fixVariableWithRoute(variables, passstatus, routeNumStr);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -24,6 +24,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -66,6 +67,8 @@ public class RoastController {
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private WorkflowTaskService workflowTaskService;
@RequestMapping("/showlist.do") @RequestMapping("/showlist.do")
public String showlist(HttpServletRequest request, Model model) { public String showlist(HttpServletRequest request, Model model) {
@ -459,7 +462,7 @@ public class RoastController {
JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords", jsonArray); model.addAttribute("businessUnitRecords", jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(roast.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(roast.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {
@ -483,19 +486,17 @@ public class RoastController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String roastId = pInstance.getBusinessKey(); String roastId = pInstanceInfo.getBusinessKey();
Roast roast = this.roastService.selectById(roastId); Roast roast = this.roastService.selectById(roastId);
model.addAttribute("roast", roast); model.addAttribute("roast", roast);
String[] userleadid = roast.getUserLead().split(","); String[] userleadid = roast.getUserLead().split(",");
@ -518,7 +519,7 @@ public class RoastController {
// model.addAttribute("solvername1", solvername1); // model.addAttribute("solvername1", solvername1);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -556,12 +557,10 @@ public class RoastController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -571,8 +570,8 @@ public class RoastController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -590,7 +589,7 @@ public class RoastController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String roastId = pInstance.getBusinessKey(); String roastId = pInstanceInfo.getBusinessKey();
Roast roast = this.roastService.selectById(roastId); Roast roast = this.roastService.selectById(roastId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '" + roastId + "' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '" + roastId + "' order by insdt desc ");
if (list != null && list.size() > 0) { if (list != null && list.size() > 0) {
@ -628,7 +627,7 @@ public class RoastController {
variables = ActivitiUtil.fixVariableWithRoute(variables, passstatus, routeNumStr); variables = ActivitiUtil.fixVariableWithRoute(variables, passstatus, routeNumStr);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息

View File

@ -23,6 +23,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -59,6 +60,8 @@ public class IndexWorkController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@RequestMapping("/showList.do") @RequestMapping("/showList.do")
@ -262,7 +265,7 @@ public class IndexWorkController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(indexWork.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(indexWork.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -285,24 +288,22 @@ public class IndexWorkController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String indexWorkId= pInstance.getBusinessKey(); String indexWorkId= pInstanceInfo.getBusinessKey();
IndexWork indexWork = this.indexWorkService.selectById(indexWorkId); IndexWork indexWork = this.indexWorkService.selectById(indexWorkId);
model.addAttribute("indexWork", indexWork); model.addAttribute("indexWork", indexWork);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -333,12 +334,10 @@ public class IndexWorkController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -348,8 +347,8 @@ public class IndexWorkController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -367,7 +366,7 @@ public class IndexWorkController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String indexWorkId = pInstance.getBusinessKey(); String indexWorkId = pInstanceInfo.getBusinessKey();
IndexWork indexWork = this.indexWorkService.selectById(indexWorkId); IndexWork indexWork = this.indexWorkService.selectById(indexWorkId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+indexWorkId+"' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+indexWorkId+"' order by insdt desc ");
if(list!=null && list.size()>0){ if(list!=null && list.size()>0){
@ -397,7 +396,7 @@ public class IndexWorkController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -21,12 +21,11 @@ import com.sipai.tools.ActivitiUtil;
import com.sipai.tools.CommString; import com.sipai.tools.CommString;
import com.sipai.tools.CommUtil; import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import com.sipai.dao.workflow.WfTaskDao;
import org.activiti.engine.TaskService; import com.sipai.entity.workflow.WfTask;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; 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.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
@ -53,11 +52,11 @@ public class LeaveApplyController {
@Resource @Resource
private WorkflowService workflowService; private WorkflowService workflowService;
@Resource @Resource
private RuntimeService runtimeService;
@Resource
private TaskService taskService;
@Resource
private UserService userService; private UserService userService;
@Resource
private WorkflowTaskService workflowTaskService;
@Resource
private WfTaskDao wfTaskDao;
@RequestMapping("/showList.do") @RequestMapping("/showList.do")
public String showList(HttpServletRequest request, Model model) { public String showList(HttpServletRequest request, Model model) {
@ -222,14 +221,34 @@ public class LeaveApplyController {
} }
} }
if (leaveApply.getProcessid() != null && !leaveApply.getProcessid().trim().isEmpty()) { if (leaveApply.getProcessid() != null && !leaveApply.getProcessid().trim().isEmpty()) {
List<HistoricTaskInstance> list = this.workflowService.getHistoryService().createHistoricTaskInstanceQuery() if (!workflowTaskService.isSimpleEngine()) {
.processInstanceId(leaveApply.getProcessid()).list(); List<HistoricTaskInstance> list = this.workflowService.getHistoryService().createHistoricTaskInstanceQuery()
for (HistoricTaskInstance task : list) { .processInstanceId(leaveApply.getProcessid()).list();
if (task.getAssignee() == null || task.getClaimTime() == null) { for (HistoricTaskInstance task : list) {
continue; 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<WfTask> 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<BusinessUnitRecord>() { Collections.sort(businessUnitRecords, new Comparator<BusinessUnitRecord>() {
@ -252,7 +271,7 @@ public class LeaveApplyController {
model.addAttribute("businessUnitRecords", JSONArray.fromObject(businessUnitRecords)); model.addAttribute("businessUnitRecords", JSONArray.fromObject(businessUnitRecords));
long num = 0L; long num = 0L;
if (leaveApply.getProcessid() != null && !leaveApply.getProcessid().trim().isEmpty()) { 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("finishFlag", processStarted && num <= 0);
model.addAttribute("processStarted", processStarted); model.addAttribute("processStarted", processStarted);
@ -269,20 +288,36 @@ public class LeaveApplyController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); String taskName = "";
model.addAttribute("taskName", task.getName()); String businessKey = "";
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); 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.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); businessUnitAudit.setBusinessid(businessKey);
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitAudit.setTaskdefinitionkey(taskDefinitionKey);
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
model.addAttribute("leaveApply", this.leaveApplyService.selectById(pInstance.getBusinessKey())); model.addAttribute("leaveApply", this.leaveApplyService.selectById(businessKey));
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); if (!workflowTaskService.isSimpleEngine()) {
model.addAttribute("showTargetUsersFlag", activityImpls.size() > 0); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(processDefinitionId, taskDefinitionKey);
model.addAttribute("showTargetUsersFlag", activityImpls.size() > 0);
} else {
model.addAttribute("showTargetUsersFlag", true);
}
return "administration/leaveApplyAudit"; return "administration/leaveApplyAudit";
} }
@ -308,8 +343,17 @@ public class LeaveApplyController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); 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<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -318,9 +362,9 @@ public class LeaveApplyController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); String businessKey = workflowTaskService.getBusinessKey(processInstanceId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(businessKey);
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskDefinitionKey);
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -344,8 +388,12 @@ public class LeaveApplyController {
rejectReason = businessUnitAudits.get(0).getAuditopinion(); rejectReason = businessUnitAudits.get(0).getAuditopinion();
} }
model.addAttribute("rejectReason", rejectReason); model.addAttribute("rejectReason", rejectReason);
ActivityImpl activityImpl = workflowProcessDefinitionService.getNEXTActivityImpl(task.getProcessDefinitionId(), task.getTaskDefinitionKey(), CommString.ACTI_Condition_PASS); if (!workflowTaskService.isSimpleEngine()) {
model.addAttribute("showTargetUsersFlag", activityImpl != null && "userTask".equals(activityImpl.getProperties().get("type"))); 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"; return "administration/leaveApplyHandle";
} }
@ -378,7 +426,7 @@ public class LeaveApplyController {
} }
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
result = 0; result = 0;

View File

@ -24,6 +24,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -60,6 +61,8 @@ public class OrganizationController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@RequestMapping("/showList.do") @RequestMapping("/showList.do")
@ -289,7 +292,7 @@ public class OrganizationController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(organization.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(organization.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -312,24 +315,22 @@ public class OrganizationController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String organizationId= pInstance.getBusinessKey(); String organizationId= pInstanceInfo.getBusinessKey();
Organization organization = this.organizationService.selectById(organizationId); Organization organization = this.organizationService.selectById(organizationId);
model.addAttribute("organization", organization); model.addAttribute("organization", organization);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -360,12 +361,10 @@ public class OrganizationController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -375,8 +374,8 @@ public class OrganizationController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -394,7 +393,7 @@ public class OrganizationController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String organizationId = pInstance.getBusinessKey(); String organizationId = pInstanceInfo.getBusinessKey();
Organization organization = this.organizationService.selectById(organizationId); Organization organization = this.organizationService.selectById(organizationId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+organizationId+"' order by insdt desc "); List<BusinessUnitAudit> 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 =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -23,6 +23,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -59,6 +60,8 @@ public class TemporaryController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@RequestMapping("/showList.do") @RequestMapping("/showList.do")
@ -261,7 +264,7 @@ public class TemporaryController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(temporary.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(temporary.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -284,24 +287,22 @@ public class TemporaryController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String temporaryId= pInstance.getBusinessKey(); String temporaryId= pInstanceInfo.getBusinessKey();
Temporary temporary = this.temporaryService.selectById(temporaryId); Temporary temporary = this.temporaryService.selectById(temporaryId);
model.addAttribute("temporary", temporary); model.addAttribute("temporary", temporary);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -332,12 +333,10 @@ public class TemporaryController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -347,8 +346,8 @@ public class TemporaryController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -366,7 +365,7 @@ public class TemporaryController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String temporaryId = pInstance.getBusinessKey(); String temporaryId = pInstanceInfo.getBusinessKey();
Temporary temporary = this.temporaryService.selectById(temporaryId); Temporary temporary = this.temporaryService.selectById(temporaryId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+temporaryId+"' order by insdt desc "); List<BusinessUnitAudit> 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 =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -22,7 +22,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import sun.misc.BASE64Decoder; import java.util.Base64;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -92,10 +92,9 @@ public class BaiDuAipSpeechController {
String type = request.getParameter("type"); String type = request.getParameter("type");
String upfile_b64 = request.getParameter("upfile_b64"); String upfile_b64 = request.getParameter("upfile_b64");
BASE64Decoder decoder = new BASE64Decoder();
try { try {
//Base64解码 //Base64解码
byte[] b = decoder.decodeBuffer(upfile_b64); byte[] b = Base64.getDecoder().decode(upfile_b64);
for (int i = 0; i < b.length; ++i) { for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {//调整异常数据 if (b[i] < 0) {//调整异常数据
b[i] += 256; b[i] += 256;
@ -129,10 +128,9 @@ public class BaiDuAipSpeechController {
String type = request.getParameter("type"); String type = request.getParameter("type");
String upfile_b64 = request.getParameter("upfile_b64"); String upfile_b64 = request.getParameter("upfile_b64");
BASE64Decoder decoder = new BASE64Decoder();
try { try {
//Base64解码 //Base64解码
byte[] b = decoder.decodeBuffer(upfile_b64); byte[] b = Base64.getDecoder().decode(upfile_b64);
for (int i = 0; i < b.length; ++i) { for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {//调整异常数据 if (b[i] < 0) {//调整异常数据
b[i] += 256; b[i] += 256;

View File

@ -31,6 +31,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -84,6 +85,8 @@ public class EquipmentAcceptanceApplyController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@Resource @Resource
private CommonFileService commonFileService; private CommonFileService commonFileService;
@ -640,7 +643,7 @@ public class EquipmentAcceptanceApplyController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(eaa.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(eaa.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -658,24 +661,22 @@ public class EquipmentAcceptanceApplyController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String eaaId= pInstance.getBusinessKey(); String eaaId= pInstanceInfo.getBusinessKey();
EquipmentAcceptanceApply eaa = equipmentAcceptanceApplyService.selectById(eaaId); EquipmentAcceptanceApply eaa = equipmentAcceptanceApplyService.selectById(eaaId);
model.addAttribute("eaa", eaa); model.addAttribute("eaa", eaa);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -706,12 +707,10 @@ public class EquipmentAcceptanceApplyController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -721,8 +720,8 @@ public class EquipmentAcceptanceApplyController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -740,7 +739,7 @@ public class EquipmentAcceptanceApplyController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String eaaId = pInstance.getBusinessKey(); String eaaId = pInstanceInfo.getBusinessKey();
EquipmentAcceptanceApply eaa = equipmentAcceptanceApplyService.selectById(eaaId); EquipmentAcceptanceApply eaa = equipmentAcceptanceApplyService.selectById(eaaId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+eaaId+"' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+eaaId+"' order by insdt desc ");
model.addAttribute("businessUnitAudit", list.get(0)); model.addAttribute("businessUnitAudit", list.get(0));
@ -772,7 +771,7 @@ public class EquipmentAcceptanceApplyController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -28,6 +28,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -69,6 +70,8 @@ public class EquipmentLoseApplyController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@RequestMapping("/showList.do") @RequestMapping("/showList.do")
@ -457,7 +460,7 @@ public class EquipmentLoseApplyController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(equipmentLoseApply.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(equipmentLoseApply.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -475,24 +478,22 @@ public class EquipmentLoseApplyController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String loseApplyId= pInstance.getBusinessKey(); String loseApplyId= pInstanceInfo.getBusinessKey();
EquipmentLoseApply loseApply = this.equipmentLoseApplyService.selectById(loseApplyId); EquipmentLoseApply loseApply = this.equipmentLoseApplyService.selectById(loseApplyId);
model.addAttribute("loseApply", loseApply); model.addAttribute("loseApply", loseApply);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -523,12 +524,10 @@ public class EquipmentLoseApplyController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -538,8 +537,8 @@ public class EquipmentLoseApplyController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -557,7 +556,7 @@ public class EquipmentLoseApplyController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String loseApplyId = pInstance.getBusinessKey(); String loseApplyId = pInstanceInfo.getBusinessKey();
EquipmentLoseApply loseApply = this.equipmentLoseApplyService.selectById(loseApplyId); EquipmentLoseApply loseApply = this.equipmentLoseApplyService.selectById(loseApplyId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+loseApplyId+"' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+loseApplyId+"' order by insdt desc ");
model.addAttribute("businessUnitAudit", list.get(0)); model.addAttribute("businessUnitAudit", list.get(0));
@ -585,7 +584,7 @@ public class EquipmentLoseApplyController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -26,6 +26,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -57,6 +58,8 @@ public class EquipmentRepairPlanController {
private UnitService unitService; private UnitService unitService;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private WorkflowTaskService workflowTaskService;
@Resource @Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
@ -245,23 +248,21 @@ public class EquipmentRepairPlanController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String maintenancePlanId= pInstance.getBusinessKey(); String maintenancePlanId= pInstanceInfo.getBusinessKey();
EquipmentRepairPlan maintenancePlan = this.equipmentRepairPlanService.selectById(maintenancePlanId); EquipmentRepairPlan maintenancePlan = this.equipmentRepairPlanService.selectById(maintenancePlanId);
model.addAttribute("maintenancePlan", maintenancePlan); model.addAttribute("maintenancePlan", maintenancePlan);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -292,12 +293,10 @@ public class EquipmentRepairPlanController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -307,8 +306,8 @@ public class EquipmentRepairPlanController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -326,7 +325,7 @@ public class EquipmentRepairPlanController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String maintenancePlanId = pInstance.getBusinessKey(); String maintenancePlanId = pInstanceInfo.getBusinessKey();
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+maintenancePlanId+"' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+maintenancePlanId+"' order by insdt desc ");
model.addAttribute("businessUnitAudit", list.get(0)); model.addAttribute("businessUnitAudit", list.get(0));
EquipmentRepairPlan maintenancePlan = this.equipmentRepairPlanService.selectById(maintenancePlanId); EquipmentRepairPlan maintenancePlan = this.equipmentRepairPlanService.selectById(maintenancePlanId);
@ -355,7 +354,7 @@ public class EquipmentRepairPlanController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息
@ -454,7 +453,7 @@ public class EquipmentRepairPlanController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(maintenancePlan.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(maintenancePlan.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{

View File

@ -28,6 +28,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -69,6 +70,8 @@ public class EquipmentSaleApplyController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@RequestMapping("/showList.do") @RequestMapping("/showList.do")
@ -466,7 +469,7 @@ public class EquipmentSaleApplyController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(equipmentSaleApply.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(equipmentSaleApply.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -484,24 +487,22 @@ public class EquipmentSaleApplyController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String saleApplyId= pInstance.getBusinessKey(); String saleApplyId= pInstanceInfo.getBusinessKey();
EquipmentSaleApply saleApply = this.equipmentSaleApplyService.selectById(saleApplyId); EquipmentSaleApply saleApply = this.equipmentSaleApplyService.selectById(saleApplyId);
model.addAttribute("saleApply", saleApply); model.addAttribute("saleApply", saleApply);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -532,12 +533,10 @@ public class EquipmentSaleApplyController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -547,8 +546,8 @@ public class EquipmentSaleApplyController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -566,7 +565,7 @@ public class EquipmentSaleApplyController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String saleApplyId = pInstance.getBusinessKey(); String saleApplyId = pInstanceInfo.getBusinessKey();
EquipmentSaleApply saleApply = this.equipmentSaleApplyService.selectById(saleApplyId); EquipmentSaleApply saleApply = this.equipmentSaleApplyService.selectById(saleApplyId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+saleApplyId+"' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+saleApplyId+"' order by insdt desc ");
model.addAttribute("businessUnitAudit", list.get(0)); model.addAttribute("businessUnitAudit", list.get(0));
@ -594,7 +593,7 @@ public class EquipmentSaleApplyController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -32,6 +32,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -74,6 +75,8 @@ public class EquipmentScrapApplyController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@Resource @Resource
private EquipmentTypeNumberService equipmentTypeNumberService; private EquipmentTypeNumberService equipmentTypeNumberService;
@ -633,7 +636,7 @@ public class EquipmentScrapApplyController {
JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords", jsonArray); model.addAttribute("businessUnitRecords", jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(equipmentScrapApply.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(equipmentScrapApply.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {
@ -657,24 +660,22 @@ public class EquipmentScrapApplyController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String scrapApplyId = pInstance.getBusinessKey(); String scrapApplyId = pInstanceInfo.getBusinessKey();
EquipmentScrapApply scrapApply = this.equipmentScrapApplyService.selectById(scrapApplyId); EquipmentScrapApply scrapApply = this.equipmentScrapApplyService.selectById(scrapApplyId);
model.addAttribute("scrapApply", scrapApply); model.addAttribute("scrapApply", scrapApply);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -711,20 +712,18 @@ public class EquipmentScrapApplyController {
// .processInstanceId(processInstanceId) // .processInstanceId(processInstanceId)
// .singleResult(); // .singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
// String outStockRecordId = pInstance.getBusinessKey(); // String outStockRecordId = pInstanceInfo.getBusinessKey();
// List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); // List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
// if(businessUnitHandles!= null && businessUnitHandles.size()>0){ // if(businessUnitHandles!= null && businessUnitHandles.size()>0){
@ -735,8 +734,8 @@ public class EquipmentScrapApplyController {
// businessUnitHandle.setId(CommUtil.getUUID()); // businessUnitHandle.setId(CommUtil.getUUID());
// businessUnitHandle.setProcessid(processInstanceId); // businessUnitHandle.setProcessid(processInstanceId);
// businessUnitHandle.setTaskid(taskId); // businessUnitHandle.setTaskid(taskId);
// businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); // businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
// businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); // businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
// businessUnitHandle.setUnitid(unitId); // businessUnitHandle.setUnitid(unitId);
// } // }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -754,7 +753,7 @@ public class EquipmentScrapApplyController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String scrapApplyId = pInstance.getBusinessKey(); String scrapApplyId = pInstanceInfo.getBusinessKey();
EquipmentScrapApply scrapApply = this.equipmentScrapApplyService.selectById(scrapApplyId); EquipmentScrapApply scrapApply = this.equipmentScrapApplyService.selectById(scrapApplyId);
// List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+scrapApplyId+"' order by insdt desc "); // List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+scrapApplyId+"' order by insdt desc ");
// model.addAttribute("businessUnitAudit", list.get(0)); // model.addAttribute("businessUnitAudit", list.get(0));
@ -784,7 +783,7 @@ public class EquipmentScrapApplyController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息

View File

@ -30,6 +30,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -69,6 +70,8 @@ public class EquipmentStopRecordController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private UserService userService; private UserService userService;
@ -475,24 +478,22 @@ public class EquipmentStopRecordController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task =this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String equipmentStopApplyId= pInstance.getBusinessKey(); String equipmentStopApplyId= pInstanceInfo.getBusinessKey();
EquipmentStopRecord esr = this.equipmentStopRecordService.selectById(equipmentStopApplyId); EquipmentStopRecord esr = this.equipmentStopRecordService.selectById(equipmentStopApplyId);
model.addAttribute("esr", esr); model.addAttribute("esr", esr);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -527,12 +528,10 @@ public class EquipmentStopRecordController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -542,8 +541,8 @@ public class EquipmentStopRecordController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -561,7 +560,7 @@ public class EquipmentStopRecordController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String equipmentStopApplyId = pInstance.getBusinessKey(); String equipmentStopApplyId = pInstanceInfo.getBusinessKey();
EquipmentStopRecord esr = this.equipmentStopRecordService.selectById(equipmentStopApplyId); EquipmentStopRecord esr = this.equipmentStopRecordService.selectById(equipmentStopApplyId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+equipmentStopApplyId+"' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+equipmentStopApplyId+"' order by insdt desc ");
model.addAttribute("businessUnitAudit", list.get(0)); model.addAttribute("businessUnitAudit", list.get(0));
@ -592,7 +591,7 @@ public class EquipmentStopRecordController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息
@ -694,7 +693,7 @@ public class EquipmentStopRecordController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(equipmentStopRecord.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(equipmentStopRecord.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{

View File

@ -36,6 +36,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -80,6 +81,8 @@ public class EquipmentTransfersApplyController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@Resource @Resource
private StockTransfersApplyDetailService stockTransfersApplyDetailService; private StockTransfersApplyDetailService stockTransfersApplyDetailService;
@ -542,7 +545,7 @@ public class EquipmentTransfersApplyController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(equipmentTransfersApply.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(equipmentTransfersApply.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -565,24 +568,22 @@ public class EquipmentTransfersApplyController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String transfersApplyId= pInstance.getBusinessKey(); String transfersApplyId= pInstanceInfo.getBusinessKey();
EquipmentTransfersApply transfersApply = this.equipmentTransfersApplyService.selectById(transfersApplyId); EquipmentTransfersApply transfersApply = this.equipmentTransfersApplyService.selectById(transfersApplyId);
model.addAttribute("transfersApply", transfersApply); model.addAttribute("transfersApply", transfersApply);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -620,12 +621,10 @@ public class EquipmentTransfersApplyController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -635,8 +634,8 @@ public class EquipmentTransfersApplyController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -654,7 +653,7 @@ public class EquipmentTransfersApplyController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String transfersApplyId = pInstance.getBusinessKey(); String transfersApplyId = pInstanceInfo.getBusinessKey();
EquipmentTransfersApply transfersApply = this.equipmentTransfersApplyService.selectById(transfersApplyId); EquipmentTransfersApply transfersApply = this.equipmentTransfersApplyService.selectById(transfersApplyId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+transfersApplyId+"' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+transfersApplyId+"' order by insdt desc ");
model.addAttribute("businessUnitAudit", list.get(0)); model.addAttribute("businessUnitAudit", list.get(0));
@ -682,7 +681,7 @@ public class EquipmentTransfersApplyController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -33,6 +33,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -66,6 +67,8 @@ public class MaintenancePlanController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private WorkflowProcessDefinitionService workflowProcessDefinitionService; private WorkflowProcessDefinitionService workflowProcessDefinitionService;
@ -272,23 +275,21 @@ public class MaintenancePlanController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String maintenancePlanId = pInstance.getBusinessKey(); String maintenancePlanId = pInstanceInfo.getBusinessKey();
MaintenancePlan maintenancePlan = this.maintenancePlanService.selectById(maintenancePlanId); MaintenancePlan maintenancePlan = this.maintenancePlanService.selectById(maintenancePlanId);
model.addAttribute("maintenancePlan", maintenancePlan); model.addAttribute("maintenancePlan", maintenancePlan);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -321,12 +322,10 @@ public class MaintenancePlanController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -336,8 +335,8 @@ public class MaintenancePlanController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -355,7 +354,7 @@ public class MaintenancePlanController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String maintenancePlanId = pInstance.getBusinessKey(); String maintenancePlanId = pInstanceInfo.getBusinessKey();
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '" + maintenancePlanId + "' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '" + maintenancePlanId + "' order by insdt desc ");
if (CollectionUtils.isNotEmpty(list)){ if (CollectionUtils.isNotEmpty(list)){
model.addAttribute("businessUnitAudit", list.get(0)); model.addAttribute("businessUnitAudit", list.get(0));
@ -424,7 +423,7 @@ public class MaintenancePlanController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息
@ -525,7 +524,7 @@ public class MaintenancePlanController {
JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords", jsonArray); model.addAttribute("businessUnitRecords", jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(maintenancePlan.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(maintenancePlan.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {

View File

@ -38,6 +38,7 @@ import io.swagger.annotations.*;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -90,6 +91,8 @@ public class AbnormityController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private EquipmentPlanService equipmentPlanService; private EquipmentPlanService equipmentPlanService;
@Resource @Resource
private UserService userService; private UserService userService;
@ -971,10 +974,10 @@ public class AbnormityController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -984,13 +987,13 @@ public class AbnormityController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
Abnormity entity = this.abnormityService.selectById(entityId); Abnormity entity = this.abnormityService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
return "maintenance/abnormityHandle"; return "maintenance/abnormityHandle";
@ -1009,10 +1012,10 @@ public class AbnormityController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -1022,8 +1025,8 @@ public class AbnormityController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
@ -1033,7 +1036,7 @@ public class AbnormityController {
Work work = (Work) SpringContextUtil.getBean("work"); Work work = (Work) SpringContextUtil.getBean("work");
model.addAttribute("compete", work.getCompete()); model.addAttribute("compete", work.getCompete());
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
Abnormity entity = this.abnormityService.selectById(entityId); Abnormity entity = this.abnormityService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
return "maintenance/abnormityHandleIssue"; return "maintenance/abnormityHandleIssue";
@ -1149,7 +1152,7 @@ public class AbnormityController {
JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords", jsonArray); model.addAttribute("businessUnitRecords", jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {
@ -1192,7 +1195,7 @@ public class AbnormityController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息
@ -1239,7 +1242,7 @@ public class AbnormityController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息
@ -1472,7 +1475,7 @@ public class AbnormityController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息

View File

@ -31,6 +31,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -69,6 +70,8 @@ public class EquipmentPlanController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private WorkflowProcessDefinitionService workflowProcessDefinitionService; private WorkflowProcessDefinitionService workflowProcessDefinitionService;
@ -398,19 +401,17 @@ public class EquipmentPlanController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String maintenancePlanId = pInstance.getBusinessKey(); String maintenancePlanId = pInstanceInfo.getBusinessKey();
EquipmentPlan equipmentPlan = this.equipmentPlanService.selectById(maintenancePlanId); EquipmentPlan equipmentPlan = this.equipmentPlanService.selectById(maintenancePlanId);
model.addAttribute("equipmentPlan", equipmentPlan); model.addAttribute("equipmentPlan", equipmentPlan);
if (equipmentPlan != null) { if (equipmentPlan != null) {
@ -430,7 +431,7 @@ public class EquipmentPlanController {
} }
} }
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -551,7 +552,7 @@ public class EquipmentPlanController {
JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords", jsonArray); model.addAttribute("businessUnitRecords", jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(equipmentPlan.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(equipmentPlan.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {

View File

@ -17,6 +17,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -46,6 +47,8 @@ public class MaintainCarController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private WorkflowProcessDefinitionService workflowProcessDefinitionService; private WorkflowProcessDefinitionService workflowProcessDefinitionService;
@ -207,24 +210,22 @@ public class MaintainCarController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String id= pInstance.getBusinessKey(); String id= pInstanceInfo.getBusinessKey();
MaintainCar maintainCar = this.maintainCarService.selectById(id); MaintainCar maintainCar = this.maintainCarService.selectById(id);
model.addAttribute("maintainCar", maintainCar); model.addAttribute("maintainCar", maintainCar);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{

View File

@ -34,6 +34,7 @@ import net.sf.json.JSONObject;
import net.sf.json.JsonConfig; import net.sf.json.JsonConfig;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -90,6 +91,8 @@ public class MaintenanceController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private EquipmentCardService equipmentCardService; private EquipmentCardService equipmentCardService;
@Resource @Resource
private BusinessUnitHandleDetailService businessUnitHandleDetailService; private BusinessUnitHandleDetailService businessUnitHandleDetailService;
@ -1538,7 +1541,7 @@ public class MaintenanceController {
Maintainer maintainer = this.maintainerService.selectById(maintenance.getMaintainerid()); Maintainer maintainer = this.maintainerService.selectById(maintenance.getMaintainerid());
model.addAttribute("maintainer", maintainer);*/ model.addAttribute("maintainer", maintainer);*/
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(maintenanceDetail.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(maintenanceDetail.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {
@ -1634,7 +1637,7 @@ public class MaintenanceController {
Maintainer maintainer = this.maintainerService.selectById(maintenance.getMaintainerid()); Maintainer maintainer = this.maintainerService.selectById(maintenance.getMaintainerid());
model.addAttribute("maintainer", maintainer);*/ model.addAttribute("maintainer", maintainer);*/
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
// long num =runtimeService.createProcessInstanceQuery().processInstanceId(maintenanceDetail.getProcessid()).count(); // long num =workflowTaskService.getProcessInstanceCount(maintenanceDetail.getProcessid());
// if(num>0){ // if(num>0){
// model.addAttribute("finishFlag", false); // model.addAttribute("finishFlag", false);
// }else{ // }else{
@ -1825,7 +1828,7 @@ public class MaintenanceController {
Maintainer maintainer = this.maintainerService.selectById(maintenance.getMaintainerid()); Maintainer maintainer = this.maintainerService.selectById(maintenance.getMaintainerid());
model.addAttribute("maintainer", maintainer); model.addAttribute("maintainer", maintainer);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(maintenanceDetail.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(maintenanceDetail.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {
@ -2413,9 +2416,9 @@ public class MaintenanceController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
//List commentString =workflowService.findTaskComments(taskId, processInstanceId); //List commentString =workflowService.findTaskComments(taskId, processInstanceId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -2425,11 +2428,9 @@ public class MaintenanceController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setBusinessid(pInstance.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey());
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -2459,7 +2460,7 @@ public class MaintenanceController {
model.addAttribute("businessUnitHandleDetails", JSONArray.fromObject(businessUnitHandleDetails)); model.addAttribute("businessUnitHandleDetails", JSONArray.fromObject(businessUnitHandleDetails));
model.addAttribute("maintenanceDetail", maintenanceDetail); model.addAttribute("maintenanceDetail", maintenanceDetail);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -2477,11 +2478,9 @@ public class MaintenanceController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
.singleResult(); model.addAttribute("taskName", taskInfo.getTaskName());
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult();
model.addAttribute("taskName", task.getName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -2491,8 +2490,8 @@ public class MaintenanceController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -2510,10 +2509,10 @@ public class MaintenanceController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstance.getBusinessKey()); MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstanceInfo.getBusinessKey());
model.addAttribute("maintenanceDetail", maintenanceDetail); model.addAttribute("maintenanceDetail", maintenanceDetail);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -2558,7 +2557,7 @@ public class MaintenanceController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息
@ -2594,23 +2593,21 @@ public class MaintenanceController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
.singleResult(); model.addAttribute("taskName", taskInfo.getTaskName());
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult();
model.addAttribute("taskName", task.getName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
businessUnitAudit.setUnitid(unitId); businessUnitAudit.setUnitid(unitId);
businessUnitAudit.setBusinessid(pInstance.getBusinessKey()); businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstance.getBusinessKey()); MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstanceInfo.getBusinessKey());
model.addAttribute("maintenanceDetail", maintenanceDetail); model.addAttribute("maintenanceDetail", maintenanceDetail);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -2758,7 +2755,7 @@ public class MaintenanceController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息
@ -2788,26 +2785,24 @@ public class MaintenanceController {
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
businessUnitAudit.setUnitid(unitId); businessUnitAudit.setUnitid(unitId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String maintenanceDetailId = pInstance.getBusinessKey(); String maintenanceDetailId = pInstanceInfo.getBusinessKey();
MaintenanceDetail maintenanceDetail = this.maintenanceDetailService.selectById(maintenanceDetailId); MaintenanceDetail maintenanceDetail = this.maintenanceDetailService.selectById(maintenanceDetailId);
model.addAttribute("maintenanceDetail", maintenanceDetail); model.addAttribute("maintenanceDetail", maintenanceDetail);
List<BusinessUnitRecord> businessUnitRecords = new ArrayList<>(); List<BusinessUnitRecord> businessUnitRecords = new ArrayList<>();
BusinessUnitRecord businessUnitRecord = new BusinessUnitRecord(maintenanceDetail); BusinessUnitRecord businessUnitRecord = new BusinessUnitRecord(maintenanceDetail);
businessUnitRecords.add(businessUnitRecord); businessUnitRecords.add(businessUnitRecord);
List<WorkTask> workTasks = workflowProcessDefinitionService.getAllPDTask(pInstance.getProcessDefinitionId(), "desc"); List<WorkTask> workTasks = workflowProcessDefinitionService.getAllPDTask(pInstanceInfo.getProcessDefinitionId(), "desc");
List<String> keys = new ArrayList<>(); List<String> keys = new ArrayList<>();
for (WorkTask workTask : workTasks) { for (WorkTask workTask : workTasks) {
keys.add(workTask.getTaskKey()); keys.add(workTask.getTaskKey());
@ -2826,7 +2821,7 @@ public class MaintenanceController {
} }
break; break;
case BusinessUnit.UNIT_AUDIT: case BusinessUnit.UNIT_AUDIT:
List<BusinessUnitAudit> list_audit = businessUnitAuditService.selectListByWhere("where businessid='" + pInstance.getBusinessKey() + "' "); List<BusinessUnitAudit> list_audit = businessUnitAuditService.selectListByWhere("where businessid='" + pInstanceInfo.getBusinessKey() + "' ");
for (BusinessUnitAudit businessUnitAudit_item : list_audit) { for (BusinessUnitAudit businessUnitAudit_item : list_audit) {
businessUnitRecord = new BusinessUnitRecord(businessUnitAudit_item); businessUnitRecord = new BusinessUnitRecord(businessUnitAudit_item);
businessUnitRecords.add(businessUnitRecord); businessUnitRecords.add(businessUnitRecord);
@ -2861,7 +2856,7 @@ public class MaintenanceController {
model.addAttribute("localIp", localIp); model.addAttribute("localIp", localIp);
model.addAttribute("businessUnitRecords", businessUnitRecords); model.addAttribute("businessUnitRecords", businessUnitRecords);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -4553,7 +4548,7 @@ public class MaintenanceController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -4563,11 +4558,9 @@ public class MaintenanceController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setBusinessid(pInstance.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey());
} }
JSONArray json1 = JSONArray.fromObject(businessUnitHandle); JSONArray json1 = JSONArray.fromObject(businessUnitHandle);
@ -4726,26 +4719,24 @@ public class MaintenanceController {
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
businessUnitAudit.setUnitid(unitId); businessUnitAudit.setUnitid(unitId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String maintenanceDetailId = pInstance.getBusinessKey(); String maintenanceDetailId = pInstanceInfo.getBusinessKey();
MaintenanceDetail maintenanceDetail = this.maintenanceDetailService.selectById(maintenanceDetailId); MaintenanceDetail maintenanceDetail = this.maintenanceDetailService.selectById(maintenanceDetailId);
model.addAttribute("maintenanceDetail", maintenanceDetail); model.addAttribute("maintenanceDetail", maintenanceDetail);
List<BusinessUnitRecord> businessUnitRecords = new ArrayList<>(); List<BusinessUnitRecord> businessUnitRecords = new ArrayList<>();
BusinessUnitRecord businessUnitRecord = new BusinessUnitRecord(maintenanceDetail); BusinessUnitRecord businessUnitRecord = new BusinessUnitRecord(maintenanceDetail);
businessUnitRecords.add(businessUnitRecord); businessUnitRecords.add(businessUnitRecord);
List<WorkTask> workTasks = workflowProcessDefinitionService.getAllPDTask(pInstance.getProcessDefinitionId(), "desc"); List<WorkTask> workTasks = workflowProcessDefinitionService.getAllPDTask(pInstanceInfo.getProcessDefinitionId(), "desc");
List<String> keys = new ArrayList<>(); List<String> keys = new ArrayList<>();
for (WorkTask workTask : workTasks) { for (WorkTask workTask : workTasks) {
keys.add(workTask.getTaskKey()); keys.add(workTask.getTaskKey());
@ -4764,7 +4755,7 @@ public class MaintenanceController {
} }
break; break;
case BusinessUnit.UNIT_AUDIT: case BusinessUnit.UNIT_AUDIT:
List<BusinessUnitAudit> list_audit = businessUnitAuditService.selectListByWhere("where businessid='" + pInstance.getBusinessKey() + "' "); List<BusinessUnitAudit> list_audit = businessUnitAuditService.selectListByWhere("where businessid='" + pInstanceInfo.getBusinessKey() + "' ");
for (BusinessUnitAudit businessUnitAudit_item : list_audit) { for (BusinessUnitAudit businessUnitAudit_item : list_audit) {
businessUnitRecord = new BusinessUnitRecord(businessUnitAudit_item); businessUnitRecord = new BusinessUnitRecord(businessUnitAudit_item);
businessUnitRecords.add(businessUnitRecord); businessUnitRecords.add(businessUnitRecord);
@ -4799,7 +4790,7 @@ public class MaintenanceController {
model.addAttribute("localIp", localIp); model.addAttribute("localIp", localIp);
model.addAttribute("businessUnitRecords", businessUnitRecords); model.addAttribute("businessUnitRecords", businessUnitRecords);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -4817,11 +4808,9 @@ public class MaintenanceController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
.singleResult(); model.addAttribute("taskName", taskInfo.getTaskName());
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult();
model.addAttribute("taskName", task.getName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -4831,8 +4820,8 @@ public class MaintenanceController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -4850,10 +4839,10 @@ public class MaintenanceController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstance.getBusinessKey()); MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstanceInfo.getBusinessKey());
model.addAttribute("maintenanceDetail", maintenanceDetail); model.addAttribute("maintenanceDetail", maintenanceDetail);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -4875,13 +4864,11 @@ public class MaintenanceController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
.singleResult();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult();
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("taskName", task.getName()); jsonObject.put("taskName", taskInfo.getTaskName());
// model.addAttribute("taskName", task.getName()); // model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -4891,8 +4878,8 @@ public class MaintenanceController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -4910,11 +4897,11 @@ public class MaintenanceController {
} }
JSONObject jsonObject1 = JSONObject.fromObject(businessUnitHandle); JSONObject jsonObject1 = JSONObject.fromObject(businessUnitHandle);
// model.addAttribute("businessUnitHandle", businessUnitHandle); // model.addAttribute("businessUnitHandle", businessUnitHandle);
MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstance.getBusinessKey()); MaintenanceDetail maintenanceDetail = maintenanceDetailService.selectById(pInstanceInfo.getBusinessKey());
JSONObject jsonObject2 = JSONObject.fromObject(maintenanceDetail); JSONObject jsonObject2 = JSONObject.fromObject(maintenanceDetail);
model.addAttribute("maintenanceDetail", maintenanceDetail); model.addAttribute("maintenanceDetail", maintenanceDetail);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
jsonObject.put("showTargetUsersFlag", true); jsonObject.put("showTargetUsersFlag", true);
// model.addAttribute("showTargetUsersFlag", true); // model.addAttribute("showTargetUsersFlag", true);
@ -4941,26 +4928,24 @@ public class MaintenanceController {
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
businessUnitAudit.setUnitid(unitId); businessUnitAudit.setUnitid(unitId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String maintenanceDetailId = pInstance.getBusinessKey(); String maintenanceDetailId = pInstanceInfo.getBusinessKey();
MaintenanceDetail maintenanceDetail = this.maintenanceDetailService.selectById(maintenanceDetailId); MaintenanceDetail maintenanceDetail = this.maintenanceDetailService.selectById(maintenanceDetailId);
model.addAttribute("maintenanceDetail", maintenanceDetail); model.addAttribute("maintenanceDetail", maintenanceDetail);
List<BusinessUnitRecord> businessUnitRecords = new ArrayList<>(); List<BusinessUnitRecord> businessUnitRecords = new ArrayList<>();
BusinessUnitRecord businessUnitRecord = new BusinessUnitRecord(maintenanceDetail); BusinessUnitRecord businessUnitRecord = new BusinessUnitRecord(maintenanceDetail);
businessUnitRecords.add(businessUnitRecord); businessUnitRecords.add(businessUnitRecord);
List<WorkTask> workTasks = workflowProcessDefinitionService.getAllPDTask(pInstance.getProcessDefinitionId(), "desc"); List<WorkTask> workTasks = workflowProcessDefinitionService.getAllPDTask(pInstanceInfo.getProcessDefinitionId(), "desc");
List<String> keys = new ArrayList<>(); List<String> keys = new ArrayList<>();
for (WorkTask workTask : workTasks) { for (WorkTask workTask : workTasks) {
keys.add(workTask.getTaskKey()); keys.add(workTask.getTaskKey());
@ -4979,7 +4964,7 @@ public class MaintenanceController {
} }
break; break;
case BusinessUnit.UNIT_AUDIT: case BusinessUnit.UNIT_AUDIT:
List<BusinessUnitAudit> list_audit = businessUnitAuditService.selectListByWhere("where businessid='" + pInstance.getBusinessKey() + "' "); List<BusinessUnitAudit> list_audit = businessUnitAuditService.selectListByWhere("where businessid='" + pInstanceInfo.getBusinessKey() + "' ");
for (BusinessUnitAudit businessUnitAudit_item : list_audit) { for (BusinessUnitAudit businessUnitAudit_item : list_audit) {
businessUnitRecord = new BusinessUnitRecord(businessUnitAudit_item); businessUnitRecord = new BusinessUnitRecord(businessUnitAudit_item);
businessUnitRecords.add(businessUnitRecord); businessUnitRecords.add(businessUnitRecord);
@ -5014,7 +4999,7 @@ public class MaintenanceController {
model.addAttribute("localIp", localIp); model.addAttribute("localIp", localIp);
model.addAttribute("businessUnitRecords", businessUnitRecords); model.addAttribute("businessUnitRecords", businessUnitRecords);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {

View File

@ -16,6 +16,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -43,6 +44,8 @@ public class RepairCarController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private WorkflowProcessDefinitionService workflowProcessDefinitionService; private WorkflowProcessDefinitionService workflowProcessDefinitionService;
@ -204,24 +207,22 @@ public class RepairCarController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String id= pInstance.getBusinessKey(); String id= pInstanceInfo.getBusinessKey();
RepairCar repairCar = this.repairCarService.selectById(id); RepairCar repairCar = this.repairCarService.selectById(id);
model.addAttribute("repairCar", repairCar); model.addAttribute("repairCar", repairCar);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{

View File

@ -24,6 +24,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -52,6 +53,8 @@ public class RepairController {
private WorkflowService workflowService; private WorkflowService workflowService;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private WorkflowTaskService workflowTaskService;
@Resource @Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
@ -275,7 +278,7 @@ public class RepairController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息
@ -306,19 +309,17 @@ public class RepairController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task nowtask = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo nowtaskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", nowtask.getName()); model.addAttribute("taskName", nowtaskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(nowtaskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(nowtask.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String jobId= pInstance.getBusinessKey(); String jobId= pInstanceInfo.getBusinessKey();
Repair repair = this.repairService.selectById(jobId); Repair repair = this.repairService.selectById(jobId);
model.addAttribute("repair", repair); model.addAttribute("repair", repair);

View File

@ -28,6 +28,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -68,6 +69,8 @@ public class ProcessAdjustmentController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private ProcessAdjustmentContentService processAdjustmentContentService; private ProcessAdjustmentContentService processAdjustmentContentService;
@Resource @Resource
private LibraryProcessAdjustmentService libraryProcessAdjustmentService; private LibraryProcessAdjustmentService libraryProcessAdjustmentService;
@ -294,7 +297,7 @@ public class ProcessAdjustmentController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息
@ -445,7 +448,7 @@ public class ProcessAdjustmentController {
JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords", jsonArray); model.addAttribute("businessUnitRecords", jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {
@ -473,25 +476,23 @@ public class ProcessAdjustmentController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setBusinessid(pInstance.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey());
businessUnitHandle.setUnitid(request.getParameter("unitId"));//流程节点id 不是unitId businessUnitHandle.setUnitid(request.getParameter("unitId"));//流程节点id 不是unitId
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId); ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -509,25 +510,23 @@ public class ProcessAdjustmentController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
businessUnitAudit.setUnitid(request.getParameter("unitId"));//流程节点id 不是unitId businessUnitAudit.setUnitid(request.getParameter("unitId"));//流程节点id 不是unitId
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId); ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -548,12 +547,10 @@ public class ProcessAdjustmentController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -563,13 +560,13 @@ public class ProcessAdjustmentController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId); ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId);
//<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc "); //<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc ");
//model.addAttribute("businessUnitAudit", list.get(0)); //model.addAttribute("businessUnitAudit", list.get(0));
@ -590,24 +587,22 @@ public class ProcessAdjustmentController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId); ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -629,24 +624,22 @@ public class ProcessAdjustmentController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId); ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -668,25 +661,23 @@ public class ProcessAdjustmentController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setBusinessid(pInstance.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey());
businessUnitHandle.setUnitid(request.getParameter("unitId"));//流程节点id 不是unitId businessUnitHandle.setUnitid(request.getParameter("unitId"));//流程节点id 不是unitId
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId); ProcessAdjustment entity = this.processAdjustmentService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {

View File

@ -26,6 +26,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -62,6 +63,8 @@ public class RoutineWorkController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private DocFileRelationService docFileRelationService; private DocFileRelationService docFileRelationService;
@RequestMapping("/showList.do") @RequestMapping("/showList.do")
@ -285,7 +288,7 @@ public class RoutineWorkController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息
@ -403,7 +406,7 @@ public class RoutineWorkController {
JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords", jsonArray); model.addAttribute("businessUnitRecords", jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {
@ -430,12 +433,10 @@ public class RoutineWorkController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -445,13 +446,13 @@ public class RoutineWorkController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
RoutineWork entity = this.routineWorkService.selectById(entityId); RoutineWork entity = this.routineWorkService.selectById(entityId);
//<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc "); //<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc ");
//model.addAttribute("businessUnitAudit", list.get(0)); //model.addAttribute("businessUnitAudit", list.get(0));
@ -471,24 +472,22 @@ public class RoutineWorkController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
RoutineWork entity = this.routineWorkService.selectById(entityId); RoutineWork entity = this.routineWorkService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {

View File

@ -23,6 +23,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -58,6 +59,8 @@ public class WaterTestController {
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private WorkflowTaskService workflowTaskService;
@RequestMapping("/showList.do") @RequestMapping("/showList.do")
public String showlist(HttpServletRequest request, Model model) { public String showlist(HttpServletRequest request, Model model) {
@ -237,7 +240,7 @@ public class WaterTestController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息
@ -340,7 +343,7 @@ public class WaterTestController {
JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords", jsonArray); model.addAttribute("businessUnitRecords", jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {
@ -367,12 +370,10 @@ public class WaterTestController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -382,8 +383,8 @@ public class WaterTestController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
/*String userIds = businessUnitHandle.getTargetusers(); /*String userIds = businessUnitHandle.getTargetusers();
@ -401,7 +402,7 @@ public class WaterTestController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String inStockRecordId = pInstance.getBusinessKey(); String inStockRecordId = pInstanceInfo.getBusinessKey();
WaterTest entity = this.waterTestService.selectById(inStockRecordId); WaterTest entity = this.waterTestService.selectById(inStockRecordId);
//<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc "); //<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc ");
//model.addAttribute("businessUnitAudit", list.get(0)); //model.addAttribute("businessUnitAudit", list.get(0));
@ -418,24 +419,22 @@ public class WaterTestController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
WaterTest entity = this.waterTestService.selectById(entityId); WaterTest entity = this.waterTestService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {

View File

@ -39,6 +39,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -101,6 +102,8 @@ public class RptCreateController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private WorkflowProcessDefinitionService workflowProcessDefinitionService; private WorkflowProcessDefinitionService workflowProcessDefinitionService;
@Resource @Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@ -988,7 +991,7 @@ public class RptCreateController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息
@ -1031,12 +1034,10 @@ public class RptCreateController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -1046,14 +1047,14 @@ public class RptCreateController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
RptCreate entity = this.rptCreateService.selectById(entityId); RptCreate entity = this.rptCreateService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
return "report/rptCreateCreate"; return "report/rptCreateCreate";
@ -1068,24 +1069,22 @@ public class RptCreateController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
RptCreate entity = this.rptCreateService.selectById(entityId); RptCreate entity = this.rptCreateService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -1176,7 +1175,7 @@ public class RptCreateController {
JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords", jsonArray); model.addAttribute("businessUnitRecords", jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {

View File

@ -25,6 +25,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -71,6 +72,8 @@ public class ContractController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@Resource @Resource
private BusinessUnitInquiryService businessUnitInquiryService; private BusinessUnitInquiryService businessUnitInquiryService;
@ -796,7 +799,7 @@ public class ContractController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(contract.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(contract.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -820,8 +823,8 @@ public class ContractController {
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
Contract contract = this.contractService.selectById(contractId); Contract contract = this.contractService.selectById(contractId);
model.addAttribute("contract", contract); model.addAttribute("contract", contract);
@ -830,14 +833,12 @@ public class ContractController {
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
businessUnitAudit.setUnitid(unitId); businessUnitAudit.setUnitid(unitId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -881,23 +882,21 @@ public class ContractController {
//String contractId = request.getParameter("contractId"); //String contractId = request.getParameter("contractId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
businessUnitAudit.setUnitid(unitId); businessUnitAudit.setUnitid(unitId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
Contract contract = this.contractService.selectById(pInstance.getBusinessKey()); Contract contract = this.contractService.selectById(pInstanceInfo.getBusinessKey());
model.addAttribute("contract", contract); model.addAttribute("contract", contract);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户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"))) { if ("userTask".equals(activityImpl.getProperties().get("type"))) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -914,8 +913,8 @@ public class ContractController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitDeptApply businessUnitDeptApply = new BusinessUnitDeptApply(); BusinessUnitDeptApply businessUnitDeptApply = new BusinessUnitDeptApply();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitDeptApply> businessUnitDeptApplies = this.businessUnitDeptApplyService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitDeptApply> businessUnitDeptApplies = this.businessUnitDeptApplyService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitDeptApplies!= null && businessUnitDeptApplies.size()>0){ if(businessUnitDeptApplies!= null && businessUnitDeptApplies.size()>0){
businessUnitDeptApply = businessUnitDeptApplies.get(0); businessUnitDeptApply = businessUnitDeptApplies.get(0);
@ -925,11 +924,9 @@ public class ContractController {
businessUnitDeptApply.setId(CommUtil.getUUID()); businessUnitDeptApply.setId(CommUtil.getUUID());
businessUnitDeptApply.setProcessid(processInstanceId); businessUnitDeptApply.setProcessid(processInstanceId);
businessUnitDeptApply.setTaskid(taskId); businessUnitDeptApply.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitDeptApply.setSubscribeId(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitDeptApply.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitDeptApply.setSubscribeId(pInstance.getBusinessKey());
businessUnitDeptApply.setTaskdefinitionkey(task.getTaskDefinitionKey());
} }
String userIds = businessUnitDeptApply.getTargetusers(); String userIds = businessUnitDeptApply.getTargetusers();
if(userIds!= null && !userIds.isEmpty()){ if(userIds!= null && !userIds.isEmpty()){
@ -956,7 +953,7 @@ public class ContractController {
} }
model.addAttribute("rejectReson", rejectReson); model.addAttribute("rejectReson", rejectReson);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户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"))) { if ("userTask".equals(activityImpl.getProperties().get("type"))) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -985,7 +982,7 @@ public class ContractController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitDeptApply.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitDeptApply.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitDeptApply.getTaskid(), variables); workflowTaskService.completeTask(businessUnitDeptApply.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitDeptApply.getTargetusers()!=null && !businessUnitDeptApply.getTargetusers().isEmpty()){ if(businessUnitDeptApply.getTargetusers()!=null && !businessUnitDeptApply.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息
@ -1062,7 +1059,7 @@ public class ContractController {
Map<String, Object> variables = new HashMap<String, Object>(); Map<String, Object> variables = new HashMap<String, Object>();
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitInquiry.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitInquiry.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitInquiry.getTaskid(), variables); workflowTaskService.completeTask(businessUnitInquiry.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitInquiry.getTargetusers()!=null && !businessUnitInquiry.getTargetusers().isEmpty()){ if(businessUnitInquiry.getTargetusers()!=null && !businessUnitInquiry.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息
@ -1146,8 +1143,12 @@ public class ContractController {
String processInstanceId=request.getParameter("processInstanceId"); String processInstanceId=request.getParameter("processInstanceId");
User cu= (User)request.getSession().getAttribute("cu"); User cu= (User)request.getSession().getAttribute("cu");
int result=0; int result=0;
Task task =taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getActiveTaskByProcessInstanceId(processInstanceId);
result =this.contractService.doWithdraw(task); 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 //END
String resstr="{\"res\":\""+result+"\"}"; String resstr="{\"res\":\""+result+"\"}";
model.addAttribute("result", resstr); model.addAttribute("result", resstr);

View File

@ -24,6 +24,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -72,6 +73,8 @@ public class InStockRecordController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@RequestMapping("/showList.do") @RequestMapping("/showList.do")
@ -559,7 +562,7 @@ public class InStockRecordController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(inStockRecord.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(inStockRecord.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -582,19 +585,17 @@ public class InStockRecordController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String inStockRecordId= pInstance.getBusinessKey(); String inStockRecordId= pInstanceInfo.getBusinessKey();
InStockRecord inStockRecord = this.inStockRecordService.selectById(inStockRecordId); InStockRecord inStockRecord = this.inStockRecordService.selectById(inStockRecordId);
if (inStockRecord.getFareAdjustment() != null) { if (inStockRecord.getFareAdjustment() != null) {
@ -614,7 +615,7 @@ public class InStockRecordController {
model.addAttribute("inStockRecord", inStockRecord); model.addAttribute("inStockRecord", inStockRecord);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -645,12 +646,10 @@ public class InStockRecordController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -660,8 +659,8 @@ public class InStockRecordController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -679,7 +678,7 @@ public class InStockRecordController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String inStockRecordId = pInstance.getBusinessKey(); String inStockRecordId = pInstanceInfo.getBusinessKey();
InStockRecord inStockRecord = this.inStockRecordService.selectById(inStockRecordId); InStockRecord inStockRecord = this.inStockRecordService.selectById(inStockRecordId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc ");
model.addAttribute("businessUnitAudit", list.get(0)); model.addAttribute("businessUnitAudit", list.get(0));
@ -707,7 +706,7 @@ public class InStockRecordController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -26,6 +26,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -76,6 +77,8 @@ public class OutStockRecordController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@Resource @Resource
private EquipmentCardService equipmentCardService; private EquipmentCardService equipmentCardService;
@ -491,7 +494,7 @@ public class OutStockRecordController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(outStockRecord.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(outStockRecord.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -514,24 +517,22 @@ public class OutStockRecordController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String outStockRecordId= pInstance.getBusinessKey(); String outStockRecordId= pInstanceInfo.getBusinessKey();
OutStockRecord outStockRecord = this.outStockRecordService.selectById(outStockRecordId); OutStockRecord outStockRecord = this.outStockRecordService.selectById(outStockRecordId);
model.addAttribute("outStockRecord", outStockRecord); model.addAttribute("outStockRecord", outStockRecord);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -577,12 +578,10 @@ public class OutStockRecordController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -592,8 +591,8 @@ public class OutStockRecordController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -611,7 +610,7 @@ public class OutStockRecordController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String outStockRecordId = pInstance.getBusinessKey(); String outStockRecordId = pInstanceInfo.getBusinessKey();
OutStockRecord outStockRecord = this.outStockRecordService.selectById(outStockRecordId); OutStockRecord outStockRecord = this.outStockRecordService.selectById(outStockRecordId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+outStockRecordId+"' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+outStockRecordId+"' order by insdt desc ");
model.addAttribute("businessUnitAudit", list.get(0)); model.addAttribute("businessUnitAudit", list.get(0));
@ -640,7 +639,7 @@ public class OutStockRecordController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -26,6 +26,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -75,6 +76,8 @@ public class OutStockRecordSectionController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@Resource @Resource
private EquipmentCardService equipmentCardService; private EquipmentCardService equipmentCardService;
@ -480,7 +483,7 @@ public class OutStockRecordSectionController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(outStockRecord.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(outStockRecord.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -502,24 +505,22 @@ public class OutStockRecordSectionController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String outStockRecordId= pInstance.getBusinessKey(); String outStockRecordId= pInstanceInfo.getBusinessKey();
OutStockRecord outStockRecord = this.outStockRecordService.selectById(outStockRecordId); OutStockRecord outStockRecord = this.outStockRecordService.selectById(outStockRecordId);
model.addAttribute("outStockRecord", outStockRecord); model.addAttribute("outStockRecord", outStockRecord);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -550,12 +551,10 @@ public class OutStockRecordSectionController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -565,8 +564,8 @@ public class OutStockRecordSectionController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -584,7 +583,7 @@ public class OutStockRecordSectionController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String outStockRecordId = pInstance.getBusinessKey(); String outStockRecordId = pInstanceInfo.getBusinessKey();
OutStockRecord outStockRecord = this.outStockRecordService.selectById(outStockRecordId); OutStockRecord outStockRecord = this.outStockRecordService.selectById(outStockRecordId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+outStockRecordId+"' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+outStockRecordId+"' order by insdt desc ");
model.addAttribute("businessUnitAudit", list.get(0)); model.addAttribute("businessUnitAudit", list.get(0));
@ -613,7 +612,7 @@ public class OutStockRecordSectionController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -25,6 +25,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -64,6 +65,8 @@ public class RawMaterialController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@RequestMapping("/showList.do") @RequestMapping("/showList.do")
@ -413,7 +416,7 @@ public class RawMaterialController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(rawMaterial.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(rawMaterial.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -436,24 +439,22 @@ public class RawMaterialController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String rawMaterialId= pInstance.getBusinessKey(); String rawMaterialId= pInstanceInfo.getBusinessKey();
RawMaterial rawMaterial = this.rawMaterialService.selectById(rawMaterialId); RawMaterial rawMaterial = this.rawMaterialService.selectById(rawMaterialId);
model.addAttribute("rawMaterial", rawMaterial); model.addAttribute("rawMaterial", rawMaterial);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -490,12 +491,10 @@ public class RawMaterialController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -505,8 +504,8 @@ public class RawMaterialController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -524,7 +523,7 @@ public class RawMaterialController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String rawMaterialId = pInstance.getBusinessKey(); String rawMaterialId = pInstanceInfo.getBusinessKey();
RawMaterial rawMaterial = this.rawMaterialService.selectById(rawMaterialId); RawMaterial rawMaterial = this.rawMaterialService.selectById(rawMaterialId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+rawMaterialId+"' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+rawMaterialId+"' order by insdt desc ");
if(list!=null && list.size()>0){ if(list!=null && list.size()>0){
@ -561,7 +560,7 @@ public class RawMaterialController {
variables =ActivitiUtil.fixVariableWithRoute(variables, passstatus, routeNumStr); variables =ActivitiUtil.fixVariableWithRoute(variables, passstatus, routeNumStr);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -30,6 +30,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -77,6 +78,8 @@ public class StockCheckController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@ -469,7 +472,7 @@ public class StockCheckController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(stockCheck.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(stockCheck.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -491,24 +494,22 @@ public class StockCheckController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String stockCheckId= pInstance.getBusinessKey(); String stockCheckId= pInstanceInfo.getBusinessKey();
StockCheck stockCheck = this.stockCheckService.selectById(stockCheckId); StockCheck stockCheck = this.stockCheckService.selectById(stockCheckId);
model.addAttribute("stockCheck", stockCheck); model.addAttribute("stockCheck", stockCheck);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -557,12 +558,10 @@ public class StockCheckController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitHandles!= null && businessUnitHandles.size()>0){ if(businessUnitHandles!= null && businessUnitHandles.size()>0){
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -572,8 +571,8 @@ public class StockCheckController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
@ -591,7 +590,7 @@ public class StockCheckController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String stockCheckId = pInstance.getBusinessKey(); String stockCheckId = pInstanceInfo.getBusinessKey();
StockCheck stockCheck = this.stockCheckService.selectById(stockCheckId); StockCheck stockCheck = this.stockCheckService.selectById(stockCheckId);
List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+stockCheckId+"' order by insdt desc "); List<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+stockCheckId+"' order by insdt desc ");
model.addAttribute("businessUnitAudit", list.get(0)); model.addAttribute("businessUnitAudit", list.get(0));
@ -619,7 +618,7 @@ public class StockCheckController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -24,6 +24,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -71,6 +72,8 @@ public class SubscribeController {
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private WorkflowTaskService workflowTaskService;
@Resource @Resource
private UserService userService; private UserService userService;
@Resource @Resource
@ -846,7 +849,7 @@ public class SubscribeController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(subscribe.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(subscribe.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -871,8 +874,8 @@ public class SubscribeController {
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
Subscribe subscribe = this.subscribeService.selectById(subscribeId); Subscribe subscribe = this.subscribeService.selectById(subscribeId);
model.addAttribute("subscribe", subscribe); model.addAttribute("subscribe", subscribe);
@ -881,14 +884,12 @@ public class SubscribeController {
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
businessUnitAudit.setUnitid(unitId); businessUnitAudit.setUnitid(unitId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -922,23 +923,21 @@ public class SubscribeController {
//String subscribeId = request.getParameter("subscribeId"); //String subscribeId = request.getParameter("subscribeId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
businessUnitAudit.setUnitid(unitId); businessUnitAudit.setUnitid(unitId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
Subscribe subscribe = this.subscribeService.selectById(pInstance.getBusinessKey()); Subscribe subscribe = this.subscribeService.selectById(pInstanceInfo.getBusinessKey());
model.addAttribute("subscribe", subscribe); model.addAttribute("subscribe", subscribe);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户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"))) { if ("userTask".equals(activityImpl.getProperties().get("type"))) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -955,9 +954,9 @@ public class SubscribeController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitInquiry businessUnitInquiry = new BusinessUnitInquiry(); BusinessUnitInquiry businessUnitInquiry = new BusinessUnitInquiry();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
//List commentString =workflowService.findTaskComments(taskId, processInstanceId); //List commentString =workflowService.findTaskComments(taskId, processInstanceId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitInquiry> businessUnitInquiries = this.businessUnitInquiryService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitInquiry> businessUnitInquiries = this.businessUnitInquiryService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitInquiries!= null && businessUnitInquiries.size()>0){ if(businessUnitInquiries!= null && businessUnitInquiries.size()>0){
businessUnitInquiry = businessUnitInquiries.get(0); businessUnitInquiry = businessUnitInquiries.get(0);
@ -967,11 +966,9 @@ public class SubscribeController {
businessUnitInquiry.setId(CommUtil.getUUID()); businessUnitInquiry.setId(CommUtil.getUUID());
businessUnitInquiry.setProcessid(processInstanceId); businessUnitInquiry.setProcessid(processInstanceId);
businessUnitInquiry.setTaskid(taskId); businessUnitInquiry.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitInquiry.setSubscribeId(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitInquiry.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitInquiry.setSubscribeId(pInstance.getBusinessKey());
businessUnitInquiry.setTaskdefinitionkey(task.getTaskDefinitionKey());
} }
String userIds = businessUnitInquiry.getTargetusers(); String userIds = businessUnitInquiry.getTargetusers();
if(userIds!= null && !userIds.isEmpty()){ if(userIds!= null && !userIds.isEmpty()){
@ -997,7 +994,7 @@ public class SubscribeController {
} }
model.addAttribute("rejectReson", rejectReson); model.addAttribute("rejectReson", rejectReson);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户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"))) { if ("userTask".equals(activityImpl.getProperties().get("type"))) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -1014,9 +1011,9 @@ public class SubscribeController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitDeptApply businessUnitDeptApply = new BusinessUnitDeptApply(); BusinessUnitDeptApply businessUnitDeptApply = new BusinessUnitDeptApply();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
//List commentString =workflowService.findTaskComments(taskId, processInstanceId); //List commentString =workflowService.findTaskComments(taskId, processInstanceId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitDeptApply> businessUnitDeptApplies = this.businessUnitDeptApplyService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitDeptApply> businessUnitDeptApplies = this.businessUnitDeptApplyService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitDeptApplies!= null && businessUnitDeptApplies.size()>0){ if(businessUnitDeptApplies!= null && businessUnitDeptApplies.size()>0){
businessUnitDeptApply = businessUnitDeptApplies.get(0); businessUnitDeptApply = businessUnitDeptApplies.get(0);
@ -1026,11 +1023,9 @@ public class SubscribeController {
businessUnitDeptApply.setId(CommUtil.getUUID()); businessUnitDeptApply.setId(CommUtil.getUUID());
businessUnitDeptApply.setProcessid(processInstanceId); businessUnitDeptApply.setProcessid(processInstanceId);
businessUnitDeptApply.setTaskid(taskId); businessUnitDeptApply.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitDeptApply.setSubscribeId(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitDeptApply.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitDeptApply.setSubscribeId(pInstance.getBusinessKey());
businessUnitDeptApply.setTaskdefinitionkey(task.getTaskDefinitionKey());
} }
String userIds = businessUnitDeptApply.getTargetusers(); String userIds = businessUnitDeptApply.getTargetusers();
if(userIds!= null && !userIds.isEmpty()){ if(userIds!= null && !userIds.isEmpty()){
@ -1056,7 +1051,7 @@ public class SubscribeController {
} }
model.addAttribute("rejectReson", rejectReson); model.addAttribute("rejectReson", rejectReson);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户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"))) { if ("userTask".equals(activityImpl.getProperties().get("type"))) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -1085,7 +1080,7 @@ public class SubscribeController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitDeptApply.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitDeptApply.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitDeptApply.getTaskid(), variables); workflowTaskService.completeTask(businessUnitDeptApply.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitDeptApply.getTargetusers()!=null && !businessUnitDeptApply.getTargetusers().isEmpty()){ if(businessUnitDeptApply.getTargetusers()!=null && !businessUnitDeptApply.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息
@ -1140,7 +1135,7 @@ public class SubscribeController {
Map<String, Object> variables = new HashMap<String, Object>(); Map<String, Object> variables = new HashMap<String, Object>();
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitInquiry.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitInquiry.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitInquiry.getTaskid(), variables); workflowTaskService.completeTask(businessUnitInquiry.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitInquiry.getTargetusers()!=null && !businessUnitInquiry.getTargetusers().isEmpty()){ if(businessUnitInquiry.getTargetusers()!=null && !businessUnitInquiry.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -41,6 +41,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -116,6 +117,8 @@ public class PatrolRecordController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private WorkflowProcessDefinitionService workflowProcessDefinitionService; private WorkflowProcessDefinitionService workflowProcessDefinitionService;
@ -2309,7 +2312,7 @@ public class PatrolRecordController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息
@ -2363,12 +2366,10 @@ public class PatrolRecordController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -2378,14 +2379,14 @@ public class PatrolRecordController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
PatrolRecord patrolRecord = patrolRecordService.selectById(entityId); PatrolRecord patrolRecord = patrolRecordService.selectById(entityId);
model.addAttribute("entity", patrolRecord); model.addAttribute("entity", patrolRecord);
return "timeefficiency/patrolRecordTaskCreate"; return "timeefficiency/patrolRecordTaskCreate";
@ -2405,24 +2406,22 @@ public class PatrolRecordController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
PatrolRecord entity = this.patrolRecordService.selectById(entityId); PatrolRecord entity = this.patrolRecordService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -2515,7 +2514,7 @@ public class PatrolRecordController {
JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords", jsonArray); model.addAttribute("businessUnitRecords", jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {

View File

@ -30,7 +30,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import sun.misc.BASE64Encoder; import java.util.Base64;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -593,8 +593,7 @@ public class UserController {
in.read(data); in.read(data);
in.close(); in.close();
//将二进制字节用base64编码以字符串方式存到数据库中 //将二进制字节用base64编码以字符串方式存到数据库中
BASE64Encoder encoder = new BASE64Encoder(); String headPortrait = Base64.getEncoder().encodeToString(data);
String headPortrait = encoder.encode(data);
User cu = (User) request.getSession().getAttribute("cu"); User cu = (User) request.getSession().getAttribute("cu");
UserDetail userDetail = this.userDetailService.selectByUserId(cu.getId()); UserDetail userDetail = this.userDetailService.selectByUserId(cu.getId());
int res = 0; int res = 0;

View File

@ -26,6 +26,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -63,6 +64,8 @@ public class VisitApplyController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@RequestMapping("/showList.do") @RequestMapping("/showList.do")
@ -337,7 +340,7 @@ public class VisitApplyController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(visitApply.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(visitApply.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -357,8 +360,8 @@ public class VisitApplyController {
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
VisitApply visitApply = this.visitApplyService.selectById(visitApplyId); VisitApply visitApply = this.visitApplyService.selectById(visitApplyId);
model.addAttribute("visitApply", visitApply); model.addAttribute("visitApply", visitApply);
@ -367,14 +370,12 @@ public class VisitApplyController {
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
businessUnitAudit.setUnitid(unitId); businessUnitAudit.setUnitid(unitId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -412,8 +413,8 @@ public class VisitApplyController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitDeptApplies = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitDeptApplies = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitDeptApplies!= null && businessUnitDeptApplies.size()>0){ if(businessUnitDeptApplies!= null && businessUnitDeptApplies.size()>0){
businessUnitHandle = businessUnitDeptApplies.get(0); businessUnitHandle = businessUnitDeptApplies.get(0);
@ -423,11 +424,9 @@ public class VisitApplyController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setBusinessid(pInstance.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey());
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
if(userIds!= null && !userIds.isEmpty()){ if(userIds!= null && !userIds.isEmpty()){
@ -454,7 +453,7 @@ public class VisitApplyController {
} }
model.addAttribute("rejectReson", rejectReson); model.addAttribute("rejectReson", rejectReson);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户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"))) { if ("userTask".equals(activityImpl.getProperties().get("type"))) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -489,7 +488,7 @@ public class VisitApplyController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -24,6 +24,7 @@ import io.swagger.annotations.*;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -57,6 +58,8 @@ public class VisitRegisterController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private UserService userService; private UserService userService;
@RequestMapping("/showList.do") @RequestMapping("/showList.do")
@ -344,7 +347,7 @@ public class VisitRegisterController {
JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray =JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords",jsonArray); model.addAttribute("businessUnitRecords",jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num =runtimeService.createProcessInstanceQuery().processInstanceId(visitRegister.getProcessid()).count(); long num =workflowTaskService.getProcessInstanceCount(visitRegister.getProcessid());
if(num>0){ if(num>0){
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
}else{ }else{
@ -364,8 +367,8 @@ public class VisitRegisterController {
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
VisitRegister visitRegister = this.visitRegisterService.selectById(visitRegisterId); VisitRegister visitRegister = this.visitRegisterService.selectById(visitRegisterId);
model.addAttribute("visitRegister", visitRegister); model.addAttribute("visitRegister", visitRegister);
@ -374,14 +377,12 @@ public class VisitRegisterController {
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
businessUnitAudit.setUnitid(unitId); businessUnitAudit.setUnitid(unitId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -427,8 +428,8 @@ public class VisitRegisterController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitDeptApplies = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'"); List<BusinessUnitHandle> businessUnitDeptApplies = this.businessUnitHandleService.selectListByWhere("where processid='"+processInstanceId+"' and taskId='"+taskId+"'");
if(businessUnitDeptApplies!= null && businessUnitDeptApplies.size()>0){ if(businessUnitDeptApplies!= null && businessUnitDeptApplies.size()>0){
businessUnitHandle = businessUnitDeptApplies.get(0); businessUnitHandle = businessUnitDeptApplies.get(0);
@ -438,11 +439,9 @@ public class VisitRegisterController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setBusinessid(pInstance.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey());
} }
String userIds = businessUnitHandle.getTargetusers(); String userIds = businessUnitHandle.getTargetusers();
if(userIds!= null && !userIds.isEmpty()){ if(userIds!= null && !userIds.isEmpty()){
@ -469,7 +468,7 @@ public class VisitRegisterController {
} }
model.addAttribute("rejectReson", rejectReson); model.addAttribute("rejectReson", rejectReson);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户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"))) { if ("userTask".equals(activityImpl.getProperties().get("type"))) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{
@ -504,7 +503,7 @@ public class VisitRegisterController {
variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables =ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息

View File

@ -18,7 +18,7 @@ import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import sun.misc.BASE64Decoder; import java.util.Base64;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.script.ScriptEngine; import javax.script.ScriptEngine;
@ -719,7 +719,7 @@ public class WordAnalysisReportStructureController {
String id = strconts[0]; String id = strconts[0];
String img = strconts[2]; String img = strconts[2];
byte[] b2 = new BASE64Decoder().decodeBuffer(img); byte[] b2 = Base64.getDecoder().decode(img);
for (int i = 0; i < b2.length; ++i) { for (int i = 0; i < b2.length; ++i) {
if (b2[i] < 0) {// 调整异常数据 if (b2[i] < 0) {// 调整异常数据
b2[i] += 256; b2[i] += 256;

View File

@ -19,6 +19,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -48,6 +49,8 @@ public class OverhaulController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private EquipmentStopRecordService equipmentStopRecordService; private EquipmentStopRecordService equipmentStopRecordService;
@ -146,24 +149,22 @@ public class OverhaulController {
model.addAttribute("taskId", taskId); model.addAttribute("taskId", taskId);
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String equipmentStopApplyId = pInstance.getBusinessKey(); String equipmentStopApplyId = pInstanceInfo.getBusinessKey();
EquipmentStopRecord esr = this.equipmentStopRecordService.selectById(equipmentStopApplyId); EquipmentStopRecord esr = this.equipmentStopRecordService.selectById(equipmentStopApplyId);
model.addAttribute("esr", esr); model.addAttribute("esr", esr);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {

View File

@ -23,6 +23,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -58,6 +59,8 @@ public class OverhaulItemEquipmentController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private WorkflowService workflowService; private WorkflowService workflowService;
@Resource @Resource
private OverhaulService overhaulService; private OverhaulService overhaulService;
@ -239,7 +242,7 @@ public class OverhaulItemEquipmentController {
int result = 0; int result = 0;
if (processStatus == 0) { if (processStatus == 0) {
try { try {
runtimeService.deleteProcessInstance(equipmentPlan.getProcessid(), ""); workflowTaskService.deleteProcessInstance(equipmentPlan.getProcessid());
result = 1; result = 1;
// 需要更新流程状态: // 需要更新流程状态:
overhaul.setId(id); overhaul.setId(id);
@ -273,7 +276,7 @@ public class OverhaulItemEquipmentController {
//受让人 //受让人
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
//complete的作用估计是进入流程的下一步 //complete的作用估计是进入流程的下一步
taskService.complete(taskId, variables); workflowTaskService.completeTask(taskId, variables);
//通过的话,更新状态为实施中 //通过的话,更新状态为实施中
overhaul.setId(id); overhaul.setId(id);
overhaul.setProcessStatus("31"); overhaul.setProcessStatus("31");
@ -323,7 +326,7 @@ public class OverhaulItemEquipmentController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
if (taskId.equals("")) { if (taskId.equals("")) {
taskId = this.taskService.createTaskQuery().processInstanceBusinessKey(equipmentPlan.getId()).singleResult().getId(); taskId = workflowTaskService.getActiveTaskIdByBusinessKey(equipmentPlan.getId());
} }
int result = 0; int result = 0;
Map<String, Object> variables = new HashMap<String, Object>(); Map<String, Object> variables = new HashMap<String, Object>();
@ -335,7 +338,7 @@ public class OverhaulItemEquipmentController {
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
variables.put("userIds", request.getParameter("auditId")); variables.put("userIds", request.getParameter("auditId"));
String id = request.getParameter("id"); String id = request.getParameter("id");
taskService.complete(taskId, variables); workflowTaskService.completeTask(taskId, variables);
OverhaulStatistics overhaulStatistics1 = overhaulItemEquipmentService.selectByOverhaulId(overhaulStatistics.getId()); OverhaulStatistics overhaulStatistics1 = overhaulItemEquipmentService.selectByOverhaulId(overhaulStatistics.getId());
if (overhaulStatistics1 != null && !overhaulStatistics1.equals("")) { if (overhaulStatistics1 != null && !overhaulStatistics1.equals("")) {
overhaulStatistics.setCreateTime(CommUtil.nowDate()); overhaulStatistics.setCreateTime(CommUtil.nowDate());

View File

@ -27,6 +27,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -60,6 +61,8 @@ public class OverhaulItemProjectController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private BusinessUnitHandleService businessUnitHandleService; private BusinessUnitHandleService businessUnitHandleService;
@ -254,19 +257,17 @@ public class OverhaulItemProjectController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task nowtask = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo nowtaskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", nowtask.getName()); model.addAttribute("taskName", nowtaskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(nowtaskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(nowtask.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String jobId= pInstance.getBusinessKey(); String jobId= pInstanceInfo.getBusinessKey();
OverhaulItemProject overhaulItemProject = this.overhaulItemProjectService.selectById(jobId); OverhaulItemProject overhaulItemProject = this.overhaulItemProjectService.selectById(jobId);
model.addAttribute("overhaulItemProject",overhaulItemProject); model.addAttribute("overhaulItemProject",overhaulItemProject);
@ -298,7 +299,7 @@ public class OverhaulItemProjectController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){ if(businessUnitHandle.getTargetusers()!=null && !businessUnitHandle.getTargetusers().isEmpty()){
//补全所有字段信息 //补全所有字段信息
@ -334,24 +335,22 @@ public class OverhaulItemProjectController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit=new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String jobId= pInstance.getBusinessKey(); String jobId= pInstanceInfo.getBusinessKey();
OverhaulItemProject overhaulItemProject = this.overhaulItemProjectService.selectById(jobId); OverhaulItemProject overhaulItemProject = this.overhaulItemProjectService.selectById(jobId);
model.addAttribute("overhaulItemProject",overhaulItemProject); model.addAttribute("overhaulItemProject",overhaulItemProject);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls=workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size()>0) { if (activityImpls.size()>0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
}else{ }else{

View File

@ -32,6 +32,7 @@ import io.swagger.annotations.*;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ActivityImpl;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -73,6 +74,8 @@ public class WorkorderDetailController {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private EquipmentPlanMainYearService equipmentPlanMainYearService; private EquipmentPlanMainYearService equipmentPlanMainYearService;
@ -482,12 +485,10 @@ public class WorkorderDetailController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -497,13 +498,13 @@ public class WorkorderDetailController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String inStockRecordId = pInstance.getBusinessKey(); String inStockRecordId = pInstanceInfo.getBusinessKey();
WorkorderDetail entity = this.workorderDetailService.selectById(inStockRecordId); WorkorderDetail entity = this.workorderDetailService.selectById(inStockRecordId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
return "workorder/workorderDetailRepairIssue"; return "workorder/workorderDetailRepairIssue";
@ -523,24 +524,22 @@ public class WorkorderDetailController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
WorkorderDetail entity = this.workorderDetailService.selectById(entityId); WorkorderDetail entity = this.workorderDetailService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -565,12 +564,10 @@ public class WorkorderDetailController {
String taskId = request.getParameter("taskId"); String taskId = request.getParameter("taskId");
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
String unitId = request.getParameter("unitId"); String unitId = request.getParameter("unitId");
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId)
.singleResult();
BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle(); BusinessUnitHandle businessUnitHandle = new BusinessUnitHandle();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'"); List<BusinessUnitHandle> businessUnitHandles = this.businessUnitHandleService.selectListByWhere("where processid='" + processInstanceId + "' and taskId='" + taskId + "'");
if (businessUnitHandles != null && businessUnitHandles.size() > 0) { if (businessUnitHandles != null && businessUnitHandles.size() > 0) {
businessUnitHandle = businessUnitHandles.get(0); businessUnitHandle = businessUnitHandles.get(0);
@ -580,8 +577,8 @@ public class WorkorderDetailController {
businessUnitHandle.setId(CommUtil.getUUID()); businessUnitHandle.setId(CommUtil.getUUID());
businessUnitHandle.setProcessid(processInstanceId); businessUnitHandle.setProcessid(processInstanceId);
businessUnitHandle.setTaskid(taskId); businessUnitHandle.setTaskid(taskId);
businessUnitHandle.setBusinessid(pInstance.getBusinessKey()); businessUnitHandle.setBusinessid(pInstanceInfo.getBusinessKey());
businessUnitHandle.setTaskdefinitionkey(task.getTaskDefinitionKey()); businessUnitHandle.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitHandle.setUnitid(unitId); businessUnitHandle.setUnitid(unitId);
} }
/*String userIds = businessUnitHandle.getTargetusers(); /*String userIds = businessUnitHandle.getTargetusers();
@ -599,7 +596,7 @@ public class WorkorderDetailController {
model.addAttribute("businessUnitHandle", businessUnitHandle); model.addAttribute("businessUnitHandle", businessUnitHandle);
model.addAttribute("nowDate", CommUtil.nowDate()); model.addAttribute("nowDate", CommUtil.nowDate());
String inStockRecordId = pInstance.getBusinessKey(); String inStockRecordId = pInstanceInfo.getBusinessKey();
WorkorderDetail entity = this.workorderDetailService.selectById(inStockRecordId); WorkorderDetail entity = this.workorderDetailService.selectById(inStockRecordId);
//<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc "); //<BusinessUnitAudit> list = this.businessUnitAuditService.selectListByWhere("where businessId = '"+inStockRecordId+"' order by insdt desc ");
//model.addAttribute("businessUnitAudit", list.get(0)); //model.addAttribute("businessUnitAudit", list.get(0));
@ -629,7 +626,7 @@ public class WorkorderDetailController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息
@ -704,7 +701,7 @@ public class WorkorderDetailController {
variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum); variables = ActivitiUtil.fixVariableWithRoute(variables, true, routeNum);
variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, businessUnitHandle.getTargetusers());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
taskService.complete(businessUnitHandle.getTaskid(), variables); workflowTaskService.completeTask(businessUnitHandle.getTaskid(), variables);
//发送消息 //发送消息
if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) { if (businessUnitHandle.getTargetusers() != null && !businessUnitHandle.getTargetusers().isEmpty()) {
//补全所有字段信息 //补全所有字段信息
@ -740,24 +737,22 @@ public class WorkorderDetailController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
WorkorderDetail entity = this.workorderDetailService.selectById(entityId); WorkorderDetail entity = this.workorderDetailService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -777,24 +772,22 @@ public class WorkorderDetailController {
String processInstanceId = request.getParameter("processInstanceId"); String processInstanceId = request.getParameter("processInstanceId");
BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit(); BusinessUnitAudit businessUnitAudit = new BusinessUnitAudit();
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getTaskInfo(taskId);
model.addAttribute("taskName", task.getName()); model.addAttribute("taskName", taskInfo.getTaskName());
businessUnitAudit.setId(CommUtil.getUUID()); businessUnitAudit.setId(CommUtil.getUUID());
businessUnitAudit.setProcessid(processInstanceId); businessUnitAudit.setProcessid(processInstanceId);
businessUnitAudit.setTaskid(taskId); businessUnitAudit.setTaskid(taskId);
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(processInstanceId);
.processInstanceId(processInstanceId) businessUnitAudit.setBusinessid(pInstanceInfo.getBusinessKey());
.singleResult(); businessUnitAudit.setTaskdefinitionkey(taskInfo.getTaskDefinitionKey());
businessUnitAudit.setBusinessid(pInstance.getBusinessKey());
businessUnitAudit.setTaskdefinitionkey(task.getTaskDefinitionKey());
model.addAttribute("businessUnitAudit", businessUnitAudit); model.addAttribute("businessUnitAudit", businessUnitAudit);
String entityId = pInstance.getBusinessKey(); String entityId = pInstanceInfo.getBusinessKey();
WorkorderDetail entity = this.workorderDetailService.selectById(entityId); WorkorderDetail entity = this.workorderDetailService.selectById(entityId);
model.addAttribute("entity", entity); model.addAttribute("entity", entity);
//获取任务下一节点若为任务节点则显示目标用户div否则不显示 //获取任务下一节点若为任务节点则显示目标用户div否则不显示
List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(task.getProcessDefinitionId(), task.getTaskDefinitionKey()); List<ActivityImpl> activityImpls = workflowProcessDefinitionService.getNEXTActivities(taskInfo.getProcessDefinitionId(), taskInfo.getTaskDefinitionKey());
if (activityImpls.size() > 0) { if (activityImpls.size() > 0) {
model.addAttribute("showTargetUsersFlag", true); model.addAttribute("showTargetUsersFlag", true);
} else { } else {
@ -961,7 +954,7 @@ public class WorkorderDetailController {
JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords", jsonArray); model.addAttribute("businessUnitRecords", jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {
@ -1071,7 +1064,7 @@ public class WorkorderDetailController {
JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords); JSONArray jsonArray = JSONArray.fromObject(businessUnitRecords);
model.addAttribute("businessUnitRecords", jsonArray); model.addAttribute("businessUnitRecords", jsonArray);
//检测流程实例是否结束,结束则历史记录最后节点变化 //检测流程实例是否结束,结束则历史记录最后节点变化
long num = runtimeService.createProcessInstanceQuery().processInstanceId(entity.getProcessid()).count(); long num = workflowTaskService.getProcessInstanceCount(entity.getProcessid());
if (num > 0) { if (num > 0) {
model.addAttribute("finishFlag", false); model.addAttribute("finishFlag", false);
} else { } else {

View File

@ -20,6 +20,7 @@ import com.sipai.tools.CommService;
import com.sipai.tools.CommUtil; import com.sipai.tools.CommUtil;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -55,6 +56,8 @@ public class RoastService implements CommService<Roast> {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private BusinessUnitHandleDetailService businessUnitHandleDetailService; private BusinessUnitHandleDetailService businessUnitHandleDetailService;
@ -78,8 +81,8 @@ public class RoastService implements CommService<Roast> {
//清除对应的流程 //清除对应的流程
String pInstancId = roast.getProcessid(); String pInstancId = roast.getProcessid();
if (pInstancId != null) { if (pInstancId != null) {
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pInstancId).singleResult(); WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId);
if (pInstance != null) { if (pInstanceInfo != null) {
workflowService.delProcessInstance(pInstancId); workflowService.delProcessInstance(pInstancId);
} }
//处理详情也需要删除 //处理详情也需要删除

View File

@ -62,6 +62,15 @@ import org.springframework.transaction.annotation.Transactional;
import com.sipai.workflow.IWorkflowEngine; import com.sipai.workflow.IWorkflowEngine;
import com.sipai.workflow.simple.SimpleProcessInstanceWrapper; 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 javax.annotation.Resource;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -76,6 +85,12 @@ public class WorkflowService {
@Resource @Resource
private IWorkflowEngine workflowEngine; private IWorkflowEngine workflowEngine;
@Resource
private WfTaskDao wfTaskDao;
@Resource
private WfProcessInstanceDao wfProcessInstanceDao;
@Resource
private WfProcessDefinitionDao wfProcessDefinitionDao;
private RuntimeService runtimeService; private RuntimeService runtimeService;
@ -166,6 +181,13 @@ public class WorkflowService {
return workflowEngine; return workflowEngine;
} }
/**
* 判断当前是否使用自研引擎
*/
private boolean isSimpleEngine() {
return workflowEngine instanceof SimpleWorkflowEngine;
}
//启动流程委托给IWorkflowEngine //启动流程委托给IWorkflowEngine
public ProcessInstance startWorkflow(String businessKey, String userId, String processDefKey, Map<String, Object> variables) { public ProcessInstance startWorkflow(String businessKey, String userId, String processDefKey, Map<String, Object> variables) {
// 通过统一引擎接口启动流程 // 通过统一引擎接口启动流程
@ -324,63 +346,127 @@ public class WorkflowService {
JSONArray json = new JSONArray(); JSONArray json = new JSONArray();
// 开始时间 // 开始时间
long stime = System.currentTimeMillis(); long stime = System.currentTimeMillis();
// 根据当前人的ID查询
//TaskQuery taskQuery = taskService.createTaskQuery().taskCandidateOrAssigned(userId);
//根据当前人的ID和流程key查询
TaskQuery taskQuery = taskService.createTaskQuery().taskCandidateOrAssigned(userId).processDefinitionKey(modelKey);
List<Task> list = taskQuery.list(); List<Task> 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<WfTask> 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<Task> 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(); long etime = System.currentTimeMillis();
// 计算执行时间 // 计算执行时间
System.out.println("执行时长:" + (etime - stime) / 1000); 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<Task> tasks = list.stream().skip((pageNo - 1) * pageSize).limit(pageSize).
collect(Collectors.toList());
// 开始时间 // 开始时间
stime = System.currentTimeMillis(); stime = System.currentTimeMillis();
// 根据流程的业务ID查询实体并关联 // 根据流程的业务ID查询实体并关联
for (int i = 0; i < tasks.size(); i++) { for (int i = 0; i < tasks.size(); i++) {
Task task = tasks.get(i); Task task = tasks.get(i);
Map<String, Object> variables = taskService.getVariables(task.getId()); Map<String, Object> variables;
if (type != null && type.get("key") != null) { ProcessInstance processInstance;
String key = type.get("key").toString(); String businessKey;
String value = type.get("value").toString();
if (variables.containsKey(key) && !variables.get(key).toString().equals(value)) {
continue;
}
} if (isSimpleEngine()) {
String processInstanceId = task.getProcessInstanceId(); // 自研引擎从wf表获取流程实例和变量
if (type != null && type.get("processInstanceId") != null && !processInstanceId.equals(type.get("processInstanceId").toString())) { String processInstanceId = task.getProcessInstanceId();
continue; WfProcessInstance wfInst = wfProcessInstanceDao.selectByPrimaryKey(Long.parseLong(processInstanceId));
} if (wfInst == null) continue;
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); businessKey = wfInst.getBusinessKey();
// ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).active().singleResult(); if (businessKey == null) continue;
//流程实例挂起时上获取的active processInstance为null variables = new HashMap<>();
if (processInstance == null) { variables.put("businessKey", businessKey);
continue; if (((SimpleTaskWrapper)task).getDescription() != null) {
} // candidateUsers stored in SimpleTaskWrapper doesn't have a direct getter, get from wfTask
String businessKey = processInstance.getBusinessKey(); }
if (businessKey == null) { processInstance = new SimpleProcessInstanceWrapper(
//callactivity调用的流程启动时无businesskey通过variable中businessKey查找 processInstanceId, businessKey, wfInst.getProcessKey());
if (variables.get("businessKey") != null) { } else {
businessKey = variables.get("businessKey").toString(); // Activiti引擎原有逻辑
} else { 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; continue;
} }
} else { processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
variables.put("businessKey", businessKey); 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 todoTask = new TodoTask();
todoTask.setTask(task); todoTask.setTask(task);
todoTask.setProcessInstance(processInstance); 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.setProcessDefinition(processDefinition);
todoTask.setVariables(variables); todoTask.setVariables(variables);
@ -875,16 +961,22 @@ public class WorkflowService {
} }
//activiti属性 //activiti属性
ExecutionEntity pInstance = (ExecutionEntity) object.getProcessInstance(); ProcessInstance pInstanceObj = object.getProcessInstance();
if (pInstance != null) { if (pInstanceObj != null) {
// System.out.println(pInstance.getProcessVariables().toString());
// JSONObject jb=JSONObject.fromObject(pInstance.getProcessVariables());
JSONObject jbpInstance = new JSONObject(); JSONObject jbpInstance = new JSONObject();
jbpInstance.put("activityId", pInstance.getActivityId()); if (pInstanceObj instanceof ExecutionEntity) {
jbpInstance.put("businessKey", pInstance.getBusinessKey()); ExecutionEntity pInstance = (ExecutionEntity) pInstanceObj;
jbpInstance.put("id", pInstance.getId()); jbpInstance.put("activityId", pInstance.getActivityId());
//pInstance判断当前任务是否是激活或挂起1是激活2是挂起 jbpInstance.put("businessKey", pInstance.getBusinessKey());
jbpInstance.put("suspended", pInstance.getSuspensionState()); 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); item.put("processInstance", jbpInstance);
} }
@ -902,7 +994,7 @@ public class WorkflowService {
} }
if (task != null) { if (task != null) {
JSONObject jbpTask = new JSONObject(); 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("executionId", task.getExecutionId());
jbpTask.put("name", task.getName()); jbpTask.put("name", task.getName());
jbpTask.put("id", task.getId()); jbpTask.put("id", task.getId());
@ -912,14 +1004,36 @@ public class WorkflowService {
jbpTask.put("taskDefinitionKey", task.getTaskDefinitionKey()); jbpTask.put("taskDefinitionKey", task.getTaskDefinitionKey());
jbpTask.put("status", task.getDescription()); jbpTask.put("status", task.getDescription());
//上一个节点执行人 //上一个节点执行人
HistoricTaskInstance historicTaskInstance = queryUpOneNode(task.getId());
User user = null; User user = null;
if (historicTaskInstance != null) { if (!isSimpleEngine()) {
user = userService.getUserById(historicTaskInstance.getAssignee()); 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 { } else {
String startUserId = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult().getStartUserId();//获取发起 // 自研引擎查上一个已完成的task获取处理
if (startUserId != null && !startUserId.isEmpty()) { try {
user = userService.getUserById(startUserId); WfTask prevQuery = new WfTask();
prevQuery.setWhere("WHERE process_instance_id = " + task.getProcessInstanceId()
+ " AND status != 'PENDING' ORDER BY complete_time DESC");
List<WfTask> 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); jbpTask.put("prevAssignee", user);

View File

@ -12,6 +12,7 @@ import com.sipai.tools.CommService;
import com.sipai.tools.CommString; import com.sipai.tools.CommString;
import org.activiti.engine.HistoryService; import org.activiti.engine.HistoryService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricActivityInstance; import org.activiti.engine.history.HistoricActivityInstance;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -28,6 +29,8 @@ public class BusinessUnitAuditService implements CommService<BusinessUnitAudit>{
private BusinessUnitAuditDao businessUnitAuditDao; private BusinessUnitAuditDao businessUnitAuditDao;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private WorkflowTaskService workflowTaskService;
@Resource @Resource
private WorkflowProcessDefinitionService workflowProcessDefinitionService; private WorkflowProcessDefinitionService workflowProcessDefinitionService;
@Resource @Resource
@ -97,7 +100,7 @@ public class BusinessUnitAuditService implements CommService<BusinessUnitAudit>{
variables.put(CommString.ACTI_KEK_Candidate_Users, entity.getTargetusers()); variables.put(CommString.ACTI_KEK_Candidate_Users, entity.getTargetusers());
} }
if(entity.getAuditopinion()!=null && !entity.getAuditopinion().isEmpty()){ if(entity.getAuditopinion()!=null && !entity.getAuditopinion().isEmpty()){
taskService.addComment(entity.getTaskid(), entity.getProcessid(), entity.getAuditopinion()); workflowTaskService.addComment(entity.getTaskid(), entity.getProcessid(), entity.getAuditopinion());
} }
}else{ }else{
//不通过 //不通过
@ -128,11 +131,11 @@ public class BusinessUnitAuditService implements CommService<BusinessUnitAudit>{
// 设置退回目标处理人(若仍为空则由流程变量 userIds 确定候选人,不再回退到工单创建人) // 设置退回目标处理人(若仍为空则由流程变量 userIds 确定候选人,不再回退到工单创建人)
variables.put(CommString.ACTI_KEK_Assignee, targetAssignee); variables.put(CommString.ACTI_KEK_Assignee, targetAssignee);
if(entity.getAuditopinion()!=null && !entity.getAuditopinion().isEmpty()){ 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; //int res=0;
taskService.complete(entity.getTaskid(), variables); workflowTaskService.completeTask(entity.getTaskid(), variables);
int res; int res;
BusinessUnitAudit businessUnitAudit = businessUnitAuditDao.selectByPrimaryKey(entity.getId()); BusinessUnitAudit businessUnitAudit = businessUnitAuditDao.selectByPrimaryKey(entity.getId());
if (businessUnitAudit!=null&&!businessUnitAdapter.equals("")){ if (businessUnitAudit!=null&&!businessUnitAdapter.equals("")){

View File

@ -7,6 +7,7 @@ import org.activiti.engine.HistoryService;
import org.activiti.engine.RepositoryService; import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricActivityInstance; import org.activiti.engine.history.HistoricActivityInstance;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.RepositoryServiceImpl; import org.activiti.engine.impl.RepositoryServiceImpl;
@ -35,6 +36,8 @@ public class BusinessUnitService implements CommService<BusinessUnit>{
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private HistoryService historyService; private HistoryService historyService;
@Resource @Resource
private RepositoryService repositoryService; private RepositoryService repositoryService;
@ -86,18 +89,18 @@ public class BusinessUnitService implements CommService<BusinessUnit>{
int res =0; int res =0;
try { try {
runtimeService.deleteProcessInstance(taskout.getId(), "canceled-测试"); workflowTaskService.deleteProcessInstance(taskout.getId());
// 取得当前任务 // 取得当前任务
HistoricTaskInstance currTask = historyService HistoricTaskInstance currTask = historyService
.createHistoricTaskInstanceQuery().taskId(taskout.getId()) .createHistoricTaskInstanceQuery().taskId(taskout.getId())
.singleResult(); .singleResult();
//根据流程id查询代办任务中流程信息 //根据流程id查询代办任务中流程信息
Task task = taskService.createTaskQuery().processInstanceId(currTask.getProcessInstanceId()).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getActiveTaskByProcessInstanceId(currTask.getProcessInstanceId());
//取回流程接点 当前任务id 取回任务id //取回流程接点 当前任务id 取回任务id
callBackProcess(task.getId(),currTask.getId()); callBackProcess(taskInfo.getTaskId(),currTask.getId());
//删除历史流程走向记录 //删除历史流程走向记录
historyService.deleteHistoricTaskInstance(currTask.getId()); historyService.deleteHistoricTaskInstance(currTask.getId());
historyService.deleteHistoricTaskInstance(task.getId()); historyService.deleteHistoricTaskInstance(taskInfo.getTaskId());
res=1; res=1;
System.out.println("流程撤回成功"); System.out.println("流程撤回成功");
return res; return res;
@ -126,9 +129,9 @@ public class BusinessUnitService implements CommService<BusinessUnit>{
// 查找所有并行任务节点,同时驳回 // 查找所有并行任务节点,同时驳回
List<Task> taskList = findTaskListByKey(findProcessInstanceByTaskId( List<Task> taskList = findTaskListByKey(findProcessInstanceByTaskId(
taskId).getId(), findTaskById(taskId).getTaskDefinitionKey()); taskId).getId(), findTaskById(taskId).getTaskDefinitionKey());
for (Task task : taskList) { for (Task task : taskList) {
commitProcess(task.getId(), variables, activityId); commitProcess(task.getId(), variables, activityId);
} }
} }
@ -150,9 +153,9 @@ public class BusinessUnitService implements CommService<BusinessUnit>{
// 查找所有并行任务节点,同时取回 // 查找所有并行任务节点,同时取回
List<Task> taskList = findTaskListByKey(findProcessInstanceByTaskId( List<Task> taskList = findTaskListByKey(findProcessInstanceByTaskId(
taskId).getId(), findTaskById(taskId).getTaskDefinitionKey()); taskId).getId(), findTaskById(taskId).getTaskDefinitionKey());
for (Task task : taskList) { for (Task task : taskList) {
commitProcess(task.getId(), null, activityId); commitProcess(task.getId(), null, activityId);
} }
} }
@ -196,7 +199,7 @@ public class BusinessUnitService implements CommService<BusinessUnit>{
} }
// 跳转节点为空,默认提交操作 // 跳转节点为空,默认提交操作
if (StringUtils.isEmpty(activityId)) { if (StringUtils.isEmpty(activityId)) {
taskService.complete(taskId, variables); workflowTaskService.completeTask(taskId, variables);
} else {// 流程转向操作 } else {// 流程转向操作
turnTransition(taskId, activityId, variables); turnTransition(taskId, activityId, variables);
} }
@ -422,14 +425,16 @@ public class BusinessUnitService implements CommService<BusinessUnit>{
* @return * @return
* @throws Exception * @throws Exception
*/ */
private TaskEntity findTaskById(String taskId) throws Exception { private TaskEntity findTaskById(String taskId) throws Exception {
TaskEntity task = (TaskEntity) taskService.createTaskQuery().taskId( if (workflowTaskService.isSimpleEngine()) {
taskId).singleResult(); throw new Exception("自研引擎不支持此操作");
}
TaskEntity task = (TaskEntity) taskService.createTaskQuery().taskId(taskId).singleResult();
if (task == null) { if (task == null) {
throw new Exception("任务实例未找到!"); throw new Exception("任务实例未找到!");
} }
return task; return task;
} }
/** /**
@ -439,10 +444,13 @@ public class BusinessUnitService implements CommService<BusinessUnit>{
* @param key * @param key
* @return * @return
*/ */
private List<Task> findTaskListByKey(String processInstanceId, String key) { private List<Task> findTaskListByKey(String processInstanceId, String key) {
if (workflowTaskService.isSimpleEngine()) {
return new java.util.ArrayList<>();
}
return taskService.createTaskQuery().processInstanceId( return taskService.createTaskQuery().processInstanceId(
processInstanceId).taskDefinitionKey(key).list(); processInstanceId).taskDefinitionKey(key).list();
} }
/** /**
@ -580,7 +588,7 @@ public class BusinessUnitService implements CommService<BusinessUnit>{
* 被转办人Code * 被转办人Code
*/ */
public void transferAssignee(String taskId, String userCode) { public void transferAssignee(String taskId, String userCode) {
taskService.setAssignee(taskId, userCode); workflowTaskService.setAssignee(taskId, userCode);
} }
/** /**
@ -609,7 +617,7 @@ public class BusinessUnitService implements CommService<BusinessUnit>{
newTransition.setDestination(pointActivity); newTransition.setDestination(pointActivity);
// 执行转向任务 // 执行转向任务
taskService.complete(taskId, variables); workflowTaskService.completeTask(taskId, variables);
// 删除目标节点新流入 // 删除目标节点新流入
pointActivity.getIncomingTransitions().remove(newTransition); pointActivity.getIncomingTransitions().remove(newTransition);

View File

@ -12,6 +12,7 @@ import com.sipai.service.activiti.WorkflowService;
import com.sipai.service.business.BusinessUnitAuditService; import com.sipai.service.business.BusinessUnitAuditService;
import com.sipai.tools.CommService; import com.sipai.tools.CommService;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -35,6 +36,8 @@ public class EquipmentAcceptanceApplyService implements CommService<EquipmentAcc
private BusinessUnitAuditService businessUnitAuditService; private BusinessUnitAuditService businessUnitAuditService;
@Resource @Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource
private WorkflowTaskService workflowTaskService;
@Override @Override
public EquipmentAcceptanceApply selectById(String t) { public EquipmentAcceptanceApply selectById(String t) {
@ -47,10 +50,8 @@ public class EquipmentAcceptanceApplyService implements CommService<EquipmentAcc
EquipmentAcceptanceApply eaa=this.selectById(t); EquipmentAcceptanceApply eaa=this.selectById(t);
String pInstancId=eaa.getProcessid(); String pInstancId=eaa.getProcessid();
if(null!=pInstancId){ if(null!=pInstancId){
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId);
.processInstanceId(pInstancId) if(pInstanceInfo!=null){
.singleResult();
if(pInstance!=null){
workflowService.delProcessInstance(pInstancId); workflowService.delProcessInstance(pInstancId);
} }
} }

View File

@ -27,6 +27,7 @@ import com.sipai.tools.CommService;
import com.sipai.tools.CommUtil; import com.sipai.tools.CommUtil;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -62,6 +63,8 @@ public class EquipmentRepairPlanService implements CommService<EquipmentRepairPl
private BusinessUnitAuditService businessUnitAuditService; private BusinessUnitAuditService businessUnitAuditService;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private WorkflowTaskService workflowTaskService;
@Resource @Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@ -140,10 +143,8 @@ public class EquipmentRepairPlanService implements CommService<EquipmentRepairPl
if (list!=null && list.size()>0) { if (list!=null && list.size()>0) {
for (EquipmentRepairPlan item : list) { for (EquipmentRepairPlan item : list) {
String pInstancId = item.getProcessid(); String pInstancId = item.getProcessid();
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId);
.processInstanceId(pInstancId) if(pInstanceInfo != null){
.singleResult();
if(pInstance != null){
//删掉关联的流程 //删掉关联的流程
this.workflowService.delProcessInstance(pInstancId); this.workflowService.delProcessInstance(pInstancId);
} }

View File

@ -17,6 +17,7 @@ import com.sipai.tools.CommService;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -51,6 +52,8 @@ public class EquipmentScrapApplyService implements CommService<EquipmentScrapApp
private BusinessUnitHandleDetailService businessUnitHandleDetailService; private BusinessUnitHandleDetailService businessUnitHandleDetailService;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private WorkflowTaskService workflowTaskService;
@Resource @Resource
private EquipmentCardService equipmentCardService; private EquipmentCardService equipmentCardService;
@Resource @Resource
@ -71,8 +74,8 @@ public class EquipmentScrapApplyService implements CommService<EquipmentScrapApp
EquipmentScrapApply scrapApply = equipmentScrapApplyDao.selectByPrimaryKey(t); EquipmentScrapApply scrapApply = equipmentScrapApplyDao.selectByPrimaryKey(t);
String pInstancId = scrapApply.getProcessid(); String pInstancId = scrapApply.getProcessid();
if(pInstancId != null && !pInstancId.isEmpty() ){ if(pInstancId != null && !pInstancId.isEmpty() ){
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pInstancId).singleResult(); WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId);
if (pInstance != null) { if (pInstanceInfo != null) {
workflowService.delProcessInstance(pInstancId); workflowService.delProcessInstance(pInstancId);
} }
//处理详情也需要删除 //处理详情也需要删除

View File

@ -27,6 +27,7 @@ import com.sipai.tools.CommService;
import com.sipai.tools.CommUtil; import com.sipai.tools.CommUtil;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -62,6 +63,8 @@ public class MaintenancePlanService implements CommService<MaintenancePlan>{
private BusinessUnitAuditService businessUnitAuditService; private BusinessUnitAuditService businessUnitAuditService;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private WorkflowTaskService workflowTaskService;
@Resource @Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@ -140,10 +143,8 @@ public class MaintenancePlanService implements CommService<MaintenancePlan>{
if (list!=null && list.size()>0) { if (list!=null && list.size()>0) {
for (MaintenancePlan item : list) { for (MaintenancePlan item : list) {
String pInstancId = item.getProcessid(); String pInstancId = item.getProcessid();
ProcessInstance pInstance=runtimeService.createProcessInstanceQuery() WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId);
.processInstanceId(pInstancId) if(pInstanceInfo != null){
.singleResult();
if(pInstance != null){
//删掉关联的流程 //删掉关联的流程
this.workflowService.delProcessInstance(pInstancId); this.workflowService.delProcessInstance(pInstancId);
} }

View File

@ -36,6 +36,7 @@ import com.sipai.tools.DateUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -77,6 +78,8 @@ public class AbnormityService implements CommService<Abnormity> {
@Resource @Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private BusinessUnitHandleDetailService businessUnitHandleDetailService; private BusinessUnitHandleDetailService businessUnitHandleDetailService;
@Resource @Resource
private WorkorderDetailService workorderDetailService; private WorkorderDetailService workorderDetailService;
@ -258,8 +261,8 @@ public class AbnormityService implements CommService<Abnormity> {
for (Abnormity item : abnormities) { for (Abnormity item : abnormities) {
String pInstancId = item.getProcessid(); String pInstancId = item.getProcessid();
if (pInstancId != null) { if (pInstancId != null) {
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pInstancId).singleResult(); WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId);
if (pInstance != null) { if (pInstanceInfo != null) {
workflowService.delProcessInstance(pInstancId); workflowService.delProcessInstance(pInstancId);
} }
//处理详情也需要删除 //处理详情也需要删除

View File

@ -24,6 +24,7 @@ import com.sipai.tools.CommUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -79,6 +80,8 @@ public class MaintenanceDetailService implements CommService<MaintenanceDetail>
@Resource @Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private CompanyService companyService; private CompanyService companyService;
@Override @Override
@ -445,8 +448,8 @@ public class MaintenanceDetailService implements CommService<MaintenanceDetail>
for (MaintenanceDetail item : maintenanceDetails) { for (MaintenanceDetail item : maintenanceDetails) {
String pInstancId = item.getProcessid(); String pInstancId = item.getProcessid();
if (pInstancId != null) { if (pInstancId != null) {
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pInstancId).singleResult(); WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId);
if (pInstance != null) { if (pInstanceInfo != null) {
workflowService.delProcessInstance(pInstancId); workflowService.delProcessInstance(pInstancId);
} }
//处理详情也需要删除 //处理详情也需要删除

View File

@ -17,6 +17,7 @@ import com.sipai.tools.CommService;
import com.sipai.tools.CommUtil; import com.sipai.tools.CommUtil;
import org.activiti.engine.IdentityService; import org.activiti.engine.IdentityService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -43,6 +44,8 @@ public class MaintenanceService implements CommService<Maintenance>{
private WorkflowService workflowService; private WorkflowService workflowService;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private WorkflowTaskService workflowTaskService;
@Resource @Resource
private IdentityService identityService; private IdentityService identityService;
@Resource @Resource
@ -213,14 +216,14 @@ public class MaintenanceService implements CommService<Maintenance>{
//流程引擎联动此时maintenance为数据库中最新的 //流程引擎联动此时maintenance为数据库中最新的
if(result==1 && status_flag && !start_flag){ if(result==1 && status_flag && !start_flag){
String processInstancesId=maintenance.getProcessid(); String processInstancesId=maintenance.getProcessid();
Task task=taskService.createTaskQuery().processInstanceId(processInstancesId).singleResult(); WorkflowTaskService.TaskInfo taskInfo = workflowTaskService.getActiveTaskByProcessInstanceId(processInstancesId);
//if(task!=null){ //if(task!=null){
String taskId = task.getId(); String taskId = taskInfo.getTaskId();
/*if(comment!=null && !comment.isEmpty()){ /*if(comment!=null && !comment.isEmpty()){
taskService.addComment(taskId, processInstancesId, comment); workflowTaskService.addComment(taskId, processInstancesId, comment);
}*/ }*/
Map<String, Object> variables = this.getTaskVariables(maintenance); Map<String, Object> variables = this.getTaskVariables(maintenance);
taskService.complete(taskId, variables); workflowTaskService.completeTask(taskId, variables);
//} //}
//保存维护记录 //保存维护记录
maintenanceRecordService.saveRecord(maintenance); maintenanceRecordService.saveRecord(maintenance);

View File

@ -31,6 +31,7 @@ import com.sipai.tools.SpringContextUtil;
import com.sipai.tools.Work; import com.sipai.tools.Work;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -66,6 +67,8 @@ public class EquipmentPlanServiceImpl implements EquipmentPlanService {
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private EquipmentPlanTypeService equipmentPlanTypeService; private EquipmentPlanTypeService equipmentPlanTypeService;
@ -101,8 +104,8 @@ public class EquipmentPlanServiceImpl implements EquipmentPlanService {
if (equipmentPlan != null) { if (equipmentPlan != null) {
String pInstancId = equipmentPlan.getProcessid(); String pInstancId = equipmentPlan.getProcessid();
if (pInstancId != null) { if (pInstancId != null) {
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pInstancId).singleResult(); WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId);
if (pInstance != null) { if (pInstanceInfo != null) {
workflowService.delProcessInstance(pInstancId); workflowService.delProcessInstance(pInstancId);
} }
//处理详情也需要删除 //处理详情也需要删除
@ -214,8 +217,8 @@ public class EquipmentPlanServiceImpl implements EquipmentPlanService {
for (EquipmentPlan item : entityList) { for (EquipmentPlan item : entityList) {
String pInstancId = item.getProcessid(); String pInstancId = item.getProcessid();
if (pInstancId != null) { if (pInstancId != null) {
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pInstancId).singleResult(); WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId);
if (pInstance != null) { if (pInstanceInfo != null) {
workflowService.delProcessInstance(pInstancId); workflowService.delProcessInstance(pInstancId);
} }
//处理详情也需要删除 //处理详情也需要删除

View File

@ -18,6 +18,7 @@ import com.sipai.tools.CommService;
import com.sipai.tools.CommUtil; import com.sipai.tools.CommUtil;
import com.sipai.tools.ThreadPoolUpdateMoney; import com.sipai.tools.ThreadPoolUpdateMoney;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -57,6 +58,8 @@ public class InStockRecordService implements CommService<InStockRecord>{
private BusinessUnitAuditService businessUnitAuditService; private BusinessUnitAuditService businessUnitAuditService;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private WorkflowTaskService workflowTaskService;
@Resource @Resource
private UnitService unitService; private UnitService unitService;
@Resource @Resource
@ -578,8 +581,8 @@ public class InStockRecordService implements CommService<InStockRecord>{
Map<String, Object> variables = new HashMap<String, Object>(); Map<String, Object> variables = new HashMap<String, Object>();
variables.put(CommString.ACTI_KEK_Candidate_Users, inStockRecord.getAuditManId()); variables.put(CommString.ACTI_KEK_Candidate_Users, inStockRecord.getAuditManId());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
List<Task> tasks =taskService.createTaskQuery().processInstanceId(inStockRecord.getProcessid()).orderByTaskCreateTime().desc().list(); WorkflowTaskService.TaskInfo tasksInfo = workflowTaskService.getActiveTaskByProcessInstanceId(inStockRecord.getProcessid());
taskService.complete(tasks.get(0).getId(), variables); workflowTaskService.completeTask(tasksInfo.getTaskId(), variables);
int res=this.update(inStockRecord); int res=this.update(inStockRecord);
inStockRecord = this.selectById(inStockRecord.getId()); inStockRecord = this.selectById(inStockRecord.getId());
//发送消息 //发送消息

View File

@ -18,6 +18,7 @@ import com.sipai.service.user.UserService;
import com.sipai.tools.CommService; import com.sipai.tools.CommService;
import com.sipai.tools.CommUtil; import com.sipai.tools.CommUtil;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
@ -59,6 +60,8 @@ public class OutStockRecordService implements CommService<OutStockRecord>{
private BusinessUnitAuditService businessUnitAuditService; private BusinessUnitAuditService businessUnitAuditService;
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private WorkflowTaskService workflowTaskService;
@Resource @Resource
private UserService userService; private UserService userService;
@Resource @Resource
@ -660,8 +663,8 @@ public class OutStockRecordService implements CommService<OutStockRecord>{
Map<String, Object> variables = new HashMap<String, Object>(); Map<String, Object> variables = new HashMap<String, Object>();
variables.put(CommString.ACTI_KEK_Candidate_Users, outStockRecord.getAuditManId()); variables.put(CommString.ACTI_KEK_Candidate_Users, outStockRecord.getAuditManId());
variables.put(CommString.ACTI_KEK_Assignee, null); variables.put(CommString.ACTI_KEK_Assignee, null);
List<Task> tasks = taskService.createTaskQuery().processInstanceId(outStockRecord.getProcessid()).orderByTaskCreateTime().desc().list(); WorkflowTaskService.TaskInfo tasksInfo = workflowTaskService.getActiveTaskByProcessInstanceId(outStockRecord.getProcessid());
taskService.complete(tasks.get(0).getId(), variables); workflowTaskService.completeTask(tasksInfo.getTaskId(), variables);
int res=this.update(outStockRecord); int res=this.update(outStockRecord);
outStockRecord = this.selectById(outStockRecord.getId()); outStockRecord = this.selectById(outStockRecord.getId());
//发送消息 //发送消息

View File

@ -17,7 +17,7 @@ import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import sun.misc.BASE64Decoder; import java.util.Base64;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -584,7 +584,7 @@ public class CameraService implements CommService<Camera> {
// System.out.println(imgData); // System.out.println(imgData);
byte[] b = new BASE64Decoder().decodeBuffer(imgData); byte[] b = Base64.getDecoder().decode(imgData);
for (int i = 0; i < b.length; ++i) { for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据 if (b[i] < 0) {// 调整异常数据
b[i] += 256; b[i] += 256;

View File

@ -41,6 +41,7 @@ import com.sipai.tools.Mqtt;
import com.sipai.tools.MqttUtil; import com.sipai.tools.MqttUtil;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import com.sipai.workflow.WorkflowTaskService;
import org.activiti.engine.history.HistoricTaskInstance; import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -78,6 +79,8 @@ public class WorkorderDetailServiceImpl implements WorkorderDetailService {
@Resource @Resource
private RuntimeService runtimeService; private RuntimeService runtimeService;
@Resource @Resource
private WorkflowTaskService workflowTaskService;
@Resource
private BusinessUnitHandleDetailService businessUnitHandleDetailService; private BusinessUnitHandleDetailService businessUnitHandleDetailService;
@Resource @Resource
private BusinessUnitHandleService businessUnitHandleService; private BusinessUnitHandleService businessUnitHandleService;
@ -283,8 +286,8 @@ public class WorkorderDetailServiceImpl implements WorkorderDetailService {
for (WorkorderDetail item : maintenanceDetails) { for (WorkorderDetail item : maintenanceDetails) {
String pInstancId = item.getProcessid(); String pInstancId = item.getProcessid();
if (pInstancId != null) { if (pInstancId != null) {
ProcessInstance pInstance = runtimeService.createProcessInstanceQuery().processInstanceId(pInstancId).singleResult(); WorkflowTaskService.ProcessInfo pInstanceInfo = workflowTaskService.getProcessInfo(pInstancId);
if (pInstance != null) { if (pInstanceInfo != null) {
workflowService.delProcessInstance(pInstancId); workflowService.delProcessInstance(pInstancId);
} }
//处理详情也需要删除 //处理详情也需要删除

View File

@ -8,7 +8,7 @@ import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams; import org.apache.commons.fileupload.util.Streams;
import sun.misc.BASE64Decoder; import java.util.Base64;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.*; import java.io.*;
@ -129,11 +129,11 @@ public class UEditorUtil {
String base64Data = this.request.getParameter(fieldName); String base64Data = this.request.getParameter(fieldName);
this.fileName = this.getName("test.png"); this.fileName = this.getName("test.png");
this.url = savePath + "/" + this.fileName; this.url = savePath + "/" + this.fileName;
BASE64Decoder decoder = new BASE64Decoder();
try { try {
File outFile = new File(this.getPhysicalPath(this.url)); File outFile = new File(this.getPhysicalPath(this.url));
OutputStream ro = new FileOutputStream(outFile); OutputStream ro = new FileOutputStream(outFile);
byte[] b = decoder.decodeBuffer(base64Data); byte[] b = Base64.getDecoder().decode(base64Data);
for (int i = 0; i < b.length; ++i) { for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) { if (b[i] < 0) {
b[i] += 256; b[i] += 256;

View File

@ -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 获取任务定义KeyActiviti为taskDefinitionKeySimple为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<String, Object> 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<String, Object> 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<String> 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<WfTask> 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<WfProcessInstance> 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<WfTask> 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; }
}
}

View File

@ -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; }
}

View File

@ -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<String, Object> getTaskLocalVariables() { return null; }
@Override
public Map<String, Object> getProcessVariables() { return null; }
@Override
public String getCategory() { return null; }
@Override
public void setCategory(String category) {}
@Override
public void delegate(String userId) {
}
}

View File

@ -1,2 +1,2 @@
#工作流引擎切换配置 activiti使用Activiti引擎 simple使用自研引擎 #工作流引擎切换配置 activiti使用Activiti引擎 simple使用自研引擎
workflow.engine=activiti workflow.engine=simple