表数据
表结构ddl
-- CTCAUDITUSER.T_WORK_DAY_UTIL definition
CREATE TABLE "CTCAUDITUSER"."T_WORK_DAY_UTIL"
( "EACH_DAY" DATE,
"IS_WORKDAY" VARCHAR2(2)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "AUDIT_DATA" ;
COMMENT ON TABLE CTCAUDITUSER.T_WORK_DAY_UTIL IS '工作日表';
java 每年定时维护工作日表(需要免费注册天行API账号申请的api-key 天行数据TianAPI - 开发者API数据平台)
public void insertWorkDay(String year){
List<String> holidayList = new ArrayList<>();
List<String> specialWorkdayList = new ArrayList<>();
Map<String, Object> param = new HashMap<String, Object>() {{
put("key", "需要申请");//这里key值是需要免费注册天行API账号申请的api-key 天行网站:https://www.tianapi.com/
put("type", 1);
}};
int currentYear;
if (StringUtils.isEmpty(year)) {
currentYear = Calendar.getInstance().get(Calendar.YEAR);
}else {
currentYear = Integer.parseInt(year);
}
param.put("date", currentYear );
String url = "http://api.tianapi.com/jiejiari/index";
String response = HttpUtil.get(url, param);
JSONObject resObj = JSONUtil.parseObj(response);
int code = (int) resObj.get("code");
if (code == 200) {
JSONArray newslist = (JSONArray) resObj.get("newslist");
for (Object listObj : newslist) {
JSONObject obj = (JSONObject) listObj;
String holidays = (String) obj.get("vacation");
String[] holidayArray = holidays.split("\\|");
holidayList.addAll(Arrays.asList(holidayArray));
String remark = (String) obj.get("remark");
if (org.apache.commons.lang3.StringUtils.isNotEmpty(remark)) {
String[] special = remark.split("\\|");
specialWorkdayList.addAll(Arrays.asList(special));
}
}
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.YEAR, currentYear);
Date startDate = cal.getTime();
System.out.println(startDate);
cal.clear();
cal.set(Calendar.YEAR, currentYear);
cal.roll(Calendar.DAY_OF_YEAR, -1);
Date endDate = cal.getTime();
System.out.println(endDate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate);
while (!calendar.getTime().after(endDate)) {
Date currentDate = calendar.getTime();
String format = dateFormat.format(currentDate);
int weekday = calendar.get(Calendar.DAY_OF_WEEK); // 获取星期几信息
String isWork = "0";
// 判断是否为周六或周日或法定节假日
if (weekday == Calendar.SATURDAY || weekday == Calendar.SUNDAY || holidayList.contains(format)) {
isWork = "0";
} else {
isWork = "1";
}
// 周末补假
if(specialWorkdayList.contains(format)){
isWork = "1";
}
finalTaskHandlingMapper.insertWorkDayUtil(currentDate,isWork);
calendar.add(Calendar.DAY_OF_MONTH, 1);
}
}
天行数据TianAPI - 开发者API数据平台注册成功后 申请api
查看申请api-key