screen-job/src/main/java/com/moral/api/controller/PubController.java | ●●●●● patch | view | raw | blame | history | |
screen-job/src/main/java/com/moral/api/service/HistoryDailyService.java | ●●●●● patch | view | raw | blame | history | |
screen-job/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
screen-job/src/main/java/com/moral/api/task/HistoryTableInsertTask.java | ●●●●● patch | view | raw | blame | history | |
screen-job/src/main/resources/application-qa.yml | ●●●●● patch | view | raw | blame | history |
screen-job/src/main/java/com/moral/api/controller/PubController.java
New file @@ -0,0 +1,52 @@ package com.moral.api.controller; import com.moral.api.service.HistoryDailyService; import com.moral.constant.ResultMessage; import com.moral.util.DateUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; 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; /** * @ClassName UserController * @Description 用户管理 * @Author 陈凯裕 * @Date 2021/3/22 13:52 * @Version TODO **/ @Slf4j @Api(tags = {"公共功能"}) @RestController @RequestMapping("/pub") public class PubController { @Autowired private HistoryDailyService historyDailyService; @GetMapping("insertHistoryDaily") @ApiOperation(value = "天数据补录", notes = "天数据补录") public ResultMessage insertHistoryDaily(String time) { Date d = DateUtils.getDate(time,"yyyy-MM-dd"); historyDailyService.insertHistoryDaily(time); int i = 0; return new ResultMessage(); } public static void main(String[] args) { String s = "2023-9-01"; Date d = DateUtils.getDate(s,"yyyy-MM-dd"); System.out.println(DateUtils.dateToDateFullString(d)); //System.out.println( DateUtils.dateToDateFullString(DateUtils.getDateOfDay(d, -1), "yyyy-MM-dd")); } } screen-job/src/main/java/com/moral/api/service/HistoryDailyService.java
@@ -6,6 +6,8 @@ import com.moral.api.entity.HistoryDaily; import com.baomidou.mybatisplus.extension.service.IService; import javax.xml.crypto.Data; /** * <p> * 服务类 @@ -17,6 +19,6 @@ public interface HistoryDailyService extends IService<HistoryDaily> { //日数据统计 void insertHistoryDaily(); void insertHistoryDaily(String time); } screen-job/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java
@@ -17,7 +17,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; import javax.xml.crypto.Data; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -49,9 +51,14 @@ @Override @Transactional public void insertHistoryDaily() { public void insertHistoryDaily(String time) { String format = DateUtils.yyyy_MM_dd_EN; Date now = new Date(); Date now; if(StringUtils.isEmpty(time)){ now = new Date(); } else { now = DateUtils.getDate(time,"yyyy-MM-dd"); } //开始时间,昨日 Date start = DateUtils.dataToTimeStampTime(DateUtils.getDateOfDay(now, -1), format); //结束时间,今日 @@ -60,7 +67,6 @@ QueryWrapper<Sensor> sensorQueryWrapper = new QueryWrapper<>(); sensorQueryWrapper.select("code", "lower", "upper").eq("is_delete", Constants.NOT_DELETE); List<Sensor> sensors = sensorService.list(sensorQueryWrapper); //获取所有设备小时数据 Map<String, Object> prop = new HashMap<>(); String timeUnits = DateUtils.dateToDateString(start, DateUtils.yyyyMM_EN); @@ -70,6 +76,7 @@ List<Map<String, Object>> dailyData = historyHourlyService.selectDailyData(prop); if (dailyData.size() == 0) { System.out.println("没有小时数据"+DateUtils.dateToDateString(start)); return; } @@ -179,8 +186,8 @@ dataMap.put("value", JSONObject.toJSONString(jsonMap)); insertData.add(dataMap); }); //存入数据库 historyDailyMapper.insertHistoryDaily(insertData); System.out.println("补偿完成"); } } screen-job/src/main/java/com/moral/api/task/HistoryTableInsertTask.java
@@ -12,6 +12,9 @@ import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import javax.xml.crypto.Data; import java.util.Date; @Component public class HistoryTableInsertTask { @@ -46,7 +49,8 @@ @XxlJob("insertHistoryDaily") public ReturnT insertHistoryDaily() { try { historyDailyService.insertHistoryDaily(); Date now = new Date(); historyDailyService.insertHistoryDaily(null); } catch (Exception e) { XxlJobHelper.log(e.getMessage()); return ReturnT.FAIL; screen-job/src/main/resources/application-qa.yml
New file @@ -0,0 +1,109 @@ server: port: 8083 tomcat: uri-encoding: UTF-8 #最小线程数 min-spare-threads: 500 #最大线程数 max-threads: 2500 #最大链接数 max-connections: 6500 #最大等待队列长度 accept-count: 1000 spring: profiles: active: dev include: moduleFormColumn application: name: screen-job redis: host: r-bp1hez4g7rkqjswpaypd1.redis.rds.aliyuncs.com port: 6379 password: moral_123456 timeout: 30000 jedis: pool: max-active: 256 max-wait: 30000 max-idle: 64 min-idle: 32 lettuce: pool: max-active: 256 max-idle: 64 max-wait: 30000 min-idle: 32 tokenRedis: host: r-bp1hez4g7rkqjswpaypd1.redis.rds.aliyuncs.com port: 6379 password: moral_123456 timeout: 30000 database: 14 pool: max-active: 256 max-wait: 30000 max-idle: 64 min-idle: 32 datasource: minIdle: 1 time-between-eviction-runs-millis: 60000 max-active: 20 test-while-idle: true validation-query: select 'x' filters: stat type: com.alibaba.druid.pool.DruidDataSource max-wait: 60000 url: jdbc:mysql://121.199.44.85:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: moral_123456 test-on-borrow: false sql-script-encoding: utf-8 pool-prepared-statements: true min-evictable-idle-time-millis: 300000 initial-size: 1 driver-class-name: com.mysql.cj.jdbc.Driver max-conn-lifetime-millis: 20 test-on-return: false mybatis-plus: mapper-locations: classpath:mapper/*.xml global-config: db-config: id-type: auto field-strategy: NOT_EMPTY db-type: MYSQL configuration: map-underscore-to-camel-case: true call-setters-on-nulls: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl logging: config: classpath:logback.xml xxl: job: admin: # 调度中心部署地址:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调" addresses: http://127.0.0.1:8090/xxl-job-admin #执行器通讯TOKEN,无TOKEN则可以空白 accessToken: #执行器配置,可以配置多个 executor: # 执行器的名字和地址信息配置:是该执行器心跳注册分组依据; #地址信息用于"调度中心请求并触发任务"和"执行器注册"。 #执行器默认端口为9999,执行器IP默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用。 #单机部署多个执行器时,注意要配置不同执行器端口 appname: xxl-job-executor-sample-springboot ip: port: 9999 #执行器运行日志文件存储的磁盘位置,需要对该路径拥有读写权限 logpath: /data/applogs/xxl-job/jobhandler #执行器日志文件定期清理功能,指定日志保存天数,过期自动删除,最少保存3天否则不生效,-1则不启动。 logretentiondays: -1