租金催收相关定时任务
This commit is contained in:
parent
e8fa445e61
commit
3b7c04e4d9
@ -1,69 +1,48 @@
|
||||
create view vi_overdue_rent_plan as (
|
||||
SELECT LRP.ID AS ID,
|
||||
LRP.QUOT_ID AS QUOT_ID,
|
||||
LRP.CUST_ID AS CUST_ID,
|
||||
LRP.PROJECT_ID AS PROJECT_ID,
|
||||
LRP.PROJECT_PLAN_NUMBER AS PROJECT_PLAN_NUMBER,
|
||||
LRP.CONTRACT_ID AS CONTRACT_ID,
|
||||
LRP.CONTRACT_PLAN_NUMBER AS CONTRACT_PLAN_NUMBER,
|
||||
LRP.PAYMENT_NUMBER AS PAYMENT_NUMBER,
|
||||
LRP.PLAN_LIST AS PLAN_LIST,
|
||||
LRP.PLAN_DATE AS PLAN_DATE,
|
||||
LRP.RENT AS RENT,
|
||||
LRP.CORPUS AS CORPUS,
|
||||
INCOME.HIRE_DATE AS HIRE_DATE,
|
||||
ifnull(INCOME.FACT_RENT, 0) AS FACT_RENT,
|
||||
ifnull(INCOME.FACT_CORPUS, 0) AS FACT_CORPUS,
|
||||
ifnull(INCOME.FACT_PENALTY, 0) AS FACT_PENALTY,
|
||||
(ifnull(LRP.RENT, 0) - ifnull(INCOME.FACT_RENT, 0)) AS OVERDUERENT,
|
||||
(ifnull(LRP.INTEREST, 0) - ifnull(INCOME.FACT_INTEREST, 0)) AS OVERINTEREST,
|
||||
`getRentPenalty`(LRP.PAYMENT_NUMBER, LRP.PLAN_LIST, date_format(sysdate(), '%Y/%m/%d')) AS PENALTY,
|
||||
(CASE
|
||||
WHEN ((ifnull(INCOME.FACT_RENT, 0) - ifnull(LRP.RENT, 0)) >= 0) THEN (CASE
|
||||
WHEN ((to_days(INCOME.HIRE_DATE) - to_days(LRP.PLAN_DATE)) < 0)
|
||||
THEN 0
|
||||
ELSE (to_days(INCOME.HIRE_DATE) - to_days(LRP.PLAN_DATE)) END)
|
||||
ELSE (to_days(date_format(sysdate(), '%Y/%m/%d')) - to_days(LRP.PLAN_DATE)) END) AS OVERDUE_DAYS,
|
||||
(CASE WHEN ((ifnull(INCOME.FACT_RENT, 0) - ifnull(LRP.RENT, 0)) >= 0) THEN '已结清' ELSE '未结清' END) AS PLAN_STATUS
|
||||
FROM (APZL.LC_RENT_PLAN LRP
|
||||
LEFT JOIN (
|
||||
SELECT APZL.LC_RENT_INCOME.PAYMENT_NUMBER AS PAYMENT_NUMBER,
|
||||
APZL.LC_RENT_INCOME.PLAN_LIST AS PLAN_LIST,
|
||||
max(APZL.LC_RENT_INCOME.HIRE_DATE) AS HIRE_DATE,
|
||||
ifnull(sum(APZL.LC_RENT_INCOME.RENT), 0) AS FACT_RENT,
|
||||
ifnull(sum(APZL.LC_RENT_INCOME.CORPUS), 0) AS FACT_CORPUS,
|
||||
ifnull(sum(APZL.LC_RENT_INCOME.INTEREST), 0) AS FACT_INTEREST,
|
||||
ifnull(sum(APZL.LC_RENT_INCOME.PENALTY), 0) AS FACT_PENALTY
|
||||
FROM APZL.LC_RENT_INCOME
|
||||
WHERE (APZL.LC_RENT_INCOME.PAYMENT_NUMBER IS NOT NULL)
|
||||
GROUP BY APZL.LC_RENT_INCOME.PAYMENT_NUMBER, APZL.LC_RENT_INCOME.PLAN_LIST
|
||||
) INCOME ON (((LRP.PAYMENT_NUMBER = INCOME.PAYMENT_NUMBER) AND (LRP.PLAN_LIST = INCOME.PLAN_LIST))))
|
||||
WHERE ((LRP.PAYMENT_NUMBER IS NOT NULL) AND (LRP.PLAN_DATE <= convert(date_format(sysdate(), '%Y/%m/%d') USING GBK)))
|
||||
ORDER BY LRP.PAYMENT_NUMBER, LRP.PLAN_LIST);
|
||||
|
||||
-- comment on column vi_overdue_rent_plan.ID not supported: 标识
|
||||
|
||||
-- comment on column vi_overdue_rent_plan.QUOT_ID not supported: 报价编号
|
||||
|
||||
-- comment on column vi_overdue_rent_plan.CUST_ID not supported: 客户编号
|
||||
|
||||
-- comment on column vi_overdue_rent_plan.PROJECT_ID not supported: 项目编号
|
||||
|
||||
-- comment on column vi_overdue_rent_plan.PROJECT_PLAN_NUMBER not supported: 项目方案编号
|
||||
|
||||
-- comment on column vi_overdue_rent_plan.CONTRACT_ID not supported: 合同编号
|
||||
|
||||
-- comment on column vi_overdue_rent_plan.CONTRACT_PLAN_NUMBER not supported: 合同方案编号
|
||||
|
||||
-- comment on column vi_overdue_rent_plan.PAYMENT_NUMBER not supported: 投放编号
|
||||
|
||||
-- comment on column vi_overdue_rent_plan.PLAN_LIST not supported: 期次
|
||||
|
||||
-- comment on column vi_overdue_rent_plan.PLAN_DATE not supported: 计划日期
|
||||
|
||||
-- comment on column vi_overdue_rent_plan.RENT not supported: 租金
|
||||
|
||||
-- comment on column vi_overdue_rent_plan.corpus not supported: 财务本金
|
||||
|
||||
-- comment on column vi_overdue_rent_plan.HIRE_DATE not supported: 核销日期
|
||||
|
||||
DELIMITER $$
|
||||
|
||||
ALTER ALGORITHM=UNDEFINED DEFINER=`apzl`@`%` SQL SECURITY DEFINER VIEW `vi_overdue_rent_plan` AS (
|
||||
-- 查询字段变动时记得把lc_overdue_rent_plan也改一下
|
||||
SELECT
|
||||
`lrp`.`ID` AS `ID`,
|
||||
`lrp`.`QUOT_ID` AS `QUOT_ID`,
|
||||
`lrp`.`CUST_ID` AS `CUST_ID`,
|
||||
`lrp`.`PROJECT_ID` AS `PROJECT_ID`,
|
||||
`lrp`.`PROJECT_PLAN_NUMBER` AS `PROJECT_PLAN_NUMBER`,
|
||||
`lrp`.`CONTRACT_ID` AS `CONTRACT_ID`,
|
||||
`lrp`.`CONTRACT_PLAN_NUMBER` AS `CONTRACT_PLAN_NUMBER`,
|
||||
`lrp`.`PAYMENT_NUMBER` AS `PAYMENT_NUMBER`,
|
||||
`lrp`.`PLAN_LIST` AS `PLAN_LIST`,
|
||||
`lrp`.`PLAN_DATE` AS `PLAN_DATE`,
|
||||
`lrp`.`RENT` AS `RENT`,
|
||||
`lrp`.`CORPUS` AS `corpus`,
|
||||
`income`.`hire_date` AS `HIRE_DATE`,
|
||||
IFNULL(`income`.`fact_rent`,0) AS `fact_rent`,
|
||||
IFNULL(`income`.`fact_corpus`,0) AS `fact_corpus`,
|
||||
IFNULL(`income`.`fact_penalty`,0) AS `fact_penalty`,
|
||||
(IFNULL(`lrp`.`RENT`,0) - IFNULL(`income`.`fact_rent`,0)) AS `overduerent`,
|
||||
(IFNULL(`lrp`.`INTEREST`,0) - IFNULL(`income`.`fact_interest`,0)) AS `overinterest`,
|
||||
`getRentPenalty`(
|
||||
`lrp`.`PAYMENT_NUMBER`,`lrp`.`PLAN_LIST`,DATE_FORMAT(SYSDATE(),'%Y/%m/%d')) AS `penalty`,
|
||||
(CASE WHEN ((IFNULL(`income`.`fact_rent`,0) - IFNULL(`lrp`.`RENT`,0)) >= 0) THEN (CASE WHEN ((TO_DAYS(`income`.`hire_date`) - TO_DAYS(`lrp`.`PLAN_DATE`)) < 0) THEN 0 ELSE (TO_DAYS(`income`.`hire_date`) - TO_DAYS(`lrp`.`PLAN_DATE`)) END) ELSE (TO_DAYS(DATE_FORMAT(SYSDATE(),'%Y/%m/%d')) - TO_DAYS(`lrp`.`PLAN_DATE`)) END) AS `Overdue_days`,
|
||||
(CASE WHEN ((IFNULL(`income`.`fact_rent`,0) - IFNULL(`lrp`.`RENT`,0)) >= 0) THEN '已结清' ELSE '未结清' END) AS `PLAN_STATUS`,
|
||||
SYSDATE() AS inputtime
|
||||
FROM (`apzl`.`lc_rent_plan` `lrp`
|
||||
LEFT JOIN (SELECT
|
||||
`apzl`.`lc_rent_income`.`PAYMENT_NUMBER` AS `payment_number`,
|
||||
`apzl`.`lc_rent_income`.`PLAN_LIST` AS `plan_list`,
|
||||
MAX(`apzl`.`lc_rent_income`.`HIRE_DATE`) AS `hire_date`,
|
||||
IFNULL(SUM(`apzl`.`lc_rent_income`.`RENT`),0) AS `fact_rent`,
|
||||
IFNULL(SUM(`apzl`.`lc_rent_income`.`CORPUS`),0) AS `fact_corpus`,
|
||||
IFNULL(SUM(`apzl`.`lc_rent_income`.`INTEREST`),0) AS `fact_interest`,
|
||||
IFNULL(SUM(`apzl`.`lc_rent_income`.`PENALTY`),0) AS `fact_penalty`
|
||||
FROM `apzl`.`lc_rent_income`
|
||||
WHERE (`apzl`.`lc_rent_income`.`PAYMENT_NUMBER` IS NOT NULL)
|
||||
GROUP BY `apzl`.`lc_rent_income`.`PAYMENT_NUMBER`,`apzl`.`lc_rent_income`.`PLAN_LIST`) `income`
|
||||
ON (((`lrp`.`PAYMENT_NUMBER` = `income`.`payment_number`)
|
||||
AND (`lrp`.`PLAN_LIST` = `income`.`plan_list`)))
|
||||
LEFT JOIN lb_contract_info lci ON lci.id=lrp.contract_id)
|
||||
WHERE (lci.businesstype='1' AND (`lrp`.`PAYMENT_NUMBER` IS NOT NULL)
|
||||
AND (`lrp`.`PLAN_DATE` <= CONVERT(DATE_FORMAT(SYSDATE(),'%Y/%m/%d')USING gbk)))
|
||||
ORDER BY `lrp`.`PAYMENT_NUMBER`,`lrp`.`PLAN_LIST`)$$
|
||||
|
||||
DELIMITER ;
|
||||
@ -1,12 +1,18 @@
|
||||
create view vi_overdue_rent_plan_sum as SELECT VI_OVERDUE_RENT_PLAN.CONTRACT_ID AS CONTRACT_ID,
|
||||
count(VI_OVERDUE_RENT_PLAN.PLAN_LIST) AS OVER_LIST,
|
||||
max(VI_OVERDUE_RENT_PLAN.OVERDUE_DAYS) AS OVER_DAYS,
|
||||
round(sum(VI_OVERDUE_RENT_PLAN.OVERDUERENT), 2) AS OVER_MONEY,
|
||||
round(sum(VI_OVERDUE_RENT_PLAN.PENALTY), 2) AS OVER_PENALTY,
|
||||
round(sum(VI_OVERDUE_RENT_PLAN.OVERINTEREST), 2) AS OVER_INTEREST
|
||||
FROM APZL.VI_OVERDUE_RENT_PLAN
|
||||
WHERE (VI_OVERDUE_RENT_PLAN.OVERDUERENT > 0)
|
||||
GROUP BY VI_OVERDUE_RENT_PLAN.CONTRACT_ID;
|
||||
DELIMITER $$
|
||||
|
||||
ALTER ALGORITHM=UNDEFINED DEFINER=`apzl`@`%` SQL SECURITY DEFINER VIEW `vi_overdue_rent_plan_sum` AS
|
||||
SELECT
|
||||
`lc_overdue_rent_plan`.`CONTRACT_ID` AS `contract_id`,
|
||||
COUNT(`lc_overdue_rent_plan`.`PLAN_LIST`) AS `over_list`,
|
||||
MAX(`lc_overdue_rent_plan`.`Overdue_days`) AS `over_days`,
|
||||
ROUND(SUM(`lc_overdue_rent_plan`.`overduerent`),2) AS `over_money`,
|
||||
ROUND(SUM(`lc_overdue_rent_plan`.`penalty`),2) AS `over_penalty`,
|
||||
ROUND(SUM(`lc_overdue_rent_plan`.`overinterest`),2) AS `over_interest`
|
||||
FROM `apzl`.`lc_overdue_rent_plan`
|
||||
WHERE (`lc_overdue_rent_plan`.`overduerent` > 0)
|
||||
GROUP BY `lc_overdue_rent_plan`.`CONTRACT_ID`$$
|
||||
|
||||
DELIMITER ;
|
||||
|
||||
-- comment on column vi_overdue_rent_plan_sum.contract_id not supported: 合同编号
|
||||
|
||||
|
||||
@ -0,0 +1,65 @@
|
||||
package com.tenwa.lease.app.quartzmession;
|
||||
|
||||
import com.amarsoft.are.jbo.BizObject;
|
||||
import com.amarsoft.are.jbo.BizObjectManager;
|
||||
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.are.util.StringFunction;
|
||||
import com.amarsoft.awe.util.Transaction;
|
||||
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
|
||||
import com.base.util.QuartzUtil;
|
||||
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
|
||||
|
||||
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;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import jbo.app.tenwa.calc.LV_PENALTY_INFO;
|
||||
import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO;
|
||||
|
||||
|
||||
/**
|
||||
* 计算罚息定时任务
|
||||
* @author zhangbeibei
|
||||
*/
|
||||
public class PenaltyQuartz4Press implements Job {
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
String startime = StringFunction.getTodayNow();
|
||||
Object userId = jobExecutionContext.getTrigger().getJobDataMap().get("CurUserId");
|
||||
String curUserId = userId == null? "system" : userId.toString();
|
||||
Transaction Sqlca = null;
|
||||
try {
|
||||
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
|
||||
String sql = "INSERT INTO lc_overdue_rent_plan SELECT * FROM vi_overdue_rent_plan ";
|
||||
Sqlca.executeSQL("delete from lc_overdue_rent_plan");
|
||||
Sqlca.executeSQL(sql);
|
||||
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.PenaltyQuartz", "success", "成功", curUserId);
|
||||
} catch (Exception e) {
|
||||
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.PenaltyQuartz", "error", "失败", curUserId);
|
||||
e.printStackTrace();
|
||||
try {
|
||||
Sqlca.rollback();
|
||||
} catch (JBOException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}finally{
|
||||
try {
|
||||
if(Sqlca != null) {
|
||||
Sqlca.commit();
|
||||
Sqlca.disConnect();
|
||||
}
|
||||
} catch (JBOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user