新規作成(診療科目--作成中)
This commit is contained in:
parent
d9224ef8f7
commit
a806b5602e
@ -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
|
||||
@ -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]
|
||||
Loading…
x
Reference in New Issue
Block a user