燕山石化溯源三维电子沙盘-【后端】-服务
1
13693261870
2023-07-28 fedb6864b71fc8961e93fa465eb55bed95527b4a
1
已修改2个文件
134 ■■■■ 文件已修改
src/main/java/com/yssh/controller/WarningAnalyseController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/utils/DateUtils.java 129 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/controller/WarningAnalyseController.java
@@ -2,6 +2,7 @@
import com.yssh.entity.Qxsh;
import com.yssh.utils.CacheUtils;
import com.yssh.utils.DateUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -28,8 +29,6 @@
public class WarningAnalyseController {
    @Resource
    private WarningAnalyseService warningService;
    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
    /**
     * 1.查询当前时间的所有点位value值(以47.dat查询即可)
@@ -73,7 +72,7 @@
    public Result locationDataChange() {
        //return Result.OK(warningService.selectEachLocationDataChange());
        String key = dateFormat.format(new Date()) + "_local";
        String key = DateUtils.getYyyyMmDd(new Date()) + "_local";
        Object obj = CacheUtils.get(key);
        Map<String, List<Double>> map;
src/main/java/com/yssh/utils/DateUtils.java
@@ -21,23 +21,25 @@
    public static String YYYYMM = "yyyyMM";
    public static String YYYYMMDD = "yyyyMMdd";
    public static String YYYYMMDDHH = "yyyyMMddHH";
    public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
    public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
    public static String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
    public static String YYYY_MM_DD_HH = "yyyy-MM-dd HH";
    private static String[] parsePatterns = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
    private static String[] parsePatterns = {"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
            "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss",
            "yyyy.MM.dd HH:mm", "yyyy.MM" };
            "yyyy.MM.dd HH:mm", "yyyy.MM"};
    /**
     * 获取当前Date型日期
     *
     *
     * @return Date() 当前日期
     */
    public static Date getNowDate() {
@@ -46,7 +48,7 @@
    /**
     * 获取当前日期, 默认格式为yyyy-MM-dd
     *
     *
     * @return String
     */
    public static String getDate() {
@@ -83,6 +85,10 @@
    public static String getYyyyMm(Date date) {
        return new SimpleDateFormat(YYYYMM).format(date);
    }
    public static String getYyyyMmDd(Date date) {
        return new SimpleDateFormat(YYYYMMDD).format(date);
    }
    public static String getYyyyMmDdHh(Date date) {
@@ -151,38 +157,38 @@
        // long sec = diff % nd % nh % nm / ns;
        return day + "天" + hour + "小时" + min + "分钟";
    }
    /**
     * @Title: differHour
     * @throws
     * @Title: differHour
     * @Description: 获取两个时间差几个小时
     * @param: @param endDate
     * @param: @param nowDate
     * @param: @return
     * @return: long
     * @throws
     * @param: @return
     * @return: long
     */
    public static int differDay(Date startDate, Date endDate){
    public static int differDay(Date startDate, Date endDate) {
        long nd = 1000 * 24 * 60 * 60;
        long diff = endDate.getTime() - startDate.getTime();
        double dd = Double.valueOf(String.valueOf(diff)) / nd;
        // 计算差多少天
        return Double.valueOf(Math.ceil(dd)).intValue();
    }
    /**
     * @Description: 获取一段时间间隔
     * @param:date 需要操作的时间对象
     * @param:day 操作的时间间隔
     *     正数为之后一段时间
     *     负数为之前一段时间
     * @param:day 操作的时间间隔
     * 正数为之后一段时间
     * 负数为之前一段时间
     * @param:dateType 操作的时间时分秒天选择
     * 常用有:
     *     Calendar.MINUTE 分
     *     Calendar.HOUR_OF_DAY 时
     *     Calendar.DATE 天
     *     Calendar.MONTH 月
     * Calendar.MINUTE 分
     * Calendar.HOUR_OF_DAY 时
     * Calendar.DATE 天
     * Calendar.MONTH 月
     */
    public static Date getAPeriodOfTime(Date date, int day,int dateType) {
    public static Date getAPeriodOfTime(Date date, int day, int dateType) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(dateType, day);
@@ -205,26 +211,27 @@
        return times;
    }
    /**
     *
     */
    public static Map<Date, Date> segmentationDateByTimeQuantum(Date startDate, Date endDate, int timeQuantum,int dateType){
    public static Map<Date, Date> segmentationDateByTimeQuantum(Date startDate, Date endDate, int timeQuantum, int dateType) {
        LinkedHashMap<Date, Date> result = new LinkedHashMap<Date, Date>();
        long startTimeMillisecond= startDate.getTime();
        long startTimeMillisecond = startDate.getTime();
        long endTimeMillisecond = endDate.getTime();
        Long quantumTimeMillisecond = 0L;
        switch (dateType) {
        case Calendar.DATE:
            quantumTimeMillisecond = new Integer(1000 * 60 * 60 * 24 * timeQuantum).longValue();
            break;
        case Calendar.HOUR_OF_DAY:
            quantumTimeMillisecond = new Integer(1000 * 60 * 60 * timeQuantum).longValue();
            break;
        case Calendar.MINUTE:
            quantumTimeMillisecond = new Integer(1000 * 60 * timeQuantum).longValue();
            break;
        default:
            break;
            case Calendar.DATE:
                quantumTimeMillisecond = new Integer(1000 * 60 * 60 * 24 * timeQuantum).longValue();
                break;
            case Calendar.HOUR_OF_DAY:
                quantumTimeMillisecond = new Integer(1000 * 60 * 60 * timeQuantum).longValue();
                break;
            case Calendar.MINUTE:
                quantumTimeMillisecond = new Integer(1000 * 60 * timeQuantum).longValue();
                break;
            default:
                break;
        }
        for (long time = startTimeMillisecond; time < endTimeMillisecond; time += quantumTimeMillisecond) {
            Date beginDate = new Date(time);
@@ -236,30 +243,32 @@
        }
        return result;
    }
    /**
     * 获取本月第一天
     * @return String
     **/
    public static Date getMonthStart() {
        Calendar cal = Calendar.getInstance();
        //cal.set(Calendar.MONTH, 3);
        cal.set(Calendar.DAY_OF_MONTH, 1);
        return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00");
    }
    /**
     * 获取本月最后一天
     * @return String
     **/
    public static Date getMonthEnd() {
        Calendar cal = Calendar.getInstance();
        //cal.set(Calendar.MONTH, 3);
        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
        return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 23:59:59");
    }
    public static void main(String[] args) {
    /**
     * 获取本月第一天
     *
     * @return String
     **/
    public static Date getMonthStart() {
        Calendar cal = Calendar.getInstance();
        //cal.set(Calendar.MONTH, 3);
        cal.set(Calendar.DAY_OF_MONTH, 1);
        return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00");
    }
    /**
     * 获取本月最后一天
     *
     * @return String
     **/
    public static Date getMonthEnd() {
        Calendar cal = Calendar.getInstance();
        //cal.set(Calendar.MONTH, 3);
        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
        return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 23:59:59");
    }
    public static void main(String[] args) {
        //System.out.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getMonthStart()));
        //System.err.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getMonthEnd()));
        System.out.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getAPeriodOfTime(getNowDate(), -7, Calendar.DATE)));