新增罚息计算定时任务
This commit is contained in:
parent
f5a0c30dec
commit
fa878c7249
50
src_sql/procedure/PROC_CALC_PENALTY.sql
Normal file
50
src_sql/procedure/PROC_CALC_PENALTY.sql
Normal file
@ -0,0 +1,50 @@
|
||||
-- 罚息存储过程
|
||||
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;
|
||||
18
src_sql/投产SQL/v20191228/lcj_20191228.sql
Normal file
18
src_sql/投产SQL/v20191228/lcj_20191228.sql
Normal file
@ -0,0 +1,18 @@
|
||||
-- 罚息表增加唯一性限制
|
||||
alter table lc_penalty_info
|
||||
add constraint lc_penalty_info_pn_pl
|
||||
unique (payment_number, plan_list);
|
||||
|
||||
-- 配置罚息计算定时任务
|
||||
-- 1、插入罚息定时任务数据字典
|
||||
INSERT INTO APZL.CODE_LIBRARY (CODENO, ITEMNO, ITEMNAME, BANKNO, SORTNO, ISINUSE, ITEMDESCRIBE, ITEMATTRIBUTE, RELATIVECODE, ATTRIBUTE1, ATTRIBUTE2,
|
||||
ATTRIBUTE3, ATTRIBUTE4, ATTRIBUTE5, ATTRIBUTE6, ATTRIBUTE7, ATTRIBUTE8, INPUTUSER, INPUTORG, INPUTTIME, UPDATEUSER,
|
||||
UPDATETIME, REMARK, HELPTEXT)
|
||||
VALUES ('MissionName', 'com.tenwa.lease.app.quartzmession.CalcPenaltyJob', '每天定时计算罚息', '', '0590', '1', '每天定时计算罚息', '', '', '', '', '', '', '', '',
|
||||
'', '', 'SYS_Designer', NULL, '2019/12/26 10:13:04', 'SYS_Designer', '2019/12/26 10:14:07', '', '');
|
||||
|
||||
-- 2、【定时任务管理】菜单
|
||||
-- 新增:【执行任务类名】 选择 【每天定时生成罚息】,【描述】填入【每天定时生成罚息】,【是否再次执行过期任务】选择【否】,点击保存。
|
||||
-- 3、【定时任务配置】菜单
|
||||
-- 新增:【定时任务处理类】 选择 【每天定时生成罚息】,【定时器描述】填入【每天定时生成罚息】,【定时器状态】选择【运行】,【定时器Cron表达式】为【0 0 22 * * ? *】,
|
||||
-- 【定时任务开始时间】选择 【今天】,【定时任务结束时间】选择 【最大】,点击保存
|
||||
@ -0,0 +1,52 @@
|
||||
package com.tenwa.lease.app.quartzmession;
|
||||
|
||||
import com.amarsoft.are.jbo.JBOException;
|
||||
import com.amarsoft.are.jbo.JBOFactory;
|
||||
import com.amarsoft.are.jbo.JBOTransaction;
|
||||
import com.amarsoft.are.sql.Connection;
|
||||
import com.amarsoft.awe.util.Transaction;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
|
||||
import java.sql.CallableStatement;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
|
||||
/**
|
||||
* 计算罚息定时任务
|
||||
* @author lichaojie
|
||||
*/
|
||||
public class CalcPenaltyJob implements Job {
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
JBOTransaction tx;
|
||||
Transaction tran = null;
|
||||
try {
|
||||
tx = JBOFactory.createJBOTransaction();
|
||||
tran = Transaction.createTransaction(tx);
|
||||
|
||||
// 获取当前日期
|
||||
String todayDateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd"));
|
||||
|
||||
Connection connection = tran.getConnection(tran);
|
||||
CallableStatement callableStatement = connection.prepareCall("{call PROC_CALC_PENALTY(?)}");
|
||||
callableStatement.setString(1, todayDateStr);
|
||||
callableStatement.execute();
|
||||
callableStatement.close();
|
||||
|
||||
tran.commit();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
try {
|
||||
if (tran != null) {
|
||||
tran.rollback();
|
||||
}
|
||||
} catch (JBOException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
throw new JobExecutionException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user