指摘事項修正
This commit is contained in:
parent
3fa372b5da
commit
819c1543f8
@ -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
|
||||
|
||||
@ -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、価囲いありで書き込む
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user