From 40fe63c63dfe864851ace59f45d63156f3e339f5 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Wed, 29 Nov 2023 14:47:51 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20COM=5F=E5=8C=BB=E5=B8=AB=E5=8B=A4?= =?UTF-8?q?=E5=8B=99=E5=85=88=20=E9=A0=85=E7=9B=AE=E3=82=AF=E3=83=AA?= =?UTF-8?q?=E3=82=A2=E3=81=AE=E8=80=83=E6=85=AE=E6=BC=8F=E3=82=8C=20?= =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E3=81=AE=E4=BF=AE=E6=AD=A3=E3=80=82?= =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=82=82=E3=83=91=E3=82=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sample_create_bio_sales_lot.py | 35 +++++++++++++++ .../concrete/com_dr_wrkplace_mapper.py | 43 ++++++++++++++----- 2 files changed, 68 insertions(+), 10 deletions(-) create mode 100644 ecs/jskult-batch-daily/sample_create_bio_sales_lot.py diff --git a/ecs/jskult-batch-daily/sample_create_bio_sales_lot.py b/ecs/jskult-batch-daily/sample_create_bio_sales_lot.py new file mode 100644 index 00000000..c92ebdf2 --- /dev/null +++ b/ecs/jskult-batch-daily/sample_create_bio_sales_lot.py @@ -0,0 +1,35 @@ +# import src.batch.bio_sales.create_bio_sales_lot as create_bio_sales_lot +import src.batch.common.batch_context as batch_context +import src.batch.ultmarc.ultmarc_process as ultmarc_process + +# context = batch_context.BatchContext.get_instance().is_ultmarc_imported = True +context = batch_context.BatchContext.get_instance() +context.syor_date = '2023/09/28' + +# import gzip +# import os +# import tarfile + + +# def main(): + +# gzname = '/Users/shimoda.m/Downloads/bio_slip_data_20230612204112.gz' +# ret = [] +# with tarfile.open(gzname, 'r') as tar: +# temp_dir = os.path.dirname(gzname) +# 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) +# return ret + + +if __name__ == '__main__': + # main() + ultmarc_process.exec_import() + + # create_bio_sales_lot.exec() + + +# tar -zxvf '/Users/shimoda.m/Downloads/bio_slip_data_20230612204112-1.gz' diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_wrkplace_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_wrkplace_mapper.py index 0e9737af..fc47b278 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_wrkplace_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_wrkplace_mapper.py @@ -182,6 +182,10 @@ class ComDrWrkplaceMapper(UltmarcTableMapper): def __make_queries(self): # レコードの存在確認 record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + + # 「@」による項目クリアを設定 + self.__set_clearing_item() + # 存在しない場合はInsert if record_count[0]['count_num'] == 0: return [self.INSERT_QUERY] @@ -204,8 +208,6 @@ class ComDrWrkplaceMapper(UltmarcTableMapper): # DM不可フラグの値をセット # 履歴レコード作成判断とならないため、後から設定 if self.record.notdm_flg != '': - notdm_flg = None if self.record.notdm_flg == '@' else self.record.notdm_flg - self.query_parameter['notdm_flg'] = notdm_flg set_clause_without_historical.append(f'notdm_flg = :notdm_flg') # 何かしら更新がある場合、履歴作成クエリを作成 if len(set_clauses_with_historical) != 0: @@ -230,24 +232,16 @@ class ComDrWrkplaceMapper(UltmarcTableMapper): # 役職コード if self.record.postcode != '': set_clauses.append('post_cd = :postcode') - self.query_parameter['postcode'] = '' if self.record.postcode == '@' else self.record.postcode # 大学順位 if self.record.identitycode != '': set_clauses.append('identity_cd = :identitycode') - self.query_parameter['identitycode'] = '' if self.record.identitycode == '@' else self.record.identitycode # 所属部科(集合項目) if self.record.sectcode != '': # 所属部科コード - self.query_parameter['sectcode'] = '9999' if self.record.sectcode == '@' else self.record.sectcode set_clauses.append('blng_sec_cd = :sectcode') # 所属部科(カナ) - sectname_kana = None if self.record.sectname_kana == '@' else self.record.sectname_kana - self.query_parameter['sectname_kana'] = sectname_kana set_clauses.append(f'blng_sec_name_kana = :sectname_kana') # 所属部科(漢字) - # 全角文字なので、修正項目として全角@が連携されるパターンがある - sectname = None if self.record.sectname == '@' else self.record.sectname - self.query_parameter['sectname'] = sectname set_clauses.append(f'blng_sec_name = :sectname') # 何かしら更新がある場合、適用開始日をセットする @@ -256,3 +250,32 @@ class ComDrWrkplaceMapper(UltmarcTableMapper): set_clauses.append("aply_start_ymd = DATE_FORMAT(:syor_date, '%Y%m%d')") return set_clauses + + def __set_clearing_item(self): + + # 役職コード + if self.record.postcode == '@': + # NOT NULLのため、空文字をセット + self.query_parameter['postcode'] = '' + # 大学順位 + if self.record.identitycode == '@': + # NOT NULLのため、空文字をセット + self.query_parameter['identitycode'] = '' + # DM不可フラグ + if self.record.notdm_flg == '@': + self.query_parameter['notdm_flg'] = None + + # 以下、実際には項目のクリアが発生しない為不要なロジックだが、現行踏襲の為残しておく + # 所属部科コード + if self.record.sectcode == '@': + # NOT NULLのため、固定の所属部科コードをセット + self.query_parameter['sectcode'] = '9999' + # 所属部科(カナ) + if self.record.sectname_kana == '@': + self.query_parameter['sectname_kana'] = None + # 所属部科(漢字) + # 全角の項目なので、修正項目値として全角@が連携される + if self.record.sectname == '@': + self.query_parameter['sectname'] = None + + return