diff --git a/ecs/jskult-batch-daily/src/aws/s3.py b/ecs/jskult-batch-daily/src/aws/s3.py index a4ebc30a..3a5fe240 100644 --- a/ecs/jskult-batch-daily/src/aws/s3.py +++ b/ecs/jskult-batch-daily/src/aws/s3.py @@ -1,6 +1,7 @@ +import gzip import os import os.path as path -import tarfile +import shutil import tempfile import boto3 @@ -134,14 +135,14 @@ class VjskReceiveBucket(S3Bucket): return temporary_file_path def unzip_data_file(self, filename: str): - ret = [] - with tarfile.open(filename) as tar: - temp_dir = os.path.dirname(filename) - tar.extractall(path=temp_dir) - extracted_files = tar.getnames() - for extracted_file in extracted_files: - file = os.path.join(temp_dir, extracted_file) - ret.append(file) + temp_dir = os.path.dirname(filename) + decompress_filename = os.path.basename(filename).replace('.gz', '') + decompress_file_path = os.path.join(temp_dir, decompress_filename) + with gzip.open(filename, 'rb') as gz: + with open(decompress_file_path, 'wb') as decompressed_file: + shutil.copyfileobj(gz, decompressed_file) + + ret = [decompress_file_path] return ret def backup_dat_file(self, target_files: list, datetime_key: str): diff --git a/ecs/jskult-batch-daily/src/batch/batch_functions.py b/ecs/jskult-batch-daily/src/batch/batch_functions.py index 87a7793d..43c4760c 100644 --- a/ecs/jskult-batch-daily/src/batch/batch_functions.py +++ b/ecs/jskult-batch-daily/src/batch/batch_functions.py @@ -60,6 +60,7 @@ def update_batch_processing_flag_in_processing() -> None: """ try: db.connect() + db.to_jst() db.execute(sql, {'in_processing': constants.BATCH_ACTF_BATCH_IN_PROCESSING}) except DBException as e: raise BatchOperationException(e) @@ -87,6 +88,7 @@ def update_batch_process_complete() -> None: """ try: db.connect() + db.to_jst() db.execute(sql, { 'batch_complete': constants.BATCH_ACTF_BATCH_UNPROCESSED, 'dump_unprocessed': constants.DUMP_STATUS_KBN_UNPROCESSED diff --git a/ecs/jskult-batch-daily/src/batch/dcf_inst_merge/create_dcf_inst_merge.py b/ecs/jskult-batch-daily/src/batch/dcf_inst_merge/create_dcf_inst_merge.py index 96d66ad7..294fe004 100644 --- a/ecs/jskult-batch-daily/src/batch/dcf_inst_merge/create_dcf_inst_merge.py +++ b/ecs/jskult-batch-daily/src/batch/dcf_inst_merge/create_dcf_inst_merge.py @@ -20,6 +20,7 @@ def exec(): db = Database.get_instance() try: db.connect() + db.to_jst() db.begin() logger.debug('DCF施設統合マスタ作成処理開始') # COM施設からDCF施設統合マスタに登録 diff --git a/ecs/jskult-batch-daily/src/batch/dcf_inst_merge/integrate_dcf_inst_merge.py b/ecs/jskult-batch-daily/src/batch/dcf_inst_merge/integrate_dcf_inst_merge.py index 816a0545..85de15ed 100644 --- a/ecs/jskult-batch-daily/src/batch/dcf_inst_merge/integrate_dcf_inst_merge.py +++ b/ecs/jskult-batch-daily/src/batch/dcf_inst_merge/integrate_dcf_inst_merge.py @@ -14,6 +14,7 @@ def exec(): db = Database.get_instance() try: db.connect() + db.to_jst() db.begin() logger.debug('DCF施設統合マスタ日次更新処理開始') # DCF施設統合マスタ移行先コードのセット(無効フラグが『0(有効)』) diff --git a/ecs/jskult-batch-daily/src/batch/laundering/emp_chg_inst_laundering.py b/ecs/jskult-batch-daily/src/batch/laundering/emp_chg_inst_laundering.py index f78ece9b..8ec3b84e 100644 --- a/ecs/jskult-batch-daily/src/batch/laundering/emp_chg_inst_laundering.py +++ b/ecs/jskult-batch-daily/src/batch/laundering/emp_chg_inst_laundering.py @@ -13,6 +13,7 @@ def exec(): db = Database.get_instance() try: db.connect() + db.to_jst() logger.debug('##########################') logger.debug('START Changing Employee in charge of institution PGM.') # `emp_chg_inst_lau`をTruncate diff --git a/ecs/jskult-batch-daily/src/batch/laundering/sales_results_laundering.py b/ecs/jskult-batch-daily/src/batch/laundering/sales_results_laundering.py index 7f6d4259..58755f36 100644 --- a/ecs/jskult-batch-daily/src/batch/laundering/sales_results_laundering.py +++ b/ecs/jskult-batch-daily/src/batch/laundering/sales_results_laundering.py @@ -11,6 +11,7 @@ def exec(): db = Database.get_instance(autocommit=True) try: db.connect() + db.to_jst() logger.debug('処理開始') # 卸販売実績テーブル(洗替後)過去5年以前のデータ削除 _call_sales_lau_delete(db) diff --git a/ecs/jskult-batch-daily/src/batch/laundering/ult_ident_presc_laundering.py b/ecs/jskult-batch-daily/src/batch/laundering/ult_ident_presc_laundering.py index b7434967..9776eb8d 100644 --- a/ecs/jskult-batch-daily/src/batch/laundering/ult_ident_presc_laundering.py +++ b/ecs/jskult-batch-daily/src/batch/laundering/ult_ident_presc_laundering.py @@ -13,6 +13,7 @@ def exec(): db = Database.get_instance() try: db.connect() + db.to_jst() logger.debug('納入先処方元マスタの洗替処理開始') # ult_ident_presc_lauをTruncate _truncate_ult_ident_presc_lau(db) diff --git a/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_data_load_manager.py b/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_data_load_manager.py index 6006c030..b693bd07 100644 --- a/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_data_load_manager.py +++ b/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_data_load_manager.py @@ -37,6 +37,7 @@ class VjskDataLoadManager: try: # データベース接続 db.connect() + db.to_jst() db.execute("SET SESSION sql_mode = 'TRADITIONAL';") # orgをtruncate diff --git a/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_recv_file_mapper.py b/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_recv_file_mapper.py index 21264c42..4ffaa652 100644 --- a/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_recv_file_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_recv_file_mapper.py @@ -333,7 +333,7 @@ class VjskReceiveFileMapper: ,t.dsp_odr ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する - ,t.upd_dt + ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.hld_mst_v AS t ON DUPLICATE KEY UPDATE @@ -347,7 +347,7 @@ class VjskReceiveFileMapper: ,dsp_odr=t.dsp_odr ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) - ,upd_dt=t.upd_dt + ,upd_dt=nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,dwh_upd_dt=SYSDATE() ; """) @@ -397,7 +397,7 @@ class VjskReceiveFileMapper: ,t.dsp_odr ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する - ,t.upd_dt + ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.whs_mst_v AS t ON DUPLICATE KEY UPDATE @@ -416,7 +416,7 @@ class VjskReceiveFileMapper: ,dsp_odr=t.dsp_odr ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) - ,upd_dt=t.upd_dt + ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) @@ -526,7 +526,7 @@ class VjskReceiveFileMapper: ,t.end_date ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する - ,t.upd_dt + ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.mkr_org_horizon_v AS t ON DUPLICATE KEY UPDATE @@ -575,7 +575,7 @@ class VjskReceiveFileMapper: ,end_date=t.end_date ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) - ,upd_dt=t.upd_dt + ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) @@ -615,7 +615,7 @@ class VjskReceiveFileMapper: ,t.dsp_odr ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する - ,t.upd_dt + ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.org_cnv_mst_v AS t ON DUPLICATE KEY UPDATE @@ -629,7 +629,7 @@ class VjskReceiveFileMapper: ,dsp_odr=t.dsp_odr ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) - ,upd_dt=t.upd_dt + ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) @@ -665,7 +665,7 @@ class VjskReceiveFileMapper: ,t.dsp_odr ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する - ,t.upd_dt + ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.tran_kbn_mst_v AS t ON DUPLICATE KEY UPDATE @@ -677,7 +677,7 @@ class VjskReceiveFileMapper: ,dsp_odr=t.dsp_odr ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) - ,upd_dt=t.upd_dt + ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) @@ -743,7 +743,7 @@ class VjskReceiveFileMapper: ,t.fcl_type ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する - ,t.upd_dt + ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.fcl_mst_v AS t ON DUPLICATE KEY UPDATE @@ -770,7 +770,7 @@ class VjskReceiveFileMapper: ,fcl_type=t.fcl_type ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) - ,upd_dt=t.upd_dt + ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) @@ -844,7 +844,7 @@ class VjskReceiveFileMapper: ,t.dsp_odr ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する - ,t.upd_dt + ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.phm_prd_mst_v AS t ON DUPLICATE KEY UPDATE @@ -875,7 +875,7 @@ class VjskReceiveFileMapper: ,dsp_odr=t.dsp_odr ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) - ,upd_dt=t.upd_dt + ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) @@ -913,7 +913,7 @@ class VjskReceiveFileMapper: ,t.dsp_odr ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する - ,t.upd_dt + ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.phm_price_mst_v AS t ON DUPLICATE KEY UPDATE @@ -926,7 +926,7 @@ class VjskReceiveFileMapper: ,dsp_odr=t.dsp_odr ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) - ,upd_dt=t.upd_dt + ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) @@ -1011,7 +1011,7 @@ class VjskReceiveFileMapper: ,t.tel_num ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する - ,t.upd_dt + ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.whs_customer_mst_v AS t ON DUPLICATE KEY UPDATE @@ -1031,7 +1031,7 @@ class VjskReceiveFileMapper: ,tel_num=t.tel_num ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) - ,upd_dt=t.upd_dt + ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) @@ -1065,7 +1065,7 @@ class VjskReceiveFileMapper: ,t.start_date ,t.rec_sts_kbn ,nullif(t.ins_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する - ,t.upd_dt + ,nullif(t.upd_dt, 0) -- 受領データがブランクだった場合にゼロ日付で取得されるので明示的にNULL値に変換する ,SYSDATE() FROM org05.mdb_cnv_mst_v AS t ON DUPLICATE KEY UPDATE @@ -1076,7 +1076,7 @@ class VjskReceiveFileMapper: ,start_date=t.start_date ,rec_sts_kbn=t.rec_sts_kbn ,ins_dt=nullif(t.ins_dt, 0) - ,upd_dt=t.upd_dt + ,upd_dt=nullif(t.upd_dt, 0) ,dwh_upd_dt=SYSDATE() ; """) diff --git a/ecs/jskult-batch-daily/src/db/database.py b/ecs/jskult-batch-daily/src/db/database.py index 280a9d8b..5ddaba4e 100644 --- a/ecs/jskult-batch-daily/src/db/database.py +++ b/ecs/jskult-batch-daily/src/db/database.py @@ -180,6 +180,9 @@ class Database: self.__connection.close() self.__connection = None + def to_jst(self): + self.execute('SET time_zone = "+9:00"') + def __execute_with_transaction(self, query: str, parameters: dict): # トランザクションを開始してクエリを実行する with self.__connection.begin(): diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/test_vjsk_load.py b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/test_vjsk_load.py index 6b45f96e..a4f6383e 100644 --- a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/test_vjsk_load.py +++ b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/test_vjsk_load.py @@ -39,6 +39,7 @@ class TestImportFileToDb: self.db = database self.db.connect() self.db.execute("set sql_mode = 'TRADITIONAL';") + self.db.to_jst() # self.db.begin() # testing @@ -1159,7 +1160,7 @@ class TestImportFileToDb: _import_file_to_db(received_s3_files) # 検証 - assert str(e.value) == "file could not be opened successfully" + assert str(e.value) == "Not a gzipped file (b'7z')" # teardown for test_file in test_files: diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/bio_slip_data_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/bio_slip_data_202304270000.gz old mode 100644 new mode 100755 index 36d1af45..6ea16a9c Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/bio_slip_data_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/bio_slip_data_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/fcl_mst_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/fcl_mst_202304270000.gz old mode 100644 new mode 100755 index 24234bfe..fffb9215 Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/fcl_mst_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/fcl_mst_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/hld_mst_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/hld_mst_202304270000.gz old mode 100644 new mode 100755 index efedd921..20c194a2 Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/hld_mst_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/hld_mst_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/lot_num_mst_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/lot_num_mst_202304270000.gz old mode 100644 new mode 100755 index 615d1451..6d6f7dd9 Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/lot_num_mst_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/lot_num_mst_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/mdb_conv_mst_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/mdb_conv_mst_202304270000.gz old mode 100644 new mode 100755 index 994a80b8..9b177904 Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/mdb_conv_mst_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/mdb_conv_mst_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/mkr_org_horizon_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/mkr_org_horizon_202304270000.gz old mode 100644 new mode 100755 index 835d2360..9eb2cd34 Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/mkr_org_horizon_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/mkr_org_horizon_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/org_cnv_mst_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/org_cnv_mst_202304270000.gz old mode 100644 new mode 100755 index 89eb4a65..72b636f5 Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/org_cnv_mst_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/org_cnv_mst_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/phm_prd_mst_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/phm_prd_mst_202304270000.gz old mode 100644 new mode 100755 index 169f6761..7d864d6f Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/phm_prd_mst_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/phm_prd_mst_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/phm_price_mst_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/phm_price_mst_202304270000.gz old mode 100644 new mode 100755 index f7658c88..7cf9f449 Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/phm_price_mst_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/phm_price_mst_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/slip_data_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/slip_data_202304270000.gz old mode 100644 new mode 100755 index 5a90e676..82465aea Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/slip_data_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/slip_data_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/stock_slip_data_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/stock_slip_data_202304270000.gz old mode 100644 new mode 100755 index e2cfdfdf..f36e25ca Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/stock_slip_data_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/stock_slip_data_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/tran_kbn_mst_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/tran_kbn_mst_202304270000.gz old mode 100644 new mode 100755 index b68d5099..77e7eac6 Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/tran_kbn_mst_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/tran_kbn_mst_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/vop_hco_merge_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/vop_hco_merge_202304270000.gz old mode 100644 new mode 100755 index 58fbc63d..3671b2a6 Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/vop_hco_merge_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/vop_hco_merge_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/whs_customer_mst_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/whs_customer_mst_202304270000.gz old mode 100644 new mode 100755 index fd0ed8cd..7c3bd6d4 Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/whs_customer_mst_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/whs_customer_mst_202304270000.gz differ diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/whs_mst_202304270000.gz b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/whs_mst_202304270000.gz old mode 100644 new mode 100755 index 013eae2c..d41f560a Binary files a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/whs_mst_202304270000.gz and b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/testdata/TestImportFileToDb/whs_mst_202304270000.gz differ diff --git a/ecs/jskult-batch-laundering/src/batch/laundering/sales_results_laundering.py b/ecs/jskult-batch-laundering/src/batch/laundering/sales_results_laundering.py index ac2c79f7..1b11fa91 100644 --- a/ecs/jskult-batch-laundering/src/batch/laundering/sales_results_laundering.py +++ b/ecs/jskult-batch-laundering/src/batch/laundering/sales_results_laundering.py @@ -12,6 +12,7 @@ def exec(): db = Database.get_instance() try: db.connect() + db.to_jst() logger.debug('処理開始') # 卸販売実績テーブル(洗替後)作成 _call_sales_lau_upsert(db) diff --git a/ecs/jskult-batch-laundering/src/db/database.py b/ecs/jskult-batch-laundering/src/db/database.py index 280a9d8b..02904db0 100644 --- a/ecs/jskult-batch-laundering/src/db/database.py +++ b/ecs/jskult-batch-laundering/src/db/database.py @@ -180,6 +180,9 @@ class Database: self.__connection.close() self.__connection = None + def to_jst(self): + self.execute('SET time_zone = "+9:00"') + def __execute_with_transaction(self, query: str, parameters: dict): # トランザクションを開始してクエリを実行する with self.__connection.begin(): 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 d3f81597..1b375d3f 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 @@ -30,6 +30,8 @@ def exec(): except Exception as e: logger.info('DB接続エラーです') raise e + # タイムゾーンをJSTに変更 + db.to_jst() # トランザクションの開始 db.begin() diff --git a/ecs/jskult-batch-monthly/src/db/database.py b/ecs/jskult-batch-monthly/src/db/database.py index d2171fb5..aa350012 100644 --- a/ecs/jskult-batch-monthly/src/db/database.py +++ b/ecs/jskult-batch-monthly/src/db/database.py @@ -167,6 +167,9 @@ class Database: self.__connection.close() self.__connection = None + def to_jst(self): + self.execute('SET time_zone = "+9:00"') + def __execute_with_transaction(self, query: str, parameters: dict): # トランザクションを開始してクエリを実行する with self.__connection.begin(): diff --git a/ecs/jskult-dbdump/Dockerfile b/ecs/jskult-dbdump/Dockerfile index 3c410b72..9c6838cb 100644 --- a/ecs/jskult-dbdump/Dockerfile +++ b/ecs/jskult-dbdump/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.9 +FROM python:3.9-bullseye ENV TZ="Asia/Tokyo" diff --git a/ecs/jskult-dbdump/src/batch/batch_functions.py b/ecs/jskult-dbdump/src/batch/batch_functions.py index e51f336b..eece0536 100644 --- a/ecs/jskult-dbdump/src/batch/batch_functions.py +++ b/ecs/jskult-dbdump/src/batch/batch_functions.py @@ -55,6 +55,7 @@ def update_dump_status_kbn_in_processing() -> None: """ try: db.connect() + db.to_jst() db.execute(sql, {'in_processing': constants.BATCH_ACTF_BATCH_IN_PROCESSING}) except DBException as e: raise BatchOperationException(e) @@ -80,6 +81,7 @@ def update_dump_status_kbn_error() -> None: """ try: db.connect() + db.to_jst() db.execute(sql, { 'dump_unprocessed': constants.DUMP_STATUS_KBN_ERROR }) @@ -107,6 +109,7 @@ def update_dump_status_kbn_complete() -> None: """ try: db.connect() + db.to_jst() db.execute(sql, { 'dump_unprocessed': constants.DUMP_STATUS_KBN_COMPLETE }) diff --git a/ecs/jskult-dbdump/src/db/database.py b/ecs/jskult-dbdump/src/db/database.py index b675381c..24bb6061 100644 --- a/ecs/jskult-dbdump/src/db/database.py +++ b/ecs/jskult-dbdump/src/db/database.py @@ -165,6 +165,9 @@ class Database: self.__connection.close() self.__connection = None + def to_jst(self): + self.execute('SET time_zone = "+9:00"') + def __execute_with_transaction(self, query: str, parameters: dict): # トランザクションを開始してクエリを実行する with self.__connection.begin(): diff --git a/ecs/jskult-dbdump/src/jobctrl_dbdump.py b/ecs/jskult-dbdump/src/jobctrl_dbdump.py index 3dac256f..1cc5a89b 100644 --- a/ecs/jskult-dbdump/src/jobctrl_dbdump.py +++ b/ecs/jskult-dbdump/src/jobctrl_dbdump.py @@ -23,8 +23,7 @@ def exec(): # 日次バッチ処置中フラグ、dump処理状態区分を取得 batch_processing_flag, dump_status_kbn = get_batch_statuses() except BatchOperationException as e: - logger.exception(f'日付テーブル取得エラー(異常終了):{e}') - return constants.BATCH_EXIT_CODE_SUCCESS + raise BatchOperationException(f'日付テーブル取得エラー(異常終了):{e}') # 日次バッチ処理中の場合、処理は行わない if batch_processing_flag == constants.BATCH_ACTF_BATCH_IN_PROCESSING: @@ -45,8 +44,7 @@ def exec(): try: update_dump_status_kbn_in_processing() except BatchOperationException as e: - logger.exception(f'dump処理状態区分更新(未処理→処理中) エラー(異常終了):{e}') - return constants.BATCH_EXIT_CODE_SUCCESS + raise BatchOperationException(f'dump処理状態区分更新(未処理→処理中) エラー(異常終了):{e}') # MySQL接続情報を作成する my_cnf_file_content = f""" @@ -93,25 +91,21 @@ def exec(): # パイプラインを実行し、エラーハンドリング _, error = mysqldump_process.communicate() if mysqldump_process.returncode != 0: - logger.error(f'`mysqldump`実行時にエラーが発生しました。{"" if error is None else error.decode("utf-8")}') - return constants.BATCH_EXIT_CODE_SUCCESS + raise BatchOperationException(f'`mysqldump`実行時にエラーが発生しました。{"" if error is None else error.decode("utf-8")}') _, error = gzip_process.communicate() if gzip_process.returncode != 0: - logger.error(f'`gzip`実行時にエラーが発生しました。{"" if error is None else error.decode("utf-8")}') - return constants.BATCH_EXIT_CODE_SUCCESS + raise BatchOperationException(f'`gzip`実行時にエラーが発生しました。{"" if error is None else error.decode("utf-8")}') _, error = s3_cp_process.communicate() if s3_cp_process.returncode != 0: - logger.error(f'`aws s3 cp`実行時にエラーが発生しました。{"" if error is None else error.decode("utf-8")}') - return constants.BATCH_EXIT_CODE_SUCCESS + raise BatchOperationException(f'`aws s3 cp`実行時にエラーが発生しました。{"" if error is None else error.decode("utf-8")}') # dump処理状態区分を正常終了に更新 try: update_dump_status_kbn_complete() except BatchOperationException as e: - logger.exception(f'dump処理状態区分更新(処理中→正常終了) エラー(異常終了):{e}') - return constants.BATCH_EXIT_CODE_SUCCESS + raise BatchOperationException(f'dump処理状態区分更新(処理中→正常終了) エラー(異常終了):{e}') logger.info('日次バッチ処理前DBダンプ取得:終了(正常終了)') logger.info(f'出力ファイルパス: {s3_file_path}') diff --git a/ecs/jskult-restore-backup/Dockerfile b/ecs/jskult-restore-backup/Dockerfile index 3c410b72..9c6838cb 100644 --- a/ecs/jskult-restore-backup/Dockerfile +++ b/ecs/jskult-restore-backup/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.9 +FROM python:3.9-bullseye ENV TZ="Asia/Tokyo" diff --git a/ecs/jskult-webapp/src/db/database.py b/ecs/jskult-webapp/src/db/database.py index f700c016..971c859e 100644 --- a/ecs/jskult-webapp/src/db/database.py +++ b/ecs/jskult-webapp/src/db/database.py @@ -180,6 +180,9 @@ class Database: self.__connection.close() self.__connection = None + def to_jst(self): + self.execute('SET time_zone = "+9:00"') + def __execute_with_transaction(self, query: str, parameters: dict): # トランザクションを開始してクエリを実行する with self.__connection.begin(): diff --git a/ecs/jskult-webapp/src/model/internal/master_mainte_emp_chg_inst_function.py b/ecs/jskult-webapp/src/model/internal/master_mainte_emp_chg_inst_function.py index 4f4f6165..d4379a43 100644 --- a/ecs/jskult-webapp/src/model/internal/master_mainte_emp_chg_inst_function.py +++ b/ecs/jskult-webapp/src/model/internal/master_mainte_emp_chg_inst_function.py @@ -30,6 +30,7 @@ class MasterMainteEmpChgInstFunction(metaclass=ABCMeta): error_list = [] try: self.emp_chginst_repository.connect() + self.emp_chginst_repository.to_jst() self.emp_chginst_repository.begin() (result_message, error_list) = self.write_emp_chg_inst_table() if len(error_list) > 0: diff --git a/ecs/jskult-webapp/src/repositories/emp_chg_inst_repository.py b/ecs/jskult-webapp/src/repositories/emp_chg_inst_repository.py index 404d7bca..ce32a244 100644 --- a/ecs/jskult-webapp/src/repositories/emp_chg_inst_repository.py +++ b/ecs/jskult-webapp/src/repositories/emp_chg_inst_repository.py @@ -13,6 +13,9 @@ class EmpChgInstRepository(BaseRepository): def connect(self): self._database.connect() + + def to_jst(self): + self._database.to_jst() def begin(self): self._database.begin() @@ -110,7 +113,7 @@ class EmpChgInstRepository(BaseRepository): SET emp_cd = :emp_cd, updater = :update_user_name, - update_date = now() + update_date = NOW() where inst_cd = :inst_cd and ta_cd = :ta_cd diff --git a/ecs/jskult-webapp/src/services/master_mainte_service.py b/ecs/jskult-webapp/src/services/master_mainte_service.py index e9620eda..57ba896d 100644 --- a/ecs/jskult-webapp/src/services/master_mainte_service.py +++ b/ecs/jskult-webapp/src/services/master_mainte_service.py @@ -149,6 +149,7 @@ class MasterMainteService(BaseService): def copy_data_real_to_dummy(self) -> TableOverrideViewModel: try: self.emp_chginst_repository.connect() + self.emp_chginst_repository.to_jst() self.emp_chginst_repository.begin() self.emp_chginst_repository.delete_dummy_table() self.emp_chginst_repository.copy_real_to_dummy()