先创建表
CREATE TABLE config_calendar
(
rep_date
date NOT NULL COMMENT ‘日期’,
rep_year
int(8) NOT NULL COMMENT ‘年号’,
rep_month
int(8) NOT NULL COMMENT ‘月’,
rep_day
int(8) NOT NULL COMMENT ‘天’,
rep_week
int(8) NOT NULL COMMENT ‘周’,
rep_status
int(8) DEFAULT ‘0’ COMMENT ‘0:工作日;1:周末休息日;2:法定休息日;3:调休工作日’,
enable_flag
int(8) NOT NULL COMMENT ‘逻辑删除,初始化1’,
PRIMARY KEY (repDate
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=‘全年日期表’;
存储过程
BEGIN
DECLARE count INT DEFAULT 0;
DECLARE startDay DATE ;
DECLARE yearNum INT DEFAULT 365;
DECLARE workOrWeek INT DEFAULT 1;
DECLARE yearBool INT DEFAULT 0;
DECLARE db_status_ INT DEFAULT 0;
#判断是否数据存在
SELECT count(*) INTO yearBool FROM config_calendar WHERE rep_year=yaerParam;
IF yearBool=0 THEN
SET startDay = DATE(concat(yaerParam,’-01-01’));
#判断平闰年
IF yaerParam % 4 = 0 AND yaerParam % 100 <> 0 OR yaerParam % 400 = 0 THEN
SET yearNum = 366;
ELSE
SET yearNum = 365;
END IF;
WHILE count < yearNum DO
SET workOrWeek = DAYOFWEEK(DATE_SUB(startDay,INTERVAL 1 day));
IF (workOrWeek)>5 THEN
SET db_status_=1;
ELSE
SET db_status_=0;
END IF;
INSERT INTO config_calendar(rep_date,rep_year,rep_month,rep_day,rep_status,rep_week,enable_flag) VALUES(startDay,YEAR(startDay),MONTH(startDay),DAY(startDay),db_status_,WEEKDAY(startDay)+1,1);
SET count=count+1;
SET startDay=DATE_ADD(DATE(startDay),INTERVAL 1 DAY);
END WHILE;
END IF;
END
执行存储过程
call getAllYearDateFunc(2020)
只是生产了一年内所有日期与工作日
int dayStart=1;
int dayNum=366;
Date date = sdf.parse(“2020-01-01”);
String url1 = “http://timor.tech/api/holiday/info/”+sdf.format(date);
String result1 = HttpClientUtil.doGet(url1);
WorkDateEntity parse1 = JsonUtils.parse(result1, WorkDateEntity.class);
webUserService.dayWork(sdf.format(date),parse1.getType().getType());
while(dayStart<=dayNum){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, +1);
date = calendar.getTime();
String url = “http://timor.tech/api/holiday/info/”+sdf.format(date);
String result = HttpClientUtil.doGet(url);
WorkDateEntity parse = JsonUtils.parse(result, WorkDateEntity.class);
//遍历执行修改语句即可
dayStart++;
}
实体类与http工具和jsonutil 查看另一篇博客
https://editor.youkuaiyun.com/md/?articleId=109329462