| | |
| | | package com.integrated.zyyt; |
| | | |
| | | import cn.hutool.core.convert.Convert; |
| | | import com.integrated.zyyt.service.ZyytService; |
| | | import com.integrated.zyyt.util.ZyytUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.jdbc.core.JdbcTemplate; |
| | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDate; |
| | | import java.time.temporal.ChronoUnit; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @ClassName ZyytQuartz |
| | |
| | | @Scheduled(cron = "0 0/30 * * * ?") |
| | | private void stationInfoTask() { |
| | | LocalDate yestDay = LocalDate.now().minus(1, ChronoUnit.DAYS); |
| | | if (canGetAgain("STATIONINFO", yestDay)) { |
| | | if (ZyytUtil.canGetAgain("STATIONINFO", yestDay)) { |
| | | log.info("执行stationInfoTask--{}", yestDay); |
| | | zyytService.stationInfoTasks(); |
| | | } else { |
| | |
| | | @Scheduled(cron = "0 3/30 * * * ?") |
| | | private void shkdrbTasks() { |
| | | LocalDate yestDay = LocalDate.now().minus(1, ChronoUnit.DAYS); |
| | | if (canGetAgain("YYZT_T_SHKDRB", yestDay)) { |
| | | if (ZyytUtil.canGetAgain("YYZT_T_SHKDRB", yestDay)) { |
| | | log.info("执行shkdrbTasks--{}", yestDay); |
| | | zyytService.shkdrbTasks(yestDay); |
| | | } else { |
| | |
| | | } |
| | | } |
| | | |
| | | @Scheduled(cron = "0 5/30 * * * ?") |
| | | @Scheduled(cron = "0 7/30 * * * ?") |
| | | private void djtjbTasks() { |
| | | LocalDate yestDay = LocalDate.now().minus(1, ChronoUnit.DAYS); |
| | | if (!canGetAgain("YYZT_T_DJTJB", yestDay)) { |
| | | if (!ZyytUtil.canGetAgain("YYZT_T_DJTJB", yestDay)) { |
| | | log.info("放弃执行djtjbTasks--{}", yestDay); |
| | | } |
| | | log.info("执行djtjbTasks--{}", yestDay); |
| | | zyytService.djtjbTasks(yestDay); |
| | | } |
| | | |
| | | /** |
| | | * 判断指定日期是否需要重新执行 |
| | | * |
| | | * @param tableName |
| | | * @param date |
| | | * @return true 需要执行,false 不需要 |
| | | */ |
| | | private boolean canGetAgain(String tableName, LocalDate date) { |
| | | String sql = "SELECT*FROM (SELECT*FROM ZYYT_RECORD WHERE BATCH_NO='" + ZyytConstant.batchNoPrefix + date + "' AND TABLE_NAME='" + tableName + "' ORDER BY START_TIME DESC) tmp WHERE ROWNUM<=1"; |
| | | Map<String, Object> map = null; |
| | | try { |
| | | map = jdbcTemplate.queryForMap(sql); |
| | | } catch (Exception e) { |
| | | log.info("sql=={}没有查询到数据", sql); |
| | | } |
| | | if (map != null) { |
| | | String isFinish = Convert.toStr(map.get("IS_FINISH")); |
| | | if (!"1".equals(isFinish)) { |
| | | return false; |
| | | } |
| | | //下面 isFinish都是1 |
| | | String isError = Convert.toStr(map.get("IS_ERROR")); |
| | | if ("1".equals(isError)) { |
| | | // 执行有误 |
| | | return true; |
| | | } |
| | | |
| | | // 成功执行没有错 |
| | | String countNum = Convert.toStr(map.get("COUNT_NUM")); |
| | | if ("0".equals(countNum)) { |
| | | //没有拉取到数据 |
| | | log.info("stationInfoTask"); |
| | | return true; |
| | | } |
| | | } else { |
| | | // 该批次未执行 |
| | | log.info("stationInfoTask"); |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | } |