Explorar o código

添加一个定时器工程,这个是为了生存任务和提醒使用

cr7118@sina.cn %!s(int64=3) %!d(string=hai) anos
pai
achega
852a932658
Modificáronse 16 ficheiros con 739 adicións e 15 borrados
  1. 45 13
      application-task/pom.xml
  2. 2 0
      application-task/src/main/java/com/jihengbel/intelligent/applicationtask/ApplicationTaskApplication.java
  3. 87 0
      application-task/src/main/java/com/jihengbel/intelligent/applicationtask/common/CommonUtil.java
  4. 98 0
      application-task/src/main/java/com/jihengbel/intelligent/applicationtask/entry/OnsiteCalendar.java
  5. 47 0
      application-task/src/main/java/com/jihengbel/intelligent/applicationtask/entry/OnsiteTask.java
  6. 59 0
      application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/JobFactoryParam.java
  7. 138 0
      application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/OnsiteTaskJob.java
  8. 41 0
      application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/QuartzManager.java
  9. 17 0
      application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/SchedledConfiguration.java
  10. 31 2
      application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/TimerTaskInit.java
  11. 30 0
      application-task/src/main/java/com/jihengbel/intelligent/applicationtask/model/OnsiteTaskMapper.java
  12. 27 0
      application-task/src/main/java/com/jihengbel/intelligent/applicationtask/service/OnsiteTaskService.java
  13. 35 0
      application-task/src/main/java/com/jihengbel/intelligent/applicationtask/service/impl/OnsiteTaskServiceImp.java
  14. 23 0
      application-task/src/main/resources/application.properties
  15. 14 0
      application-task/src/main/resources/conf/mybatis-config.xml
  16. 45 0
      application-task/src/main/resources/mappers/OnsiteTaskMapper.xml

+ 45 - 13
application-task/pom.xml

@@ -27,21 +27,53 @@
             <scope>runtime</scope>
             <optional>true</optional>
         </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+
+        <!--druid  the least is 31 version-->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+            <version>1.0.27</version>
+        </dependency>
+
+        <!--mysql-->
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
-            <scope>runtime</scope>
+            <version>8.0.21</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+            <version>2.2.0</version>
         </dependency>
+
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
-            <optional>true</optional>
         </dependency>
+
+        <!--quartz -->
         <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context-support</artifactId>
+            <version>4.1.6.RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>org.quartz-scheduler</groupId>
+            <artifactId>quartz</artifactId>
+            <version>2.2.1</version>
         </dependency>
+
+
     </dependencies>
 
     <build>
@@ -49,14 +81,14 @@
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
-                <configuration>
-                    <excludes>
-                        <exclude>
-                            <groupId>org.projectlombok</groupId>
-                            <artifactId>lombok</artifactId>
-                        </exclude>
-                    </excludes>
-                </configuration>
+<!--                <configuration>-->
+<!--                    <excludes>-->
+<!--                        <exclude>-->
+<!--                            <groupId>org.projectlombok</groupId>-->
+<!--                            <artifactId>lombok</artifactId>-->
+<!--                        </exclude>-->
+<!--                    </excludes>-->
+<!--                </configuration>-->
             </plugin>
         </plugins>
     </build>

+ 2 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/ApplicationTaskApplication.java

@@ -1,9 +1,11 @@
 package com.jihengbel.intelligent.applicationtask;
 
+import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 @SpringBootApplication
+@MapperScan(value="com.jihengbel.intelligent.applicationtask.model.**" )
 public class ApplicationTaskApplication {
 
     public static void main(String[] args) {

+ 87 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/common/CommonUtil.java

@@ -0,0 +1,87 @@
+package com.jihengbel.intelligent.applicationtask.common;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+public class CommonUtil {
+
+    /**
+     * 时间转字符串
+     * @param date
+     * @param format
+     * @return
+     */
+    public static String  getDateStr(Date date , String format){//"yyyy-MM-dd HH:mm:ss"
+        SimpleDateFormat sdf = new SimpleDateFormat(format);
+        return sdf.format(date);
+    }
+
+    /**
+     * 获取时间是星期几
+     * @param date
+     * @return
+     */
+    public static int getWeekOfDate(Date date) {
+        int[] weekDays = { 7, 1, 2, 3, 4,5, 6 };
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
+        return weekDays[w<0?0:w];
+
+    }
+
+    /**
+     * 获取时间是这个月几号
+     * @param date
+     * @return
+     */
+    public static int getMonthOfDate(Date date) {
+        Calendar newTime = Calendar.getInstance();
+        newTime.setTime(date);
+        return  newTime.get(Calendar.DAY_OF_MONTH);
+    }
+
+
+    /**
+     * 添加多少分钟的时间
+     * @param date
+     * @param format
+     * @param min
+     * @return
+     */
+    public static Date  getStrDate(String date , String format,int min) throws ParseException {//"yyyy-MM-dd HH:mm:ss"
+        SimpleDateFormat sdf = new SimpleDateFormat(format);
+        Date current= sdf.parse(date);
+        Calendar newTime = Calendar.getInstance();
+        newTime.setTime(current);
+        newTime.add(Calendar.MINUTE,min);
+        return newTime.getTime();
+    }
+
+    /**
+     *  获取当前时间是不是大野提醒时间大于需要提醒
+     * @param changeTime
+     * @param now
+     * @return
+     * @throws ParseException
+     */
+    public static boolean  getDateCompare(Date changeTime , Date now) throws ParseException {
+        Calendar c1 = Calendar.getInstance();
+        c1.setTime(changeTime);
+        Calendar c2 = Calendar.getInstance();
+        c2.setTime(now);
+        if(c1.compareTo(c2)==-1){
+            return true;
+        }else{
+            return false;
+        }
+    }
+
+
+
+    public static void main(String[] args) throws ParseException {
+        getDateCompare(getStrDate("2011-11-11 10:00" , "yyyy-MM-dd HH:mm",120) , new Date());
+    }
+}

+ 98 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/entry/OnsiteCalendar.java

@@ -0,0 +1,98 @@
+package com.jihengbel.intelligent.applicationtask.entry;
+
+import java.io.Serializable;
+
+public class OnsiteCalendar implements Serializable {
+
+    private long id;
+    private long benteler_plan_id;
+    private String start_day;
+    private String end_day;
+    private int day_validate;
+    private int day_outtime;
+    private int week_day;
+    private int month_day;
+    private int user_id;
+    private int type_flag;
+
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public long getBenteler_plan_id() {
+        return benteler_plan_id;
+    }
+
+    public void setBenteler_plan_id(long benteler_plan_id) {
+        this.benteler_plan_id = benteler_plan_id;
+    }
+
+    public String getStart_day() {
+        return start_day;
+    }
+
+    public void setStart_day(String start_day) {
+        this.start_day = start_day;
+    }
+
+    public String getEnd_day() {
+        return end_day;
+    }
+
+    public void setEnd_day(String end_day) {
+        this.end_day = end_day;
+    }
+
+    public int getDay_validate() {
+        return day_validate;
+    }
+
+    public void setDay_validate(int day_validate) {
+        this.day_validate = day_validate;
+    }
+
+    public int getDay_outtime() {
+        return day_outtime;
+    }
+
+    public void setDay_outtime(int day_outtime) {
+        this.day_outtime = day_outtime;
+    }
+
+    public int getWeek_day() {
+        return week_day;
+    }
+
+    public void setWeek_day(int week_day) {
+        this.week_day = week_day;
+    }
+
+    public int getMonth_day() {
+        return month_day;
+    }
+
+    public void setMonth_day(int month_day) {
+        this.month_day = month_day;
+    }
+
+    public int getUser_id() {
+        return user_id;
+    }
+
+    public void setUser_id(int user_id) {
+        this.user_id = user_id;
+    }
+
+    public int getType_flag() {
+        return type_flag;
+    }
+
+    public void setType_flag(int type_flag) {
+        this.type_flag = type_flag;
+    }
+}

+ 47 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/entry/OnsiteTask.java

@@ -0,0 +1,47 @@
+package com.jihengbel.intelligent.applicationtask.entry;
+
+import java.io.Serializable;
+
+
+public class OnsiteTask implements Serializable {
+
+     private long id;
+
+     private long onsite_calendar_id ;
+
+     private int status;
+
+     private String task_time;
+
+     public long getId() {
+          return id;
+     }
+
+     public void setId(long id) {
+          this.id = id;
+     }
+
+     public long getOnsite_calendar_id() {
+          return onsite_calendar_id;
+     }
+
+     public void setOnsite_calendar_id(long onsite_calendar_id) {
+          this.onsite_calendar_id = onsite_calendar_id;
+     }
+
+     public int getStatus() {
+          return status;
+     }
+
+     public void setStatus(int status) {
+          this.status = status;
+     }
+
+     public String getTask_time() {
+          return task_time;
+     }
+
+     public void setTask_time(String task_time) {
+          this.task_time = task_time;
+     }
+}

+ 59 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/JobFactoryParam.java

@@ -0,0 +1,59 @@
+package com.jihengbel.intelligent.applicationtask.init;
+import java.util.concurrent.ConcurrentMap;
+public class JobFactoryParam {
+
+    private String jobGroupName;//组分类
+
+    private String jobName;//job名称
+
+
+    private Class clazz; //触发的执行类
+
+    private  String triggerRule; //触发的时间规则
+
+    private ConcurrentMap<String,Object> paramMap;
+
+
+    public String getJobGroupName() {
+        return jobGroupName;
+    }
+
+    public void setJobGroupName(String jobGroupName) {
+        this.jobGroupName = jobGroupName;
+    }
+
+    public String getJobName() {
+        return jobName;
+    }
+
+    public void setJobName(String jobName) {
+        this.jobName = jobName;
+    }
+
+    public Class getClazz() {
+        return clazz;
+    }
+
+    public void setClazz(Class clazz) {
+        this.clazz = clazz;
+    }
+
+    public String getTriggerRule() {
+        return triggerRule;
+    }
+
+    public void setTriggerRule(String triggerRule) {
+        this.triggerRule = triggerRule;
+    }
+
+    public ConcurrentMap<String, Object> getParamMap() {
+        return paramMap;
+    }
+
+    public void setParamMap(ConcurrentMap<String, Object> paramMap) {
+        this.paramMap = paramMap;
+    }
+
+
+
+}

+ 138 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/OnsiteTaskJob.java

@@ -0,0 +1,138 @@
+package com.jihengbel.intelligent.applicationtask.init;
+
+import com.jihengbel.intelligent.applicationtask.common.CommonUtil;
+import com.jihengbel.intelligent.applicationtask.entry.OnsiteCalendar;
+import com.jihengbel.intelligent.applicationtask.entry.OnsiteTask;
+import com.jihengbel.intelligent.applicationtask.service.OnsiteTaskService;
+import org.quartz.DisallowConcurrentExecution;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.FutureTask;
+
+
+/**
+ * 生产任务job
+ */
+@DisallowConcurrentExecution
+public class OnsiteTaskJob implements Job {
+    private static Logger log = LoggerFactory.getLogger(OnsiteTaskJob.class);
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        ConcurrentMap<String,Object> paramMap=(ConcurrentMap<String,Object>)context.getJobDetail().getJobDataMap().get(QuartzManager.JOB_PARAM_NAME);
+        createTask(paramMap);// 执行任务
+    }
+
+    /**
+     * 创建Task主方法
+     * @param paramMap
+     */
+    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));
+        try{
+            for(FutureTask<Integer> t:tasks){
+                t.get();
+            }//等等所有线程结束
+        }catch (Throwable e){
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * day
+     * @param paramMap
+     * @return
+     */
+    private FutureTask<Integer> getDayFutureTask(ConcurrentMap<String, Object> paramMap) {
+        HashMap param = new HashMap();
+        param.put("type_flag",0);
+        FutureTask<Integer> dayTask = new FutureTask<Integer>(new addTask(paramMap,param));
+        Thread thread = new Thread(dayTask);
+        thread.start();  //开启线程
+        return dayTask;
+    }
+
+    /**
+     * week
+     * @param paramMap
+     * @return
+     */
+    private FutureTask<Integer> getWeekFutureTask(ConcurrentMap<String, Object> paramMap) {
+        HashMap param = new HashMap();
+        param.put("type_flag",1);
+        param.put("week_day",CommonUtil.getWeekOfDate(new Date()));
+        FutureTask<Integer> weekTask = new FutureTask<Integer>(new addTask(paramMap,param));
+        Thread thread = new Thread(weekTask);
+        thread.start();  //开启线程
+        return weekTask;
+    }
+
+    /**
+     * month
+     * @param paramMap
+     * @return
+     */
+    private FutureTask<Integer> getMonthFutureTask(ConcurrentMap<String, Object> paramMap) {
+        HashMap param = new HashMap();
+        param.put("type_flag",2);
+        param.put("month_day",CommonUtil.getMonthOfDate(new Date()));
+        FutureTask<Integer> monthTask = new FutureTask<Integer>(new addTask(paramMap,param));
+        Thread thread = new Thread(monthTask);
+        thread.start();  //开启线程
+        return monthTask;
+    }
+
+
+
+    /**
+     * 生产任务
+     */
+    public  class addTask implements Callable<Integer> {
+
+        private ConcurrentMap<String, Object> paramMap;
+        private HashMap paramQuery;
+
+
+        public addTask(ConcurrentMap<String, Object> paramMap,HashMap paramQuery) {
+            this.paramMap = paramMap;
+            this.paramQuery= paramQuery;
+        }
+
+        @Override
+        public Integer call() throws Exception {
+            OnsiteTaskService onsiteTaskService=(OnsiteTaskService)paramMap.get("onsiteTaskService");
+            String td= CommonUtil.getDateStr(new Date(),"yyyy-MM-dd");
+            List<OnsiteCalendar>  cals=onsiteTaskService.getCalenderOnsitesForType(paramQuery);
+            for(OnsiteCalendar cal:cals){
+                try{
+                    OnsiteTask task=new OnsiteTask();
+                    task.setTask_time(td);
+                    task.setOnsite_calendar_id(cal.getId());
+                    onsiteTaskService.insertOnsiteTask(task);
+                }catch (Throwable e){
+                    log.error(e.getStackTrace().toString());
+                }
+
+            }
+            return 0;
+        }
+    }
+
+
+
+}

+ 41 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/QuartzManager.java

@@ -0,0 +1,41 @@
+package com.jihengbel.intelligent.applicationtask.init;
+
+import org.quartz.*;
+
+public class QuartzManager {
+
+    public final static String JOB_GROUP_NAME = "ONSITE_TASK";//纠错任务生成
+
+    public final static String JOB_PARAM_NAME =  "jobParam"; //传递参数名称
+
+
+    /**
+     * 给定时器添加任务
+     * @param sched
+     * @param param
+     */
+    public static void addJob(Scheduler sched, JobFactoryParam param) {
+        try {
+
+            TriggerKey triggerKey = TriggerKey.triggerKey(param.getJobName(), param.getJobGroupName());
+            CronTrigger trigger = (CronTrigger) sched.getTrigger(triggerKey);
+            if(trigger==null){
+                JobDetail jobDetail = JobBuilder.newJob(param.getClazz()).withIdentity(param.getJobName(),  param.getJobGroupName()).build();
+                jobDetail.getJobDataMap().put(QuartzManager.JOB_PARAM_NAME, param.getParamMap());  //这个用于Job继承类的context
+                CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(param.getTriggerRule()).withMisfireHandlingInstructionDoNothing();
+                trigger = TriggerBuilder.newTrigger().withIdentity(param.getJobName(),  param.getJobGroupName()).withSchedule(scheduleBuilder).build();
+                sched.scheduleJob(jobDetail, trigger);
+            }else{//更新
+                CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(param.getTriggerRule()).withMisfireHandlingInstructionDoNothing();;
+                trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build();
+                sched.rescheduleJob(triggerKey, trigger);
+            }
+            JobKey jobKey = JobKey.jobKey(param.getJobName(),  param.getJobGroupName());
+            sched.triggerJob(jobKey);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+
+}

+ 17 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/SchedledConfiguration.java

@@ -0,0 +1,17 @@
+package com.jihengbel.intelligent.applicationtask.init;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.quartz.SchedulerFactoryBean;
+
+/**
+ *  配置定时计划工厂
+ */
+@Configuration
+public class SchedledConfiguration {
+    @Bean
+    public SchedulerFactoryBean schedulerFactory(){
+        SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
+        return schedulerFactoryBean;
+    }
+}

+ 31 - 2
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/init/TimerTaskInit.java

@@ -1,10 +1,39 @@
 package com.jihengbel.intelligent.applicationtask.init;
 
+import com.jihengbel.intelligent.applicationtask.service.OnsiteTaskService;
+import org.quartz.Scheduler;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.CommandLineRunner;
+import org.springframework.scheduling.quartz.SchedulerFactoryBean;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+/**
+ * 这个是启动就触发的部分
+ */
+@Component
+public class TimerTaskInit implements CommandLineRunner {
+
+    //    @Resource(name="onsiteTaskServiceImp")
+    @Autowired
+    OnsiteTaskService onsiteTaskService;
+
+    @Autowired
+    SchedulerFactoryBean schedulerFactoryBean;
 
-public class TimerTaskInit  implements CommandLineRunner {
     @Override
     public void run(String... args) throws Exception {
-
+        ConcurrentMap<String, Object> param = new ConcurrentHashMap<String, Object>();
+        param.put("onsiteTaskService", onsiteTaskService);
+        Scheduler sche = schedulerFactoryBean.getScheduler();
+        JobFactoryParam onsite =new JobFactoryParam();
+        onsite.setJobGroupName(QuartzManager.JOB_GROUP_NAME);
+        onsite.setJobName("onsiteTask");
+        onsite.setParamMap(param);
+        onsite.setTriggerRule("0 */1 * * * ?");
+        onsite.setClazz(OnsiteTaskJob.class);
+        QuartzManager.addJob(sche, onsite);
     }
 }

+ 30 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/model/OnsiteTaskMapper.java

@@ -0,0 +1,30 @@
+package com.jihengbel.intelligent.applicationtask.model;
+
+
+import com.jihengbel.intelligent.applicationtask.entry.OnsiteCalendar;
+import com.jihengbel.intelligent.applicationtask.entry.OnsiteTask;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface OnsiteTaskMapper {
+    /**
+     * 添加当天任务
+     *
+     * @param task
+     * @return
+     */
+    public int insertOnsiteTask(OnsiteTask task);
+
+    /**
+     * 获取对应的规则
+     * @param paarm
+     * @return
+     */
+    public List<OnsiteCalendar> getCalenderOnsitesForType(Map<String,Object> param);
+
+
+
+}

+ 27 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/service/OnsiteTaskService.java

@@ -0,0 +1,27 @@
+package com.jihengbel.intelligent.applicationtask.service;
+
+import com.jihengbel.intelligent.applicationtask.entry.OnsiteCalendar;
+import com.jihengbel.intelligent.applicationtask.entry.OnsiteTask;
+
+import java.util.List;
+import java.util.Map;
+
+public interface OnsiteTaskService {
+
+    /**
+     * 添加当天任务
+     *
+     * @param task
+     * @return
+     */
+    public int insertOnsiteTask(OnsiteTask task);
+
+    /**
+     * 获取对应的规则
+     * @param paarm
+     * @return
+     */
+    public List<OnsiteCalendar> getCalenderOnsitesForType(Map<String,Object> param);
+
+
+}

+ 35 - 0
application-task/src/main/java/com/jihengbel/intelligent/applicationtask/service/impl/OnsiteTaskServiceImp.java

@@ -0,0 +1,35 @@
+package com.jihengbel.intelligent.applicationtask.service.impl;
+
+import com.jihengbel.intelligent.applicationtask.entry.OnsiteCalendar;
+import com.jihengbel.intelligent.applicationtask.entry.OnsiteTask;
+import com.jihengbel.intelligent.applicationtask.model.OnsiteTaskMapper;
+import com.jihengbel.intelligent.applicationtask.service.OnsiteTaskService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+
+@Service("onsiteTaskServiceImp")
+public class OnsiteTaskServiceImp implements OnsiteTaskService {
+
+    @Autowired
+    OnsiteTaskMapper mapper;
+
+    @Override
+    @Transactional(rollbackFor = Throwable.class)
+    public int insertOnsiteTask(OnsiteTask task) {
+        return mapper.insertOnsiteTask(task);
+    }
+
+
+    /**
+     * 获取对应的规则
+     * @param paarm
+     * @return
+     */
+    public List<OnsiteCalendar> getCalenderOnsitesForType(Map<String,Object> param){
+        return mapper.getCalenderOnsitesForType(param);
+    }
+}

+ 23 - 0
application-task/src/main/resources/application.properties

@@ -1 +1,24 @@
+# 设置端口
+server.port=8088
+# 数据库配置
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.url= jdbc:mysql://39.100.230.190:8092/crocodile?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+spring.datasource.username=root
+spring.datasource.password=Jh@Jh2019!
+# druid 配置
+spring.datasource.druid.initial-size=5
+spring.datasource.druid.max-active=20
+spring.datasource.druid.min-idle=5
+spring.datasource.druid.max-wait=60000
+spring.datasource.druid.pool-prepared-statements=true
+spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
+spring.datasource.druid.max-open-prepared-statements=20
+spring.datasource.druid.validation-query=SELECT 1
+spring.datasource.druid.validation-query-timeout=30000
+spring.datasource.druid.test-on-borrow=true
+spring.datasource.druid.test-on-return=false
+spring.datasource.druid.test-while-idle=false
 
+mybatis.mapperLocations=classpath:mappers/*.xml
+mybatis.config-locations=conf/mybatis-config.xml

+ 14 - 0
application-task/src/main/resources/conf/mybatis-config.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration
+        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+    <settings>
+        <!-- 全局映射器启用缓存 -->
+        <setting name="cacheEnabled" value="true" />
+        <!-- 查询时,关闭关联对象即时加载以提高性能 -->
+        <setting name="lazyLoadingEnabled" value="true" />
+        <!-- 这个是超时时间单位是秒-->
+        <setting name="defaultStatementTimeout" value="25"/>
+    </settings>
+</configuration>

+ 45 - 0
application-task/src/main/resources/mappers/OnsiteTaskMapper.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.jihengbel.intelligent.applicationtask.model.OnsiteTaskMapper" >
+
+
+    <resultMap id="calendarOnsite" type="com.jihengbel.intelligent.applicationtask.entry.OnsiteCalendar">
+        <id column="id" property="id"/>
+        <result column="benteler_plan_id" property="benteler_plan_id"/>
+        <result column="start_day" property="start_day"/>
+        <result column="end_day" property="end_day"/>
+        <result column="day_validate" property="day_validate"/>
+        <result column="day_outtime" property="day_outtime"/>
+        <result column="week_day" property="week_day"/>
+        <result column="month_day" property="month_day"/>
+        <result column="user_id" property="user_id"/>
+        <result column="type_flag" property="type_flag"/>
+    </resultMap>
+
+
+    <select id="getCalenderOnsitesForType" resultMap="calendarOnsite">
+        SELECT b.* FROM  benteler_plan a,onsite_calendar b
+        WHERE
+        a.id=b.benteler_plan_id and a.pause_flag=1
+        and b.type_flag=${type_flag}
+        <if test="week_day != null and week_day != ''">
+            and  b.week_day = ${week_day}
+        </if>
+        <if test="month_day != null and month_day != ''">
+            and  b.month_day = ${month_day}
+        </if>
+
+    </select>
+
+
+    <insert id="insertOnsiteTask" parameterType="com.jihengbel.intelligent.applicationtask.entry.OnsiteTask">
+        insert into onsite_task(onsite_calendar_id,task_time)
+        values(
+            ${onsite_calendar_id},#{task_time}
+        )
+    </insert>
+
+
+
+
+</mapper>