| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- package cn.com.lzt.car.timertask;
- 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 CarWarningTimeoutTask extends AbstractActivitiTimeTask {
- @Override
- protected void doJob(JobExecutionContext jobExecutionContext) {
- WeeklyMeetingMiniDao weeklyMeetingMiniDao = getBean(WeeklyMeetingMiniDao.class);
- //查询任务执行中和超时的所有数据
- List<WeeklyMeetingEntity> weeklyMeetingEntitylist = weeklyMeetingMiniDao.selectExecuteAndOvertime();
- List<ProjecttaskEntity> lists = weeklyMeetingMiniDao.selectByIdList(weeklyMeetingEntitylist);
- //循环数据获取集合
- Map<String, int[]> 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<String, int[]> 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<String, Object> userMsgParms = new HashMap<String, Object>();
- 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});
- }
- }
|