50 lines
2.0 KiB
SQL
50 lines
2.0 KiB
SQL
-- 罚息存储过程
|
||
CREATE PROCEDURE PROC_CALC_PENALTY(IN CALC_DATE VARCHAR(10))
|
||
BEGIN
|
||
-- 注意:不要变动LC_PENALTY_INFO表的唯一性索引
|
||
-- 罚息存储过程
|
||
REPLACE INTO LC_PENALTY_INFO(ID,
|
||
PROJECT_ID,
|
||
PROJECT_PLAN_NUMBER,
|
||
CONTRACT_ID,
|
||
CONTRACT_PLAN_NUMBER,
|
||
PAYMENT_NUMBER,
|
||
PLAN_ID,
|
||
PLAN_DATE,
|
||
PLAN_LIST,
|
||
RENT_PLAN_DATE,
|
||
PLAN_PENALTY,
|
||
INPUTTIME)
|
||
SELECT TT.ID,
|
||
TT.PROJECT_ID,
|
||
TT.PROJECT_PLAN_NUMBER,
|
||
TT.CONTRACT_ID,
|
||
TT.CONTRACT_PLAN_NUMBER,
|
||
TT.PAYMENT_NUMBER,
|
||
TT.PLAN_ID,
|
||
CALC_DATE,
|
||
TT.PLAN_LIST,
|
||
TT.PLAN_DATE,
|
||
TT.PLAN_PENALTY,
|
||
TT.INPUTTIME
|
||
FROM (
|
||
SELECT IFNULL(LPI.ID, REPLACE(UUID(), '-', '')) ID,
|
||
LRPT.PROJECT_ID,
|
||
LRPT.PROJECT_PLAN_NUMBER,
|
||
LRPT.CONTRACT_ID,
|
||
LRPT.CONTRACT_PLAN_NUMBER,
|
||
LRPT.PAYMENT_NUMBER,
|
||
LRPT.ID AS PLAN_ID,
|
||
LRPT.PLAN_LIST,
|
||
LRPT.PLAN_DATE,
|
||
IFNULL(LPI.PLAN_PENALTY, 0) AS OLD_PLAN_PENALTY,
|
||
getRentPenalty(LRPT.PAYMENT_NUMBER, LRPT.PLAN_LIST, CALC_DATE) AS PLAN_PENALTY,
|
||
DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS INPUTTIME
|
||
FROM LC_RENT_PLAN LRPT
|
||
LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.CONTRACT_ID
|
||
LEFT JOIN LC_PENALTY_INFO LPI ON LRPT.PAYMENT_NUMBER = LPI.PAYMENT_NUMBER AND LRPT.PLAN_LIST = LPI.PLAN_LIST
|
||
WHERE LCI.CONTRACT_STATUS = '31'
|
||
) TT
|
||
WHERE TT.PLAN_PENALTY <> TT.OLD_PLAN_PENALTY
|
||
AND TT.PLAN_PENALTY > 0;
|
||
END; |