package com.xcgl.weeklyMeeting.timetask; import cn.com.lzt.message.send.entity.MMessageEntity; import cn.com.lzt.message.send.entity.MessageWxTemplateConfig; import cn.com.lzt.message.send.service.MMessageSendServiceI; import cn.com.lzt.tools.ServerType; import cn.com.lzt.useractiviti.workflow.task.AbstractActivitiTimeTask; import com.xcgl.projecttask.entity.ProjecttaskEntity; import com.xcgl.projecttask.service.ProjecttaskServiceI; import com.xcgl.utils.XcglConstant; import com.xcgl.weeklyMeeting.dao.WeeklyMeetingMiniDao; import com.xcgl.weeklyMeeting.entity.WeeklyMeetingEntity; import org.jeecgframework.core.constant.Globals; import org.jeecgframework.core.util.ResourceUtil; import org.jeecgframework.web.system.pojo.base.TSUser; import org.quartz.JobExecutionContext; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.*; @Service public class WeeklyMeetingFridayTimedTask extends AbstractActivitiTimeTask { @Override protected void doJob(JobExecutionContext jobExecutionContext) { WeeklyMeetingMiniDao weeklyMeetingMiniDao = getBean(WeeklyMeetingMiniDao.class); //查询任务执行中和超时的所有数据 List weeklyMeetingEntitylist = weeklyMeetingMiniDao.selectExecuteAndOvertime(); List lists = weeklyMeetingMiniDao.selectByIdList(weeklyMeetingEntitylist); //循环数据获取集合 Map map = new HashMap<>(); for (ProjecttaskEntity list : lists) { if(map.containsKey(list.getOwner())){ int [] ints = map.get(list.getOwner()); if("1".equals(list.getTaskstatus())){ ints[0] += 1; map.put(list.getOwner(), ints); }else if("30".equals(list.getTaskstatus())){ ints[0] += 1; ints[1] += 1; map.put(list.getOwner(), ints); } }else{ if("1".equals(list.getTaskstatus())){ int [] ints = {1, 0}; map.put(list.getOwner(), ints); }else if("30".equals(list.getTaskstatus())){ int [] ints = {1, 1}; map.put(list.getOwner(), ints); } } } //发送提醒 for(Map.Entry entry : map.entrySet()){ String mapKey = entry.getKey(); int[] mapValue = entry.getValue(); sendMsg(mapKey, mapValue); } } public void sendMsg(String mapKey, int[] mapValue) { ProjecttaskServiceI ProjecttaskServiceI = getBean(ProjecttaskServiceI.class); MMessageSendServiceI mMessageSendService = getBean(MMessageSendServiceI.class); TSUser ownerUser = ProjecttaskServiceI.getEntity(TSUser.class, mapKey); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ProjecttaskEntity.ExecuteWay executeWay = ProjecttaskEntity.ExecuteWay.both; Map userMsgParms = new HashMap(); String first = "你好" + ownerUser.getRealName() + ",你有周例会工作任务需反馈"; userMsgParms.put("first", first); StringBuffer k1 = new StringBuffer(); k1.append("你目前共有"); k1.append(mapValue[0]); k1.append("项任务未结束,"); if(mapValue[1] == 0){ k1.append("请及时跟进反馈"); }else{ k1.append("其中"); k1.append(mapValue[1]); k1.append("项任务已超期,"); k1.append("请及时跟进反馈"); } userMsgParms.put("keyword1", k1.toString());//通知内容 Calendar now = Calendar.getInstance(); now.setTime(new Date()); now.set(Calendar.HOUR_OF_DAY, 17); now.set(Calendar.MINUTE, 0); now.set(Calendar.SECOND, 0); userMsgParms.put("keyword2", format.format(now.getTime()));//通知时间 String url = null; String remark=""; if (executeWay == ProjecttaskEntity.ExecuteWay.both) { url = "http://www.shenqin.work"; if(ServerType.getServerType()==ServerType.test){ String serverPath = ResourceUtil.getConfigByName(Globals.SERVER_WXMSG); url=serverPath; } url += "/h5/today_task.html"; remark += "点击详情查看任务明细列表及快捷反馈"; } else { remark += "请登录慧管理系统完成工作"; } userMsgParms.put("remark", remark); MessageWxTemplateConfig config = new MessageWxTemplateConfig(); config.setTemplateId(XcglConstant.TEMPLATE_MEETING_Friday_REMIND); config.setUserMsgParms(userMsgParms); config.setShowUrl(url!=null); //config.setShowUrl(false); mMessageSendService.sendMessage(Collections.singletonList(mapKey),url,null,null,config,new MMessageEntity.MessageSendWay[]{MMessageEntity.MessageSendWay.wx}); } }