新規作成(診療科目--作成中)

This commit is contained in:
野間 2023-05-12 15:13:31 +09:00
parent d9224ef8f7
commit a806b5602e
2 changed files with 117 additions and 0 deletions

View File

@ -0,0 +1,99 @@
from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \
UltmarcTableMapper
from src.batch.ultmarc.utmp_tables.tables.com_trt_course import ComTrtCourse
class ComTrtCourseMapper(UltmarcTableMapper):
"""レイアウト区分001: COM_診療科目 登録処理"""
# レコード存在確認SQL
RECORD_EXISTS_QUERY = """\
SELECT
COUNT(*) AS count_num
FROM
src05.com_trt_course
WHERE
trt_course_cd = :trt_course_cd
"""
# データ登録用SQL
INSERT_QUERY = """\
INSERT INTO src05.com_trt_course
(
trt_course_cd,
trt_course_name_kana,
trt_course_name_abb,
trt_course_name,
regist_ymd,
sys_regist_date,
regist_prgm_id,
sys_update_date,
update_prgm_id
)
VALUES (
:trt_course_cd,
:trt_course_name_kana,
:trt_course_name_abb,
:trt_course_name,
:execute_date_str_ymd,
:execute_datetime,
:program_name,
:execute_datetime,
:program_name
)
"""
# 更新用SQL
UPDATE_QUERY = """\
UPDATE
src05.com_trt_course
SET
trt_course_name_kana = :trt_course_name_kana,
trt_course_name_abb = :trt_course_name_abb,
trt_course_name = :trt_course_name,
update_ymd = :execute_date_str_ymd,
sys_update_date = :execute_datetime,
update_prgm_id = :program_name
WHERE
trt_course_cd = :trt_course_cd
"""
# 修正区分が「C(削除)」の場合の更新SQL
LOGICAL_DELETE_QUERY = """\
UPDATE
src05.com_trt_course
SET
delete_ymd = :execute_date_str_ymd,
sys_update_date = :execute_date_str_ymd,
update_prgm_id = :program_name
WHERE
trt_course_cd = :trt_course_cd
"""
record: ComTrtCourse
def __init__(self, record: list[str], db) -> None:
super().__init__(record, db, ComTrtCourse)
program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている)
# モジュール名をクエリパラメータに設定
self.query_parameter['program_name'] = program_name
# 読み込んだレコード値もクエリパラメータに追加
self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()}
def make_query(self):
# 修正区分がC(削除)の場合、論理削除
if self.record.maint_flag == 'C':
self.queries.append(self.LOGICAL_DELETE_QUERY)
return
# 追加、更新の場合
self.queries.append(self.__make_upsert_query())
return
def __make_upsert_query(self):
# レコードの存在確認
record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter)
# 存在しない場合はInsert
if record_count[0]['count_num'] == 0:
return self.INSERT_QUERY
# 存在する場合ではUpdate
return self.UPDATE_QUERY

View File

@ -0,0 +1,18 @@
from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable
class ComTrtCourse(UltmarcTable):
"""レイアウト区分001: COM_診療科目"""
trt_course_cd: str # 診療科目コード
trt_course_name_kana: str # 診療科目名カナ
trt_course_name_abb: str # 診療科目名略称
trt_course_name: str # 診療科目名
maint_flag: str # 修正区分
def __init__(self, record: list[str]):
super().__init__(record)
self.trt_course_cd = record[1]
self.maint_flag = record[2]
self.trt_course_name_abb = record[5]
self.trt_course_name = record[6]
self.trt_course_name_kana = record[7]