Merge pull request #157 feature-NEWDWH2021-1029 into develop
This commit is contained in:
commit
e326347496
14
ecs/jskult-batch-daily/src/batch/jissekiaraigae.py
Normal file
14
ecs/jskult-batch-daily/src/batch/jissekiaraigae.py
Normal file
@ -0,0 +1,14 @@
|
||||
from src.batch.datachange import emp_chg_inst_lau
|
||||
from src.batch.datachange import create_inst_merge_for_laundering
|
||||
from src.logging.get_logger import get_logger
|
||||
|
||||
logger = get_logger('実績洗替')
|
||||
|
||||
|
||||
def batch_process():
|
||||
"""実績洗替処理"""
|
||||
logger.info('Start Jisseki Araigae Batch PGM.')
|
||||
# 洗替用マスタ作成
|
||||
create_inst_merge_for_laundering.batch_process()
|
||||
# 施設担当者洗替
|
||||
emp_chg_inst_lau.batch_process()
|
||||
@ -0,0 +1,31 @@
|
||||
from src.db.database import Database
|
||||
from src.error.exceptions import BatchOperationException
|
||||
from src.logging.get_logger import get_logger
|
||||
|
||||
logger = get_logger('洗替用マスタ作成')
|
||||
|
||||
|
||||
def batch_process():
|
||||
db = Database.get_instance()
|
||||
|
||||
try:
|
||||
db.connect()
|
||||
|
||||
logger.debug('処理開始')
|
||||
call_v_inst_merge_t_create(db)
|
||||
call_inst_merge_t_create(db)
|
||||
logger.debug('処理終了')
|
||||
except Exception as e:
|
||||
raise BatchOperationException(e)
|
||||
finally:
|
||||
db.disconnect()
|
||||
|
||||
|
||||
def call_v_inst_merge_t_create(db: Database):
|
||||
db.execute('CALL src05.v_inst_merge_t_create()')
|
||||
return
|
||||
|
||||
|
||||
def call_inst_merge_t_create(db: Database):
|
||||
db.execute('CALL src05.inst_merge_t_create()')
|
||||
return
|
||||
@ -84,7 +84,7 @@ class Database:
|
||||
try:
|
||||
self.__connection = self.__engine.connect()
|
||||
except Exception as e:
|
||||
raise DBException(f'SQL Error: {e}')
|
||||
raise DBException(e)
|
||||
|
||||
def execute_select(self, select_query: str, parameters=None) -> list[dict]:
|
||||
"""SELECTクエリを実行します。
|
||||
|
||||
70
rds_mysql/stored_procedure/src05/inst_merge_t_create.sql
Normal file
70
rds_mysql/stored_procedure/src05/inst_merge_t_create.sql
Normal file
@ -0,0 +1,70 @@
|
||||
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
||||
CREATE PROCEDURE src05.inst_merge_t_create()
|
||||
SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
-- スキーマ名
|
||||
DECLARE schema_name VARCHAR(50) DEFAULT (SELECT DATABASE());
|
||||
-- プロシージャ名
|
||||
DECLARE procedure_name VARCHAR(100) DEFAULT 'inst_merge_t_create';
|
||||
-- プロシージャの引数
|
||||
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
||||
|
||||
-- 例外処理
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
GET DIAGNOSTICS CONDITION 1
|
||||
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
||||
call medaca_common.put_error_log(schema_name, procedure_name, procedure_args,
|
||||
'inst_merge_t_createでエラーが発生', @error_state, @error_msg);
|
||||
SIGNAL SQLSTATE '45000'
|
||||
SET MYSQL_ERRNO = @error_state, MESSAGE_TEXT = @error_msg;
|
||||
END;
|
||||
|
||||
SET @error_state = NULL, @error_msg = NULL;
|
||||
|
||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||
'アルトマーク施設統合マスタ(洗替処理一時テーブル)作成① 開始'
|
||||
);
|
||||
|
||||
TRUNCATE TABLE internal05.inst_merge_t;
|
||||
|
||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||
'アルトマーク施設統合マスタ(洗替処理一時テーブル)作成① 終了'
|
||||
);
|
||||
|
||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||
'アルトマーク施設統合マスタ(洗替処理一時テーブル)作成② 開始'
|
||||
);
|
||||
|
||||
INSERT INTO
|
||||
internal05.inst_merge_t (
|
||||
dcf_dsf_inst_cd,
|
||||
dup_opp_cd,
|
||||
form_inst_name_kanji,
|
||||
form_inst_name_kana,
|
||||
inst_addr,
|
||||
prefc_cd
|
||||
)
|
||||
SELECT
|
||||
dim.dcf_inst_cd,
|
||||
dim.dcf_inst_cd_new,
|
||||
ci.form_inst_name_kanji,
|
||||
ci.form_inst_name_kana,
|
||||
ci.inst_addr,
|
||||
ci.prefc_cd
|
||||
FROM
|
||||
src05.dcf_inst_merge dim
|
||||
LEFT OUTER JOIN src05.com_inst ci
|
||||
ON dim.dcf_inst_cd_new = ci.dcf_dsf_inst_cd
|
||||
AND ci.delete_flg = '0'
|
||||
WHERE
|
||||
dim.muko_flg = '0'
|
||||
AND dim.dcf_inst_cd_new IS NOT NULL
|
||||
AND dim.enabled_flg = 'Y'
|
||||
AND src05.to_date_yyyymm01(dim.tekiyo_month) <= src05.get_syor_date();
|
||||
|
||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||
'アルトマーク施設統合マスタ(洗替処理一時テーブル)作成② 終了'
|
||||
);
|
||||
|
||||
END
|
||||
75
rds_mysql/stored_procedure/src05/v_inst_merge_t_create.sql
Normal file
75
rds_mysql/stored_procedure/src05/v_inst_merge_t_create.sql
Normal file
@ -0,0 +1,75 @@
|
||||
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
||||
CREATE PROCEDURE src05.v_inst_merge_t_create()
|
||||
SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
-- スキーマ名
|
||||
DECLARE schema_name VARCHAR(50) DEFAULT (SELECT DATABASE());
|
||||
-- プロシージャ名
|
||||
DECLARE procedure_name VARCHAR(100) DEFAULT 'v_inst_merge_t_create';
|
||||
-- プロシージャの引数
|
||||
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
||||
|
||||
-- 例外処理
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
GET DIAGNOSTICS CONDITION 1
|
||||
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
||||
call medaca_common.put_error_log(schema_name, procedure_name, procedure_args,
|
||||
'v_inst_merge_t_createでエラーが発生', @error_state, @error_msg);
|
||||
SIGNAL SQLSTATE '45000'
|
||||
SET MYSQL_ERRNO = @error_state, MESSAGE_TEXT = @error_msg;
|
||||
END;
|
||||
|
||||
SET @error_state = NULL, @error_msg = NULL;
|
||||
|
||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||
'V施設統合マスタ(洗替処理一時テーブル)作成① 開始');
|
||||
|
||||
TRUNCATE TABLE internal05.v_inst_merge_t;
|
||||
|
||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||
'V施設統合マスタ(洗替処理一時テーブル)作成① 終了');
|
||||
|
||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||
'V施設統合マスタ(洗替処理一時テーブル)作成② 開始');
|
||||
|
||||
INSERT INTO
|
||||
internal05.v_inst_merge_t (
|
||||
v_inst_cd,
|
||||
v_inst_cd_merge,
|
||||
fcl_name,
|
||||
fcl_kn_name,
|
||||
fmt_addr,
|
||||
prft_cd
|
||||
)
|
||||
SELECT
|
||||
vhmv.v_inst_cd,
|
||||
vhmv.v_inst_cd_merg,
|
||||
fmv.fcl_name,
|
||||
fmv.fcl_kn_name,
|
||||
fmv.fmt_addr,
|
||||
fmv.prft_cd
|
||||
FROM
|
||||
src05.vop_hco_merge_v vhmv,
|
||||
src05.fcl_mst_v fmv
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
v_inst_cd,
|
||||
MAX(sub_num) AS sno
|
||||
FROM
|
||||
src05.fcl_mst_v
|
||||
GROUP BY
|
||||
v_inst_cd
|
||||
) max_sno_fmv
|
||||
ON fmv.v_inst_cd = max_sno_fmv.v_inst_cd
|
||||
AND fmv.sub_num = max_sno_fmv.sno
|
||||
WHERE
|
||||
vhmv.v_inst_cd_merg = fmv.v_inst_cd
|
||||
AND STR_TO_DATE(vhmv.apply_dt, '%Y-%m-%d') <= src05.get_syor_date()
|
||||
AND ((fmv.fcl_type IN ('A1','A0')) OR fmv.fcl_type BETWEEN '20' AND '29')
|
||||
AND fmv.rec_sts_kbn != '9';
|
||||
|
||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||
'V施設統合マスタ(洗替処理一時テーブル)作成② 終了' );
|
||||
|
||||
END
|
||||
Loading…
x
Reference in New Issue
Block a user