|
@@ -33,9 +33,12 @@ public class OnsiteRemindJob implements Job {
|
|
|
public void createTask(ConcurrentMap<String,Object> paramMap) {
|
|
|
Integer result=0;//没什么意义只是为了不出现整体并行
|
|
|
List< FutureTask<Integer>> tasks=new ArrayList<>();
|
|
|
- tasks.add( getDayFutureTask(paramMap));
|
|
|
- tasks.add( getWeekFutureTask(paramMap));
|
|
|
- tasks.add( getMonthFutureTask(paramMap));
|
|
|
+ tasks.add( getDayFutureTask(paramMap,true));
|
|
|
+ tasks.add( getWeekFutureTask(paramMap,true));
|
|
|
+ tasks.add( getMonthFutureTask(paramMap,true));
|
|
|
+ tasks.add( getDayFutureTask(paramMap,false));
|
|
|
+ tasks.add( getWeekFutureTask(paramMap,false));
|
|
|
+ tasks.add( getMonthFutureTask(paramMap,false));
|
|
|
try{
|
|
|
for(FutureTask<Integer> t:tasks){
|
|
|
t.get();
|
|
@@ -51,10 +54,16 @@ public class OnsiteRemindJob implements Job {
|
|
|
* @param paramMap
|
|
|
* @return
|
|
|
*/
|
|
|
- private FutureTask<Integer> getDayFutureTask(ConcurrentMap<String, Object> paramMap) {
|
|
|
+ private FutureTask<Integer> getDayFutureTask(ConcurrentMap<String, Object> paramMap,boolean isWork) {
|
|
|
HashMap param = new HashMap();
|
|
|
param.put("type_flag",0);
|
|
|
- FutureTask<Integer> dayTask = new FutureTask<Integer>(new remindOnsite(paramMap,param));
|
|
|
+ Callable cal=null;
|
|
|
+ if(isWork){
|
|
|
+ cal=new remindOnsiteWork(paramMap,param);
|
|
|
+ }else{
|
|
|
+ cal=new remindOnsiteNoWork(paramMap,param);
|
|
|
+ }
|
|
|
+ FutureTask<Integer> dayTask = new FutureTask<Integer>(cal);
|
|
|
Thread thread = new Thread(dayTask);
|
|
|
thread.start(); //开启线程
|
|
|
return dayTask;
|
|
@@ -65,10 +74,16 @@ public class OnsiteRemindJob implements Job {
|
|
|
* @param paramMap
|
|
|
* @return
|
|
|
*/
|
|
|
- private FutureTask<Integer> getWeekFutureTask(ConcurrentMap<String, Object> paramMap) {
|
|
|
+ private FutureTask<Integer> getWeekFutureTask(ConcurrentMap<String, Object> paramMap,boolean isWork) {
|
|
|
HashMap param = new HashMap();
|
|
|
param.put("type_flag",1);
|
|
|
- FutureTask<Integer> weekTask = new FutureTask<Integer>(new remindOnsite(paramMap,param));
|
|
|
+ Callable cal=null;
|
|
|
+ if(isWork){
|
|
|
+ cal=new remindOnsiteWork(paramMap,param);
|
|
|
+ }else{
|
|
|
+ cal=new remindOnsiteNoWork(paramMap,param);
|
|
|
+ }
|
|
|
+ FutureTask<Integer> weekTask = new FutureTask<Integer>(cal);
|
|
|
Thread thread = new Thread(weekTask);
|
|
|
thread.start(); //开启线程
|
|
|
return weekTask;
|
|
@@ -79,10 +94,16 @@ public class OnsiteRemindJob implements Job {
|
|
|
* @param paramMap
|
|
|
* @return
|
|
|
*/
|
|
|
- private FutureTask<Integer> getMonthFutureTask(ConcurrentMap<String, Object> paramMap) {
|
|
|
+ private FutureTask<Integer> getMonthFutureTask(ConcurrentMap<String, Object> paramMap,boolean isWork) {
|
|
|
HashMap param = new HashMap();
|
|
|
param.put("type_flag",2);
|
|
|
- FutureTask<Integer> monthTask = new FutureTask<Integer>(new remindOnsite(paramMap,param));
|
|
|
+ Callable cal=null;
|
|
|
+ if(isWork){
|
|
|
+ cal=new remindOnsiteWork(paramMap,param);
|
|
|
+ }else{
|
|
|
+ cal=new remindOnsiteNoWork(paramMap,param);
|
|
|
+ }
|
|
|
+ FutureTask<Integer> monthTask = new FutureTask<Integer>(cal);
|
|
|
Thread thread = new Thread(monthTask);
|
|
|
thread.start(); //开启线程
|
|
|
return monthTask;
|
|
@@ -91,15 +112,15 @@ public class OnsiteRemindJob implements Job {
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * 发送提醒
|
|
|
+ * 发送提醒 需要工作的提醒
|
|
|
*/
|
|
|
- public class remindOnsite implements Callable<Integer> {
|
|
|
+ public class remindOnsiteWork implements Callable<Integer> {
|
|
|
|
|
|
private ConcurrentMap<String, Object> paramMap;
|
|
|
private HashMap paramQuery;
|
|
|
|
|
|
|
|
|
- public remindOnsite(ConcurrentMap<String, Object> paramMap, HashMap paramQuery) {
|
|
|
+ public remindOnsiteWork(ConcurrentMap<String, Object> paramMap, HashMap paramQuery) {
|
|
|
this.paramMap = paramMap;
|
|
|
this.paramQuery = paramQuery;
|
|
|
}
|
|
@@ -121,7 +142,7 @@ public class OnsiteRemindJob implements Job {
|
|
|
day = cal.getTask_time();
|
|
|
format = "yyyy-MM-dd";
|
|
|
}
|
|
|
- boolean flag = CommonUtil.getDateCompare(CommonUtil.getStrDate(day, format, 0), new Date());
|
|
|
+ boolean flag = CommonUtil.getDateCompare(CommonUtil.getStrDate(day, format, 0), new Date(),false);
|
|
|
if (flag) {
|
|
|
String token =String.valueOf(cal.getUser_id());
|
|
|
if(WsSessionManager.SESSION_POOL.containsKey(token)){
|
|
@@ -147,4 +168,47 @@ public class OnsiteRemindJob implements Job {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发送提醒 没有工作的提醒
|
|
|
+ */
|
|
|
+ public class remindOnsiteNoWork implements Callable<Integer> {
|
|
|
+
|
|
|
+ private ConcurrentMap<String, Object> paramMap;
|
|
|
+ private HashMap paramQuery;
|
|
|
+
|
|
|
+
|
|
|
+ public remindOnsiteNoWork(ConcurrentMap<String, Object> paramMap, HashMap paramQuery) {
|
|
|
+ this.paramMap = paramMap;
|
|
|
+ this.paramQuery = paramQuery;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Integer call() throws Exception {
|
|
|
+ OnsiteTaskService onsiteTaskService = (OnsiteTaskService) paramMap.get("onsiteTaskService");
|
|
|
+ List<OnsiteCalendar> cals = onsiteTaskService.getRemindWork(paramQuery);
|
|
|
+ String day = null;
|
|
|
+ String format = "yyyy-MM-dd HH:mm";
|
|
|
+ int min;
|
|
|
+ for (OnsiteCalendar cal : cals) {
|
|
|
+ if (cal.getStart_day() != null && cal.getStart_day().trim().length() > 0) {
|
|
|
+ day = cal.getTask_time() + " " + cal.getStart_day();
|
|
|
+ format = "yyyy-MM-dd HH:mm";
|
|
|
+ min=cal.getDay_outtime()+cal.getDay_validate();
|
|
|
+ } else {
|
|
|
+ day = cal.getTask_time();
|
|
|
+ format = "yyyy-MM-dd";
|
|
|
+ min=0;
|
|
|
+ }
|
|
|
+ boolean flag = CommonUtil.getDateCompare(CommonUtil.getStrDate(day, format, min), new Date(),true);
|
|
|
+ if (flag) {
|
|
|
+ //这个需要对应根据rule 发动
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|