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/service/ZyytService.java | 234 ++++++++++++++++------------------------------------------ 1 files changed, 66 insertions(+), 168 deletions(-) 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; +// } } -- Gitblit v1.9.1