From db14f311bfa3daba9e43fcad895048cbe2576c04 Mon Sep 17 00:00:00 2001 From: cy <1664593601@qq.com> Date: 星期二, 22 十一月 2022 17:40:05 +0800 Subject: [PATCH] fix(quartz): 调整定时任务判断逻辑 --- src/main/java/com/integrated/zyyt/ZyytQuartz.java | 52 ----- src/main/java/com/integrated/zyyt/util/ZyytUtil.java | 172 +++++++++++++++++++++ src/main/resources/application-dev.yml | 10 - src/main/java/com/integrated/zyyt/service/ZyytService.java | 234 ++++++++--------------------- src/main/resources/application.yml | 8 - 5 files changed, 244 insertions(+), 232 deletions(-) diff --git a/src/main/java/com/integrated/zyyt/ZyytQuartz.java b/src/main/java/com/integrated/zyyt/ZyytQuartz.java index a55a22f..8aa5dcd 100644 --- a/src/main/java/com/integrated/zyyt/ZyytQuartz.java +++ b/src/main/java/com/integrated/zyyt/ZyytQuartz.java @@ -1,7 +1,7 @@ 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; @@ -10,7 +10,6 @@ import javax.annotation.Resource; import java.time.LocalDate; import java.time.temporal.ChronoUnit; -import java.util.Map; /** * @ClassName ZyytQuartz @@ -31,7 +30,7 @@ @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 { @@ -43,7 +42,7 @@ @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 { @@ -51,55 +50,14 @@ } } - @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; - } } diff --git a/src/main/java/com/integrated/zyyt/service/ZyytService.java b/src/main/java/com/integrated/zyyt/service/ZyytService.java index 9ff0908..4e7b1f4 100644 --- a/src/main/java/com/integrated/zyyt/service/ZyytService.java +++ b/src/main/java/com/integrated/zyyt/service/ZyytService.java @@ -1,18 +1,11 @@ package com.integrated.zyyt.service; -import cn.hutool.core.convert.Convert; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.integrated.zyyt.ZyytConstant; import com.integrated.zyyt.enetity.StationInfo; import com.integrated.zyyt.enetity.YyztTDjtjb; import com.integrated.zyyt.enetity.YyztTShkdrb; import com.integrated.zyyt.enetity.ZyytDataResult; import com.integrated.zyyt.enetity.business.Zyyt; -import com.integrated.zyyt.enetity.business.ZyytStationInfo; -import com.integrated.zyyt.enetity.business.ZyytTDjtjb; -import com.integrated.zyyt.enetity.business.ZyytTShkdrb; import com.integrated.zyyt.util.ZyytUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.jdbc.core.BatchPreparedStatementSetter; @@ -29,43 +22,25 @@ import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.List; -import java.util.Map; @Service @Slf4j @Transactional(rollbackFor = Exception.class) public class ZyytService { -// @Resource -// private NamedParameterJdbcTemplate namedParameterJdbcTemplate; - @Resource private JdbcTemplate jdbcTemplate; - - // private Integer getBatchIsFinish(String batchNo) { -// String querySql = "select IS_FINISH from ZYYT_RECORD where BATCH_NO = '" + batchNo+"'"; -// return jdbcTemplate.queryForObject(querySql, Integer.class); -// } - //绔欑偣淇℃伅琛� public void stationInfoTasks() { log.info("寮�濮嬭繘琛� 鏈烘瀯鍚屾"); LocalDate yestDay = LocalDate.now().minus(1, ChronoUnit.DAYS); String batchNo = ZyytUtil.getBatchNo(yestDay); - if (!canGetAgain("STATIONINFO", yestDay)) { + if (ZyytUtil.isRunning("STATIONINFO", yestDay)) { log.info("鎵规{}姝e湪杩愯", batchNo); return; } - JSONObject queryParams = new JSONObject(); - Zyyt<StationInfo> stationInfoService = new ZyytStationInfo( - ZyytConstant.URL_AUTHON, - ZyytConstant.URL_STATIONINFO_QUERY, - false, - ZyytConstant.CLIENT_STATIONINFO, - ZyytConstant.SECRET_STATIONINFO, - ZyytConstant.X_EOS_SOURCESYSKEY_STATIONINFO, - queryParams - ); + + Zyyt<StationInfo> stationInfoService = ZyytUtil.getBusinessEntity("STATIONINFO", yestDay); String exeSql = "merge into STATIONINFO A USING" + " (select ? V_JGBH from dual ) C " + "ON(A.V_JGBH=C.V_JGBH) " + @@ -86,17 +61,11 @@ try { // 鏌ヨ鎬绘暟 - ZyytDataResult<StationInfo> zyytDataResult = stationInfoService.getData(pageNum, 1); - Long totalElements = zyytDataResult.getTotalElements(); - - Long totalPages = 0L; - totalPages = totalElements / pageSize; - if (totalElements % pageSize != 0) { - totalPages++; - } - log.info("鍏眥}椤碉紝{}鏉℃暟鎹�", totalPages, totalElements); + Long totalElements = ZyytUtil.getApiTotalElements("STATIONINFO", yestDay); + Long totalPages = ZyytUtil.calcPages(totalElements, pageSize); + log.info("鍏眥}鏉℃暟鎹�,姣忛〉{}鏉★紝鍙垎{}椤碉紝", totalElements, pageSize, totalPages); for (pageNum = 0; pageNum <= totalPages - 1; pageNum++) { - zyytDataResult = stationInfoService.getData(pageNum, pageSize); + ZyytDataResult<StationInfo> zyytDataResult = stationInfoService.getData(pageNum, pageSize); List<StationInfo> stationInfoList = zyytDataResult.getContent(); log.info("绗瑊}娆¤幏鍙�,鏈鑾峰彇鍒皗}鏉℃暟鎹�", pageNum + 1, zyytDataResult.getContentSize()); @@ -205,7 +174,7 @@ return; } stationInfoService.updateRecord(recordId, 0, totalSize, null); - log.info("路路路路路路路路路路路涓偖鏄撻�� 绔欑偣淇℃伅 浠诲姟鎵ц瀹屾瘯路路路路路路路路路路路"); + log.info("路路路路路路路路路路路涓偖鏄撻�� {}绔欑偣淇℃伅 浠诲姟鎵ц瀹屾瘯路路路路路路路路路路路", yestDay); } @@ -217,12 +186,7 @@ public void shkdrbTasks(LocalDate date) { log.info("寮�濮嬭繘琛� 绀句細蹇�掓棩鎶ヨ〃"); String batchNo = ZyytUtil.getBatchNo(date); -// Integer batchIsFinish = getBatchIsFinish(batchNo); -// if (batchIsFinish != null && batchIsFinish == 0) { -// log.info("鎵规{}姝e湪杩愯", batchNo); -// return; -// } - if (!canGetAgain("YYZT_T_SHKDRB", date)) { + if (ZyytUtil.isRunning("YYZT_T_SHKDRB", date)) { log.info("YYZT_T_SHKDRB 鐨� 鎵规{}姝e湪杩愯", batchNo); return; } @@ -231,34 +195,7 @@ String delSql = "delete from YYZT_T_SHKDRB where BATCH_NO='" + batchNo + "'"; jdbcTemplate.update(delSql); - - // 璁剧疆璇锋眰鍙傛暟 - JSONObject queryParams = new JSONObject(); - JSONObject criteria = new JSONObject(); - criteria.put("match", "and"); - - JSONArray matchChildren = new JSONArray(); - JSONObject children1 = new JSONObject(); - children1.put("name", "dRbrq"); - JSONArray child1C = new JSONArray(); - child1C.add(date + " 00:00:00"); - children1.put("value", child1C); - children1.put("match", "eq"); - matchChildren.add(children1); - - criteria.put("children", matchChildren); - - queryParams.put("criteria", criteria); - - Zyyt<YyztTShkdrb> stationInfoService = new ZyytTShkdrb( - ZyytConstant.URL_AUTHON, - ZyytConstant.URL_SHKDRB_QUERY, - false, - ZyytConstant.CLIENT_SHKDRB, - ZyytConstant.SECRET_SHKDRB, - ZyytConstant.X_EOS_SOURCESYSKEY_SHKDRB, - queryParams - ); + Zyyt<YyztTShkdrb> stationInfoService = ZyytUtil.getBusinessEntity("YYZT_T_SHKDRB", date); Long recordId = stationInfoService.insertRecord("YYZT_T_SHKDRB", batchNo); Long totalSize = 0L; @@ -271,17 +208,12 @@ String batchInsertSql = "INSERT INTO YYZT_T_SHKDRB (\"V_SFDM\",\"V_SFMC\",\"V_DSDM\",\"V_DSMC\",\"V_QXDM\",\"V_XSMC\",\"V_TDJGBH\",\"V_TDJGMC\",\"V_JGBH\",\"V_JGMC\",\"D_RBRQ\",\"N_ZGYZLJS\",\"N_ZGYZQJS\",\"N_SHKDLJS\",\"N_SHKDQJS\",\"N_ZTLJS\",\"N_ZTQJS\",\"N_YTLJS\",\"N_YTQJS\",\"N_STLJS\",\"N_STQJS\",\"N_BSLJS\",\"N_BSQJS\",\"N_YDLJS\",\"N_YDQJS\",\"N_YFLJS\",\"N_YFQJS\",\"N_JDLJS\",\"N_JDQJS\",\"N_JTLJS\",\"N_JTQJS\",\"N_TTLJS\",\"N_TTQJS\",\"N_DBLJS\",\"N_DBQJS\",\"N_DNLJS\",\"N_DNQJS\",\"N_FWLJS\",\"N_FWQJS\",\"N_YSLJS\",\"N_YSQJS\",\"N_QTLJS\",\"N_QTQJS\",\"RESERVED1\",\"RESERVED2\",\"RESERVED3\",\"RESERVED4\",\"BATCH_NO\") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; // 鏌ヨ鎬绘暟 - ZyytDataResult<YyztTShkdrb> zyytDataResult = stationInfoService.getData(pageNum, 1); - Long totalElements = zyytDataResult.getTotalElements(); - Long totalPages = 0L; - totalPages = totalElements / pageSize; - if (totalElements % pageSize != 0) { - totalPages++; - } + Long totalElements = ZyytUtil.getApiTotalElements("YYZT_T_SHKDRB", date); + Long totalPages = ZyytUtil.calcPages(totalElements, pageSize); + log.info("绀句細蹇�掓棩鎶ヨ〃(YYZT_T_SHKDRB) 鍏眥}鏉℃暟鎹�,姣忛〉{}鏉★紝鍙垎{}椤碉紝", totalElements, pageSize, totalPages); - log.info("鍏眥}椤碉紝{}鏉℃暟鎹�", totalPages, totalElements); for (pageNum = 0; pageNum <= totalPages - 1; pageNum++) { - zyytDataResult = stationInfoService.getData(pageNum, pageSize); + ZyytDataResult<YyztTShkdrb> zyytDataResult = stationInfoService.getData(pageNum, pageSize); List<YyztTShkdrb> stationInfoList = zyytDataResult.getContent(); totalSize += zyytDataResult.getContentSize(); @@ -372,20 +304,16 @@ return; } stationInfoService.updateRecord(recordId, 0, totalSize, null); - log.info("路路路路路路路路路路路涓偖鏄撻�� 绀句細蹇�掓棩鎶ヨ〃 浠诲姟鎵ц瀹屾瘯路路路路路路路路路路路"); + log.info("路路路路路路路路路路路涓偖鏄撻�� 绀句細蹇�掓棩鎶ヨ〃{} 浠诲姟鎵ц瀹屾瘯路路路路路路路路路路路", date); } // 浠e瘎缁熻琛� public void djtjbTasks(LocalDate date) { - log.info("寮�濮嬭繘琛� 浠e瘎缁熻琛�"); + log.info("寮�濮嬭繘琛� 浠e瘎缁熻琛� -- {}", date); String batchNo = ZyytUtil.getBatchNo(date); -// Integer batchIsFinish = getBatchIsFinish(batchNo); -// if (batchIsFinish != null && batchIsFinish == 0) { -// log.info("鎵规{}姝e湪杩愯", batchNo); -// return; -// } - if (!canGetAgain("YYZT_T_DJTJB", date)) { + + if (ZyytUtil.isRunning("YYZT_T_DJTJB", date)) { log.info("YYZT_T_DJTJB 鐨� 鎵规{}姝e湪杩愯", batchNo); return; } @@ -394,33 +322,7 @@ String delSql = "delete from YYZT_T_DJTJB where BATCH_NO='" + batchNo + "'"; jdbcTemplate.update(delSql); - // 璁剧疆璇锋眰鍙傛暟 - JSONObject queryParams = new JSONObject(); - JSONObject criteria = new JSONObject(); - criteria.put("match", "and"); - - JSONArray matchChildren = new JSONArray(); - JSONObject children1 = new JSONObject(); - children1.put("name", "dRbrq"); - JSONArray child1C = new JSONArray(); - child1C.add(date + " 00:00:00"); - children1.put("value", child1C); - children1.put("match", "eq"); - matchChildren.add(children1); - - criteria.put("children", matchChildren); - - queryParams.put("criteria", criteria); - - Zyyt<YyztTDjtjb> stationInfoService = new ZyytTDjtjb( - ZyytConstant.URL_AUTHON, - ZyytConstant.URL_DJTJB_QUERY, - false, - ZyytConstant.CLIENT_DJTJB, - ZyytConstant.SECRET_DJTJB, - ZyytConstant.X_EOS_SOURCESYSKEY_DJTJB, - queryParams - ); + Zyyt<YyztTDjtjb> stationInfoService = ZyytUtil.getBusinessEntity("YYZT_T_DJTJB", date); Long recordId = stationInfoService.insertRecord("YYZT_T_DJTJB", batchNo); Long totalSize = 0L; //璁剧疆鍥炴粴鐐� @@ -432,16 +334,12 @@ String batchInsertSql = "INSERT INTO YYZT_T_DJTJB (\"V_SFDM\", \"V_SFMC\", \"V_DSDM\", \"V_DSMC\", \"V_QXDM\", \"V_XSMC\", \"V_TDJGBH\", \"V_JGBH\", \"V_JGMC\", \"D_RBRQ\", \"V_YLGZDID\", \"V_YLGZDMC\", \"N_SJYWL\", \"N_TKYWL\", \"N_BKYEL\", \"N_SJZJE\", \"N_TKSR\", \"N_BKSR\", \"BATCH_NO\") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; // 鏌ヨ鎬绘暟 - ZyytDataResult<YyztTDjtjb> zyytDataResult = stationInfoService.getData(pageNum, 1); - Long totalElements = zyytDataResult.getTotalElements(); - Long totalPages = 0L; - totalPages = totalElements / pageSize; - if (totalElements % pageSize != 0) { - totalPages++; - } - log.info("鍏眥}椤碉紝{}鏉℃暟鎹�", totalPages, totalElements); + Long totalElements = ZyytUtil.getApiTotalElements("YYZT_T_DJTJB", date); + Long totalPages = ZyytUtil.calcPages(totalElements, pageSize); + log.info("鍏眥}鏉℃暟鎹�,姣忛〉{}鏉★紝鍙垎{}椤碉紝", totalElements, pageSize, totalPages); + for (pageNum = 0; pageNum <= totalPages - 1; pageNum++) { - zyytDataResult = stationInfoService.getData(pageNum, pageSize); + ZyytDataResult<YyztTDjtjb> zyytDataResult = stationInfoService.getData(pageNum, pageSize); List<YyztTDjtjb> djtjbList = zyytDataResult.getContent(); totalSize += zyytDataResult.getContentSize(); log.info("绗瑊}娆¤幏鍙�,鏈鑾峰彇鍒皗}鏉℃暟鎹�", pageNum + 1, zyytDataResult.getContentSize()); @@ -504,48 +402,48 @@ } stationInfoService.updateRecord(recordId, 0, totalSize, null); - log.info("路路路路路路路路路路路涓偖鏄撻�� 浠e瘎缁熻琛� 浠诲姟鎵ц瀹屾瘯路路路路路路路路路路路"); + log.info("路路路路路路路路路路路涓偖鏄撻�� 浠e瘎缁熻琛� -- [{}] 浠诲姟鎵ц瀹屾瘯路路路路路路路路路路路", date); } - /** - * 鍒ゆ柇鎸囧畾鏃ユ湡鏄惁闇�瑕侀噸鏂版墽琛� - * - * @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; - } +// /** +// * 鍒ゆ柇鎸囧畾鏃ユ湡鏄惁闇�瑕侀噸鏂版墽琛� +// * +// * @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; +// } } diff --git a/src/main/java/com/integrated/zyyt/util/ZyytUtil.java b/src/main/java/com/integrated/zyyt/util/ZyytUtil.java index 27a424c..6320e03 100644 --- a/src/main/java/com/integrated/zyyt/util/ZyytUtil.java +++ b/src/main/java/com/integrated/zyyt/util/ZyytUtil.java @@ -1,17 +1,25 @@ package com.integrated.zyyt.util; +import cn.hutool.core.convert.Convert; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.integrated.zyyt.ZyytConstant; import com.integrated.zyyt.enetity.TokenResult; import com.integrated.zyyt.enetity.ZyytDataResult; +import com.integrated.zyyt.enetity.business.Zyyt; +import com.integrated.zyyt.enetity.business.ZyytStationInfo; +import com.integrated.zyyt.enetity.business.ZyytTDjtjb; +import com.integrated.zyyt.enetity.business.ZyytTShkdrb; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; import java.time.LocalDate; import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @ClassName ZyytGetData @@ -23,6 +31,13 @@ @Component @Slf4j public class ZyytUtil { + private static JdbcTemplate jdbcTemplate; + + @Autowired + public void setAlphaService(JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + } + /** * 鑾峰彇鎵规鍙� @@ -119,4 +134,161 @@ } + /** + * 鏌ヨ鎵ц鏃ユ湡鏄惁鍦ㄦ墽琛� + * + * @param tableName + * @param date + */ + public static Map<String, Object> getLastRecord(String tableName, LocalDate date) { + String sql = "SELECT*FROM (SELECT*FROM ZYYT_RECORD WHERE BATCH_NO='" + getBatchNo(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.error("sql=={} 鏌ヨ鍙戠敓浜嗗紓甯�,鍙兘鍥犱负娌℃湁鏌ヨ鍒版暟鎹�", sql); + log.error(e.getMessage()); + } + return map; + } + + /** + * 鏌ヨ鎸囧畾鎵规鏄惁鏈夋鍦ㄨ繍琛岀殑浠诲姟 + * + * @param tableName + * @param date + * @return true 姝e湪杩愯 false 娌℃湁杩愯 + */ + public static boolean isRunning(String tableName, LocalDate date) { + Map<String, Object> lastRecord = getLastRecord(tableName, date); + if (lastRecord != null) { + String isFinish = Convert.toStr(lastRecord.get("IS_FINISH")); + return !"1".equals(isFinish); + } else { + return false; + } + } + + /** + * 鍒ゆ柇鎸囧畾鏃ユ湡鏄惁闇�瑕侀噸鏂版墽琛� + * + * @param tableName + * @param date + * @return true 闇�瑕佹墽琛岋紝false 涓嶉渶瑕� + */ + public static boolean canGetAgain(String tableName, LocalDate date) { + Map<String, Object> map = getLastRecord(tableName, date); + if (map != null) { + String isFinish = Convert.toStr(map.get("IS_FINISH")); + if (!"1".equals(isFinish)) { + log.info("琛�:{} 鏃ユ湡: {}锛屼笂娆℃墽琛屾湭瀹屾垚锛屼笉鎵ц鎷夊彇", tableName, date); + return false; + } + //涓嬮潰 isFinish閮芥槸1 + String isError = Convert.toStr(map.get("IS_ERROR")); + if ("1".equals(isError)) { + log.info("琛�:{} 鏃ユ湡: {}锛屼笂娆℃墽琛屾湁璇紝鎵ц鎷夊彇", tableName, date); + return true; + } + + // 鎴愬姛鎵ц娌℃湁閿� + String countNum = Convert.toStr(map.get("COUNT_NUM")); + // 鍚屾帴鍙h繑鍥炵殑鏈�鏂颁笟鍔℃暟鎹潯鏁版瘮杈冿紝濡傛灉涓嶇浉鍚屽垯閲嶆柊鎷夊彇 + Long apiTotalElements = getApiTotalElements(tableName, date); + if (apiTotalElements == null) { + log.error("API鑾峰彇鎬绘暟澶辫触锛屼笉鎵ц鎷夊彇"); + return false; + } + if (apiTotalElements.compareTo(Convert.toLong(countNum)) == 0) { + log.info("API杩斿洖鎬绘暟 涓� 鏁版嵁搴撴潯鏁扮浉鍚岋紝涓嶆墽琛屾媺鍙�"); + return false; + } else { + log.info("API杩斿洖鎬绘暟 涓� 鏁版嵁搴撴潯鏁� 涓嶇浉鍚岋紝鎵ц鎷夊彇"); + return true; + } + } else { + // 璇ユ壒娆℃湭鎵ц + log.info("琛�:{} 鏃ユ湡: {}锛屾湭鎵ц杩�", tableName, date); + return true; + } + } + + + public static Zyyt getBusinessEntity(String tableName, LocalDate date) { + if ("STATIONINFO".equalsIgnoreCase(tableName)) { + new ZyytStationInfo( + ZyytConstant.URL_AUTHON, + ZyytConstant.URL_STATIONINFO_QUERY, + false, + ZyytConstant.CLIENT_STATIONINFO, + ZyytConstant.SECRET_STATIONINFO, + ZyytConstant.X_EOS_SOURCESYSKEY_STATIONINFO, + new JSONObject() + ); + } else { + JSONObject queryParams = new JSONObject(); + JSONObject criteria = new JSONObject(); + criteria.put("match", "and"); + + JSONArray matchChildren = new JSONArray(); + JSONObject children1 = new JSONObject(); + children1.put("name", "dRbrq"); + JSONArray child1C = new JSONArray(); + child1C.add(date + " 00:00:00"); + children1.put("value", child1C); + children1.put("match", "eq"); + matchChildren.add(children1); + + criteria.put("children", matchChildren); + + queryParams.put("criteria", criteria); + if ("YYZT_T_SHKDRB".equalsIgnoreCase(tableName)) { + + return new ZyytTShkdrb( + ZyytConstant.URL_AUTHON, + ZyytConstant.URL_SHKDRB_QUERY, + false, + ZyytConstant.CLIENT_SHKDRB, + ZyytConstant.SECRET_SHKDRB, + ZyytConstant.X_EOS_SOURCESYSKEY_SHKDRB, + queryParams + ); + } else if ("YYZT_T_DJTJB".equalsIgnoreCase(tableName)) { + return new ZyytTDjtjb( + ZyytConstant.URL_AUTHON, + ZyytConstant.URL_DJTJB_QUERY, + false, + ZyytConstant.CLIENT_DJTJB, + ZyytConstant.SECRET_DJTJB, + ZyytConstant.X_EOS_SOURCESYSKEY_DJTJB, + queryParams + ); + } + } + return null; + } + + /** + * 鑾峰彇API涓繑鍥炵殑璁板綍鎬绘暟 + * + * @param tableName + * @param date + * @return + */ + public static Long getApiTotalElements(String tableName, LocalDate date) { + Zyyt businessEntity = getBusinessEntity(tableName, date); + ZyytDataResult zyytDataResult = businessEntity.getData(0, 1); + log.info("鎬诲叡鎷夊彇鍒版暟鎹畕}鏉�", zyytDataResult.getTotalElements()); + return zyytDataResult.getTotalElements(); + } + + public static Long calcPages(Long totalElements, int pageSize) { + Long totalPages = 0L; + totalPages = totalElements / pageSize; + if (totalElements % pageSize != 0) { + totalPages++; + } + return totalPages; + } + } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index d9deb91..b1edbe1 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -35,12 +35,4 @@ #鏈湴缂撳瓨鐩綍 path: D:\tmp sftpDownload: C:\ftpData\download -#瓒呯骇璐﹀彿 -super: - name: zhfwpt -orgCode: Adu_8097 -work: - bathSize: 1500 - batchInsertSize: 1000 -base: - url: http://localhost:9527 + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 83fe5b7..f096262 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -15,14 +15,6 @@ max-request-size: 200MB application: name: integrated-schedule - redis: - jedis: - pool: - max-active: 2000 - max-wait: -1 - max-idle: 10 - min-idle: 0 - timeout: 30000 #璧勬簮鏂囦欢鏄犲皠 resources: static-locations: classpath:/verifyImg/,file:${file.path} -- Gitblit v1.9.1