package org.jeecgframework.web.workflow;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.TimerTask;
import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
import org.jeecgframework.core.util.Yunba3;
import org.jeecgframework.core.util.Yunba4;
import org.jeecgframework.web.system.pojo.base.TSUser;
import org.jeecgframework.web.system.service.SystemService;
import org.jeecgframework.web.workflow.entity.TBMeeting;
import org.jeecgframework.web.workflow.entity.TBMeetingUser;
import org.jeecgframework.web.workflow.entity.TSMessage;
import org.jeecgframework.web.workflow.entity.TSMessageUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class NoticeTimerTask extends TimerTask{
private TBMeeting meeting;
private TSUser user;
private SystemService systemService;
@Autowired
public void setSystemService(SystemService systemService) {
this.systemService = systemService;
}
public TBMeeting getMeeting() {
return meeting;
}
public void setMeeting(TBMeeting meeting) {
this.meeting = meeting;
}
public TSUser getUser() {
return user;
}
public void setUser(TSUser user) {
this.user = user;
}
// public NoticeTimerTask(TBMeeting meeting,TSUser user){
// this.meeting=meeting;
// this.user=user;
// }
@Override
public void run() {
// TODO Auto-generated method stub
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");//日期格式
TSMessage message2 = new TSMessage();
message2.setSender(user);
message2.setTitle("会议管理");
message2.setContent("参会提醒");
message2.setGenerateTime(new Date());
message2.setBusinessId(meeting.getId());
systemService.saveOrUpdate(message2);
CriteriaQuery cq1 = new CriteriaQuery(TBMeetingUser.class);
cq1.eq("meeting", meeting);
cq1.eq("result", 0);
cq1.add();
List<TBMeetingUser> mulist=systemService.getListByCriteriaQuery(cq1, false);
if(mulist!=null){
for(TBMeetingUser mu:mulist){
if(mu.getState()!=2){//如果没有请假
TSMessageUser messageUser1 = new TSMessageUser();
messageUser1.setMessage(message2);
messageUser1.setReceiver(mu.getParticipator());
systemService.save(messageUser1);
try {
new Yunba3(mu.getParticipator().getUserName(),null,"参会提醒", "会议管理",meeting.getCreator(),dateFormat.format(meeting.getCreateTime()));
new Yunba4(mu.getParticipator().getUserName(),null,"参会提醒", "会议管理",meeting.getCreator(),dateFormat.format(meeting.getCreateTime()));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
public void setTimer(Date date,TBMeeting meeting){
TSUser user = ResourceUtil.getSessionUserName();
noticeTimerTask.setMeeting(meeting);
noticeTimerTask.setUser(user);
Timer timer=new Timer();
timer.schedule(noticeTimerTask, date);
}