|
|
@@ -0,0 +1,109 @@
|
|
|
+package org.jeecg.modules.quartz.job;
|
|
|
+
|
|
|
+import io.micrometer.core.instrument.util.StringUtils;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.jeecg.common.constant.CommonConstant;
|
|
|
+import org.jeecg.common.system.api.ISysBaseAPI;
|
|
|
+import org.jeecg.common.system.vo.LoginUser;
|
|
|
+import org.jeecg.modules.oa.entity.CdSchedule;
|
|
|
+import org.jeecg.modules.oa.mapper.CdScheduleMapper;
|
|
|
+import org.jeecg.modules.oa.service.IIncidentTicketService;
|
|
|
+import org.quartz.Job;
|
|
|
+import org.quartz.JobExecutionContext;
|
|
|
+import org.quartz.JobExecutionException;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 日程计划提醒
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+public class IncidentTicketJob implements Job {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IIncidentTicketService incidentTicketService;
|
|
|
+ @Autowired
|
|
|
+ private ISysBaseAPI sysBaseAPI;
|
|
|
+ @Override
|
|
|
+ public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
|
|
+
|
|
|
+ try {
|
|
|
+
|
|
|
+ //获取质量配置表
|
|
|
+ //遍历配置表
|
|
|
+ //查询 包含配置内数据 质量事故单:状态,发送次数<配置次数,上次发送时间(初始时间)与 当前时间 相差分钟数 > 配置分钟
|
|
|
+ //根据配置人员 发送消息
|
|
|
+ //更新发送时间,更新发送次数
|
|
|
+ //结束
|
|
|
+
|
|
|
+ List<Map<String,Object>> mapList = incidentTicketService.selectConfigList();
|
|
|
+ if(mapList.size() == 0){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ LoginUser loginUser = sysBaseAPI.getUserByName("admin");
|
|
|
+
|
|
|
+ for(Map<String,Object> m:mapList){
|
|
|
+
|
|
|
+ if(m.get("order_status")==null||m.get("order_status")=="" ||
|
|
|
+ m.get("user_id")==null||m.get("user_id")=="" ||
|
|
|
+ m.get("minute")==null||m.get("minute")=="" ||
|
|
|
+ m.get("frequency")==null||m.get("frequency")==""){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ String order_status = m.get("order_status").toString();//订单状态 //1未处理 2已通知 3通知已反馈 4已推送 5已提交 6已完结
|
|
|
+ if(order_status.equals("未处理")){
|
|
|
+ order_status = "1";
|
|
|
+ }else if(order_status.equals("已通知")){
|
|
|
+ order_status = "2";
|
|
|
+ }else if(order_status.equals("通知已反馈")){
|
|
|
+ order_status = "3";
|
|
|
+ }else if(order_status.equals("已推送")){
|
|
|
+ order_status = "4";
|
|
|
+ }else if(order_status.equals("已提交")){
|
|
|
+ order_status = "5";
|
|
|
+ }else if(order_status.equals("已完结")){
|
|
|
+ order_status = "6";
|
|
|
+ }else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ String user_id = m.get("user_id").toString();//用户
|
|
|
+ int minute = (int) m.get("minute");//提醒时间(分钟)
|
|
|
+ int frequency = (int) m.get("frequency");//提醒次数
|
|
|
+
|
|
|
+ List<String> ticketList = incidentTicketService.selectTicketList(frequency,order_status,minute);
|
|
|
+
|
|
|
+ if(ticketList.size() == 0){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ String result = String.join(",", ticketList);
|
|
|
+
|
|
|
+ for(String userId:user_id.split(",")){
|
|
|
+
|
|
|
+ String msgContent = "<h3>您有"+ticketList.size()+"条("+order_status+")的事故单需要处理,请查看</h3><br> <h4><br>"+result+"</h4>";
|
|
|
+
|
|
|
+ sysBaseAPI.sendSysAnnouncement(loginUser,"admin",userId,"事故处理单提醒",
|
|
|
+ msgContent,
|
|
|
+ CommonConstant.MSG_CATEGORY_2,new HashMap<>());
|
|
|
+
|
|
|
+ incidentTicketService.setMsgLog(order_status,userId,null,minute,frequency,msgContent);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ incidentTicketService.updateIncidentInfo(ticketList);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }catch (Exception e){
|
|
|
+ System.out.println("消息发送失败:"+e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|