Compare commits
10 Commits
d4186596f3
...
19f348ee2a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
19f348ee2a | ||
|
|
3266241ec3 | ||
|
|
c774c9aa3a | ||
|
|
5940c872dc | ||
|
|
61a86b6789 | ||
|
|
b70974b28f | ||
|
|
686ee9378c | ||
|
|
6408c38bc3 | ||
|
|
05195b7b31 | ||
|
|
e26180c820 |
@ -23,7 +23,11 @@ def exec():
|
||||
for jskult_archive_manage_data in jskult_archive_manage_data_list:
|
||||
# 対象テーブルで条件項目が条件年月以前のデータを取得
|
||||
archive_data = jskult_archive_manager.get_archive_data(
|
||||
jskult_archive_manage_data["target_table"], jskult_archive_manage_data["filter_column"], jskult_archive_manage_data["filter_date"])
|
||||
jskult_archive_manage_data["target_table"],
|
||||
jskult_archive_manage_data["filter_column_name"],
|
||||
jskult_archive_manage_data["filter_column_type"],
|
||||
jskult_archive_manage_data["filter_column_digit"],
|
||||
jskult_archive_manage_data["filter_date"])
|
||||
# 取得データが0件の場合、スキップする
|
||||
if not archive_data:
|
||||
logger.info(
|
||||
@ -48,7 +52,8 @@ def exec():
|
||||
# 作成したCSVをzip形式に圧縮
|
||||
zip_file_path = path.join(temporary_dir, f"{file_name}.zip")
|
||||
with zipfile.ZipFile(zip_file_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
|
||||
zipf.write(csv_file_path)
|
||||
arcname = path.basename(csv_file_path)
|
||||
zipf.write(csv_file_path, arcname=arcname)
|
||||
logger.info(f"zip形式への圧縮に成功しました。{file_name}.zip")
|
||||
|
||||
# 圧縮したCSVを保存先へアップロード
|
||||
@ -60,7 +65,9 @@ def exec():
|
||||
# アーカイブしたデータをDBから削除
|
||||
jskult_archive_manager.delete_archive_data(
|
||||
jskult_archive_manage_data["target_table"],
|
||||
jskult_archive_manage_data["filter_column"],
|
||||
jskult_archive_manage_data["filter_column_name"],
|
||||
jskult_archive_manage_data["filter_column_type"],
|
||||
jskult_archive_manage_data["filter_column_digit"],
|
||||
jskult_archive_manage_data["filter_date"])
|
||||
logger.info(
|
||||
f"アーカイブしたデータのDBから削除に成功しました。対象テーブル:{jskult_archive_manage_data['target_table']} 条件年月:{jskult_archive_manage_data['filter_date']}")
|
||||
|
||||
@ -17,7 +17,9 @@ class JskultArchiveManager:
|
||||
sql = """
|
||||
select
|
||||
target_table
|
||||
, filter_column
|
||||
, filter_column_name
|
||||
, filter_column_type
|
||||
, filter_column_digit
|
||||
, filter_date
|
||||
, run_interval_months
|
||||
, prev_filter_date
|
||||
@ -34,18 +36,44 @@ class JskultArchiveManager:
|
||||
raise
|
||||
finally:
|
||||
self._db.disconnect()
|
||||
|
||||
def _filter_column_to_date(self,filter_column_name:str , filter_column_type:str, filter_column_digit:int):
|
||||
""" filter_columnを日付型へ変換"""
|
||||
try:
|
||||
logger.info("処理開始:_filter_column_to_date")
|
||||
if filter_column_type == 'date':
|
||||
filter_column = filter_column_name
|
||||
|
||||
def get_archive_data(self,target_table:str, filter_column:str, filter_date:str):
|
||||
elif filter_column_type == 'varchar' and filter_column_digit == 8:
|
||||
filter_column = f"str_to_date({filter_column_name},'%Y%m%d')"
|
||||
|
||||
elif filter_column_type == 'varchar' and filter_column_digit == 6:
|
||||
filter_column = f"str_to_date(concat({filter_column_name} , '01'),'%Y%m%d')"
|
||||
|
||||
else:
|
||||
raise Exception("条件項目データ型もしくは条件項目桁数が不正です。")
|
||||
|
||||
logger.info("処理終了:_filter_column_to_date")
|
||||
return filter_column
|
||||
|
||||
except Exception as e:
|
||||
logger.info("異常終了:_filter_column_to_date")
|
||||
raise
|
||||
|
||||
def get_archive_data(self,target_table:str, filter_column_name:str, filter_column_type:str, filter_column_digit:int, filter_date:str):
|
||||
"""アーカイブするデータを取得"""
|
||||
try:
|
||||
logger.info("処理開始:get_archive_data")
|
||||
|
||||
filter_column = self._filter_column_to_date(filter_column_name, filter_column_type, filter_column_digit)
|
||||
|
||||
sql = f"""
|
||||
select
|
||||
*
|
||||
from
|
||||
src07.{target_table}
|
||||
where
|
||||
str_to_date({filter_column},'%Y%m%d') <= :filter_date;
|
||||
{filter_column} <= :filter_date;
|
||||
"""
|
||||
self._db.connect()
|
||||
parameter_dict = {'filter_date' : filter_date}
|
||||
@ -58,15 +86,18 @@ class JskultArchiveManager:
|
||||
finally:
|
||||
self._db.disconnect()
|
||||
|
||||
def delete_archive_data(self, target_table:str, filter_column:str, filter_date:str):
|
||||
def delete_archive_data(self, target_table:str, filter_column_name:str, filter_column_type:str, filter_column_digit:int, filter_date:str):
|
||||
"""アーカイブしたデータを削除"""
|
||||
try:
|
||||
logger.info("処理開始:delete_archive_data")
|
||||
|
||||
filter_column = self._filter_column_to_date(filter_column_name, filter_column_type, filter_column_digit)
|
||||
|
||||
sql = f"""
|
||||
delete from
|
||||
src07.{target_table}
|
||||
where
|
||||
str_to_date({filter_column},'%Y%m%d') <= :filter_date;
|
||||
{filter_column} <= :filter_date;
|
||||
"""
|
||||
self._db.connect()
|
||||
self._db.begin()
|
||||
|
||||
@ -152,11 +152,14 @@ class UpdateBusinessDay(JskultBatchEntrypoint):
|
||||
self._check_extra_received_files(
|
||||
jsk_transfer_expected_data_list, jsk_transfer_data_list)
|
||||
|
||||
jskult_hdke_tbl_manager.update_batch_process_complete()
|
||||
# 処理ステータスを「処理済」に設定
|
||||
# 処理日を+1日する前に実行しないと、当日のバッチステータスが書き換わらない
|
||||
jskult_batch_status_manager.set_process_status(
|
||||
constants.PROCESS_STATUS_DONE)
|
||||
|
||||
# 処理日を+1日し、バッチ処理中ステータスとdump取得状態区分を0に戻す
|
||||
jskult_hdke_tbl_manager.update_batch_process_complete()
|
||||
|
||||
# 日付テーブルに対しバッチ処理中ステータスとダンプ取得状態区分を0に、処理日を+1日に更新
|
||||
jskult_batch_run_manager.batch_success()
|
||||
|
||||
|
||||
Binary file not shown.
@ -7,4 +7,3 @@ class WholesalerMasterModel(BaseDBModel):
|
||||
rec_whs_cd: Optional[str]
|
||||
rec_whs_sub_cd: Optional[str]
|
||||
name: Optional[str]
|
||||
whs_name: Optional[str]
|
||||
|
||||
@ -11,8 +11,7 @@ class WholesalerMasterRepository(BaseRepository):
|
||||
SELECT DISTINCT
|
||||
b.orig_whlslr_cd as rec_whs_cd,
|
||||
b.orig_whlslr_sub_cd as rec_whs_sub_cd,
|
||||
v2.ws_nm_kj as name,
|
||||
b.cls_whlslr_nm as whs_name
|
||||
v2.ws_nm_kj as name
|
||||
FROM src07.trn_result_data_bio_lot b
|
||||
LEFT OUTER JOIN
|
||||
(
|
||||
@ -22,7 +21,7 @@ class WholesalerMasterRepository(BaseRepository):
|
||||
FROM src07.mst_whlslr
|
||||
WHERE src07.get_syor_date() BETWEEN str_to_date(concat(eff_start_ym, '01'), '%Y%m%d') AND str_to_date(concat(eff_end_ym, '01'), '%Y%m%d')
|
||||
) v2
|
||||
ON b.orig_whlslr_cd = v2.ws_cd
|
||||
ON b.cnvs_whlslr_cd = v2.ws_cd
|
||||
ORDER BY b.orig_whlslr_cd, b.orig_whlslr_sub_cd , b.cls_whlslr_nm DESC
|
||||
"""
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user