feat: レビュー指摘対応
This commit is contained in:
parent
5f4efd451d
commit
4bde68a27c
@ -4,7 +4,7 @@ from src.logging.get_logger import get_logger
|
||||
from src.batch.batch_functions import logging_sql
|
||||
from src.system_var import environment
|
||||
|
||||
logger = get_logger('卸実績洗替')
|
||||
logger = get_logger('卸卸販売洗替')
|
||||
|
||||
|
||||
def exec():
|
||||
@ -48,7 +48,7 @@ def _call_sales_lau_upsert(db: Database):
|
||||
db.execute(f"""
|
||||
CALL src05.sales_lau_upsert(
|
||||
'{environment.SALES_LAUNDERING_TARGET_TABLE_NAME}',
|
||||
(src05.get_syor_date() - {environment.SALES_LAUNDERING_EXTRACT_DATE_PERIOD}),
|
||||
(src05.get_syor_date() - interval {environment.SALES_LAUNDERING_EXTRACT_DATE_PERIOD} day),
|
||||
src05.get_syor_date()
|
||||
)
|
||||
""")
|
||||
@ -70,27 +70,28 @@ def _call_whs_org_laundering(db: Database):
|
||||
|
||||
def _update_sales_lau_from_vop_hco_merge_v(db: Database):
|
||||
# HCO施設コードの洗替
|
||||
if _count_vop_hco_merge_v(db) >= 1:
|
||||
_call_v_inst_merge_laundering(db)
|
||||
if _count_v_inst_merge_t(db) == 0:
|
||||
logger.info('V施設統合マスタ(洗替処理一時テーブル)にデータは存在しません')
|
||||
return
|
||||
logger.info('V施設統合マスタにデータは存在しません')
|
||||
|
||||
_call_v_inst_merge_laundering(db)
|
||||
return
|
||||
|
||||
|
||||
def _count_vop_hco_merge_v(db: Database) -> int:
|
||||
# V施設統合マスタのデータ件数の取得
|
||||
def _count_v_inst_merge_t(db: Database) -> int:
|
||||
# V施設統合マスタ(洗替処理一時テーブル)のデータ件数の取得
|
||||
try:
|
||||
sql = """
|
||||
SELECT
|
||||
COUNT(v_inst_cd) AS cnt
|
||||
FROM
|
||||
src05.vop_hco_merge_v
|
||||
internal05.v_inst_merge_t
|
||||
"""
|
||||
result = db.execute_select(sql)
|
||||
logging_sql(logger, sql)
|
||||
logger.info('V施設統合マスタのデータ件数の取得 成功')
|
||||
logger.info('V施設統合マスタ(洗替処理一時テーブル)のデータ件数の取得 成功')
|
||||
except Exception as e:
|
||||
logger.debug('V施設統合マスタのデータ件数の取得 失敗')
|
||||
logger.debug('V施設統合マスタ(洗替処理一時テーブル)のデータ件数の取得 失敗')
|
||||
raise e
|
||||
|
||||
return result[0]['cnt']
|
||||
@ -128,27 +129,27 @@ def _call_hco_to_mdb_laundering(db: Database):
|
||||
|
||||
def _update_sales_lau_from_dcf_inst_merge(db: Database):
|
||||
# B:DCF施設統合マスタがある場合は、コードを変換し、住所等をSETする
|
||||
if _count_dcf_inst_merge(db) >= 1:
|
||||
_call_inst_merge_laundering(db)
|
||||
if _count_inst_merge_t(db) == 0:
|
||||
logger.info('アルトマーク施設統合マスタ(洗替処理一時テーブル)にデータは存在しません')
|
||||
return
|
||||
logger.info('DCF施設統合マスタにデータは存在しません')
|
||||
_call_inst_merge_laundering(db)
|
||||
return
|
||||
|
||||
|
||||
def _count_dcf_inst_merge(db: Database) -> int:
|
||||
# DCF施設統合マスタのデータ件数の取得
|
||||
def _count_inst_merge_t(db: Database) -> int:
|
||||
# アルトマーク施設統合マスタ(洗替処理一時テーブル)のデータ件数の取得
|
||||
try:
|
||||
sql = """
|
||||
SELECT
|
||||
COUNT(dcf_inst_cd) AS cnt
|
||||
FROM
|
||||
src05.dcf_inst_merge
|
||||
internal05.inst_merge_t
|
||||
"""
|
||||
result = db.execute_select(sql)
|
||||
logging_sql(logger, sql)
|
||||
logger.info('DCF施設統合マスタのデータ件数の取得 成功')
|
||||
logger.info('アルトマーク施設統合マスタ(洗替処理一時テーブル)のデータ件数の取得 成功')
|
||||
except Exception as e:
|
||||
logger.debug('DCF施設統合マスタのデータ件数の取得 失敗')
|
||||
logger.debug('アルトマーク施設統合マスタ(洗替処理一時テーブル)のデータ件数の取得 失敗')
|
||||
raise e
|
||||
|
||||
return result[0]['cnt']
|
||||
|
||||
@ -137,7 +137,10 @@ BEGIN
|
||||
'卸販売実績テーブル(洗替後)作成⑤ 開始'
|
||||
);
|
||||
|
||||
SET @insert_sales_laundering = "
|
||||
SET @extract_from_datetime = CAST(extract_from_date AS DATETIME);
|
||||
SET @extract_to_datetime = CAST(extract_to_date AS DATETIME);
|
||||
|
||||
SET @upsert_sales_launderning = "
|
||||
INSERT INTO
|
||||
$$target_table$$ (
|
||||
rec_whs_cd,
|
||||
@ -256,7 +259,7 @@ BEGIN
|
||||
WHEN
|
||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||
THEN
|
||||
(s.nonyu_qty * -1)
|
||||
-s.nonyu_qty
|
||||
ELSE
|
||||
s.nonyu_qty
|
||||
END AS nonyu_qty,
|
||||
@ -265,7 +268,7 @@ BEGIN
|
||||
WHEN
|
||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||
THEN
|
||||
(s.nonyu_amt * -1)
|
||||
-s.nonyu_amt
|
||||
ELSE
|
||||
s.nonyu_amt
|
||||
END AS nonyu_amt,
|
||||
@ -274,7 +277,7 @@ BEGIN
|
||||
WHEN
|
||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||
THEN
|
||||
(s.shikiri_amt * -1)
|
||||
-s.shikiri_amt
|
||||
ELSE
|
||||
s.shikiri_amt
|
||||
END AS shikiri_amt,
|
||||
@ -283,7 +286,7 @@ BEGIN
|
||||
WHEN
|
||||
(LEFT(s.v_tran_cd,1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||
THEN
|
||||
(s.nhi_amt * -1)
|
||||
-s.nhi_amt
|
||||
ELSE
|
||||
s.nhi_amt
|
||||
END AS nhi_amt,
|
||||
@ -307,7 +310,7 @@ BEGIN
|
||||
ci.prefc_cd
|
||||
ELSE
|
||||
fmvt.prft_cd
|
||||
END AS prft_cd,
|
||||
END AS pref_cd,
|
||||
s.whspos_err_kbn,
|
||||
s.htdnymd_err_kbn,
|
||||
s.prd_exis_kbn,
|
||||
@ -324,10 +327,11 @@ BEGIN
|
||||
SYSDATE()
|
||||
FROM (
|
||||
SELECT
|
||||
CAST(SYSDATE() AS DATE) AS today
|
||||
? AS extract_from_datetime,
|
||||
? AS extract_to_datetime
|
||||
) AS sub
|
||||
INNER JOIN src05.sales AS s
|
||||
ON sub.today = CAST(s.dwh_upd_dt AS DATE)
|
||||
ON s.dwh_upd_dt BETWEEN sub.extract_from_datetime AND sub.extract_to_datetime
|
||||
LEFT OUTER JOIN src05.phm_prd_mst_v AS ppmv
|
||||
ON s.comm_cd = ppmv.prd_cd
|
||||
AND STR_TO_DATE(s.hsdn_ymd,'%Y%m%d') BETWEEN ppmv.start_date AND ppmv.end_date
|
||||
@ -341,21 +345,15 @@ BEGIN
|
||||
LEFT OUTER JOIN src05.com_inst AS ci
|
||||
ON s.v_inst_cd = ci.dcf_dsf_inst_cd
|
||||
WHERE
|
||||
(? <= s.dwh_upd_dt AND s.dwh_upd_dt <= ?)
|
||||
AND (
|
||||
(s.rec_sts_kbn = '0' AND s.err_flg20 = 'M')
|
||||
OR (
|
||||
s.rec_sts_kbn = '0'
|
||||
AND s.err_flg20 != 'M'
|
||||
AND s.v_tran_cd IN (110, 120, 210, 220)
|
||||
AND (
|
||||
(
|
||||
s.fcl_exec_kbn NOT IN ('2', '5')
|
||||
AND (s.fcl_exec_kbn != '6' OR ppmv.prd_sale_kbn <> 1)
|
||||
)
|
||||
OR s.fcl_exec_kbn IS NULL
|
||||
)
|
||||
)
|
||||
(s.rec_sts_kbn = '0' AND s.err_flg20 = 'M')
|
||||
OR (
|
||||
s.rec_sts_kbn = '0'
|
||||
AND s.err_flg20 != 'M'
|
||||
AND s.v_tran_cd IN (110, 120, 210, 220)
|
||||
AND (
|
||||
(s.fcl_exec_kbn NOT IN ('2', '5') AND (s.fcl_exec_kbn != '6' OR ppmv.prd_sale_kbn != 1))
|
||||
OR s.fcl_exec_kbn IS NULL
|
||||
)
|
||||
)
|
||||
|
||||
ON DUPLICATE KEY UPDATE
|
||||
@ -399,78 +397,20 @@ BEGIN
|
||||
address = s.v_inst_addr,
|
||||
comm_cd = s.comm_cd,
|
||||
comm_name = s.comm_name,
|
||||
nonyu_qty = (
|
||||
CASE
|
||||
WHEN
|
||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||
THEN
|
||||
(s.nonyu_qty * -1)
|
||||
ELSE
|
||||
s.nonyu_qty
|
||||
END
|
||||
),
|
||||
nonyu_qty = VALUES(nonyu_qty),
|
||||
nonyu_price = s.nonyu_price,
|
||||
nonyu_amt = (
|
||||
CASE
|
||||
WHEN
|
||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||
THEN
|
||||
(s.nonyu_amt * -1)
|
||||
ELSE
|
||||
s.nonyu_amt
|
||||
END
|
||||
),
|
||||
nonyu_amt = VALUES(nonyu_amt),
|
||||
shikiri_price = s.shikiri_price,
|
||||
shikiri_amt = (
|
||||
CASE
|
||||
WHEN
|
||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||
THEN
|
||||
(s.shikiri_amt * -1)
|
||||
ELSE
|
||||
s.shikiri_amt
|
||||
END
|
||||
),
|
||||
shikiri_amt = VALUES(shikiri_amt),
|
||||
nhi_price = s.nhi_price,
|
||||
nhi_amt = (
|
||||
CASE
|
||||
WHEN
|
||||
(LEFT(s.v_tran_cd, 1) = 2 AND (s.err_flg20 IS NULL OR s.err_flg20 != 'M'))
|
||||
THEN
|
||||
(s.nhi_amt * -1)
|
||||
ELSE
|
||||
s.nhi_amt
|
||||
END
|
||||
),
|
||||
nhi_amt = VALUES(nhi_amt),
|
||||
v_inst_cd = s.v_inst_cd,
|
||||
inst_clas_cd = (
|
||||
CASE
|
||||
WHEN
|
||||
(fmvt.fcl_type = 'A1' OR fmvt.fcl_type = 'A0')
|
||||
THEN
|
||||
'3'
|
||||
WHEN
|
||||
fmvt.fcl_type BETWEEN '20' AND '29'
|
||||
THEN
|
||||
'2'
|
||||
ELSE
|
||||
'1'
|
||||
END
|
||||
),
|
||||
inst_clas_cd = VALUES(inst_clas_cd),
|
||||
bu_cd = bpnct.bu_cd,
|
||||
item_cd = ppmv.mkr_cd,
|
||||
item_name = ppmv.mkr_inf_1,
|
||||
item_english_name = ppmv.mkr_inf_2,
|
||||
pref_cd = (
|
||||
CASE
|
||||
WHEN
|
||||
s.v_inst_cd LIKE '00%'
|
||||
THEN
|
||||
ci.prefc_cd
|
||||
ELSE
|
||||
fmvt.prft_cd
|
||||
END
|
||||
),
|
||||
pref_cd = VALUES(pref_cd),
|
||||
whspos_err_kbn = s.whspos_err_kbn,
|
||||
htdnymd_err_kbn = s.htdnymd_err_kbn,
|
||||
prd_exis_kbn = s.prd_exis_kbn,
|
||||
@ -486,9 +426,9 @@ BEGIN
|
||||
ins_usr = s.ins_usr,
|
||||
dwh_upd_dt = SYSDATE()
|
||||
";
|
||||
SET @insert_sales_laundering = REPLACE(@insert_sales_laundering, "$$target_table$$", target_table);
|
||||
PREPARE insert_sales_laundering_stmt from @insert_sales_laundering;
|
||||
EXECUTE insert_sales_laundering_stmt USING @extract_from_date, @extract_to_date;
|
||||
SET @upsert_sales_launderning = REPLACE(@upsert_sales_launderning, "$$target_table$$", target_table);
|
||||
PREPARE upsert_sales_launderning_stmt from @upsert_sales_launderning;
|
||||
EXECUTE upsert_sales_launderning_stmt USING @extract_from_datetime, @extract_to_datetime;
|
||||
|
||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||
'卸販売実績テーブル(洗替後)作成⑤ 終了'
|
||||
@ -499,8 +439,11 @@ BEGIN
|
||||
);
|
||||
|
||||
SET @update_institution_code = "
|
||||
UPDATE
|
||||
( SELECT CAST(SYSDATE() AS DATE) AS today ) AS sub,
|
||||
UPDATE (
|
||||
SELECT
|
||||
? AS extract_from_datetime,
|
||||
? AS extract_to_datetime
|
||||
) AS sub,
|
||||
$$target_table$$ AS tt,
|
||||
src05.sales AS s
|
||||
SET
|
||||
@ -515,13 +458,13 @@ BEGIN
|
||||
END
|
||||
)
|
||||
WHERE
|
||||
sub.today = CAST(s.dwh_upd_dt AS DATE)
|
||||
s.dwh_upd_dt BETWEEN sub.extract_from_datetime AND sub.extract_to_datetime
|
||||
AND tt.slip_mgt_num = s.slip_mgt_num
|
||||
AND tt.row_num = s.row_num
|
||||
";
|
||||
SET @update_institution_code = REPLACE(@update_institution_code, "$$target_table$$", target_table);
|
||||
PREPARE update_institution_code_stmt from @update_institution_code;
|
||||
EXECUTE update_institution_code_stmt;
|
||||
EXECUTE update_institution_code_stmt USING @extract_from_datetime, @extract_to_datetime;
|
||||
|
||||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||||
'卸販売実績テーブル(洗替後)作成⑥ 終了'
|
||||
|
||||
@ -67,7 +67,6 @@ BEGIN
|
||||
FROM src05.mkr_org_horizon_v AS mohv
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
count(1) AS c,
|
||||
v_cd_2,
|
||||
MAX(dwh_upd_dt) AS dwh_upd_dt_latest
|
||||
FROM
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user