nidapeng
2024-04-29 978d819b2faf016983a1670a2297700fa2205da8
最新版本
已添加21个文件
已删除12个文件
已修改14个文件
已重命名5个文件
1793 ■■■■■ 文件已修改
logs/myapp.log 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/java/com/doumee/api/CloudBookingsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/java/com/doumee/Main.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/bootstrap.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/timer/entity/QuartzJob.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/timer/entity/QuartzLog.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/timer/scheduler/QuartzRecord.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/service/timer/QuartzJobService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/pom.xml 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/SystemTimerApplication.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/config/DecoderConfig.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/jobs/JobService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/jobs/PrintJob.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/jobs/TimerJob.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/jobs/service/TimerBizSevice.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/jobs/visits/EmpowerFegin.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/jobs/visits/EmpowerJob.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/META-INF/MANIFEST.MF 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/application-dev.yml 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/application-pro.yml 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/application-test.yml 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/application.yml 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/banner.txt 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/bootstrap.yml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/pom.xml 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/Main.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/TimerApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/api/HkDeviceTimerController.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/api/HkEmpowerTimerController.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/api/HkImageTimerController.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/api/HkLogTimerController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/api/HkParkTimerController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/api/HkVisitTimerController.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleCommonTool.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleDeviceStatusTool.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleMemberDelTool.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleParkBookTool.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleTaskFailRetrylTool.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleTaskSendTool.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/resources/bootstrap.yml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/resources/logback.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/CloudCarsController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
logs/myapp.log
@@ -1,42 +1,3 @@
2024-04-19 16:14:12,615 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 1772 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:14:12,647 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:14:12,663 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: devAntai
2024-04-19 16:14:34,494 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 23804 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:14:34,503 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:14:34,504 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: devAntai
2024-04-19 16:15:01,251 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 13076 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:15:01,255 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:15:01,256 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: devAntai
2024-04-19 16:15:28,022 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 19768 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:15:28,026 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:15:28,027 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: devAntai
2024-04-19 16:16:25,759 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 23908 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:16:25,767 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:16:25,768 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: devAntai
2024-04-19 16:18:09,874 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 18852 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:18:09,880 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:18:09,880 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: devAntai
2024-04-19 16:35:09,509 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 15056 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:35:09,516 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:35:09,517 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: devAntai
2024-04-19 16:36:39,778 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 16368 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:36:39,782 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:36:39,783 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: devAntai
2024-04-19 16:37:53,600 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 15172 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:37:53,608 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:37:53,608 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: dev
2024-04-19 16:38:59,896 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 27264 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:38:59,903 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:38:59,904 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: dev
2024-04-19 16:39:58,766 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 26420 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:39:58,771 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:39:58,771 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: dev
2024-04-19 16:40:03,958 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 16488 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:40:03,962 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:40:03,963 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: dev
2024-04-19 16:47:44,627 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 25280 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:47:44,635 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:47:44,636 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: dev
2024-04-19 16:49:35,712 INFO [main] c.d.AdminApplication [StartupInfoLogger.java:55] Starting AdminApplication on DESKTOP-77EHGKJ with PID 24896 (D:\code\idea2023\git\dmvisit\server\dmvisit_admin\target\classes started by T14 in D:\code\idea2023\git\dmvisit)
2024-04-19 16:49:35,720 DEBUG [main] c.d.AdminApplication [StartupInfoLogger.java:56] Running with Spring Boot v2.2.5.RELEASE, Spring v5.2.4.RELEASE
2024-04-19 16:49:35,720 INFO [main] c.d.AdminApplication [SpringApplication.java:655] The following profiles are active: dev
2024-04-29 13:47:55,448 INFO [main] c.d.TimerApplication [SpringApplication.java:652] The following profiles are active: dev
2024-04-29 13:53:06,150 INFO [main] c.d.TimerApplication [SpringApplication.java:652] The following profiles are active: dev
2024-04-29 14:12:01,421 INFO [main] c.d.TimerApplication [SpringApplication.java:652] The following profiles are active: dev
server/meeting/meeting_admin/src/main/java/com/doumee/api/CloudBookingsController.java
ÎļþÃû´Ó server/meeting/meeting_admin/src/main/java/com/doumee/api/cloud/CloudBookingsController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.api;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
server/pom.xml
@@ -14,6 +14,7 @@
      <module>meeting</module>
      <module>system_service</module>
      <module>visits</module>
      <module>system_timer</module>
  </modules>
  <parent>
    <groupId>org.springframework.boot</groupId>
server/system_gateway/pom.xml
@@ -26,6 +26,7 @@
                </exclusion>
            </exclusions>
        </dependency>
       <!-- <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
server/system_gateway/src/main/java/com/doumee/Main.java
ÎļþÒÑɾ³ý
server/system_gateway/src/main/resources/bootstrap.yml
@@ -14,7 +14,7 @@
      password: nacos
      discovery:
        server-addr: http://175.27.187.84:8848 #配置Nacos地址
        namespace: dev_renkang
        namespace: dmvisit
        username: nacos
        password: nacos
    gateway:
server/system_service/src/main/java/com/doumee/dao/timer/entity/QuartzJob.java
@@ -37,6 +37,8 @@
    @Schema(description = "执行参数")
    private String params;
    @Schema(description = "模块名称")
    private String module;
    @Schema(description = "Cron表达式")
    private String cronExpres;
server/system_service/src/main/java/com/doumee/dao/timer/entity/QuartzLog.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -37,4 +38,7 @@
    private Date createTime;
    @Schema(description = "模块名称")
    private String module;
}
server/system_service/src/main/java/com/doumee/dao/timer/scheduler/QuartzManage.java
@@ -55,10 +55,12 @@
            JobDetail jobDetail = JobBuilder.newJob(QuartzRecord.class)
                                            .withIdentity(getJobKey(quartzJob.getId())).build() ;
            // æž„建Cron调度器
            CronScheduleBuilder scheduleBuilder = CronScheduleBuilder
                                                .cronSchedule(quartzJob.getCronExpres())
                                                .withMisfireHandlingInstructionDoNothing() ;
            // ä»»åŠ¡è§¦å‘å™¨
            CronTrigger trigger = TriggerBuilder.newTrigger()
                                                .withIdentity(getTriggerKey(quartzJob.getId()))
@@ -66,7 +68,7 @@
            jobDetail.getJobDataMap().put(QuartzJob.JOB_PARAM_KEY,quartzJob);
            scheduler.scheduleJob(jobDetail,trigger) ;
            // çŠ¶æ€æ ¡éªŒ
            checkStop(quartzJob) ;
//            checkStop(quartzJob) ;
        } catch (SchedulerException e){
            throw new RuntimeException("createJob Fail",e) ;
        }
server/system_service/src/main/java/com/doumee/dao/timer/scheduler/QuartzRecord.java
@@ -32,10 +32,11 @@
        try {
            // åŠ è½½å¹¶æ‰§è¡Œ
            Object target = SpringContextUtil.getBean(quartzJob.getBeanName());
            Method method = target.getClass().getDeclaredMethod("run", String.class);
            method.invoke(target, quartzJob.getParams());
            Method method = target.getClass().getDeclaredMethod("run", String.class,String.class);
            method.invoke(target, quartzJob.getParams(),quartzJob.getModule());
            long executeTime = System.currentTimeMillis() - beginTime;
            quartzLog.setTimes((int)executeTime);
            quartzLog.setModule(quartzJob.getModule());
            quartzLog.setState(LogState.LOG_SUS.getStatus());
        } catch (Exception e){
            // å¼‚常信息
server/system_service/src/main/java/com/doumee/service/timer/QuartzJobService.java
@@ -27,24 +27,6 @@
    private QuartzManage quartzManage;
    /**
     * åˆå§‹åŒ–加载定时任务
     */
    @PostConstruct
    public void init () {
        LambdaQueryWrapper<QuartzJob> queryWrapper = new LambdaQueryWrapper<>() ;
        queryWrapper.in(QuartzJob::getState, JobState.JOB_RUN.getStatus(),JobState.JOB_STOP.getStatus());
        List<QuartzJob> jobList = quartzJobMapper.selectList(queryWrapper);
        jobList.forEach(quartzJob -> {
            CronTrigger cronTrigger = quartzManage.getCronTrigger(quartzJob.getId()) ;
            if (Objects.isNull(cronTrigger)){
                quartzManage.createJob(quartzJob);
            } else {
                quartzManage.updateJob(quartzJob);
            }
        });
    }
    /**
     * ä»»åŠ¡ä¸»é”®æŸ¥è¯¢
     */
    public QuartzJob getById(Integer id) {
server/system_timer/pom.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.doumee</groupId>
        <artifactId>dmvisit</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>
    <artifactId>system_timer</artifactId>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-web</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.doumee</groupId>
            <artifactId>system_service</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
       <!-- <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>1.1.0</version>
        </dependency>-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.3.12.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
    </dependencies>
    <build>
        <finalName>system_timer</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                    <mainClass>com.doumee.SystemTimerApplication</mainClass>
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            </plugin>-->
        </plugins>
    </build>
</project>
server/system_timer/src/main/java/com/doumee/SystemTimerApplication.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.doumee;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ApplicationContext;
import org.springframework.scheduling.annotation.EnableAsync;
/**
 * å¯åŠ¨ç±»
 * @author Eva.Caesar Liu
 * @date 2023/03/21 14:49
 */
@EnableAsync
@SpringBootApplication
@EnableDiscoveryClient
@MapperScan("com.doumee.dao.*")
@EnableFeignClients(basePackages = "com.doumee.jobs")
public class SystemTimerApplication {
    public static void main(String[] args) {
        ApplicationContext context = SpringApplication.run(SystemTimerApplication.class);
        context.getEnvironment();
    }
}
server/system_timer/src/main/java/com/doumee/config/DecoderConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
package com.doumee.config;
import feign.codec.Decoder;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.cloud.openfeign.support.ResponseEntityDecoder;
import org.springframework.cloud.openfeign.support.SpringDecoder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import java.util.ArrayList;
import java.util.List;
/**
 * Author: lizhi
 * Date: 2022-02-17
 * Describe: è§£å†³ HttpMessageConverters Bean未注册问题
 */
@Configuration
public class DecoderConfig {
    @Bean
    public Decoder feignDecoder() {
        return new ResponseEntityDecoder(new SpringDecoder(feignHttpMessageConverter()));
    }
    public ObjectFactory<HttpMessageConverters> feignHttpMessageConverter() {
        final HttpMessageConverters httpMessageConverters = new HttpMessageConverters(new GateWayMappingJackson2HttpMessageConverter());
        return new ObjectFactory<HttpMessageConverters>() {
            @Override
            public HttpMessageConverters getObject() throws BeansException {
                return httpMessageConverters;
            }
        };
    }
    public class GateWayMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
        GateWayMappingJackson2HttpMessageConverter(){
            List<MediaType> mediaTypes = new ArrayList<>();
            mediaTypes.add(MediaType.valueOf(MediaType.TEXT_HTML_VALUE + ";charset=UTF-8"));
            setSupportedMediaTypes(mediaTypes);
        }
    }
}
server/system_timer/src/main/java/com/doumee/jobs/JobService.java
ÎļþÃû´Ó server/system_service/src/main/java/com/doumee/dao/timer/job/JobService.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.dao.timer.job;
package com.doumee.jobs;
/**
 * @author å…¬ä¼—号:知了一笑
@@ -6,6 +6,6 @@
 */
public interface JobService {
    void run(String params);
    void run(String params,String module);
}
server/system_timer/src/main/java/com/doumee/jobs/PrintJob.java
ÎļþÃû´Ó server/system_service/src/main/java/com/doumee/dao/timer/job/PrintJob.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.dao.timer.job;
package com.doumee.jobs;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -14,7 +14,7 @@
    private static final Logger log = LoggerFactory.getLogger(PrintJob.class);
    @Override
    public void run(String params) {
    public void run(String params,String module) {
        log.info("\n ======== \n print-job-params:{} \n ========",params);
    }
}
server/system_timer/src/main/java/com/doumee/jobs/TimerJob.java
ÎļþÃû´Ó server/system_service/src/main/java/com/doumee/dao/timer/job/TimerJob.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.dao.timer.job;
package com.doumee.jobs;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -18,7 +18,7 @@
    private static final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") ;
    @Override
    public void run(String params) {
    public void run(String params,String module) {
        log.info("\n ======== \n timer-job-params:{} \n ========",params);
        log.info("time-now:{}",format.format(new Date()));
    }
server/system_timer/src/main/java/com/doumee/jobs/service/TimerBizSevice.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.doumee.jobs.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.doumee.dao.timer.entity.JobState;
import com.doumee.dao.timer.entity.QuartzJob;
import com.doumee.dao.timer.mapper.QuartzJobMapper;
import com.doumee.dao.timer.scheduler.QuartzManage;
import org.quartz.CronTrigger;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
@Service
public class TimerBizSevice {
    @Resource
    private QuartzJobMapper quartzJobMapper ;
    @Resource
    private QuartzManage quartzManage;
    /**
     * åˆå§‹åŒ–加载定时任务
     */
    @PostConstruct
    public void init () {
        LambdaQueryWrapper<QuartzJob> queryWrapper = new LambdaQueryWrapper<>() ;
        queryWrapper.in(QuartzJob::getState, JobState.JOB_RUN.getStatus(),JobState.JOB_STOP.getStatus());
        List<QuartzJob> jobList = quartzJobMapper.selectList(queryWrapper);
        jobList.forEach(quartzJob -> {
            CronTrigger cronTrigger = quartzManage.getCronTrigger(quartzJob.getId()) ;
            if (Objects.isNull(cronTrigger)){
                quartzManage.createJob(quartzJob);
            } else {
                quartzManage.updateJob(quartzJob);
            }
        });
    }
}
server/system_timer/src/main/java/com/doumee/jobs/visits/EmpowerFegin.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.doumee.jobs.visits;
import com.doumee.core.model.ApiResponse;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
/**
 * @author å…¬ä¼—号:知了一笑
 * @since 2023-07-26 11:44
 */
@Component("visitEmpowerJob")
@FeignClient(value = "visitsTimer")
public interface EmpowerFegin   {
    @ApiOperation("开启定时查询人员设备授权结果")
    @GetMapping("/timer/empower/syncEmpowerDetailData")
    public ApiResponse syncEmpowerDetailData();
    @ApiOperation("开启定时查询人员设备授权下载进度")
    @GetMapping("/timer/empower/syncEmpowerResultData")
    public ApiResponse syncEmpowerResultData() ;
    @ApiOperation("开启定时重新下发失败的授权数据")
    @GetMapping("/timer/empower/syncEmpowerFailData")
    public ApiResponse syncEmpowerFailData();
    @ApiOperation("开启定时刷新人员设备授权")
    @GetMapping("/timer/empower/syncEmpowerData")
    public ApiResponse syncEmpowerData();
}
server/system_timer/src/main/java/com/doumee/jobs/visits/EmpowerJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package com.doumee.jobs.visits;
import com.doumee.jobs.JobService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.lang.reflect.Method;
/**
 * @author å…¬ä¼—号:知了一笑
 * @since 2023-07-26 11:44
 */
@Component("visitEmpowerJob")
public class EmpowerJob implements JobService {
    @Autowired
    private EmpowerFegin fegin;
    private static final Logger log = LoggerFactory.getLogger(EmpowerJob.class);
    @Override
    public void run(String params,String module) {
        Method method = null;
        try {
            method = fegin.getClass().getDeclaredMethod(module);
            method.invoke(fegin);
            log.info("\n ======== å®šæ—¶ä»»åŠ¡å·²æ‰§è¡Œï¼švisitEmpowerJob.========"+module);
        } catch (Exception e) {
           e.printStackTrace();
        }
    }
}
server/system_timer/src/main/resources/META-INF/MANIFEST.MF
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: com.doumee.SystemTimerApplication
server/system_timer/src/main/resources/application-dev.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
spring:
  # æ•°æ®æºé…ç½®
  datasource:
    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: doumee
    password: rtjgfEr@&0c0m
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
  redis:
    #    database: 0
    host: 127.0.0.1
    port: 6379
    password:
    timeout: 5000      # è¿žæŽ¥æ± ä¸­çš„æœ€å°ç©ºé—²è¿žæŽ¥
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
#rocketmq:
#  namesrvAddr: rmq-cn-pe335rcnn06.cn-shanghai.rmq.aliyuncs.com:8080
#  groupId: GID-wakatest
#  topic: waka-test
#  username: 4derRb4Sw5EkqUMI
#  password: v50N97wf4av8Q8I4
#knife4j:
#  enable: true
#  basic:
#    enable: true
#    username: admin
#    password: 111111
debug_model: true
########################同步数据模式  ########################
data-sync:
  org-user-data-origin: 1 #组织数据 0自建 2以海康为主 1华晟ERP系统
  visitor-data-origin: 1 #访客数据 0自建 2以海康为主 1华晟ERP系统
  need-deal-img: true #是否需要处理图片数据
# Swagger配置
swagger:
  host: 127.0.0.1
  title: ${project.name}接口文档
  description: ${project.name}接口文档
  enabled: true
  context-path:
  # ç¦ç”¨swagger时的重定向地址
  redirect-uri: /
########################微信支付相关配置########################
wx:
  pay:
    appId: wxfab6da18632e28de
    appSecret: 4ee3b22afa90287834319fc3c1635271
    mchId: 1229817002
    mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
    notifyUrl: https://dmtest.ahapp.net/smartmeeting_interface/web/api/wxPayNotify
    keyPath: /usr/local/apiclient_cert.p12
tencent:
  map:
    remoteHost: https://apis.map.qq.com
    appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
des_pwd: 123456SDFKDJF
## MQTT##
mqtt:
  host: tcp://192.168.10.198:1883
  userName: root
  passWord: 123456
  qos: 1
  clientId: ClientId_local #ClientId_local必须唯一 æ¯”如你已经定了叫ABC  é‚£ä½ å°±ä¸€ç›´å«ABC  å…¶ä»–地方就不要使用ABC了
  timeout: 10
  keepalive: 20
  topic1: A/pick/warn/#  #符号是代表整个warn下面的全部子主题 æ²¡æœ‰ç†è§£çš„话 å¯ä»¥ç™¾åº¦ä»”细理解一下
  topic2: A/cmd/resp
  topic3: ABCF
  topic4: ABCH
server/system_timer/src/main/resources/application-pro.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
spring:
  # æ•°æ®æºé…ç½®
  datasource:
    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: doumee
    password: rtjgfEr@&0c0m
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
  redis:
    #    database: 0
    host: 127.0.0.1
    port: 6379
    password:
    timeout: 5000      # è¿žæŽ¥æ± ä¸­çš„æœ€å°ç©ºé—²è¿žæŽ¥
#knife4j:
#  enable: true
#  basic:
#    enable: true
#    username: admin
#    password: doumee@168.com
debug_model: true
captcha_check: false
# Swagger配置
swagger:
  host:
  title: ${project.name}接口文档
  description: ${project.name}接口文档
  enabled: true
  # ç¦ç”¨swagger时的重定向地址
  redirect-uri: /
########################微信支付相关配置########################
wx:
  pay:
    appId: wxfab6da18632e28de
    appSecret: 4ee3b22afa90287834319fc3c1635271
    mchId: 1229817002
    mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
    notifyUrl: https://dmtest.ahapp.net/smartmeeting_interface/web/api/wxPayNotify
    keyPath: /usr/local/apiclient_cert.p12
tencent:
  map:
    remoteHost: https://apis.map.qq.com
    appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
des_pwd: 123456SDFKDJF
server/system_timer/src/main/resources/application-test.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
spring:
  # æ•°æ®æºé…ç½®
  datasource:
    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: doumee
    password: rtjgfEr@&0c0m
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
  redis:
    #    database: 0
    host: 127.0.0.1
    port: 6379
    password:
    timeout: 5000      # è¿žæŽ¥æ± ä¸­çš„æœ€å°ç©ºé—²è¿žæŽ¥
#rocketmq:
#  namesrvAddr: rmq-cn-pe335rcnn06.cn-shanghai.rmq.aliyuncs.com:8080
#  groupId: GID-wakatest
#  topic: waka-test
#  username: 4derRb4Sw5EkqUMI
#  password: v50N97wf4av8Q8I4
#knife4j:
#  enable: true
#  basic:
#    enable: true
#    username: admin
#    password: 111111
debug_model: true
# Swagger配置
swagger:
  host: dmtest.ahapp.net
  title: ${project.name}接口文档
  description: ${project.name}接口文档
  enabled: true
  context-path: /erp_api
  # ç¦ç”¨swagger时的重定向地址
  redirect-uri: /
########################同步数据模式  ########################
data-sync:
  org-user-data-origin: 1 #组织数据 0自建 2以海康为主 1华晟ERP系统
  visitor-data-origin: 1 #访客数据 0自建 2以海康为主 1华晟ERP系统
  need-deal-img: true #是否需要处理图片数据
########################微信支付相关配置########################
wx:
  pay:
    appId: wxfab6da18632e28de
    appSecret: 4ee3b22afa90287834319fc3c1635271
    mchId: 1229817002
    mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
    notifyUrl: https://dmtest.ahapp.net/smartmeeting_interface/web/api/wxPayNotify
    keyPath: /usr/local/apiclient_cert.p12
tencent:
  map:
    remoteHost: https://apis.map.qq.com
    appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
des_pwd: 123456SDFKDJF
## MQTT##
mqtt:
  host: tcp://192.168.10.198:1883
  userName: root
  passWord: 123456
  qos: 1
  clientId: ClientId_local #ClientId_local必须唯一 æ¯”如你已经定了叫ABC  é‚£ä½ å°±ä¸€ç›´å«ABC  å…¶ä»–地方就不要使用ABC了
  timeout: 10
  keepalive: 20
  topic1: A/pick/warn/#  #符号是代表整个warn下面的全部子主题 æ²¡æœ‰ç†è§£çš„话 å¯ä»¥ç™¾åº¦ä»”细理解一下
  topic2: A/cmd/resp
  topic3: ABCF
  topic4: ABCH
server/system_timer/src/main/resources/application.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
# é¡¹ç›®ä¿¡æ¯é…ç½®
project:
  name: å®šæ—¶ä»»åŠ¡æœåŠ¡
  version: 1.0.0
  env: development
#  env: production
spring:
  application:
    name: system_timer
  profiles:
    active: dev
  # JSON返回配置
  jackson:
    # é»˜è®¤æ—¶åŒº
    time-zone: GMT+8
    # é»˜è®¤æ—¥æœŸæ ¼å¼åŒ–
    date-format: yyyy-MM-dd HH:mm:ss
  servlet:
    multipart:
      max-file-size: 200MB
      max-request-size: 200MB
      enabled: true
  main:
    allow-circular-references: true
    web-application-type: reactive
# MyBatis配置
mybatis-plus:
  mapper-locations: classpath*:/mappers/**/*.xml
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# ç¼“存内容设置
cache:
  session:
    # ä¼šè¯è¿‡æœŸæ—¶é•¿(s)
    expire: 18000
  captcha:
    # éªŒè¯ç è¿‡æœŸæ—¶é•¿(s)
    expire: 300
# è·Ÿè¸ªæ—¥å¿—
trace:
  # å¼€å¯æ™ºèƒ½è·Ÿè¸ªæ¨¡å¼
  smart: true
  # æŽ’除跟踪的URL正则
  exclude-patterns: .+/list[a-zA-Z0-9\-\_]*$, .+/tree[a-zA-Z0-9\-\_]*$, .+/page[a-zA-Z0-9\-\_]*$, .+/all[a-zA-Z0-9\-\_]*$, /swagger-resources.*
# æ—¥å¿—配置
logback:
  level: INFO
  appender: ${project.env}
# dao层的日志设置为debug,方便查看sql
logging:
  level:
    com.doumee.dao: debug
# WEB服务器配置
server:
  compression:
    enabled: true
    mime-types: application/json
  port: 10010
  tomcat:
    max-swallow-size: -1
  servlet:
    session:
      timeout: PT3H  #表示12小时
server/system_timer/src/main/resources/banner.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
${AnsiColor.BLUE}
================================================================================
                             æ¬¢è¿Žä½¿ç”¨è±†ç±³æ¡†æž¶ï¼ˆå•应用版)
                                 Version :: 1.0
                         â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆ         â–ˆâ–ˆ       â–ˆâ–ˆ
                        â–‘██░░░░░ â–ˆâ–ˆ     â–‘██░██    â–ˆâ–ˆ â–ˆâ–ˆ
                        â–‘██     â–‘░██   â–‘██ â–‘░██  â–ˆâ–ˆ â–‘░██
                        â–‘██      â–‘██  â–‘██   â–‘░████   â–‘░██
                        â–‘██      â–‘██ â–‘██     â–‘░██     â–‘░██
                        â–‘██      â–ˆâ–ˆ  â–‘██      â–‘██      â–‘██
                        â–‘████████░   â–‘██      â–‘██      â–‘██
                        â–‘â–‘â–‘â–‘â–‘â–‘â–‘â–‘     â–‘â–‘       â–‘â–‘       â–‘â–‘
      å¯åŠ¨ç«¯å£: ${server.port}  å¯åŠ¨çŽ¯å¢ƒ: ${project.env}  æ—¥å¿—等级: ${logback.level}  å¯ç”¨Swagger: ${swagger.enabled}
================================================================================
server/system_timer/src/main/resources/bootstrap.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
spring:
  application:
    name: system-timer
    # å®‰å…¨é…ç½®
  security:
    # éªŒç­¾å…¬é’¥åœ°å€
    oauth2:
      authorizationserver:
        token-uri: https://
  cloud:
    loadbalancer:
      enabled: true
      nacos:
        # ä½¿ç”¨Nacos负载策略,开发环境可以利用就近访问机制定向访问,启动参数如下:
        # -Dspring.cloud.nacos.discovery.cluster-name=自定义
        enabled: true
      cache:
        # æš‚时关闭缓存
        enabled: false
    nacos:
      server-addr: http://175.27.187.84:8848 #配置Nacos地址
      username: nacos
      password: nacos
      #      config:
      #        server-addr: http://175.27.187.84:8848 #配置Nacos地址
      #        namespace: dmvisit
      #        username: nacos
      #        password: nacos
      #        file-extension: yaml
      #        group: dev
      #        data-id: com.doumee.meeting.admin
      discovery:
        server-addr: http://175.27.187.84:8848 #配置Nacos地址
        namespace: dmvisit
        username: nacos
        password: nacos
server/visits/admin_timer/pom.xml
@@ -24,55 +24,7 @@
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
    <!--
        <build>
            <finalName>smartmeeting-admin</finalName>
            <pluginManagement>&lt;!&ndash; lock down plugins versions to avoid using Maven
                    defaults (may be moved to parent pom) &ndash;&gt;
                <plugins>
                    <plugin>
                        <artifactId>maven-clean-plugin</artifactId>
                        <version>3.1.0</version>
                    </plugin>
                    &lt;!&ndash; see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging &ndash;&gt;
                    <plugin>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>3.0.2</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.8.0</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.22.1</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>3.2.2</version>
                        <configuration>
                            <webResources>
                                <resource>
                                    <directory>${project.basedir}/../lib</directory>
                                    <targetPath>WEB-INF/lib/</targetPath>
                                    <includes>
                                        <include>*.jar</include>
                                    </includes>
                                </resource>
                            </webResources>
                        </configuration>
                    </plugin>
                    <plugin>
                        <artifactId>maven-install-plugin</artifactId>
                        <version>2.5.2</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <version>2.8.2</version>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>-->
    <build>
        <finalName>admin_timer</finalName>
        <resources>
server/visits/admin_timer/src/main/java/com/doumee/Main.java
ÎļþÒÑɾ³ý
server/visits/admin_timer/src/main/java/com/doumee/TimerApplication.java
@@ -4,6 +4,7 @@
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.ApplicationContext;
import org.springframework.scheduling.annotation.EnableAsync;
@@ -16,6 +17,7 @@
@EnableAsync
@SpringBootApplication
@MapperScan("com.doumee.dao.*")
@EnableDiscoveryClient
public class TimerApplication {
    public static void main(String[] args) {
server/visits/admin_timer/src/main/java/com/doumee/api/HkDeviceTimerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.doumee.api;
import com.doumee.api.BaseController;
import com.doumee.core.model.ApiResponse;
import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncParkServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
 */
@Api(tags = "设备定时器接口")
@RestController
@RequestMapping("/timer/device")
public class HkDeviceTimerController extends BaseController {
    @Autowired
    private HkSyncDeviceServiceImpl hkSyncDeviceService;
    @ApiOperation("开启定时查询设备状态")
    @GetMapping("/getAscDeviceStatus")
    public ApiResponse getAscDeviceStatus() {
        hkSyncDeviceService.getAscDeviceStatus();
        return ApiResponse.success("开启定时查询设备状态成功");
    }
}
server/visits/admin_timer/src/main/java/com/doumee/api/HkEmpowerTimerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
package com.doumee.api;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Cars;
import com.doumee.service.business.CarsService;
import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
import com.doumee.service.business.impl.hksync.fhk.HkSyncVehicleFromHKServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
 */
@Api(tags = "人员设备授权定时器接口")
@RestController
@RequestMapping("/timer/empower")
public class HkEmpowerTimerController extends BaseController {
    @Autowired
    private HkSyncEmpowerServiceImpl hkSyncEmpowerService;
    public static Integer endId2 = 0;
    @ApiOperation("开启定时查询人员设备授权结果")
    @GetMapping("/syncEmpowerDetailData")
    public ApiResponse syncEmpowerDetailData() {
        if(endId2 ==null){
            endId2 =0;
        }
        endId2 =  hkSyncEmpowerService.syncEmpowerDetailData(endId2);
        for (int i = 0; i < 9; i++) {
            if(endId2!=null){
                endId2 =  hkSyncEmpowerService.syncEmpowerDetailData(endId2);
            }
        }
        return ApiResponse.success("开启定时查询人员设备授权结果成功");
    }
    @ApiOperation("开启定时查询人员设备授权下载进度")
    @GetMapping("/syncEmpowerResultData")
    public ApiResponse syncEmpowerResultData() {
        hkSyncEmpowerService.syncEmpowerResultData(0);
        return ApiResponse.success("开启定时查询人员设备授权下载进度成功");
    }
    @ApiOperation("开启定时重新下发失败的授权数据")
    @GetMapping("/syncEmpowerFailData")
    public ApiResponse syncEmpowerFailData() {
        hkSyncEmpowerService.syncEmpowerFailData(0);
        return ApiResponse.success("开启定时重新下发失败的授权数据成功");
    }
    public static Integer endId = 0;
    @Autowired
    private HkSyncVehicleFromHKServiceImpl hkSyncVehicleFromHKService;
    @ApiOperation("开启定时刷新人员设备授权")
    @GetMapping("/syncEmpowerData")
    public ApiResponse syncEmpowerData() {
        if(endId ==null){
            endId =0;
        }
        endId = hkSyncEmpowerService.syncEmpowerData(endId);
        for (int i = 0; i < 9; i++) {
            if(endId!=null){
                endId = hkSyncEmpowerService.syncEmpowerData(endId);
            }
        }
        return ApiResponse.success("开启定时刷新人员设备授权成功");
    }
}
server/visits/admin_timer/src/main/java/com/doumee/api/HkImageTimerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.doumee.api;
import com.doumee.api.BaseController;
import com.doumee.config.DataSyncConfig;
import com.doumee.core.model.ApiResponse;
import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncImgServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
 */
@Api(tags = "海康事件图片下载定时器接口")
@RestController
@RequestMapping("/timer/image")
public class HkImageTimerController extends BaseController {
    /**
     * æ˜¯å¦å¼€å‘者
     */
    @Autowired
    private DataSyncConfig dataSyncConfig;
    @Autowired
    private HkSyncImgServiceImpl hkSyncImgService;
    @ApiOperation("开启定时下载海康系统图片数据")
    @GetMapping("/downHKImgs")
    public ApiResponse downHKImgs() {
        if(dataSyncConfig.getNeedDealImg()!=null && dataSyncConfig.getNeedDealImg()){
            hkSyncImgService.downHKImgs(0);
        }
        return ApiResponse.success("开启定时下载海康系统图片数据成功");
    }
}
server/visits/admin_timer/src/main/java/com/doumee/api/HkLogTimerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package com.doumee.api;
import com.doumee.api.BaseController;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.service.business.InterfaceLogService;
import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl;
import com.doumee.service.business.impl.hksync.fhk.HkSyncVisitFromHKServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
 */
@Api(tags = "日志定时器接口")
@RestController
@RequestMapping("/timer/log")
public class HkLogTimerController extends BaseController {
    @Autowired
    private InterfaceLogService interfaceLogService;
    @ApiOperation("开启定时接口日志清理")
    @GetMapping("/clearThreeMonthLog")
    public ApiResponse clearThreeMonthLog() {
        interfaceLogService.clearThreeMonthLog();
        return ApiResponse.success("开启定时接口日志清理成功");
    }
}
server/visits/admin_timer/src/main/java/com/doumee/api/HkParkTimerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.doumee.api;
import com.doumee.api.BaseController;
import com.doumee.core.model.ApiResponse;
import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncParkServiceImpl;
import com.doumee.service.business.impl.hksync.fhk.HkSyncVehicleFromHKServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
 */
@Api(tags = "停车场接口")
@RestController
@RequestMapping("/timer/park")
public class HkParkTimerController extends BaseController {
    @Autowired
    private HkSyncVehicleFromHKServiceImpl hkSyncVehicleFromHKService;
    @Autowired
    private HkSyncParkServiceImpl hkSyncParkService;
    @ApiOperation("开启定时车辆包期授权")
    @GetMapping("/syncParkBookData")
    public ApiResponse syncParkBookData() {
        hkSyncParkService.syncParkBookData();
        return ApiResponse.success("开启定时车辆包期授权成功");
    }
    @ApiOperation("开启定时查询车辆查询")
    @GetMapping("/syncVehicleUpdateData")
    public ApiResponse syncVehicleUpdateData() {
        hkSyncVehicleFromHKService.syncVehicleUpdateData(new Date(System.currentTimeMillis()-24*60*60*1000));
        return ApiResponse.success("开启定时查询车辆查询成功");
    }
}
server/visits/admin_timer/src/main/java/com/doumee/api/HkUsersTimerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.doumee.api;
import com.doumee.api.BaseController;
import com.doumee.config.DataSyncConfig;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl;
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
 */
@Api(tags = "组织人员定时器接口")
@RestController
@RequestMapping("/timer/orguser")
public class HkUsersTimerController extends BaseController {
    @Autowired
    private HkSyncOrgUserToHKServiceImpl hkSyncOrgUserService;
    @Autowired
    private MemberService memberService;
    /**
     * æ˜¯å¦å¼€å‘者
     */
    @Autowired
    private DataSyncConfig dataSyncConfig;
    @ApiOperation("开启定时同步海康组织数据")
    @GetMapping("/syncOrgData")
    public ApiResponse syncOrgData() {
        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp){
            //如果是ERP系统同步下发
            hkSyncOrgUserService.syncOrgData();
        }
        return ApiResponse.success("开启定时同步海康组织数据成功");
    }
    @ApiOperation("开启定时重新下发删除人员数据")
    @GetMapping("/syncMemberDelData")
    public ApiResponse syncMemberDelData() {
        hkSyncOrgUserService.syncMemberDelData();
        return ApiResponse.success("开启定时重新下发删除人员数据成功");
    }
    @ApiOperation("开启定时同步海康人员数据")
    @GetMapping("/syncUserData")
    public ApiResponse syncUserData() {
        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp) {
            //如果是ERP系统同步下发
            hkSyncOrgUserService.syncUserData();
        }
        return ApiResponse.success("开启定时同步海康人员数据成功");
    }
    @ApiOperation("开启定时冻结人员")
    @GetMapping("/memberFreeze")
    public ApiResponse memberFreeze() {
        memberService.memberFreeze();
        return ApiResponse.success("开启定时冻结人员成功");
    }
}
server/visits/admin_timer/src/main/java/com/doumee/api/HkVisitTimerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
package com.doumee.api;
import com.doumee.api.BaseController;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl;
import com.doumee.service.business.impl.hksync.fhk.HkSyncVisitFromHKServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
 */
@Api(tags = "访客定时器接口")
@RestController
@RequestMapping("/timer/visit")
public class HkVisitTimerController extends BaseController {
    @Autowired
    private HkSyncVisitServiceImpl hkSyncVisitService;
    @Autowired
    private HkSyncVisitFromHKServiceImpl hkSyncVisitFromHKService;
    @ApiOperation("开启定时下发访客预约申请")
    @GetMapping("/syncVisitData")
    public ApiResponse syncVisitData() {
        hkSyncVisitService.syncVisitData();
        return ApiResponse.success("开启定时下发访客预约申请成功");
    }
    @ApiOperation("开启定时查询访客预约状态")
    @GetMapping("/getOutTimeVisitRecord")
    public ApiResponse getOutTimeVisitRecord() {
        hkSyncVisitService.getOutTimeVisitRecord();
        return ApiResponse.success("开启定时查询访客预约状态成功");
    }
    @ApiOperation("开启定时今日的访客预约数据")
    @GetMapping("/syncVistAppointData")
    public ApiResponse syncVistAppointData() {
        if(!Constants.DEALING_FROM_HK_VISIT){
            try {
                Constants.DEALING_FROM_HK_VISIT =true;
                hkSyncVisitFromHKService.syncVistAppointData(new Date());
                Constants.DEALING_FROM_HK_VISIT =false;
            }catch (Exception e){
            }finally {
                Constants.DEALING_FROM_HK_VISIT =false;
            }
        }
        return ApiResponse.success("开启定时今日的访客预约数据成功");
    }
}
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleCommonTool.java
ÎļþÒÑɾ³ý
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleDeviceStatusTool.java
ÎļþÒÑɾ³ý
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleMemberDelTool.java
ÎļþÒÑɾ³ý
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleParkBookTool.java
ÎļþÒÑɾ³ý
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java
ÎļþÒÑɾ³ý
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleTaskFailRetrylTool.java
ÎļþÒÑɾ³ý
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java
ÎļþÒÑɾ³ý
server/visits/admin_timer/src/main/java/com/doumee/task/ScheduleTaskSendTool.java
ÎļþÒÑɾ³ý
server/visits/admin_timer/src/main/resources/application.yml
@@ -10,7 +10,7 @@
  #  application:
  #    name: doumeevisit
  profiles:
    active: proHS
    active: dev
  # JSON返回配置
  jackson:
server/visits/admin_timer/src/main/resources/bootstrap.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
spring:
  application:
    name: visitsTimer
    # å®‰å…¨é…ç½®
  security:
    # éªŒç­¾å…¬é’¥åœ°å€
    oauth2:
      authorizationserver:
        token-uri: https://
  cloud:
    loadbalancer:
      enabled: true
      nacos:
        # ä½¿ç”¨Nacos负载策略,开发环境可以利用就近访问机制定向访问,启动参数如下:
        # -Dspring.cloud.nacos.discovery.cluster-name=自定义
        enabled: true
      cache:
        # æš‚时关闭缓存
        enabled: false
    nacos:
      server-addr: http://175.27.187.84:8848 #配置Nacos地址
      username: nacos
      password: nacos
#      config:
#        server-addr: http://175.27.187.84:8848 #配置Nacos地址
#        namespace: dmvisit
#        username: nacos
#        password: nacos
#        file-extension: yaml
#        group: dev
#        data-id: com.doumee.meeting.admin
      discovery:
        server-addr: http://175.27.187.84:8848 #配置Nacos地址
        namespace: dmvisit
        username: nacos
        password: nacos
server/visits/admin_timer/src/main/resources/logback.xml
ÎļþÒÑɾ³ý
server/visits/dmvisit_admin/src/main/java/com/doumee/api/CloudCarsController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CloudCarsController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.api;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
@@ -28,7 +28,6 @@
@RestController
@RequestMapping("/cloudService/cars")
public class CloudCarsController extends BaseController {
    @Autowired
    private CarsService carsService;
    @Autowired
server/visits/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
ÎļþÒÑɾ³ý
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -950,16 +950,16 @@
     * @return
     */
    public  static  BaseResponse<BaseListPageResponse<VehicleTimeRangeInfoResponse>>   vehicleTimeRangeList(TimeRangeListRequest param){
        log.info("【海康增量人员查询】================开始===="+JSONObject.toJSONString(param));
        log.info("【海康增量车辆查询】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.vehicleTimeRangeList(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<BaseListPageResponse<VehicleTimeRangeInfoResponse>> >(){};
            BaseResponse<BaseListPageResponse<VehicleTimeRangeInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
            logResult(result,"海康增量人员查询");
            logResult(result,"海康增量车辆查询");
            return  result;
        }catch (Exception e){
            log.error("【海康增量人员查询】================失败====:\n"+ e.getMessage());
            log.error("【海康增量车辆查询】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
server/visits/pom.xml
@@ -46,11 +46,6 @@
        </dependency>
        <!-- æŽ¥å£æ–‡æ¡£ -->
        <!--dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
            <version>4.3.0</version>
        </dependency>-->
    </dependencies>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>