cjl
2023-07-07 1f250ebddca2e954887186614c403ae6701c63de
feat: 任务按照天补偿数据
2 files added
3 files modified
186 ■■■■■ changed files
screen-job/src/main/java/com/moral/api/controller/PubController.java 52 ●●●●● patch | view | raw | blame | history
screen-job/src/main/java/com/moral/api/service/HistoryDailyService.java 4 ●●● patch | view | raw | blame | history
screen-job/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java 15 ●●●● patch | view | raw | blame | history
screen-job/src/main/java/com/moral/api/task/HistoryTableInsertTask.java 6 ●●●● patch | view | raw | blame | history
screen-job/src/main/resources/application-qa.yml 109 ●●●●● 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