From 3b7c04e4d92c632e78d4c205860cba45a2eac206 Mon Sep 17 00:00:00 2001 From: zhangbb Date: Thu, 2 Jul 2020 16:38:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=9F=E9=87=91=E5=82=AC=E6=94=B6=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src_sql/view/vi_overdue_rent_plan.sql | 117 +++++++----------- src_sql/view/vi_overdue_rent_plan_sum.sql | 24 ++-- .../quartzmession/PenaltyQuartz4Press.java | 65 ++++++++++ 3 files changed, 128 insertions(+), 78 deletions(-) create mode 100644 src_tenwa/com/tenwa/lease/app/quartzmession/PenaltyQuartz4Press.java diff --git a/src_sql/view/vi_overdue_rent_plan.sql b/src_sql/view/vi_overdue_rent_plan.sql index 005bfa679..12cb10c41 100644 --- a/src_sql/view/vi_overdue_rent_plan.sql +++ b/src_sql/view/vi_overdue_rent_plan.sql @@ -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 ; \ No newline at end of file diff --git a/src_sql/view/vi_overdue_rent_plan_sum.sql b/src_sql/view/vi_overdue_rent_plan_sum.sql index 06644b2b7..34ab85798 100644 --- a/src_sql/view/vi_overdue_rent_plan_sum.sql +++ b/src_sql/view/vi_overdue_rent_plan_sum.sql @@ -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: 合同编号 diff --git a/src_tenwa/com/tenwa/lease/app/quartzmession/PenaltyQuartz4Press.java b/src_tenwa/com/tenwa/lease/app/quartzmession/PenaltyQuartz4Press.java new file mode 100644 index 000000000..7f86c0a2d --- /dev/null +++ b/src_tenwa/com/tenwa/lease/app/quartzmession/PenaltyQuartz4Press.java @@ -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(); + } + } + } +}