ActivitiTaskServiceImpl.java 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.xcgl.activititask.service.impl;
  2. import cn.com.lzt.message.send.util.MessageSendUtil;
  3. import com.xcgl.activititask.entity.PActivitiTaskEntity;
  4. import com.xcgl.activititask.service.ActivitiTaskService;
  5. import com.xcgl.activititask.util.ActivitiTaskHandler;
  6. import com.xcgl.activititask.util.ActivitiTaskHandlerUtil;
  7. import com.xcgl.projecttask.entity.ProjecttaskEntity;
  8. import com.xcgl.utils.XcglConstant;
  9. import org.apache.commons.lang.xwork.StringUtils;
  10. import org.jeecgframework.core.constant.Globals;
  11. import org.jeecgframework.core.util.DateUtils;
  12. import org.jeecgframework.web.system.pojo.base.TSUser;
  13. import org.jeecgframework.web.system.service.SystemService;
  14. import org.jeecgframework.workflow.pojo.base.TPProcess;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import java.text.SimpleDateFormat;
  18. import java.util.*;
  19. @Service
  20. public class ActivitiTaskServiceImpl implements ActivitiTaskService {
  21. @Autowired
  22. private SystemService systemService;
  23. @Override
  24. public void start(String processKey, String table, String formId) {
  25. TPProcess process = systemService.findUniqueByProperty(TPProcess.class, "processkey", processKey);
  26. if(process!=null){
  27. String processId = process.getId();
  28. List<PActivitiTaskEntity> activitiTaskList =systemService.findByProperty(PActivitiTaskEntity.class, "processId",processId );
  29. for(PActivitiTaskEntity activitiTaskEntity : activitiTaskList){
  30. String clazzStringValue = activitiTaskEntity.getExecuteClass();
  31. List<ProjecttaskEntity> taskList = null;
  32. ActivitiTaskHandler handler = ActivitiTaskHandlerUtil.getHandler(clazzStringValue);
  33. if(handler.canDo(activitiTaskEntity,table,formId)){
  34. taskList = handler.createTask(activitiTaskEntity,table,formId);
  35. if(taskList==null || taskList.isEmpty()) return;
  36. systemService.batchSave(taskList);
  37. for(ProjecttaskEntity task : taskList) {
  38. try {
  39. //发消息
  40. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  41. String owner = task.getOwner();
  42. TSUser ownerUser = systemService.getEntity(TSUser.class, owner);
  43. String targetUserId = task.getTargetUser();
  44. ProjecttaskEntity.ExecuteWay executeWay = task.getExecuteWay();
  45. Map<String, Object> userMsgParms = new HashMap<String, Object>();
  46. userMsgParms.put("first", "你好" + ownerUser.getRealName() + ",你有一个新工作");
  47. userMsgParms.put("keyword1", task.getName());//工作内容
  48. userMsgParms.put("keyword2", format.format(new Date()));//创建时间
  49. String openId = ownerUser.getOpenid();
  50. String url = null;
  51. String remark = "任务时间:截止到 " + format.format(task.getPlanendtime()) + "\r\n ";
  52. if (executeWay == ProjecttaskEntity.ExecuteWay.both) {
  53. url = "http://www.shenqin.work/h5/task.html?id=" + task.getId();
  54. remark += "点击【详情】查看工作内容";
  55. } else {
  56. remark += "请登录慧管理系统完成工作";
  57. }
  58. userMsgParms.put("remark", remark);
  59. MessageSendUtil.sendMsgToWX(XcglConstant.TEMPLATE_WXMSG_TASK, owner, openId, url, userMsgParms, true);
  60. } catch (Exception e) {
  61. e.printStackTrace();
  62. }
  63. }
  64. }
  65. }
  66. }
  67. }
  68. }