AlertNoAssignee.java 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package cn.com.lzt.workflow.task;
  2. import cn.com.lzt.message.send.service.MMessageSendServiceI;
  3. import cn.com.lzt.useractiviti.workflow.task.AbstractActivitiTimeTask;
  4. import cn.com.lzt.userattendancetotal.service.UserAttendanceTotalServiceI;
  5. import org.activiti.engine.*;
  6. import org.activiti.engine.history.HistoricTaskInstance;
  7. import org.activiti.engine.runtime.ProcessInstance;
  8. import org.activiti.engine.task.Task;
  9. import org.activiti.engine.task.TaskQuery;
  10. import org.apache.commons.lang.xwork.StringUtils;
  11. import org.jeecgframework.core.util.ApplicationContextUtil;
  12. import org.jeecgframework.core.util.ResourceUtil;
  13. import org.jeecgframework.web.system.pojo.base.TSUser;
  14. import org.jeecgframework.web.system.service.UserService;
  15. import org.quartz.Job;
  16. import org.quartz.JobExecutionContext;
  17. import org.quartz.JobExecutionException;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20. import java.util.ArrayList;
  21. import java.util.Calendar;
  22. import java.util.Date;
  23. import java.util.List;
  24. @Service("alertNoAssignee")
  25. public class AlertNoAssignee extends AbstractActivitiTimeTask{
  26. protected MMessageSendServiceI mMessageSendService;
  27. protected UserService userService;
  28. @Override
  29. protected void doJob(JobExecutionContext jobExecutionContext) {
  30. Calendar c = Calendar.getInstance();
  31. c.add(Calendar.MINUTE,-30);
  32. Date startTime = c.getTime();
  33. userService = ApplicationContextUtil.getContext().getBean(UserService.class);
  34. mMessageSendService = ApplicationContextUtil.getContext().getBean(MMessageSendServiceI.class);
  35. ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
  36. TaskService taskService = processEngine.getTaskService();
  37. List<Task> list = taskService.createTaskQuery().taskCreatedAfter(startTime).taskUnassigned().list();
  38. if(list!=null && !list.isEmpty()) {
  39. String userName = ResourceUtil.getConfigByName("no_assignee_alert_user");
  40. TSUser user= userService.getUserByUserName(userName);
  41. List<String> instanceIdList = new ArrayList<>(list.size());
  42. for (Task task : list) {
  43. String instanceId = task.getProcessInstanceId();
  44. instanceIdList.add(instanceId);
  45. }
  46. String ids = StringUtils.join(instanceIdList, ",");
  47. String title = "审批流数据异常,请及时查看";
  48. String remark = "有审批任务无处理人,请注意。流程实例ID:"+ids;
  49. mMessageSendService.msg(user,title,remark);
  50. }
  51. }
  52. }