diff --git a/ecs/jskult-batch-monthly/src/aws/s3.py b/ecs/jskult-batch-monthly/src/aws/s3.py index 8804bba9..17ed0fe9 100644 --- a/ecs/jskult-batch-monthly/src/aws/s3.py +++ b/ecs/jskult-batch-monthly/src/aws/s3.py @@ -69,10 +69,7 @@ class ArisjBucket(S3Bucket): _bucket_name = environment.ARISJ_DATA_BUCKET _folder = environment.ARISJ_BACKUP_FOLDER - def list_dat_file(self): - return self._s3_client.list_objects(self._bucket_name, self._folder) - - def s3_arisj_csv_upload(self, arisj_create_csv: str, csv_file_path: str): + def upload_arisj_csv_file(self, arisj_create_csv: str, csv_file_path: str): # s3にCSVファイルをUPする Bucket = environment.ARISJ_DATA_BUCKET folder = environment.ARISJ_DATA_FOLDER @@ -81,7 +78,7 @@ class ArisjBucket(S3Bucket): s3_client.upload_file(csv_file_path, Bucket, csv_file_name) return - def backup_dat_file(self, dat_file_key: str, datetime_key: str): + def backup_arisj_csv_file(self, dat_file_key: str, datetime_key: str): # バックアップバケットにコピー arisj_backup_bucket = ArisjBackupBucket() folder = environment.ARISJ_DATA_FOLDER diff --git a/ecs/jskult-batch-monthly/src/batch/output_arisj_file_process.py b/ecs/jskult-batch-monthly/src/batch/output_arisj_file_process.py index 9d7d5587..d3f81597 100644 --- a/ecs/jskult-batch-monthly/src/batch/output_arisj_file_process.py +++ b/ecs/jskult-batch-monthly/src/batch/output_arisj_file_process.py @@ -12,13 +12,14 @@ import csv logger = get_logger('ARIS-J連携データ出力') -create_date = datetime.now().strftime('%Y%m%d%H%M%S') -arisj_create_csv = f'D0004_ARIS_M_DCF_{create_date}.csv' sql_err_msg = "SQL実行エラーです。" def exec(): """ 実消化&アルトマーク月次バッチ """ + create_date = datetime.now().strftime('%Y%m%d%H%M%S') + arisj_csv_file_name = f'D0004_ARIS_M_DCF_{create_date}.csv' + try: logger.info('バッチ処理を開始しました。') @@ -34,30 +35,30 @@ def exec(): db.begin() # 正常系データの反映 - # 過去分は不要のため、デリート - physical_wk_inst_aris_if_delete(db) + # 前回保管した施設IFワークを削除する + delete_previous_wk_inst_aris_if_record(db) # 正常系データを取得しWKテーブルに保存する。 - wk_inst_aris_if_insert_into(db) + insert_normal_record_into_wk_inst_aris_if(db) # 正常系データの件数を取得 - suc_count = wk_inst_aris_if_count(db) + suc_count = count_wk_inst_aris_if_record(db) # 警告系データの反映 - # 過去分は不要のため、DWH.WK_INST_ARIS_IF_WRNをデリートする。 - physical_wk_inst_aris_if_wrn_delete(db) + # 前回保管した施設IF警告ワークを削除する + delete_previous_wk_inst_aris_if_wrn_record(db) # 異常系データを取得しWKテーブルに保存する。 - wk_inst_aris_if_wrn_insert_into(db) + insert_abnormal_record_into_wk_inst_aris_if_wrn(db) # 異常系データの件数を取得 - wrn_count = wk_inst_aris_if_wrn_count(db) + wrn_count = count_wk_inst_aris_if_wrn_record(db) # CSVファイルの作成用のSQL実行 record_csv = csv_data_select(db) # CSVファイル作成 - csv_file_path = make_csv_data(record_csv) + csv_file_path = make_csv_data(record_csv, arisj_csv_file_name) # トランザクションの終了 db.commit() @@ -66,18 +67,18 @@ def exec(): sum_count = suc_count + wrn_count logger.info(f'(対象件数:{sum_count}/正常件数:{suc_count}/警告件数:{wrn_count})') + arisj_bucket = ArisjBucket() # CSVファイル移動処理 try: - ArisjBucket().s3_arisj_csv_upload(arisj_create_csv, csv_file_path) + arisj_bucket.upload_arisj_csv_file(arisj_csv_file_name, csv_file_path) except Exception as e: logger.info('S3バケットArisjへのCSVデータ、移動できませんでした。') raise e # 処理後ファイルをバックアップ try: - arisj_bucket = ArisjBucket() batch_context = BatchContext.get_instance() - arisj_bucket.backup_dat_file(arisj_create_csv, batch_context.syor_date) + arisj_bucket.backup_arisj_csv_file(arisj_csv_file_name, batch_context.syor_date) except Exception as e: logger.info('S3バケットArisjバックアップへCSVデータ、コピーできませんでした。') raise e @@ -93,8 +94,8 @@ def exec(): db.disconnect() -def physical_wk_inst_aris_if_delete(db): - # 過去分は不要のため、デリート +def delete_previous_wk_inst_aris_if_record(db): + # 前回保管した施設IFワークを削除する try: # WKテーブルの過去分削除SQL sql = """\ @@ -107,7 +108,7 @@ def physical_wk_inst_aris_if_delete(db): raise e -def wk_inst_aris_if_insert_into(db): +def insert_normal_record_into_wk_inst_aris_if(db): # 正常系データを取得しWKテーブルに保存する。 try: # 正常系データを取得しWKテーブルに保存SQL @@ -155,7 +156,7 @@ def wk_inst_aris_if_insert_into(db): raise e -def wk_inst_aris_if_count(db): +def count_wk_inst_aris_if_record(db): # 正常系データの件数を取得 try: # 正常系データの件数を取得SQL @@ -169,8 +170,8 @@ def wk_inst_aris_if_count(db): raise e -def physical_wk_inst_aris_if_wrn_delete(db): - # 過去分は不要のため、DWH.WK_INST_ARIS_IF_WRNをデリートする。 +def delete_previous_wk_inst_aris_if_wrn_record(db): + # 前回保管した施設IF警告ワークを削除する try: # 異常系WKテーブルの過去分削除SQL sql = """\ @@ -184,7 +185,7 @@ def physical_wk_inst_aris_if_wrn_delete(db): raise e -def wk_inst_aris_if_wrn_insert_into(db): +def insert_abnormal_record_into_wk_inst_aris_if_wrn(db): # 異常系データを取得しWKテーブルに保存する。 try: # 異常系データを取得しWKテーブルに保存SQL @@ -238,7 +239,7 @@ def wk_inst_aris_if_wrn_insert_into(db): raise e -def wk_inst_aris_if_wrn_count(db): +def count_wk_inst_aris_if_wrn_record(db): # 異常系データの件数を取得 try: # 異常系データの件数を取得SQL @@ -271,18 +272,18 @@ def csv_data_select(db): raise e -def make_csv_data(record_csv: list): +def make_csv_data(record_csv: list, arisj_csv_file_name: str): # 一時ファイルとして保存する(CSVファイル) try: temporary_dir = tempfile.mkdtemp() - csv_file_path = path.join(temporary_dir, arisj_create_csv) + csv_file_path = path.join(temporary_dir, arisj_csv_file_name) head_str = ['TC_HOSPITAL', 'TJ_HOSPITAL', 'TJ_HOSPITALSHORT', 'TK_HOSPITAL', 'TC_PREFECTURE', 'TJ_PREFECTURE', 'TJ_ZIPCODE', 'TJ_CITY', 'TJ_ADDRESS', 'TJ_DEPARTMENT', 'TJ_TELEPHONENUMBER', 'TC_HOSPITALCAT', 'TC_HOSPITALTYPE', 'TS_UPDATE', 'TD_UPDATE'] with open(csv_file_path, mode='w', encoding='cp932') as csv_file: - # ヘッダ行書き込み(くくり文字をつけない為にwriteしています) + # ヘッダ行書き込み(くくり文字をつけない為にwriterowではなく、writeを使用しています) csv_file.write(f"{','.join(head_str)}\n") # Shift-JIS、CRLF、価囲いありで書き込む