|
@ -1,7 +1,15 @@
|
|
|
package com.yihu.jw.quota.etl;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import org.joda.time.DateTime;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.ZoneId;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.time.temporal.TemporalAccessor;
|
|
|
import java.time.temporal.TemporalField;
|
|
|
import java.time.temporal.WeekFields;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* Created by chenweida on 2017/6/1.
|
|
@ -50,9 +58,9 @@ public class Contant {
|
|
|
public static final String area_team = "9";//行政区划 团队
|
|
|
}
|
|
|
|
|
|
public static class quota{
|
|
|
public static final String dataLeval_all="1";
|
|
|
public static final String dataLeval_oneDay="2";
|
|
|
public static class quota {
|
|
|
public static final String dataLeval_all = "1";
|
|
|
public static final String dataLeval_oneDay = "2";
|
|
|
|
|
|
}
|
|
|
|
|
@ -88,6 +96,10 @@ public class Contant {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
System.out.println(main_dimension_timeLevel.getStartTime("1"));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 主维度 时间维度
|
|
|
*/
|
|
@ -96,52 +108,129 @@ public class Contant {
|
|
|
public static final String month = "2";
|
|
|
public static final String week = "3";
|
|
|
public static final String day = "4";
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 从维度常量
|
|
|
*/
|
|
|
public static class slave_dimension {
|
|
|
public static final String sex = "1";//性别
|
|
|
public static final String age = "2";//年龄段
|
|
|
}
|
|
|
public static String getStartTime(String key) {
|
|
|
LocalDate today = LocalDate.now();
|
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
switch (key) {
|
|
|
case year: {
|
|
|
//去年度第一天
|
|
|
return simpleDateFormat.format(getCurrYearFirst(-1));
|
|
|
}
|
|
|
case month: {
|
|
|
//上个月第一天
|
|
|
return getYesterMonthDay(simpleDateFormat, -1);
|
|
|
}
|
|
|
case week: {
|
|
|
//上周周第一天
|
|
|
return getStartDayOfWeek(simpleDateFormat, -1);
|
|
|
}
|
|
|
case day: {
|
|
|
//昨天
|
|
|
return getYesterday();
|
|
|
}
|
|
|
}
|
|
|
return getYesterday();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取这个月第一天
|
|
|
*
|
|
|
* @param today
|
|
|
* @return
|
|
|
*/
|
|
|
private static String getCurrentMonthDay(LocalDate today) {
|
|
|
LocalDate firstday = LocalDate.of(today.getYear(), today.getMonth(), 1);
|
|
|
return firstday.format(DateTimeFormatter.ISO_DATE);
|
|
|
}
|
|
|
|
|
|
public static class slave_dimension_key {
|
|
|
public static final String one = "one";
|
|
|
public static final String two = "two";
|
|
|
/**
|
|
|
* 获取上个月第一天
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
private static String getYesterMonthDay(SimpleDateFormat simpleDateFormat, Integer n) {
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
int month = calendar.get(Calendar.MONTH);
|
|
|
calendar.set(Calendar.MONTH, month + n);
|
|
|
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
|
|
|
Date strDateTo = calendar.getTime();
|
|
|
return simpleDateFormat.format(strDateTo);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取本周第一天
|
|
|
*
|
|
|
* @param simpleDateFormat
|
|
|
* @param n 为推迟的周数,1本周,-1向前推迟一周,2下周,依次类推
|
|
|
* @return
|
|
|
*/
|
|
|
private static String getStartDayOfWeek(SimpleDateFormat simpleDateFormat, Integer n) {
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
cal.add(Calendar.DATE, n * 7);
|
|
|
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
|
|
|
cal.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
cal.set(Calendar.MINUTE, 0);
|
|
|
cal.set(Calendar.SECOND, 0);
|
|
|
Date date = cal.getTime();
|
|
|
return simpleDateFormat.format(date);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取去年的第一天
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
private static Date getCurrYearFirst(Integer n) {
|
|
|
Calendar currCal = Calendar.getInstance();
|
|
|
int currentYear = currCal.get(Calendar.YEAR) + n;
|
|
|
return getYearFirst(currentYear);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取某年第一天日期
|
|
|
*
|
|
|
* @param year 年份
|
|
|
* @return Date
|
|
|
*/
|
|
|
private static Date getYearFirst(int year) {
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
calendar.clear();
|
|
|
calendar.set(Calendar.YEAR, year);
|
|
|
Date currYearFirst = calendar.getTime();
|
|
|
return currYearFirst;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取昨天
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
private static String getYesterday() {
|
|
|
return new org.joda.time.LocalDate(new DateTime().minusDays(1)).toString("yyyy-MM-dd");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
public static class save_status {
|
|
|
public static final String success = "1";
|
|
|
public static final String fail = "0";
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 数据过滤用到的参量
|
|
|
*/
|
|
|
|
|
|
public static class role {
|
|
|
public static final String not_null = "1";//非空
|
|
|
}
|
|
|
|
|
|
public static class save {
|
|
|
public static final String es = "1";
|
|
|
public static final String mysql = "2";
|
|
|
}
|
|
|
|
|
|
public static class convert {
|
|
|
public static String level_age_1 = "1";
|
|
|
public static String level_age_2 = "2";
|
|
|
public static String level_age_3 = "3";
|
|
|
public static String level_age_4 = "4";
|
|
|
public static String level_age_5 = "5";
|
|
|
public static String level_age_6 = "6";
|
|
|
public static String level_age_1_name = "0~6";
|
|
|
public static String level_age_2_name = "7~18";
|
|
|
public static String level_age_3_name = "19~30";
|
|
|
public static String level_age_4_name = "31~50";
|
|
|
public static String level_age_5_name = "51~65";
|
|
|
public static String level_age_6_name = ">65";
|
|
|
public static class quartz_cron {
|
|
|
//每年 1月1号 0点 0点0秒触发
|
|
|
public static final String everyYearFirstDay = "0 0 0 1 1 ? *";
|
|
|
//每个月1号 0点 0点0秒触发
|
|
|
public static final String everyMonthFirstDay = "0 0 0 1 * ?";
|
|
|
//每周一 0点 0点0秒触发
|
|
|
public static final String everyWeekFirstDay = "0 0 0 ? * MON";
|
|
|
//每天0点0分 0秒触发
|
|
|
public static final String everyDay = "0 0 0 * * ?";
|
|
|
}
|
|
|
|
|
|
}
|