CarWarningTimeoutTask.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package cn.com.lzt.car.timertask;
  2. import cn.com.lzt.message.send.entity.MMessageEntity;
  3. import cn.com.lzt.message.send.entity.MessageWxTemplateConfig;
  4. import cn.com.lzt.message.send.service.MMessageSendServiceI;
  5. import cn.com.lzt.tools.ServerType;
  6. import cn.com.lzt.useractiviti.workflow.task.AbstractActivitiTimeTask;
  7. import com.xcgl.projecttask.entity.ProjecttaskEntity;
  8. import com.xcgl.projecttask.service.ProjecttaskServiceI;
  9. import com.xcgl.utils.XcglConstant;
  10. import com.xcgl.weeklyMeeting.dao.WeeklyMeetingMiniDao;
  11. import com.xcgl.weeklyMeeting.entity.WeeklyMeetingEntity;
  12. import org.jeecgframework.core.constant.Globals;
  13. import org.jeecgframework.core.util.ResourceUtil;
  14. import org.jeecgframework.web.system.pojo.base.TSUser;
  15. import org.quartz.JobExecutionContext;
  16. import org.springframework.stereotype.Service;
  17. import java.text.SimpleDateFormat;
  18. import java.util.*;
  19. @Service
  20. public class CarWarningTimeoutTask extends AbstractActivitiTimeTask {
  21. @Override
  22. protected void doJob(JobExecutionContext jobExecutionContext) {
  23. WeeklyMeetingMiniDao weeklyMeetingMiniDao = getBean(WeeklyMeetingMiniDao.class);
  24. //查询任务执行中和超时的所有数据
  25. List<WeeklyMeetingEntity> weeklyMeetingEntitylist = weeklyMeetingMiniDao.selectExecuteAndOvertime();
  26. List<ProjecttaskEntity> lists = weeklyMeetingMiniDao.selectByIdList(weeklyMeetingEntitylist);
  27. //循环数据获取集合
  28. Map<String, int[]> map = new HashMap<>();
  29. for (ProjecttaskEntity list : lists) {
  30. if(map.containsKey(list.getOwner())){
  31. int [] ints = map.get(list.getOwner());
  32. if("1".equals(list.getTaskstatus())){
  33. ints[0] += 1;
  34. map.put(list.getOwner(), ints);
  35. }else if("30".equals(list.getTaskstatus())){
  36. ints[0] += 1;
  37. ints[1] += 1;
  38. map.put(list.getOwner(), ints);
  39. }
  40. }else{
  41. if("1".equals(list.getTaskstatus())){
  42. int [] ints = {1, 0};
  43. map.put(list.getOwner(), ints);
  44. }else if("30".equals(list.getTaskstatus())){
  45. int [] ints = {1, 1};
  46. map.put(list.getOwner(), ints);
  47. }
  48. }
  49. }
  50. //发送提醒
  51. for(Map.Entry<String, int[]> entry : map.entrySet()){
  52. String mapKey = entry.getKey();
  53. int[] mapValue = entry.getValue();
  54. sendMsg(mapKey, mapValue);
  55. }
  56. }
  57. public void sendMsg(String mapKey, int[] mapValue) {
  58. ProjecttaskServiceI ProjecttaskServiceI = getBean(ProjecttaskServiceI.class);
  59. MMessageSendServiceI mMessageSendService = getBean(MMessageSendServiceI.class);
  60. TSUser ownerUser = ProjecttaskServiceI.getEntity(TSUser.class, mapKey);
  61. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  62. ProjecttaskEntity.ExecuteWay executeWay = ProjecttaskEntity.ExecuteWay.both;
  63. Map<String, Object> userMsgParms = new HashMap<String, Object>();
  64. String first = "你好" + ownerUser.getRealName() + ",你有周例会工作任务需反馈";
  65. userMsgParms.put("first", first);
  66. StringBuffer k1 = new StringBuffer();
  67. k1.append("你目前共有");
  68. k1.append(mapValue[0]);
  69. k1.append("项任务未结束,");
  70. if(mapValue[1] == 0){
  71. k1.append("请及时跟进反馈");
  72. }else{
  73. k1.append("其中");
  74. k1.append(mapValue[1]);
  75. k1.append("项任务已超期,");
  76. k1.append("请及时跟进反馈");
  77. }
  78. userMsgParms.put("keyword1", k1.toString());//通知内容
  79. Calendar now = Calendar.getInstance();
  80. now.setTime(new Date());
  81. now.set(Calendar.HOUR_OF_DAY, 17);
  82. now.set(Calendar.MINUTE, 0);
  83. now.set(Calendar.SECOND, 0);
  84. userMsgParms.put("keyword2", format.format(now.getTime()));//通知时间
  85. String url = null;
  86. String remark="";
  87. if (executeWay == ProjecttaskEntity.ExecuteWay.both) {
  88. url = "http://www.shenqin.work";
  89. if(ServerType.getServerType()==ServerType.test){
  90. String serverPath = ResourceUtil.getConfigByName(Globals.SERVER_WXMSG);
  91. url=serverPath;
  92. }
  93. url += "/h5/today_task.html";
  94. remark += "点击详情查看任务明细列表及快捷反馈";
  95. } else {
  96. remark += "请登录慧管理系统完成工作";
  97. }
  98. userMsgParms.put("remark", remark);
  99. MessageWxTemplateConfig config = new MessageWxTemplateConfig();
  100. config.setTemplateId(XcglConstant.TEMPLATE_MEETING_Friday_REMIND);
  101. config.setUserMsgParms(userMsgParms);
  102. config.setShowUrl(url!=null);
  103. //config.setShowUrl(false);
  104. mMessageSendService.sendMessage(Collections.singletonList(mapKey),url,null,null,config,new MMessageEntity.MessageSendWay[]{MMessageEntity.MessageSendWay.wx});
  105. }
  106. }