Merge branch 'release20211231' into ap007

This commit is contained in:
ap007 2022-06-24 18:38:23 +08:00
commit 79ec9c0671
77 changed files with 8407 additions and 1663 deletions

View File

@ -108,45 +108,27 @@
};
%>
<style>
.list_page {
overflow: auto;
}
#myiframe0 .list_event_width{
white-space: normal;
}
</style>
<script type="text/javascript">
var rowSpan="One_Classify";
</script>
<%@include file="/Frame/resources/include/ui/include_list.jspf"%>
<script type="text/javascript">
window.onload=function(){
/* var RowCount = getRowCount(0);
for(var i=0;i<RowCount;i++){
if($("#INPUT_myiframe0_Doc_Nature_"+i+"_2").text()=="±Ø±¸"){
$("#INPUT_myiframe0_Doc_Nature_"+i+"_2").attr("style","color:red");
}
} */
heping();
$("#DWTD").width( document.body.offsetWidth - 10);
$("#DWTD").width( document.body.offsetHeight - 20);
document.getElementById('DWTD').innerHTML = '<div style="width:'+(document.body.offsetWidth - 10)+'px;height:'+(document.body.offsetHeight - 40)+'px;overflow: scroll;">'+document.getElementById('DWTD').innerHTML+'</div>';
}
function heping(){
$("#TR_Right_myiframe0_0").attr("class","color_zebra1");
huanhang("Doc_Name");
}
function huanhang(col){
var tab=document.getElementById("myiframe0");
var a= getColIndex(0,col);
for(var i=0;i<tab.rows.length-1;i++){
$("#INPUT_myiframe0_"+col+"_"+i+"_"+a).parent().attr("style","white-space: pre-wrap;");
}
}
function selectFile(){
objectinfo={};
objectinfo.title="附件一览"
AsControl.OpenTab("/Tenwa/Comm/Document/LBDocumentList.jsp","ObjectNo=20170427000001",objectinfo);
}
function saveRecord(){
as_save("myiframe0","heping()");
as_save("myiframe0");
location.reload();
}
//在加载完表格后调用

View File

@ -11,7 +11,7 @@
ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request);
dwTemp.Style="1"; //--设置为Grid风格--
dwTemp.ReadOnly = "1"; //只读模式
dwTemp.setPageSize(15);
dwTemp.setPageSize((pageSize==null||"undefined".equals(pageSize))?15:Integer.parseInt(pageSize));
dwTemp.genHTMLObjectWindow("");
//0、是否展示 1、 权限控制 2、 展示类型 3、按钮显示名称 4、按钮解释文字 5、按钮触发事件代码 6、 7、 8、 9、图标CSS层叠样式 10、风格

View File

@ -29,7 +29,7 @@
%><%@include file="/Frame/resources/include/ui/include_list.jspf"%>
<script type="text/javascript">
function execute(){
var Result = AsControl.RunJavaMethod("com.tenwa.lease.app.quartzmession.AutoFiveGradeClass", "execute","");
var Result = AsControl.RunJavaMethod("com.tenwa.lease.app.quartzmession.AutoFiveGradeClass", "execute","curUserId=<%=CurPage.getUserId()%>");
if(Result=='success'){
alert("执行成功!");
reloadSelf();

View File

@ -36,6 +36,11 @@
//批量代收
function batchCollect(){
let msg = isDuringDate();
if(msg.length>0){
alert(msg);
return false;
}
//校验所选数据是否是一个主体
var subjectids = getItemValueArray(0,"SUBJECTID");
var oneSubjectId = "";
@ -132,6 +137,15 @@
}
}
function isDuringDate() {
let cur = new Date();
let start_am = new Date(cur.toLocaleDateString() + ' 10:50');
let end_am = new Date(cur.toLocaleDateString() + ' 11:10');
let start_pm = new Date(cur.toLocaleDateString() + ' 15:50');
let end_pm = new Date(cur.toLocaleDateString() + ' 16:10');
return cur >= start_am && cur <= end_am ? '[10:50 ~ 11:10] 时间段禁止操作!' : cur >= start_pm && cur <= end_pm ? '[15:50 ~ 16:10] 时间段禁止操作!' : '';
}
function queryBatchCollect(){
//校验所选数据是否是一个主体
var subjectids = getItemValueArray(0,"SUBJECTID");
@ -161,18 +175,22 @@
}
}
var fileSavePath = "<%=CurConfig.getConfigure("InterfaceFileSavePath")%>";
var parm = "id="+ids+",fileSavePath="+fileSavePath+",inputuserid="+"<%=CurUser.getUserID()%>"+",inputorgid="+"<%=CurUser.getOrgID()%>";
var parm = "operateFrom=manual,id="+ids+",fileSavePath="+fileSavePath+",inputuserid="+"<%=CurUser.getUserID()%>"+",inputorgid="+"<%=CurUser.getOrgID()%>";
//进行拆分调用天津接口或者深圳
var res ;
if("aa740e4111c111eaaa0000163e0e11e6"==oneSubjectId){
var res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "queryBatchCollectStatus",parm);
console.log(res);
res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "queryBatchCollectStatus",parm);
}else if("d989246c11c111eaaa0000163e0e11e6"==oneSubjectId){
var res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCacheTj", "queryBatchCollectStatus",parm);
console.log(res);
res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCacheTj", "queryBatchCollectStatus",parm);
}else{
alert("未查询到对应的主体方法!");
return false;
}
if (res != 'success') {
alert(res);
return false;
}
RunJavaMethod("com.tenwa.lease.app.allinpay.service.impl.AllinpayPaymentDo", "queryCollectResult","");
reloadSelf();
// location.reload();

View File

@ -166,15 +166,15 @@
ids += sParm[i] +"@";
}
}
var parm = "id="+ids+",fileSavePath="+fileSavePath+",inputuserid="+"<%=CurUser.getUserID()%>"+",inputorgid="+"<%=CurUser.getOrgID()%>";
var parm = "operateFrom=manual,id="+ids+",fileSavePath="+fileSavePath+",inputuserid="+"<%=CurUser.getUserID()%>"+",inputorgid="+"<%=CurUser.getOrgID()%>";
//进行拆分调用天津接口或者深圳
if("aa740e4111c111eaaa0000163e0e11e6"==oneSubjectId){
var res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCache", "queryBatchCollectStatus",parm);
console.log(res);
alert(res);
}else if("d989246c11c111eaaa0000163e0e11e6"==oneSubjectId){
var res = RunJavaMethodTrans("com.tenwa.collectaudit.cache.CollectAuditInfoCacheTj", "queryBatchCollectStatus",parm);
console.log(res);
alert(res);
}else{
alert("为查询到对应的主体方法!");
}

View File

@ -6,31 +6,57 @@
Content: 示例详情页面
History Log:
*/
String flowunid = CurPage.getParameter("FlowUnid");
String RightType = CurPage.getParameter("RightType");//选择模式
String ishistory=CurPage.getParameter("IsHistory");
String nodeNo=CurPage.getParameter("NodeNo");
String contractId = CurPage.getParameter("ContractId");
BizObject condition=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP","flowunid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false);
String paymentnumber=condition.getAttribute("payment_number").getString();
String yearrate=condition.getAttribute("YEAR_RATE").getString();
String contractId=condition.getAttribute("contract_id").getString();
//String contractId=condition.getAttribute("contractid").getString();
String nominalPrice=condition.getAttribute("NOMINAL_PRICE").getString();
String cautionmoney = Sqlca.getString("select caution_money from lc_calc_condition where CONTRACT_ID='"+contractId+"'");
String cautionmoney = Sqlca.getString("select ifnull(round( sum(case lfi.FEE_TYPE when 'feetype2' then FACT_MONEY else 0 end)- sum(case lfi.FEE_TYPE when 'feetype2' then 0 else FACT_MONEY end ),2),0) as over_caution_monry from lc_fund_income lfi where lfi.CONTRACT_ID = '"+contractId+"' and lfi.FEE_TYPE in ('feetype2', 'feetype16', 'feetype17')");
String mayopemoney = Sqlca.getString("select sum(MAYOPE_MONEY) from LC_EBANK_TEMP where flowunid='"+flowunid+"'");
String settletype = "N";
if( CurPage.getParameter("settletype")!=null){
settletype = CurPage.getParameter("settletype");
}
BizObject flow=GetFlowAction.getFlowBussinessObject(flowunid);
String productId=flow.getAttribute("productId").getString();
String ratio = Sqlca.getString("select EarlySettleBreachRatio from PRD_SPECIFIC_LIBRARY where productid='"+productId+"'");
String CLEAN_LEASE_MONEY = Sqlca.getString("select CLEAN_LEASE_MONEY from lc_calc_condition where CONTRACT_ID='"+contractId+"'");
System.out.println(ratio+"===================");
String sTempletNo = "LCContractTerminate";//--模板号--
ASObjectModel doTemp = new ASObjectModel(sTempletNo);
doTemp.setDefaultValue("PAYMENT_NUMBER", paymentnumber);
doTemp.setHtmlEvent("PAYDAY_ADJUST","onchange","getTerminateInfo");
if(settletype.equals("N")){
doTemp.setHtmlEvent("PAYDAY_ADJUST","onchange","getTerminateInfo");
}else if(settletype.equals("Y")){
doTemp.setHtmlEvent("PAYDAY_ADJUST","onchange","getTimeInfo");
}
doTemp.setHtmlEvent("ADJUST_TYPE","onchange","changeInfo");
doTemp.setHtmlEvent("OTHER_IN","onchange","changeContract");
doTemp.setHtmlEvent("REPURCHASE_RATIO","onchange","getRepurchaseMoney");
doTemp.setHtmlEvent("SETTLE_METHOD","onchange","setEquipmentRatioCharge");
/*
* 获取合同金额
*/
String PAYMENT_NUMBER = "";
String START_DATE = "";
String YEAR_RATE = "";
if(condition!=null){
PAYMENT_NUMBER = condition.getAttribute("PAYMENT_NUMBER").getString();
START_DATE = condition.getAttribute("START_DATE").getString();
YEAR_RATE = condition.getAttribute("YEAR_RATE").getString();
}else{
BizObject condition2=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CONTRACT_CONDITION","CONTRACT_ID=:CONTRACT_ID").setParameter("CONTRACT_ID", contractId).getSingleResult(false);
PAYMENT_NUMBER = condition2.getAttribute("PAYMENT_NUMBER").getString();
START_DATE = condition2.getAttribute("START_DATE").getString();
YEAR_RATE = condition2.getAttribute("YEAR_RATE").getString();
}
ASObjectWindow dwTemp = new ASObjectWindow(CurPage, doTemp,request);
dwTemp.Style = "2";//freeform
if((null!=RightType&&RightType.equals("ReadOnly"))||(null!=ishistory&&ishistory.equals("true"))){
@ -48,6 +74,10 @@
sButtonPosition = "south";
%><%@ include file="/Frame/resources/include/ui/include_info.jspf"%>
<script type="text/javascript">
var IDS = "";
var YES_NO = "";
function getRepurchaseMoney(){
var ratio=getItemValue(0,0,"REPURCHASE_RATIO");
var corpus=getItemValue(0,0,"CORPUS_OVERAGE");
@ -163,6 +193,9 @@
//计算债券总计
function updateContractBondTotal(){
debugger
var SETTLE_METHOD = getItemValue(0,0,"SETTLE_METHOD");
if(SETTLE_METHOD != "SETTLE_METHOD02"){
var dunrent = getItemValue(0,getRow(),"DUN_RENT");
var agreedPenalty = getItemValue(0,getRow(),"AGREED_PENALTY");
var corpusOverage = getItemValue(0,getRow(),"CORPUS_OVERAGE");
@ -175,6 +208,21 @@
return (Number(dunrent ? dunrent : 0 ) + Number(agreedPenalty ? agreedPenalty : 0 ) + Number(corpusOverage ? corpusOverage : 0 )
+ Number(sdhandlingCharge ? sdhandlingCharge : 0 ) + Number(otherin ? otherin : 0 )
- Number(otherout ? otherout : 0 ) + Number(sdnominalPrice ? sdnominalPrice : 0 ) +Number(agreeddatepenalty ? agreeddatepenalty : 0 )).toFixed(2);
}else{
// 获取未到期本金
var PREMATURE_MONEY = getItemValue(0,getRow(),"PREMATURE_MONEY");
// 获取罚息
var DUN_RENT = getItemValue(0,getRow(),"DUN_RENT");
// 获取商定还款日息差
var AGREED_DATEPENALTY = getItemValue(0,getRow(),"AGREED_DATEPENALTY");
// 获取商定逾期罚息
var AGREED_PENALTY = getItemValue(0,getRow(),"AGREED_PENALTY");
// 获取商定违约金
var SDHANDLING_CHARGE = getItemValue(0,getRow(),"SDHANDLING_CHARGE");
var MAXIMUM_TOTAL = (Number(PREMATURE_MONEY ? PREMATURE_MONEY : 0 )+Number(DUN_RENT ? DUN_RENT : 0 ) + Number(AGREED_DATEPENALTY ? AGREED_DATEPENALTY : 0 )
+Number(AGREED_PENALTY ? AGREED_PENALTY : 0 )+Number(SDHANDLING_CHARGE ? SDHANDLING_CHARGE : 0 )).toFixed(2);
return MAXIMUM_TOTAL;
}
}
//计算债券总计
/* function getContractBondTotal(){
@ -195,7 +243,8 @@
openDWDialog();
setTimeout(function(){
var message = AsControl.RunJavaMethodTrans("com.tenwa.reckon.executor.CreateTransactionExecutor","cancelRentChange","flowunid=<%=flowunid%>,plannumber=<%=paymentnumber%>,contractId=<%=contractId%>");
if(message == 'true'){
var returns = AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","setEquipStatus","flowunid=<%=flowunid%>");
if(message == 'true'){
resetDWDialog("中途终止撤销成功!!!",true);
window.location.href=window.location.href;
}else{
@ -203,6 +252,24 @@
}
}, 500);
}
//提前部分结清约定终止日校验
function getTimeInfo(){
var paydayAdjust = getItemValue(0,getRow(),"PAYDAY_ADJUST");
var result = AsControl.RunJavaMethod("com.tenwa.reckon.executor.RentCalHelper","checkPaydayAdjust","contractId=<%=contractId%>,paymentnumber=<%=paymentnumber%>,paydayAdjust="+paydayAdjust);
if(result.result != "true"){
alert(result.msg);
setItemValue(0,getRow(),"PAYDAY_ADJUST","");
}
var ret = AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","timeInfo","contractId=<%=contractId%>,flowunid=<%=flowunid%>,PAYDAY_ADJUST="+paydayAdjust);
if(ret != "true"){
alert("日期不能选择当前月份下个月之后的日期");
setItemValue(0,getRow(),"PAYDAY_ADJUST","");
}
}
//保存数据
function saveRecord(sPostEvents)
{
@ -229,8 +296,11 @@
if(result == 'true'){
var adjusttype = getItemValue(0,0,"ADJUST_TYPE");
if("01"==adjusttype){
setItemValue(0,getRow(),"MAXIMUM_TOTAL",updateContractBondTotal());
var maximumtotal = updateContractBondTotal();
if(maximumtotal=="" ||maximumtotal == null ){
maximumtotal = "0";
}
setItemValue(0,getRow(),"MAXIMUM_TOTAL",maximumtotal);
if(Number(maximumtotal)>Number(<%=mayopemoney%>)){
alert('最终还款金额大于网银核销金额!!!');
return;
@ -243,7 +313,14 @@
}
}else{
var contractTotal = getItemValue(0,0,"CONTRACT_TOTAL");
if(Number(contractTotal)>Number(<%=mayopemoney%>)){
if(contractTotal==""||contractTotal==null){
contractTotal = "0";
}
var mayopemoney = <%=mayopemoney%>;
if(mayopemoney==""||mayopemoney==null){
mayopemoney = "0";
}
if(Number(contractTotal)>Number(mayopemoney)){
alert('最终还款金额大于网银核销金额!!!');
return;
}
@ -254,8 +331,33 @@
return;
}
}
as_save("myiframe0","run()");
var SETTLE_METHOD = getItemValue(0,0,"SETTLE_METHOD");
var AGREED_PENALTY = parseFloat(getItemValue(0,0,"AGREED_PENALTY"));
var SDHANDLING_CHARGE = parseFloat(getItemValue(0,0,"SDHANDLING_CHARGE"));
var AGREED_DATEPENALTY = parseFloat(getItemValue(0,0,"AGREED_DATEPENALTY"));
var SDNOMINAL_PRICE = getItemValue(0,0,"SDNOMINAL_PRICE");
var PREMATURE_MONEY = getItemValue(0,0,"PREMATURE_MONEY");
var DUN_RENT = getItemValue(0,0,"DUN_RENT");
if(YES_NO=='Y'&&SETTLE_METHOD=="SETTLE_METHOD02"){
//获取其它应收和其它应退
var OTHER_OUT = getItemValue(0,0,"OTHER_OUT");
var OTHER_IN = getItemValue(0,0,"OTHER_IN");
if(OTHER_OUT == "" || OTHER_OUT == null){
OTHER_OUT = "0.00"
}
if(OTHER_IN == "" || OTHER_IN == null){
OTHER_IN = "0.00"
}
// 最终还款金额
var MAXIMUM_TOTAL = (Number(PREMATURE_MONEY)+Number(DUN_RENT)+Number(AGREED_PENALTY)+SDHANDLING_CHARGE+AGREED_DATEPENALTY+Number(SDNOMINAL_PRICE)+Number(OTHER_IN)-Number(OTHER_OUT));
setItemValue(0,0,'MAXIMUM_TOTAL',MAXIMUM_TOTAL);
}else if(YES_NO=='N'&&SETTLE_METHOD=="SETTLE_METHOD02"){
debugger
// 最终还款金额
var MAXIMUM_TOTAL = (Number(PREMATURE_MONEY)+Number(DUN_RENT)+Number(AGREED_PENALTY)+SDHANDLING_CHARGE+AGREED_DATEPENALTY+Number(SDNOMINAL_PRICE));
setItemValue(0,0,'MAXIMUM_TOTAL',MAXIMUM_TOTAL);
}
as_save("myiframe0","run()");
}else{
alert('请先撤销变更,再进行变更操作!!!');
}
@ -263,11 +365,41 @@
function run()
{
AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","runTerminate","flowunid=<%=flowunid%>,plannumber=<%=paymentnumber%>,productId=<%=productId%>,calType=pay_process");
var EQUIPMENT_RATIO=getItemValue(0,0,'PROPROTION_NUMBER');//租赁物比重
var PAYDAY_ADJUST = getItemValue(0,0,'PAYDAY_ADJUST'); //约定终止日
var SETTLE_METHOD = getItemValue(0,0,"SETTLE_METHOD"); // 结清方式
var ret = "";
if(SETTLE_METHOD == "SETTLE_METHOD02"){
var returns = AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","setEquipmentTerminateStatus","flowunid=<%=flowunid%>,IDS="+IDS);
ret = AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","partSettlement","REPURCHASE_RATIO="+EQUIPMENT_RATIO+",flowunid=<%=flowunid%>,contractId=<%=contractId%>,START_DATE=<%=START_DATE%>,plannumber=<%=PAYMENT_NUMBER%>,calType=pay_process,PAYDAY_ADJUST="+PAYDAY_ADJUST+",SettleMethod="+SETTLE_METHOD);
}else{
AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","alterdata","flowunid=<%=flowunid%>");
AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","runTerminate","flowunid=<%=flowunid%>,plannumber=<%=paymentnumber%>,productId=<%=productId%>,calType=pay_process,MAXIMUM_TOTAL=MAXIMUM_TOTAL,REPURCHASE_MONEY = REPURCHASE_MONEY");
ret = "操作成功"
}
if(ret=="操作成功"){
alert("提前结清操作成功");
}else{
alert("提前结清操作失败,请联系管理员!");
}
}
jQuery(function(){
var settlemethod = getItemValue(0,getRow(),"SETTLE_METHOD");
if("N"==("<%=settletype%>")){
$("#A_div_1007").attr("style","display:none;");
$("#A_div_1008").attr("style","display:none;");
$("#A_div_1009").attr("style","display:none;");
$("#A_div_2096").attr("style","display:none;");
$("#A_div_2098").attr("style","display:none;");
}else if(settlemethod=="SETTLE_METHOD01") {
$("#A_div_1008").attr("style","display:none;");
$("#A_div_1009").attr("style","display:none;");
$("#A_div_2096").attr("style","display:none;");
$("#A_div_2098").attr("style","display:none;");
}
setItemValue(0,0,"flowunid","<%=flowunid%>");
var payday_date = getItemValue(0,getRow(),"PAYDAY_DATE");
if(""==payday_date || "undefined"==payday_date || null == payday_date){
@ -326,6 +458,174 @@
}
}
}
function setEquipmentRatioCharge(){
var settlemethod = getItemValue(0,0,"SETTLE_METHOD");
var ADJUST_TYPE = getItemValue(0,0,"ADJUST_TYPE");
var PAYDAY_ADJUST = getItemValue(0,0,"PAYDAY_ADJUST");
var disposable = AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","getdisposable","flowunid=<%=flowunid%>");
if(ADJUST_TYPE.length==0){
alert("请先选择变更类型!!!");
setItemValue(0,getRow(),"ADJUST_TYPE","");
setItemValue(0,getRow(),"SETTLE_METHOD","");
return;
}
if(PAYDAY_ADJUST.length==0){
alert("请先选择约定终止日!!!");
setItemValue(0,getRow(),"PAYDAY_ADJUST","");
setItemValue(0,getRow(),"SETTLE_METHOD","");
return;
}
setItemValue(0,0,"CLEAN_LEASE_MONEY","<%=CLEAN_LEASE_MONEY%>");
if(settlemethod=="SETTLE_METHOD02"){
$("#A_div_1008").attr("style","display:block;");
$("#A_div_1009").attr("style","display:block;");
$("#A_div_2096").attr("style","display:block;");
$("#A_div_2098").attr("style","display:block;");
if(disposable == "false"){
settlemet();
}else{
alert("此合同已发起过提前部分结清,现只能发起全部结清");
setItemValue(0,getRow(),"SETTLE_METHOD","SETTLE_METHOD01");
$("#A_div_1008").attr("style","display:none;");
$("#A_div_1009").attr("style","display:none;");
$("#A_div_2096").attr("style","display:none;");
$("#A_div_2098").attr("style","display:none;");
getTerminateInfo();
}
}else if(settlemethod=="SETTLE_METHOD01") {
$("#A_div_1008").attr("style","display:none;");
$("#A_div_1009").attr("style","display:none;");
$("#A_div_2096").attr("style","display:none;");
$("#A_div_2098").attr("style","display:none;");
getTerminateInfo();
}
}
function settlemet(){
AsDialog.OpenSelector("selectEquipCarTermination","contractid,<%=contractId%>,flowunid,<%=flowunid%>","dialogWidth=" + parseInt(window.screen.width * 0.8) + "px dialogHeight=" + parseInt(window.screen.height * 0.6) + "px",function(sReturn){
if(!sReturn||sReturn=="_CANCEL_"||sReturn=="_NONE_"){
setItemValue(0,0,'SETTLE_METHOD',"");
}else{
IDS= sReturn;
// 获取选中租赁物参融比例
var PROPROTION_NUMBER = AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","getReductionRatio","flowunid=<%=flowunid%>,IDS="+IDS);
var NOMINAL_PRICE = AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","getPrice","flowunid=<%=flowunid%>,IDS="+IDS);
setItemValue(0,0,'PROPROTION_NUMBER',PROPROTION_NUMBER);
YES_NO = AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","getYesNo","flowunid=<%=flowunid%>,IDS="+IDS);
// 留购价
setItemValue(0,0,'NOMINAL_PRICE',NOMINAL_PRICE);
if(PAYDAY_ADJUST!=""){
changeContractTotal(YES_NO);
}
}
},"请选择租赁物");
}
/*
* 提前结清结清金额计算
*/
function changeContractTotal(){
var ADJUST_TYPE = getItemValue(0,0,"ADJUST_TYPE");
var AGREED_PENALTY = parseFloat(getItemValue(0,0,"AGREED_PENALTY"));
var SDHANDLING_CHARGE = parseFloat(getItemValue(0,0,"SDHANDLING_CHARGE"));
var AGREED_DATEPENALTY = parseFloat(getItemValue(0,0,"AGREED_DATEPENALTY"));
if(AGREED_PENALTY>DUN_PENALTY){
$m.alert("减免减免逾期违约金不能大于逾期违约金!", "warning");
setItemValue(0,getRow(),"AGREED_PENALTY","0");
}
var REPURCHASE_RATIO = parseFloat(getItemValue(0,0,"PROPROTION_NUMBER"));
var PAYDAY_ADJUST = getItemValue(0,0,"PAYDAY_ADJUST");
if(PAYDAY_ADJUST!="" && REPURCHASE_RATIO>0){
// 减免逾期违约金
var AGREED_PENALTY = getItemValue(0,0,"AGREED_PENALTY");
// 其他应收
var OTHER_IN = getItemValue(0,0,"OTHER_IN");
// 获取留购价款
var NOMINAL_PRICE = getItemValue(0,0,"NOMINAL_PRICE");
//获取商定留购价款
var SDNOMINAL_PRICE = getItemValue(0,0,"SDNOMINAL_PRICE");
var params = "contractId=<%=contractId%>,flowunid=<%=flowunid%>,YEAR_RATE=<%=YEAR_RATE%>,PAYDAY_ADJUST="+PAYDAY_ADJUST+",REPURCHASE_RATIO="+REPURCHASE_RATIO+",AGREED_PENALTY="+AGREED_PENALTY+",OTHER_IN="+OTHER_IN+",SDHANDLING_CHARGE="+SDHANDLING_CHARGE;
var result = AsControl.RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.EarlyContract","getSettlementMoney",params);
// 根据提前终止日计算还款日息差
var dateRate=Number("<%=yearrate%>")/100;//获取利率
var rentPlanDate = AsControl.RunJavaMethod("com.tenwa.reckon.executor.RentCalHelper","rentPlanDate","contractId=<%=contractId%>,paydayAdjust="+PAYDAY_ADJUST);
var idays = datedifference(rentPlanDate,PAYDAY_ADJUST);//获取约定终止日和提出日期相差天数
var terminateInfo = AsControl.RunJavaMethod("com.tenwa.reckon.executor.RentCalHelper","getTerminateInfo","contractId=<%=contractId%>,paymentnumber=<%=paymentnumber%>,paydayAdjust="+PAYDAY_ADJUST);
result = result.split("@");
var CORPUS_OVERAGE = result[0];
var PREMATURE_MONEY = result[1];
var RESIDUE_MONEY = result[2];
var DUN_RENT = result[3];
var DUN_PENALTY = terminateInfo.sumpenalty;
// 未到期本金
setItemValue(0,getRow(),"CORPUS_OVERAGE",CORPUS_OVERAGE);
// 部分结清车辆未到期本金
setItemValue(0,getRow(),"PREMATURE_MONEY",PREMATURE_MONEY);
// 剩余车辆未到期本金
setItemValue(0,getRow(),"RESIDUE_MONEY",RESIDUE_MONEY);
// 逾期租金
setItemValue(0,getRow(),"DUN_RENT",DUN_RENT);
// 逾期罚息
setItemValue(0,getRow(),"DUN_PENALTY",DUN_PENALTY);
// 应退金额
var OTHEROUT = <%=cautionmoney%>;
if(OTHEROUT == "" || OTHEROUT == null){
OTHEROUT = "0.00"
}
if(YES_NO=='Y'){
setItemValue(0,getRow(),"OTHER_OUT",OTHEROUT);
}else{
setItemValue(0,getRow(),"OTHER_OUT","0.00");
}
// 违约金
var ratio=0;
if("<%=ratio%>"==""||"<%=ratio%>"==null||"<%=ratio%>"=="null"){
ratio = 0.05;
}else{
ratio = (Number("<%=ratio%>")/100).toFixed(2);
}
var HANDLING_CHARGE = Math.round(Number(PREMATURE_MONEY*ratio)*100)/100;
setItemValue(0,getRow(),"HANDLING_CHARGE",HANDLING_CHARGE);
//计算还款日息差
var REPAYMENT=((Number(PREMATURE_MONEY)*dateRate)/360)*Number(idays);
setItemValue(0,0,'REPAYMENT_INTEREST',REPAYMENT);
if(YES_NO=='Y'){
//获取其它应收和其它应退
var OTHER_OUT = getItemValue(0,0,"OTHER_OUT");
var OTHER_IN = getItemValue(0,0,"OTHER_IN");
if(OTHER_OUT == "" || OTHER_OUT == null){
OTHER_OUT = "0.00"
}
if(OTHER_IN == "" || OTHER_IN == null){
OTHER_IN = "0.00"
}
// 提前还款金额
var CONTRACT_TOTAL = (Number(PREMATURE_MONEY)+Number(DUN_RENT)+Number(DUN_PENALTY)+Number(HANDLING_CHARGE)+Number(REPAYMENT)+Number(NOMINAL_PRICE)+Number(OTHER_IN)-Number(OTHER_OUT));
setItemValue(0,0,'CONTRACT_TOTAL',CONTRACT_TOTAL);
}else{
// 提前还款金额
var CONTRACT_TOTAL = (Number(PREMATURE_MONEY)+Number(DUN_RENT)+Number(DUN_PENALTY)+Number(HANDLING_CHARGE)+Number(REPAYMENT)+Number(NOMINAL_PRICE));
setItemValue(0,0,'CONTRACT_TOTAL',CONTRACT_TOTAL);
}
if(ADJUST_TYPE=="coerce_terminate"){
setItemValue(0,getRow(),"PENALTY_MONEY","0.00");
setItemValue(0,getRow(),"DUN_PENALTY","0.00");
setItemValue(0,getRow(),"RECEIVABLE_MONEY02","0.00");
}else if(ADJUST_TYPE=="normal_terminate"){
setItemValue(0,getRow(),"PENALTY_MONEY","0.00");
setItemValue(0,getRow(),"OPEN_MONEY","0.00");
}else{
setItemValue(0,getRow(),"OPEN_MONEY","0.00");
}
}
}
function changeContract(){
getTerminateInfo();
// setItemValue(0,0,"CONTRACT_TOTAL",(Number(getItemValue(0,getRow(),"CONTRACT_TOTAL"))+Number(getItemValue(0,getRow(),"OTHER_IN"))).toFixed(2));

View File

@ -0,0 +1,42 @@
<%@ page contentType="text/html; charset=GBK" %>
<%@ include file="/Frame/resources/include/include_begin_list.jspf" %>
<%
String sFlowUnid = CurPage.getParameter("FlowUnid");//流程编号
String ProductId = CurPage.getParameter("ProductId");
String ProjectId = CurPage.getParameter("ProjectId");
String RightType = CurPage.getParameter("RightType");
String FlowNo = CurPage.getParameter("FlowNo");
String TERMINATE_TYPE = CurPage.getParameter("TERMINATE_TYPE");
String ishistory=CurPage.getParameter("IsHistory");
String templateNo = "LBEquipmentCarTempListJQ";
ASObjectModel doTemp = new ASObjectModel(templateNo);
if("2".equals(TERMINATE_TYPE)){
doTemp.appendJboWhere(" and (TERMINATE_TYPE='1' or TERMINATE_TYPE is null )");
}else if("1".equals(TERMINATE_TYPE)){
doTemp.appendJboWhere(" and TERMINATE_TYPE='2' ");
}else if("3".equals(TERMINATE_TYPE)){
doTemp.appendJboWhere(" and TERMINATE_TYPE='3' ");
}
ASObjectWindow dwTemp = new ASObjectWindow(CurPage, doTemp, request);
/* if(null!=ishistory&&ishistory.equals("true")){
doTemp.setDataQueryClass("com.tenwa.flow.flowHistory.FlowDataInfoHistory");//如果是历史则新显示历史数据
} */
dwTemp.Style = "1"; //--设置为Grid风格--
dwTemp.ReadOnly = "1"; //只读模式
dwTemp.ShowSummary = "1";
// 合同制作去除租赁物信息,新增、删除、复制按钮
dwTemp.setPageSize(100);
dwTemp.genHTMLObjectWindow(sFlowUnid);
//0、是否展示 1、 权限控制 2、 展示类型 3、按钮显示名称 4、按钮解释文字 5、按钮触发事件代码 6、 7、 8、 9、图标CSS层叠样式 10、风格
String sButtons[][] = {
};
%>
<%@include file="/Frame/resources/include/ui/include_list.jspf" %>
<script type="text/javascript">
</script>
<%@ include file="/Frame/resources/include/include_end.jspf" %>

View File

@ -10,6 +10,7 @@
//alert(getHtmlMessage('1'));//请选择一条信息!
return;
}
debugger
sReturn = sReturn.split("@");
var contract_id=sReturn[0];
var project_id=sReturn[1];
@ -17,6 +18,8 @@
var contract_number = sReturn[3];
var project_name = sReturn[4];
var payment_number = sReturn[5];
//判断是否为可以发起部分结清
var settletype = sReturn[6];
//校验是否有保证金代偿
/* var isCompensation = AsControl.RunJavaMethod("com.tenwa.reckon.executor.RentCalHelper","isCompensation","contractId="+contract_id);
if("false" == isCompensation){
@ -24,7 +27,7 @@
return ;
} */
var sParams = "applyType=<%=sApplyType%>,CurUserID=<%=CurUser.getUserID()%>";
sParams =sParams+",payment_number="+payment_number+",ProjectId="+project_id+",FlowKey="+payment_number+",ProductId="+product_id+",ContractId="+contract_id+",ProjectName="+project_name;
sParams =sParams+",payment_number="+payment_number+",ProjectId="+project_id+",FlowKey="+payment_number+",ProductId="+product_id+",ContractId="+contract_id+",ProjectName="+project_name+",settletype="+settletype;
var sReturnInfo = RunJavaMethodTrans("com.tenwa.lease.flow.contract.terminate.TerminateFlowStartAction","initFLow",sParams);
if(typeof(sReturnInfo)=="undefined" || sReturnInfo=="" || sReturnInfo=="_CANCEL_") return;
var sReturnInfos=sReturnInfo.split("@");

View File

@ -262,6 +262,11 @@
// parent.parent.resetDWDialog("配偶身份证信息错误!",false);
return false;
} */
if(!CheckLicense(certid)){
alert("配偶证件号格式错误,请检查!");
return;
}
if(CheckLicense(certid)){
setItemValue(0,0,"certid",certid);
//setItemUnit(0,0,"certid","");

View File

@ -1,6 +1,8 @@
<%@page import="com.amarsoft.app.lc.workflow.action.GetFlowAction"%>
<%@ page contentType="text/html; charset=GBK"%>
<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><%
String flowNo = CurPage.getParameter("FlowNo");//流程编号
String sFlowUnid = CurPage.getParameter("FlowUnid");//流程编号
if(sFlowUnid == null)sFlowUnid = "";
String sTempletNo = CurPage.getParameter("TempletNo");//模板号
@ -18,6 +20,9 @@
ASObjectModel doTemp = new ASObjectModel(sTempletNo);
doTemp.setHtmlEvent("MEMO", "onmouseover", "showMemo");
doTemp.setHtmlEvent("MEMO", "onmouseout", "hideMemo");
if("RentRebackFlow".equals(flowNo)){ //租金红冲流程不显示保证金抵扣的数据
doTemp.appendJboWhere(" and SETTLE_METHOD <> 'settlemethod7'");
}
ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request);
dwTemp.Style="1"; //--设置为Grid风格--
dwTemp.ReadOnly = "1"; //只读模式

View File

@ -4545,6 +4545,7 @@
<attribute name="head_name" label="头车名称" type="STRING" length="100"/>
<attribute name="is_tail" label="头车字段(是否有挂车)" type="STRING" length="2"/>
<attribute name="uu_id" label="标识" type="STRING" length="32"/>
<attribute name="TERMINATE_TYPE" label="标识租赁物是否结清" type="STRING" length="32"/>
</attributes>
<manager>
<managerProperties>
@ -4667,6 +4668,7 @@
<attribute name="head_name" label="头车名称" type="STRING" length="100"/>
<attribute name="is_tail" label="头车字段(是否有挂车)" type="STRING" length="2"/>
<attribute name="uu_id" label="标识" type="STRING" length="32"/>
<attribute name="TERMINATE_TYPE" label="标识租赁物是否结清" type="STRING" length="32"/>
</attributes>
<manager>
<managerProperties>

View File

@ -75,7 +75,7 @@
<property name="table" value="LC_EBANK" />
<property name="createKey" value="true" />
<property name="keyDatePrefix" value="'LCE'yyyyMMdd"/>
<property name="query.largeResultLimit" value="20000"/>
<property name="query.largeResultLimit" value="30000"/>
</managerProperties>
</manager>
</class>
@ -326,6 +326,11 @@
<attribute name="SurplusINTEREST" label="剩余利息" type="STRING" length="32"/>
<attribute name="MAXIMUM_TOTAL" label="最终还款金额" type="STRING" length="32"/>
<attribute name="AGREED_DATEPENALTY" label="商定还款日息差" type="STRING" length="32"/>
<attribute name="SETTLE_METHOD" label="结清方式" type="STRING" length="32"/>
<attribute name="PROPROTION_NUMBER" label="租赁物比重" type="STRING" length="32"/>
<attribute name="CLEAN_LEASE_MONEY" label="融资金额(元)" type="STRING" length="32"/>
<attribute name="PREMATURE_MONEY" label="部分结清车辆未到期本金" type="STRING" length="32"/>
<attribute name="RESIDUE_MONEY" label="剩余车辆未到期本金" type="STRING" length="32"/>
</attributes>
<manager>
<managerProperties>
@ -378,6 +383,11 @@
<attribute name="SurplusINTEREST" label="剩余利息" type="STRING" length="32"/>
<attribute name="MAXIMUM_TOTAL" label="最终还款金额" type="STRING" length="32"/>
<attribute name="AGREED_DATEPENALTY" label="商定还款日息差" type="STRING" length="32"/>
<attribute name="SETTLE_METHOD" label="结清方式" type="STRING" length="32"/>
<attribute name="PROPROTION_NUMBER" label="租赁物比重" type="STRING" length="32"/>
<attribute name="CLEAN_LEASE_MONEY" label="融资金额(元)" type="STRING" length="32"/>
<attribute name="PREMATURE_MONEY" label="部分结清车辆未到期本金" type="STRING" length="32"/>
<attribute name="RESIDUE_MONEY" label="剩余车辆未到期本金" type="STRING" length="32"/>
</attributes>
<manager>
<managerProperties>

View File

@ -845,6 +845,9 @@
<attribute name="PLAN_LIST" label="期次" type="STRING" length="32"/>
<attribute name="RENT_PLAN_ID" label="租金计划ID" type="STRING" length="32"/>
<attribute name="COMPENSATORY_CON" label="连续代偿期数" type="STRING" length="32"/>
<attribute name="CORPUS" label="本金" type="DOUBLE" length="22" scale="2"/>
<attribute name="INTEREST" label="利息" type="DOUBLE" length="22" scale="2"/>
<attribute name="PENALTY" label="罚息" type="DOUBLE" length="22" scale="2"/>
</attributes>
<manager>
<managerProperties>

View File

@ -1511,6 +1511,7 @@
<attribute name="head_name" label="头车名称" type="STRING" length="100"/>
<attribute name="is_tail" label="头车字段(是否有挂车)" type="STRING" length="2"/>
<attribute name="uu_id" label="标识" type="STRING" length="32"/>
<attribute name="TERMINATE_TYPE" label="标识租赁物是否结清" type="STRING" length="32"/>
</attributes>
<manager>
<managerProperties>
@ -2092,6 +2093,7 @@
<attribute name="head_name" label="头车名称" type="STRING" length="100"/>
<attribute name="is_tail" label="头车字段(是否有挂车)" type="STRING" length="2"/>
<attribute name="uu_id" label="标识" type="STRING" length="32"/>
<attribute name="TERMINATE_TYPE" label="标识租赁物是否结清" type="STRING" length="32"/>
</attributes>
<manager>
<managerProperties>
@ -3676,6 +3678,7 @@
<attribute name="head_name" label="头车名称" type="STRING" length="100"/>
<attribute name="is_tail" label="头车字段(是否有挂车)" type="STRING" length="2"/>
<attribute name="uu_id" label="标识" type="STRING" length="32"/>
<attribute name="TERMINATE_TYPE" label="标识租赁物是否结清" type="STRING" length="32"/>
</attributes>
<manager>
<managerProperties>

View File

@ -3238,6 +3238,26 @@
</managerProperties>
</manager>
</class>
<class name="VI_CUSTOMER_DISTRIBUTOR" label="客户和经销商名称" keyAttributes="OBJECTNO">
<attributes>
<attribute name="flow_unid" label="对象编号" type="STRING"/>
<attribute name="CUSTOMER_NAME" label="客户名称" type="STRING"/>
<attribute name="DISTRIBUTOR_NAME" label="经销商名称" type="STRING"/>
</attributes>
<manager>
<managerProperties>
<property name="table" value="VI_CUSTOMER_DISTRIBUTOR" />
<property name="createKey" value="false" />
</managerProperties>
</manager>
</class>
<class name="PF_TASK_ALLOCATION_ROLE" label="" keyAttributes="ID">
<attributes>
<attribute name="ID" label="标识" type="STRING" length="32"/>

View File

@ -24,7 +24,7 @@ public class CopyDormantRentTempToFormal extends BaseBussiness{
Map<String,String>fromCondtion=new HashMap<String, String>();
fromCondtion.put("flowunid",this.getAttribute("FlowUnid").toString());
Map<String,String>fromCondtion2=new HashMap<String, String>();
fromCondtion.put("contract_id",this.getAttribute("ContractId").toString());
fromCondtion2.put("contract_id",this.getAttribute("ContractId").toString());
Map<String,String>otherProperty2=new HashMap<String, String>();
otherProperty2.put("flowunid",this.getAttribute("FlowUnid").toString());
DataOperatorUtil.copySingleJBO(LC_DORMANT_RENT_ADJUST_TEMP.CLASS_NAME, fromCondtion, LC_DORMANT_RENT_ADJUST.CLASS_NAME, null, null, Sqlca);

View File

@ -0,0 +1,33 @@
package com.tenwa.reckon.copydata;
import com.amarsoft.awe.util.ASResultSet;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.tenwa.flow.baseBussion.BaseBussiness;
/**
* 起租后方案信息变更租金计划表合同id为空
*
*
*/
public class CalcConditionUpdateRent extends BaseBussiness{
public Object run(Transaction Sqlca) throws Exception {
this.initBussinessParam(Sqlca);
String flowunid = this.getAttribute("ObjectNo").toString(); //获取流程编号
String contractId = this.getAttribute("ContractId").toString(); //获取合同编号
ASResultSet rs = Sqlca.getASResultSet(new SqlObject("select PROJECT_ID,PROJECT_PLAN_NUMBER ,CONTRACT_PLAN_NUMBER ,PAYMENT_NUMBER from lc_rent_plan where CONTRACT_ID ='"+contractId+"' and PLAN_LIST = '1' "));
if ( rs.next() ) {
SqlObject sql = new SqlObject("update lc_rent_plan_temp set "
+ " PROJECT_ID =:projectId,PROJECT_PLAN_NUMBER=:projectPlanNumber ,"
+ " CONTRACT_PLAN_NUMBER=:contractPlanNumber ,PAYMENT_NUMBER=:paymentNumber,CONTRACT_ID=:contractId "
+ " where FLOWUNID=:flowUnid ");
sql.setParameter("projectId", rs.getString( "PROJECT_ID" ) ).setParameter("projectPlanNumber", rs.getString( "PROJECT_PLAN_NUMBER" ) )
.setParameter("contractPlanNumber", rs.getString( "CONTRACT_PLAN_NUMBER" ) ).setParameter("paymentNumber", rs.getString( "PAYMENT_NUMBER" ) )
.setParameter("contractId", contractId ).setParameter("flowUnid", flowunid);
Sqlca.executeSQL(sql);
}
return "true";
}
}

View File

@ -313,14 +313,20 @@ public class CreateTransactionExecutor implements Transaction {
public String carRunOnhire(com.amarsoft.awe.util.Transaction Sqlca) throws Exception {
JBOTransaction tx=null;
BizObjectManager Bm=JBOFactory.getBizObjectManager(LC_CALC_CONDITION.CLASS_NAME, Sqlca);
BizObjectManager lprrM=JBOFactory.getBizObjectManager(LC_PAY_RENT_PLAN.CLASS_NAME, Sqlca);
BizObject boLCC = Bm.createQuery("contract_id='" + contractId + "'").getSingleResult(true);
BizObjectManager bmLCI=JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME, Sqlca);
BizObject boLCI = bmLCI.createQuery("id='" + contractId + "'").getSingleResult(false);
List<BizObject> lprrs = lprrM.createQuery(" payment_number=:payment_number ").setParameter("payment_number", this.plannumber ).getResultList(false);
//»ñÈ¡ÆÚ´Î
if(boLCC != null) {
String settleMethod = boLCC.getAttribute("SETTLE_METHOD").getString();
String defaultDueDay = ProductParamUtil.getProductParameterValue(productId, "PRD0301", settleMethod, "DefaultDueDay");
int incomeNumber = boLCC.getAttribute("INCOME_NUMBER").getInt();
// int incomeNumber = boLCC.getAttribute("INCOME_NUMBER").getInt();
int incomeNumber = lprrs.size() ;
//ÆÚ³õ-ÆÚÄ©
String periodType = boLCC.getAttribute("PERIOD_TYPE").getString();
String incomeIntervalMonth = boLCC.getAttribute("INCOME_INTERVAL_MONTH").getInt() + "";
@ -358,6 +364,7 @@ public class CreateTransactionExecutor implements Transaction {
}
boLCC.setAttributeValue("start_date", startDate);
boLCC.setAttributeValue("lease_amt_date", startDate);
boLCC.setAttributeValue("INCOME_NUMBER", incomeNumber);
if(planDateList.size()>0)boLCC.setAttributeValue("first_plan_date", planDateList.get(0));
if(planDateList.size()>1)boLCC.setAttributeValue("second_plan_date", planDateList.get(1));
Bm.saveObject(boLCC);
@ -1397,12 +1404,12 @@ public class CreateTransactionExecutor implements Transaction {
Double factMoney = new Double(let.getAttribute("FACT_MONEY").getString());
if(mayopeMoney>=advanceMoney){
Double mayopeMoneyNew = mayopeMoney-advanceMoney;
let.setAttributeValue("HAD_MONEY", factMoney - mayopeMoneyNew);
let.setAttributeValue("HAD_MONEY", advanceMoney);
let.setAttributeValue("MAYOPE_MONEY", mayopeMoneyNew);
letManage.saveObject(let);
break;
}else{
let.setAttributeValue("HAD_MONEY", factMoney);
let.setAttributeValue("HAD_MONEY", mayopeMoney);
advanceMoney = advanceMoney-mayopeMoney;
let.setAttributeValue("MAYOPE_MONEY", 0);
letManage.saveObject(let);

View File

@ -43,6 +43,7 @@ public class SegmentedFinancingExecutor extends FundRentPlanExecutor {
List<String> overCorpuss = new ArrayList<>();
PlanDateServiceImpl pdsi = new PlanDateServiceImpl( tx );
ConditionBean cb = tcb.getCb();
BigDecimal maxIncomeNumber = BigDecimal.ZERO;
for ( BizObject bo : bos ) {
// ·ÖκÅ
String subsectionNumber = bo.getAttribute( "SUBSECTION_NUMBER" ).getString();
@ -54,6 +55,10 @@ public class SegmentedFinancingExecutor extends FundRentPlanExecutor {
BigDecimal preRate = rate.divide( incomeNumberYear, 20, 4 );
// ÆÚ´Î
BigDecimal incomeNumber = new BigDecimal( bo.getAttribute( "INCOME_NUMBER" ).getString() );
if(incomeNumber.compareTo(maxIncomeNumber) > 0 ) {
maxIncomeNumber = incomeNumber;
}
cb.setIncomeNumber( incomeNumber.intValue() );
List<String> planDateList = pdsi.getPlanDateList( cb, null );
if ( planDateList.size() > dates.size() ) {
@ -179,6 +184,10 @@ public class SegmentedFinancingExecutor extends FundRentPlanExecutor {
}
}
}
//将分段融的最大值赋值给测算期次
cb.setIncomeNumber( maxIncomeNumber.intValue() );
//分段融目前没有配置还款间隔默认为月付租赁期限和租赁次数一致
cb.setLeaseTerm( maxIncomeNumber.intValue() );
FundRentPlanBean fundRentPlanBean = new FundRentPlanBean();
fundRentPlanBean.setCorpusOverageBusinessList( overCorpuss );
fundRentPlanBean.setCorpusBusinessList( corpuss );

View File

@ -1,68 +1,39 @@
package com.tenwa.flow.util;
import java.text.DecimalFormat;
import com.amarsoft.app.lc.util.DateAssistant;
import com.amarsoft.are.jbo.*;
import com.amarsoft.are.lang.StringX;
import com.google.common.collect.ImmutableMap;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import jbo.com.tenwa.entity.comm.flow.FLOW_WORK_FLAG;
import jbo.com.tenwa.entity.comm.serialutil.T_SERIAL_NUMBER;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import jbo.com.tenwa.entity.comm.flow.FLOW_BUSSINESS_OBJECT;
import jbo.com.tenwa.entity.comm.flow.FLOW_WORK_FLAG;
import jbo.com.tenwa.entity.comm.serialutil.T_SERIAL_DISCARD_NUMBER;
import jbo.com.tenwa.entity.comm.serialutil.T_SERIAL_NUMBER;
import jbo.sys.FLOW_OBJECT;
import com.amarsoft.app.lc.util.DateAssistant;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.BizObjectManager;
import com.amarsoft.are.jbo.BizObjectQuery;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.are.jbo.JBOTransaction;
import com.amarsoft.are.lang.StringX;
import com.amarsoft.awe.Configure;
import com.amarsoft.awe.util.ASResultSet;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import java.util.Objects;
public class FlowUtil {
public static synchronized String getProjectSerialNumber(String orgId,JBOTransaction tx) throws Exception{
return FlowUtil.getSerialNumber("P{year}{month}{day}{maxOrderNumber}",6,null, "项目编号"+orgId, null, tx);
}
public static synchronized String getEbankSerialNumber(String orgId,JBOTransaction tx) throws Exception{
return FlowUtil.getSerialNumber("E-{year}{month}{maxOrderNumber}",3,null, "网银编号"+orgId, null, tx);
}
public static synchronized String getOutNoNumber(JBOTransaction tx) throws Exception{
return FlowUtil.getSerialNumber("PF{year}{month}{maxOrderNumber}",4,null, "", null, tx);
}
public static synchronized String getRentOutNoNumber(JBOTransaction tx) throws Exception{
return FlowUtil.getSerialNumber("PR{year}{month}{maxOrderNumber}",4,null, "", null, tx);
}
//获取1位的凭证号凭证号--123
public static synchronized String getVoucher_Number(JBOTransaction tx) throws Exception{
return String.valueOf(Integer.parseInt(FlowUtil.getSerialNumber("{maxOrderNumber}",6,null, "凭证号", Integer.parseInt("2018"), tx)));
public static String getVoucher_Number(JBOTransaction tx) throws Exception {
return FlowUtil.getSerialNumber("{maxOrderNumber}", 6, null, "凭证号", 2018, tx);
}
//获取1位的客户编号--123
public static synchronized String getCustomer_Number(JBOTransaction tx) throws Exception{
return String.valueOf(Integer.parseInt(FlowUtil.getSerialNumber("{maxOrderNumber}",15,null, "客户编号", Integer.parseInt("2018"), tx)));
}
//获取法人customerid--123
public static synchronized String getCustomer_Id(JBOTransaction tx) throws Exception{
return String.valueOf(Integer.parseInt(FlowUtil.getSerialNumber("{maxOrderNumber}",15,null, "法人客户编号", Integer.parseInt("2018"), tx)));
//获取客户编号(法人自然人)
public static String getCustomer_Number(boolean isCompany, String custType) throws Exception {
ImmutableMap<String, String> model = ImmutableMap.of("custType", custType);
return FlowUtil.getSerialNumber("APZL{custType}{maxOrderNumber}", 15, model, isCompany ? "法人客户编号" : "客户编号", null, null);
}
//获取经销商编号
public static synchronized String getDistributorSerialNumber(JBOTransaction tx) throws Exception{
public static String getDistributorSerialNumber(JBOTransaction tx) throws Exception {
return FlowUtil.getSerialNumber("DSTB{year}{month}{day}{maxOrderNumber}",6,null, "经销商编号", null, tx);
}
protected static synchronized String getSerialNumber(String serialNumberPattern,int numberCount,Map<String,String> model,String type,Integer queryYear,JBOTransaction tx) throws Exception
{
private static String getSerialNumber(String serialNumberPattern, int numberCount, Map<String, String> model, String type, Integer queryYear, JBOTransaction tx) throws Exception {
String currentDateTime = DateAssistant.getTodayNow();
String currentYear = currentDateTime.substring(0,4);
String month = currentDateTime.substring(5,7);
@ -70,336 +41,74 @@ public class FlowUtil {
String hour = currentDateTime.substring(11,13);
String minute = currentDateTime.substring(14,16);
String second = currentDateTime.substring(17,19);
Integer year = Integer.parseInt(currentYear);
if(null != queryYear){
year = queryYear;
}
Map<String,String> paramMap = new HashMap<String,String>();
Integer year = queryYear != null ? queryYear : Integer.valueOf(currentYear);
Map<String, String> paramMap = new HashMap<>();
paramMap.put("year", year+"");
paramMap.put("month", month+"");
paramMap.put("day", day+"");
paramMap.put("hour", hour+"");
paramMap.put("minute", minute+"");
paramMap.put("second", second+"");
paramMap.put("month", month);
paramMap.put("day", day);
paramMap.put("hour", hour);
paramMap.put("minute", minute);
paramMap.put("second", second);
int maxOrderNumber = getMaxOrderNumber(type, queryYear, tx);
StringBuffer numberFormat = new StringBuffer();
for(int i=0;i<numberCount;i++)
{
numberFormat.append("0");
}
DecimalFormat df = new DecimalFormat(numberFormat.toString());
String serialNumberFormat = df.format(maxOrderNumber);
paramMap.put("maxOrderNumber", serialNumberFormat);
int maxOrderNumber = getMaxOrderNumber(type, queryYear);
paramMap.put("maxOrderNumber", String.format("%0" + numberCount + "d", maxOrderNumber));
if(null != model){
paramMap.putAll(model);
}
String serialNumberString = getSerialNumber(paramMap, serialNumberPattern);
return serialNumberString;
}
protected static synchronized String getSerialNumber(Map<String,String> paramMap,String serialNumberPattern){
for(String key:paramMap.keySet()){
if(serialNumberPattern.indexOf("{"+key+"}")>=0){
serialNumberPattern=serialNumberPattern.replace("{"+key+"}", paramMap.get(key));
for (String key : paramMap.keySet()) {
if (serialNumberPattern.indexOf("{" + key + "}") >= 0) {
serialNumberPattern = serialNumberPattern.replace("{" + key + "}", paramMap.get(key));
}
}
return serialNumberPattern;
}
/***
* serialNumberPattern匹配值
* {year}->年份如果参数year为空则取当前年
* {month}->当前月
* {day}->当前日
* {hour}->
* {minute}->
* {second}->
* {maxOrderNumber}->当前最大序号
*
* **/
protected static synchronized String getSerialNumberByMonth(String serialNumberPattern,int numberCount,Map<String,String> model,String type,Integer queryYear,Integer queryMonth,JBOTransaction tx) throws Exception
{
String currentDateTime = DateAssistant.getTodayNow();
String currentYear = currentDateTime.substring(0,4);
String monthStr = currentDateTime.substring(5,7);
String day = currentDateTime.substring(8,10);
String hour = currentDateTime.substring(11,13);
String minute = currentDateTime.substring(14,16);
String second = currentDateTime.substring(17,19);
int year = Integer.parseInt(currentYear);
int month = Integer.parseInt(monthStr);
if(null != queryYear){
year = queryYear;
}
if(null != queryMonth){
month = queryMonth ;
}
Map<String,String> paramMap = new HashMap<String,String>();
paramMap.put("year", year+"");
paramMap.put("month", monthStr+"");
paramMap.put("day", day+"");
paramMap.put("hour", hour+"");
paramMap.put("minute", minute+"");
paramMap.put("second", second+"");
int maxOrderNumber = getMaxOrderNumberByMonth(type, year,month, tx);
StringBuffer numberFormat = new StringBuffer();
for(int i=0;i<numberCount;i++)
{
numberFormat.append("0");
}
DecimalFormat df = new DecimalFormat(numberFormat.toString());
String serialNumberFormat = df.format(maxOrderNumber);
paramMap.put("maxOrderNumber", serialNumberFormat);
if(null != model){
paramMap.putAll(model);
}
String serialNumberString = getSerialNumber(paramMap, serialNumberPattern);
return serialNumberString;
}
//考虑并发情况必须采用同步机制
@SuppressWarnings("unchecked")
protected static synchronized int getMaxOrderNumber(String type,Integer queryYear,JBOTransaction tx) throws Exception
{
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
BizObjectManager tNumberManager = JBOFactory.getBizObjectManager(T_SERIAL_NUMBER.CLASS_NAME);
tx.join(tNumberManager);
Map<String,String>searchCondtion=new HashMap<String,String>();
if(!StringX.isEmpty(type)){
searchCondtion.put("type_", type);
}
if(null != queryYear){
searchCondtion.put("year_", queryYear.toString());
}
String querySql = DataOperatorUtil.getQuerySql(searchCondtion);
BizObjectQuery bqDest = tNumberManager.createQuery(querySql);
for (String key : searchCondtion.keySet()) {
bqDest.setParameter(key, searchCondtion.get(key).toString());
}
BizObject serialNumber = null;
serialNumber = bqDest.getSingleResult(true);// 目标JBO需要做更新操作
if(null==serialNumber){
serialNumber = tNumberManager.newObject();
if(null != queryYear)
{
currentYear = queryYear;
private static synchronized int getMaxOrderNumber(String type, Integer queryYear) throws Exception {
JBOTransaction tx = null;
try {
tx = JBOFactory.createJBOTransaction();
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
BizObjectManager tNumberManager = JBOFactory.getBizObjectManager(T_SERIAL_NUMBER.CLASS_NAME);
tx.join(tNumberManager);
Map<String, String> searchCondtion = new HashMap<String, String>();
if (!StringX.isEmpty(type)) {
searchCondtion.put("type_", type);
}
serialNumber.setAttributeValue("year_",currentYear);
serialNumber.setAttributeValue("type_",type);
serialNumber.setAttributeValue("order_number_", "0");
}
int maxOrderNumber = Integer.valueOf(serialNumber.getAttribute("order_number_").getInt()) + 1;
serialNumber.setAttributeValue("order_number_",maxOrderNumber);
tNumberManager.saveObject(serialNumber);
return maxOrderNumber;
}
//考虑并发情况必须采用同步机制
@SuppressWarnings("unchecked")
protected static synchronized int getMaxOrderNumberByMonth(String type,Integer queryYear,Integer queryMonth,JBOTransaction tx) throws Exception
{
if (null != queryYear) {
searchCondtion.put("year_", queryYear.toString());
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
int currentMonth = Calendar.getInstance().get(Calendar.MONTH);
BizObjectManager tNumberManager = JBOFactory.getBizObjectManager(T_SERIAL_NUMBER.CLASS_NAME);
tx.join(tNumberManager);
Map<String,String>searchCondtion=new HashMap<String,String>();
if(!StringX.isEmpty(type)){
searchCondtion.put("type_", type);
}
if(null != queryYear){
searchCondtion.put("year_", queryYear.toString());
}
if(null != queryMonth){
searchCondtion.put("month_", queryMonth.toString());
}
String querySql = DataOperatorUtil.getQuerySql(searchCondtion);
BizObjectQuery bqDest = tNumberManager.createQuery(querySql);
for (String key : searchCondtion.keySet()) {
bqDest.setParameter(key, searchCondtion.get(key).toString());
}
BizObject serialNumber = null;
serialNumber = bqDest.getSingleResult(true);// 目标JBO需要做更新操作
if(null==serialNumber)
{
serialNumber = tNumberManager.newObject();
if(null != queryYear)
{
currentYear = queryYear;
}
if(null != queryMonth){
currentMonth = queryMonth;
String querySql = DataOperatorUtil.getQuerySql(searchCondtion);
BizObjectQuery bqDest = tNumberManager.createQuery(querySql);
for (String key : searchCondtion.keySet()) {
bqDest.setParameter(key, searchCondtion.get(key).toString());
}
serialNumber.setAttributeValue("year_",currentYear);
serialNumber.setAttributeValue("month_",currentMonth);
serialNumber.setAttributeValue("type_",type);
serialNumber.setAttributeValue("order_number_", "0");
// 目标JBO需要做更新操作
BizObject serialNumber = bqDest.getSingleResult(true);
if (Objects.isNull(serialNumber)) {
serialNumber = tNumberManager.newObject();
serialNumber.setAttributeValue("year_", queryYear != null ? queryYear : currentYear);
serialNumber.setAttributeValue("type_", type);
serialNumber.setAttributeValue("order_number_", "0");
}
int maxOrderNumber = serialNumber.getAttribute("order_number_").getInt() + 1;
serialNumber.setAttributeValue("order_number_", maxOrderNumber);
tNumberManager.saveObject(serialNumber);
tx.commit();
return maxOrderNumber;
} catch (Exception e) {
if (tx != null) tx.rollback();
throw e;
}
int maxOrderNumber = Integer.valueOf(serialNumber.getAttribute("order_number_").getInt()) + 1;
serialNumber.setAttributeValue("order_number_",maxOrderNumber);
tNumberManager.saveObject(serialNumber);
return maxOrderNumber;
}
/**
* 优先从号码废弃池中取号,如果号码废弃池中没有待取号吗,则根据序列号生成
* @param serialNumberPattern
* @param numberCount
* @param model
* @param type
* @param queryYear
* @param hibernateTemplate
* @param jdbcTemplate
* @return
* @throws Exception
*/
protected static synchronized String getSerialNumberFirstDiscard(String serialNumberPattern,int numberCount,Map<String,String> model,String type,Integer queryYear,JBOTransaction tx) throws Exception
{
String currentDateTime = DateAssistant.getTodayNow();
String currentYear = currentDateTime.substring(0,4);
String month = currentDateTime.substring(5,7);
String day = currentDateTime.substring(8,10);
String hour = currentDateTime.substring(11,13);
String minute = currentDateTime.substring(14,16);
String second = currentDateTime.substring(17,19);
int year = Integer.parseInt(currentYear);
if(null != queryYear){
year = queryYear;
}
Map<String,String> paramMap = new HashMap<String,String>();
paramMap.put("year", year+"");
paramMap.put("month", month+"");
paramMap.put("day", day+"");
paramMap.put("hour", hour+"");
paramMap.put("minute", minute+"");
paramMap.put("second", second+"");
int maxOrderNumber =0;
//从废弃池查找可用号码
maxOrderNumber=getMinDiscardNumber(type, queryYear, tx);
if(maxOrderNumber<0){//废弃池中没有数据
maxOrderNumber=getMaxOrderNumber(type, year, tx);
}
StringBuffer numberFormat = new StringBuffer();
for(int i=0;i<numberCount;i++)
{
numberFormat.append("0");
}
DecimalFormat df = new DecimalFormat(numberFormat.toString());
String serialNumberFormat = df.format(maxOrderNumber);
paramMap.put("maxOrderNumber", serialNumberFormat);
if(null != model){
paramMap.putAll(model);
}
String serialNumberString = getSerialNumber(paramMap, serialNumberPattern);
return serialNumberString;
}
@SuppressWarnings("unchecked")
protected static synchronized int getMinDiscardNumber(String type,Integer queryYear,JBOTransaction tx) throws Exception
{
BizObjectManager tNumberManager = JBOFactory.getBizObjectManager(T_SERIAL_DISCARD_NUMBER.CLASS_NAME);
tx.join(tNumberManager);
Map<String,String>searchCondtion=new HashMap<String,String>();
if(!StringX.isEmpty(type)){
searchCondtion.put("type_", type);
}
if(null != queryYear){
searchCondtion.put("year_", queryYear.toString());
}
String querySql = DataOperatorUtil.getQuerySql(searchCondtion);
BizObjectQuery bqDest = tNumberManager.createQuery(querySql);
for (String key : searchCondtion.keySet()) {
bqDest.setParameter(key, searchCondtion.get(key).toString());
}
BizObject serialNumber = null;
serialNumber = bqDest.getSingleResult(true);// 目标JBO需要做更新操作
if(null!=serialNumber)
{
int minOrderNumber = serialNumber.getAttribute("discard_number_").getInt();
tNumberManager.deleteObject(serialNumber);
return minOrderNumber;
}
return -1;
}
public static void deleteWorkFlowConflict(String flowUnid,JBOTransaction tx) throws Exception{
Map<String,String> condtion=new HashMap<String, String>();
condtion.put("flow_unid", flowUnid);
DataOperatorUtil.deleteJBOByCondtion(FLOW_WORK_FLAG.CLASS_NAME, condtion, tx);
}
public static String checkWorkFlowConflict(String flowUnid,String flowname,String flowkey,JBOTransaction tx)throws Exception{
String sql="SELECT flow_unid,flow_name FROM flow_work_flag WHERE flow_name IN("
+ "SELECT flow_nameb FROM flow_mutex_config "
+ "WHERE flow_namea=:flow_namea ) AND mutex_key=:mutex_key";
ASResultSet rs = null;
String flow_unid=null;
String flow_name=null;
String username=null;
String res="";
try {
Map<String,String>searchCondtion=new HashMap<String,String>();
Configure CurConfig = Configure.getInstance();
String sDataSource = CurConfig.getDataSource();
Transaction Sqlca = Transaction.createTransaction(sDataSource);
SqlObject so = new SqlObject(sql);
so.setParameter("flow_namea",flowname);
so.setParameter("mutex_key",flowkey);
rs = Sqlca.getASResultSet(so);
while(rs.next()){
flow_unid=rs.getString("flow_unid");
flow_name=rs.getString("flow_name");
searchCondtion.clear();
searchCondtion.put("objectno", flow_unid);
BizObject flowobject=DataOperatorUtil.getSingleJBO(FLOW_OBJECT.CLASS_NAME, searchCondtion, tx);
if(res!=""){
res+=",";
}
res+=flow_name+"[用户名:"+flowobject.getAttribute("username").getString()+"]";
}
} catch (Exception e) {
e.printStackTrace();
}finally{
rs.close();
public static void deleteWorkFlowConflict(String flowUnid, JBOTransaction tx) throws Exception {
Map<String, String> condtion = new HashMap<String, String>();
condtion.put("flow_unid", flowUnid);
DataOperatorUtil.deleteJBOByCondtion(FLOW_WORK_FLAG.CLASS_NAME, condtion, tx);
}
if(res.length()>0){
//删除表数据
Map<String,String>condtion=new HashMap<String,String>();
condtion.put("flow_unid", flowUnid);
DataOperatorUtil.deleteJBOByCondtion(FLOW_BUSSINESS_OBJECT.CLASS_NAME, condtion, tx);
return "当前流程和"+res+"互斥,如有疑惑请联系管理员";
}else{
/*BizObjectManager bom=JBOFactory.getBizObjectManager(FLOW_BUSSINESS_OBJECT.CLASS_NAME);
tx.join(bom);
BizObject bo=bom.newObject();
bo.setAttributeValue("flow_unid", flowUnid);
bo.setAttributeValue("flow_name", flowname);
bo.setAttributeValue("flow_key", flowkey);
bom.saveObject(bo);*/
return null;
}
}
}

View File

@ -0,0 +1,177 @@
package com.tenwa.jbo.manager;
import com.tenwa.comm.exception.BusinessException;
import org.apache.commons.lang.StringUtils;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class BizObject implements Cloneable {
private String className;
private List<DataObject> datas;
private BizObject(String className ) {
this.className = className;
}
public static BizObject getBizObject(String className ) {
return new BizObject( className );
}
public void setAttributeValue( String columnName, Object value ) throws SQLException {
if ( columnName == null || "".equals( columnName ) ) {
throw new SQLException( "column name can not be null" );
}
if ( datas == null ) {
datas = new ArrayList<DataObject>();
}
if ( value == null || "".equals( value ) ) {
datas.add( new DataObject( columnName, "string", null ) );
} else {
String type = value.getClass().getSimpleName().toLowerCase();
if ( !DataObject.types.contains( type ) ) {
throw new SQLException( "unrecognized value type" );
}
datas.add( new DataObject( columnName, type, value ) );
}
}
public List<BizObject> query(String params ) throws Exception {
return query( null, params );
}
public List<BizObject> query(List<Map<String, String>> params ) throws Exception {
return query( params, null );
}
public List<BizObject> query(List<Map<String, String>> paramList, String params ) throws Exception {
List<BizObject> bizObjects = DataUtil.getArrayList();
String sql = "select * from " + this.getTableName();
String sqlWhere = "";
String[] sqlParam = null;
if ( StringUtils.isNotEmpty( params ) ) {
sqlWhere += " where 1 = 1";
String[] ps = params.split( "," );
sqlParam = new String[ ps.length ];
int i = 0;
for ( String p : ps ) {
sqlWhere += " and " + p.split( "=" )[ 0 ] + " = ? ";
sqlParam[ i ++ ] = p.split( "=" )[ 1 ];
}
}
List<Map<String, String>> datas;
if ( paramList != null ) {
List<List<String>> pl = DataUtil.getArrayList();
sqlWhere += " where 1 = 1";
List<String> keys = DataUtil.getArrayList();
for ( int i = 0; i < paramList.size(); i ++ ) {
List<String> p;
Map<String, String> mp = paramList.get( i );
int j = 0;
for ( Map.Entry<String, String> m : mp.entrySet() ) {
String key = m.getKey();
if ( !keys.contains( key ) ) {
String s = "";
for ( int x = 0; x < paramList.size(); x ++ ) {
if ( s.length() > 0 ) {
s += ",";
}
s += "?";
}
sqlWhere += " and " + m.getKey() + " in ( " + s + " )";
keys.add( key );
}
if ( pl.size() > j ) {
p = pl.get( j );
} else {
p = DataUtil.getArrayList();
pl.add( p );
}
p.add( m.getValue() );
j ++;
}
}
List<String> r = DataUtil.getArrayList();
for ( List<String> p : pl ) {
r.addAll( p );
}
datas = DataUtil.query( sql + sqlWhere, null, r.toArray() );
} else {
datas = DataUtil.query( sql + sqlWhere, null, sqlParam );
}
for ( Map<String, String> data : datas ) {
BizObject bo = (BizObject) this.clone();
for ( Map.Entry<String, String> entry : data.entrySet() ) {
bo.setAttributeValue( entry.getKey(), entry.getValue() );
}
bizObjects.add( bo );
}
return bizObjects;
}
public String getTableName() {
if ( this.className.indexOf( "." ) != -1 ) {
return this.className.substring( this.className.lastIndexOf( "." ) + 1 );
}
return this.className;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public List<DataObject> getDatas() {
return this.datas;
}
public String getAttribute( String key ) throws Exception {
for ( DataObject data : this.datas ) {
if ( data.getColumnName().equalsIgnoreCase( key ) ) {
return DataUtil.getString( data.getColumnValue() );
}
}
throw new BusinessException( "column name not found" );
}
public void setAttributes( List<DataObject> datas ) {
this.datas = datas;
}
public void removeColumn( String columnName ) {
int removeIndex = -1;
for ( int i = 0; i < getDatas().size(); i ++ ) {
DataObject dataObject = getDatas().get( i );
if ( columnName.equals( dataObject.getColumnName() ) ) {
removeIndex = i;
break;
}
}
getDatas().remove( removeIndex );
}
@Override
public BizObject clone() throws CloneNotSupportedException {
BizObject newBo = getBizObject( this.getClassName() );
List<DataObject> dataObjects = this.getDatas();
if ( dataObjects == null ) {
return newBo;
}
for ( DataObject dataObject : dataObjects ) {
try {
newBo.setAttributeValue( dataObject.getColumnName(), dataObject.getColumnValue() );
} catch ( SQLException e ) {
}
}
return newBo;
}
}

View File

@ -0,0 +1,109 @@
package com.tenwa.jbo.manager;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.are.jbo.JBOTransaction;
import com.amarsoft.awe.util.Transaction;
import java.sql.Connection;
public class ConnUtil {
private Connection connection;
private JBOTransaction jboTransaction;
private Transaction transaction;
private boolean flag = false;
public ConnUtil() throws Exception {
this.flag = true;
this.jboTransaction = JBOFactory.createJBOTransaction();
this.transaction = Transaction.createTransaction( this.jboTransaction );
this.connection = this.transaction.getConnection( this.transaction );
}
public ConnUtil(JBOTransaction jboTransaction ) throws Exception {
if ( jboTransaction == null ) {
this.flag = true;
this.jboTransaction = JBOFactory.createJBOTransaction();
} else {
this.jboTransaction = jboTransaction;
}
this.transaction = Transaction.createTransaction( this.jboTransaction );
this.connection = this.transaction.getConnection( this.transaction );
}
public ConnUtil(Transaction transaction ) throws Exception {
if ( transaction == null ) {
this.flag = true;
this.transaction = Transaction.createTransaction( JBOFactory.createJBOTransaction() );
} else {
this.transaction = transaction;
}
this.jboTransaction = this.transaction.getTransaction();
this.connection = this.transaction.getConnection( transaction );
}
public JBOTransaction getJboTransaction() {
return jboTransaction;
}
public void setJboTransaction(JBOTransaction jboTransaction) {
this.jboTransaction = jboTransaction;
}
public Transaction getTransaction() {
return transaction;
}
public void setTransaction(Transaction transaction) {
this.transaction = transaction;
}
public Connection getConnection() {
return this.connection;
}
public void setConnection(Connection connection) {
this.connection = connection;
}
public void commit() throws JBOException {
if ( this.transaction != null && this.flag ) {
this.transaction.commit();
this.transaction = null;
}
}
public void rollback() throws JBOException {
if ( this.transaction != null && this.flag ) {
this.transaction.rollback();
this.transaction = null;
}
}
public void close() throws JBOException {
if ( this.transaction != null && this.flag ) {
this.transaction.disConnect();
this.transaction = null;
}
}
/**
* 在类被销毁时判断内部链接是否存在如果存在则关闭连接
* @throws Throwable
*/
@Override
protected void finalize() throws Throwable {
if ( connection != null && !connection.isClosed() && this.flag ) {
connection.close();
}
if ( transaction != null && this.flag ) {
transaction.rollback();
}
if ( jboTransaction != null && this.flag ) {
jboTransaction.rollback();
}
}
}

View File

@ -0,0 +1,51 @@
package com.tenwa.jbo.manager;
import java.util.Arrays;
import java.util.List;
/**
* Êý¾Ý´æ´¢ÔÏó
*/
public class DataObject {
private String columnName;
/**
* ĿǰֻÓÐstring, int, long, double, boolean, date, bigdecimal, serializable
*/
private String columnType;
private Object columnValue;
public static List<String> types = Arrays.asList( new String[]{ "string", "int", "integer", "long", "double", "boolean", "date", "bigdecimal" } );
public DataObject(String columnName, String columnType, Object columnValue) {
this.columnName = columnName;
this.columnType = columnType;
this.columnValue = columnValue;
}
public String getColumnName() {
return columnName;
}
public void setColumnName(String columnName) {
this.columnName = columnName;
}
public String getColumnType() {
return columnType;
}
public void setColumnType(String columnType) {
this.columnType = columnType;
}
public Object getColumnValue() {
return columnValue;
}
public void setColumnValue(Object columnValue) {
this.columnValue = columnValue;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -18,6 +18,7 @@ import com.amarsoft.are.jbo.JBOTransaction;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.context.ASUser;
import com.tenwa.comm.exception.BusinessException;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
public class LCEbankCallBack extends BaseImportExcelCallBack {
@ -145,9 +146,11 @@ public class LCEbankCallBack extends BaseImportExcelCallBack {
List<String> ebankSns = new ArrayList<String>();
boolean flag = false;
String ebs = "";
List<BizObject> list=JBOFactory.createBizObjectQuery(LC_EBANK.CLASS_NAME,null).getResultList(false);
// List<BizObject> list=JBOFactory.createBizObjectQuery(LC_EBANK.CLASS_NAME,null).getResultList(false);
List<Map<String,String>> list = DataOperatorUtil.getDataBySql("select EBANK_SN from LC_EBANK");
for(int i=0;i<list.size();i++) {
ebankSns.add(list.get(i).getAttribute("EBANK_SN").getString());
// ebankSns.add(list.get(i).getAttribute("EBANK_SN").getString());
ebankSns.add( list.get(i).get("EBANK_SN") );
}
for(BizObject bo:importObjects){
String ebankSn = bo.getAttribute("ebank_sn").getString();

View File

@ -340,52 +340,57 @@ public class SerialNumberUtil {
* **/
protected static synchronized String getSerialNumberByDay(String serialNumberPattern,int numberCount,Map<String,String> model,String type,Integer queryYear,Integer queryMonth,Integer queryDay,JBOTransaction tx) throws Exception
{
JBOTransaction newTx=JBOFactory.createJBOTransaction();
String currentDateTime = DateAssistant.getTodayNow();
String currentYear = currentDateTime.substring(0,4);
String monthStr = currentDateTime.substring(5,7);
String dayStr = currentDateTime.substring(8,10);
String hour = currentDateTime.substring(11,13);
String minute = currentDateTime.substring(14,16);
String second = currentDateTime.substring(17,19);
JBOTransaction newTx = null;
try {
newTx = JBOFactory.createJBOTransaction();
String currentDateTime = DateAssistant.getTodayNow();
String currentYear = currentDateTime.substring(0, 4);
String monthStr = currentDateTime.substring(5, 7);
String dayStr = currentDateTime.substring(8, 10);
String hour = currentDateTime.substring(11, 13);
String minute = currentDateTime.substring(14, 16);
String second = currentDateTime.substring(17, 19);
int year = Integer.parseInt(currentYear);
int month = Integer.parseInt(monthStr);
int day = Integer.parseInt(dayStr);
if(null != queryYear){
year = queryYear;
}
if(null != queryMonth){
month = queryMonth ;
}
if(null != queryDay){
day = queryDay ;
}
Map<String,String> paramMap = new HashMap<String,String>();
paramMap.put("year", year+"");
paramMap.put("month", monthStr+"");
paramMap.put("day", dayStr+"");
paramMap.put("hour", hour+"");
paramMap.put("minute", minute+"");
paramMap.put("second", second+"");
int year = Integer.parseInt(currentYear);
int month = Integer.parseInt(monthStr);
int day = Integer.parseInt(dayStr);
if (null != queryYear) {
year = queryYear;
}
if (null != queryMonth) {
month = queryMonth;
}
if (null != queryDay) {
day = queryDay;
}
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("year", year + "");
paramMap.put("month", monthStr + "");
paramMap.put("day", dayStr + "");
paramMap.put("hour", hour + "");
paramMap.put("minute", minute + "");
paramMap.put("second", second + "");
int maxOrderNumber = getMaxOrderNumberByDay(type, year,month,day, newTx);
StringBuffer numberFormat = new StringBuffer();
for(int i=0;i<numberCount;i++)
{
numberFormat.append("0");
}
int maxOrderNumber = getMaxOrderNumberByDay(type, year, month, day, newTx);
StringBuffer numberFormat = new StringBuffer();
for (int i = 0; i < numberCount; i++) {
numberFormat.append("0");
}
DecimalFormat df = new DecimalFormat(numberFormat.toString());
String serialNumberFormat = df.format(maxOrderNumber);
paramMap.put("maxOrderNumber", serialNumberFormat);
if(null != model){
paramMap.putAll(model);
}
DecimalFormat df = new DecimalFormat(numberFormat.toString());
String serialNumberFormat = df.format(maxOrderNumber);
paramMap.put("maxOrderNumber", serialNumberFormat);
if (null != model) {
paramMap.putAll(model);
}
String serialNumberString = getSerialNumber(paramMap, serialNumberPattern);
newTx.commit();
return serialNumberString;
String serialNumberString = getSerialNumber(paramMap, serialNumberPattern);
newTx.commit();
return serialNumberString;
} catch (Exception e) {
if (newTx != null) newTx.rollback();
throw e;
}
}
//考虑并发情况必须采用同步机制
@SuppressWarnings("unchecked")

View File

@ -0,0 +1,29 @@
package com.tenwa.voucher.CreateVoucherProcess;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.are.jbo.JBOTransaction;
import com.amarsoft.awe.dw.handler.impl.CommonHandler;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
public class CarRatio extends CommonHandler {
String retainfield2;
public String getRetainfield2() {
return retainfield2;
}
public void setRetainfield2(String retainfield2) {
this.retainfield2 = retainfield2;
}
protected void initDisplayForEdit(BizObject bo) throws Exception {
bo.setAttributeValue("retainfield2", BigDecimal.valueOf(bo.getAttribute("retainfield2").getDouble()).multiply(BigDecimal.valueOf(100)).setScale(2).toString()+"%");
}
}

View File

@ -3,10 +3,8 @@ package com.tenwa.voucher.CreateVoucherProcess;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jbo.voucher.LV_VOUCHER_CONFIG;
import jbo.voucher.TAX_CODE;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.awe.util.Transaction;
@ -16,186 +14,195 @@ import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
public class CreateVoucherContractTerminate {
public String CreateVoucher(String FlowUnid,String VOUCHERNO,String userid) throws Exception {
public String CreateVoucher(Transaction Sqlca1,String FlowUnid,String VOUCHERNO,String userid) throws Exception {
Transaction Sqlca =null;
Map<String,String> map=new HashMap<String, String>();
Map<String,String> param=new HashMap<String, String>();
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
try {
Map<String,String> map=new HashMap<String, String>();
Map<String,String> param=new HashMap<String, String>();
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
// 定义SQL查询结果集变量
String MONEY=null;
String MONEYNOTAX=null;
String MONEYTAX=null;
String CORPUS=null;
String INTEREST=null;
String ACCOUNT_DATE=null;
String FACT_DATE=null;
String CONTRACT_ID=null;
String CONTRACT_NUMBER=null;
String PROJECT_NAME=null;
String leas_form=null;
String DISTRIBUTOR_ID=null;
String DISTRIBUTOR_NAME=null;
String CUSTID=null;
String CUSTNAME=null;
String CUSTID2=null;// 该网银已经收过款 预收科目的客户用这个
String CUSTNAME2=null;
String CUSTOMERTYPE=null;
String BUSINESSTYPE=null;
String TAX_NUM=null;
String YES_OR_NO=null;
// 定义SQL查询结果集变量
String MONEY=null;
String MONEYNOTAX=null;
String MONEYTAX=null;
String CORPUS=null;
String INTEREST=null;
String ACCOUNT_DATE=null;
String FACT_DATE=null;
String CONTRACT_ID=null;
String CONTRACT_NUMBER=null;
String PROJECT_NAME=null;
String leas_form=null;
String DISTRIBUTOR_ID=null;
String DISTRIBUTOR_NAME=null;
String CUSTID=null;
String CUSTNAME=null;
String CUSTID2=null;// 该网银已经收过款 预收科目的客户用这个
String CUSTNAME2=null;
String CUSTOMERTYPE=null;
String BUSINESSTYPE=null;
String TAX_NUM=null;
String YES_OR_NO=null;
// 金额类型
String date1="";
// 税率类别
String taxType="";
// 查询SQL
String sql="";
param.clear();
map.put("FlowUnid", FlowUnid);
// 金额类型
String date1="";
// 税率类别
String taxType="";
// 查询SQL
String sql="";
param.clear();
map.put("FlowUnid", FlowUnid);
// 收到的逾期利息
if("PZ2018081700000128".equals(VOUCHERNO)) {date1="IFNULL(LCRAT.AGREED_PENALTY,0)";taxType="逾期利息";}
// 收到的违约金
if("PZ2018081700000130".equals(VOUCHERNO)) {date1="IFNULL(LCRAT.SDHANDLING_CHARGE,0)";taxType="违约金";}
// 收到的提前还款手续费
if("PZ2018081700000132".equals(VOUCHERNO)) {date1="IFNULL(LCRAT.OTHER_IN,0)";taxType="手续费";}
// 收到的提前日息差
if("PZ2018072100000047".equals(VOUCHERNO)) {date1="IFNULL(LCRAT.AGREED_DATEPENALTY,0)";taxType="租息";}
// 收到的一年内利息
if("PZ2018081700000138".equals(VOUCHERNO)) {date1="IFNULL(LCRAT.FIST_CORPUS,0)";taxType="租息";}
// 收到名义货价
if("PZ2018081700000134".equals(VOUCHERNO)) {date1="IFNULL(LCRAT.SDNOMINAL_PRICE,0)";taxType="留购价";}
// 收到的逾期利息
if("PZ2018081700000128".equals(VOUCHERNO)) {date1="IFNULL(LCRAT.AGREED_PENALTY,0)";taxType="逾期利息";}
// 收到的违约金
if("PZ2018081700000130".equals(VOUCHERNO)) {date1="IFNULL(LCRAT.SDHANDLING_CHARGE,0)";taxType="违约金";}
// 收到的提前还款手续费
if("PZ2018081700000132".equals(VOUCHERNO)) {date1="IFNULL(LCRAT.OTHER_IN,0)";taxType="手续费";}
// 收到的提前日息差
if("PZ2018072100000047".equals(VOUCHERNO)) {date1="IFNULL(LCRAT.AGREED_DATEPENALTY,0)";taxType="租息";}
// 收到的一年内利息
if("PZ2018081700000138".equals(VOUCHERNO)) {date1="IFNULL(LCRAT.FIST_CORPUS,0)";taxType="租息";}
// 收到名义货价
if("PZ2018081700000134".equals(VOUCHERNO)) {date1="IFNULL(LCRAT.SDNOMINAL_PRICE,0)";taxType="留购价";}
if("PZ2018072100000046".equals(VOUCHERNO)) {date1="IFNULL(DI.DISCOUNT,0)";taxType="租息";}
// 确认手续费按月分摊
if("PZ2018081700000122".equals(VOUCHERNO)) {date1="IFNULL(LHA.HANDLING_APPORTION_MONEY,0)";taxType="手续费";}
if("PZ2018072100000046".equals(VOUCHERNO)) {date1="IFNULL(DI.DISCOUNT,0)";taxType="租息";}
// 确认手续费按月分摊
if("PZ2018081700000122".equals(VOUCHERNO)) {date1="IFNULL(LHA.HANDLING_APPORTION_MONEY,0)";taxType="手续费";}
// 调整未实现利息收入
if("PZ2018072100000045".equals(VOUCHERNO)){
sql="SELECT IFNULL(LRPT.INTEREST, 0) AS MONEY, ROUND( IFNULL(LRPT.INTEREST, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) AS MONEYNOTAX, ( IFNULL(LRPT.INTEREST, 0) - ROUND( IFNULL(LRPT.INTEREST, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) ) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP WHERE FLOWUNID=:FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER WHERE LRPT.FLOWUNID=:FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE LCRAT.FLOWUNID=:FLOWUNID AND DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') >= DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND IFNULL(LRPT.INTEREST, 0) > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
// 收到的逾期租金
}else if("PZ2018081700000127".equals(VOUCHERNO)) {
sql="SELECT IFNULL(LRPT.RENT, 0) - IFNULL(LRI.RENT, 0) AS MONEY, IFNULL(LRPT.CORPUS, 0) - IFNULL(LRI.CORPUS, 0) AS MONEYNOTAX, IFNULL(LRPT.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE, CASE WHEN (SELECT EBANK_NUMBER FROM LC_RENT_INCOME WHERE EBANK_NUMBER = IFNULL(LE.EBANK_NUMBER, 0) GROUP BY EBANK_NUMBER) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO, CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) WHEN (SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID2, CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) WHEN (SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME2 FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE, MAX(EBANK_NUMBER) AS EBANK_NUMBER, MAX(CUSTOMER_ID) AS CUSTOMER_ID FROM LC_EBANK_TEMP WHERE FLOWUNID = :FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER WHERE LRPT.FLOWUNID = :FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.FLOWUNID, LRPT.CONTRACT_ID, SUM(LRPT.RENT) RENT, SUM(LRPT.CORPUS) CORPUS, SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE LCRAT.FLOWUNID = :FLOWUNID AND DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') < DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID, SUM(LRI.RENT) RENT, SUM(LRI.CORPUS) CORPUS, SUM(LRI.INTEREST) INTEREST FROM LC_RENT_INCOME LRI GROUP BY LRI.CONTRACT_ID) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND ( IFNULL(LRPT.RENT, 0) - IFNULL(LRI.RENT, 0) ) > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
// 将当月利息转收入
}else if("PZ2018081700000129".equals(VOUCHERNO)) {
sql="SELECT ROUND( ( getTax ( lci.LEAS_FORM, '租息', LCCT.START_DATE ) - 1 ) * 100, 0 ) AS TAX_NUM, IFNULL(LRPT.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) AS MONEY, ROUND( IFNULL(LRPT.INTEREST, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) - ROUND( IFNULL(LRI.INTEREST, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) AS MONEYNOTAX, ( IFNULL(LRPT.INTEREST, 0) - ROUND( IFNULL(LRPT.INTEREST, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) ) - ( IFNULL(LRI.INTEREST, 0) - ROUND( IFNULL(LRI.INTEREST, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) ) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP WHERE FLOWUNID=:FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER WHERE LRPT.FLOWUNID=:FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, LRPT.PLAN_LIST, SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE LCRAT.FLOWUNID=:FLOWUNID AND DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m') = DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m') AND DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') < DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID, LRPT.PLAN_LIST) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID, LRI.PLAN_LIST, SUM(LRI.INTEREST) INTEREST FROM LC_RENT_INCOME LRI GROUP BY LRI.CONTRACT_ID, LRI.PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRPT.CONTRACT_ID AND LRI.PLAN_LIST = LRPT.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND ( IFNULL(LRPT.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) ) > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
// 收到的提前还款剩余本金
}else if("PZ2018081700000136".equals(VOUCHERNO)) {
sql="SELECT IFNULL(LCRAT.OTHER_OUT, 0) AS MONEY, ( IFNULL(LCRAT.CORPUS_OVERAGE, 0) - IFNULL(LCRAT.OTHER_OUT, 0) ) AS MONEYNOTAX, IFNULL(LCRAT.CORPUS_OVERAGE, 0) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE, CASE WHEN (SELECT EBANK_NUMBER FROM LC_RENT_INCOME WHERE EBANK_NUMBER = IFNULL(LE.EBANK_NUMBER, 0) GROUP BY EBANK_NUMBER) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO, CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) WHEN (SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID2, CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) WHEN (SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME2 FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE, MAX(EBANK_NUMBER) AS EBANK_NUMBER, MAX(CUSTOMER_ID) AS CUSTOMER_ID FROM LC_EBANK_TEMP WHERE FLOWUNID = :FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT WHERE LRPT.FLOWUNID = :FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRPT ON LRPT.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND IFNULL(LCRAT.CORPUS_OVERAGE, 0) > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
// 确认贴息收入
}else if("PZ2018072100000046".equals(VOUCHERNO)) {
sql="SELECT IFNULL(CRM.DISCOUNT, 0) AS MONEY, ROUND( IFNULL(CRM.DISCOUNT, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) AS MONEYNOTAX, ( IFNULL(CRM.DISCOUNT, 0) - ROUND( IFNULL(CRM.DISCOUNT, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) ) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP WHERE FLOWUNID=:FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT MAX(LRPT.FLOWUNID) FLOWUNID, CRM.CONTRACT_ID, SUM(IFNULL(CRM.DISCOUNT, 0)) AS DISCOUNT FROM CONTRACT_RENT_MONTH CRM LEFT JOIN (SELECT LRPT.FLOWUNID, LRPT.CONTRACT_ID, MAX(LCRAT.PAYDAY_ADJUST) PAYDAY_ADJUST FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.FLOWUNID = LRPT.FLOWUNID AND LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE LRPT.FLOWUNID=:FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = CRM.CONTRACT_ID WHERE DATE_FORMAT(CRM.END_DATE, '%Y%m') >= DATE_FORMAT(LRPT.PAYDAY_ADJUST, '%Y%m') GROUP BY CRM.CONTRACT_ID) CRM ON CRM.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = CRM.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND IFNULL(CRM.DISCOUNT, 0) > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
// 确认手续费
}else if("PZ2018081700000122".equals(VOUCHERNO)) {
sql="SELECT IFNULL(CRM.FEE, 0) AS MONEY, ROUND( IFNULL(CRM.FEE, 0) / getTax ( LCI.LEAS_FORM, '手续费', LCCT.START_DATE ), 2 ) AS MONEYNOTAX, ( IFNULL(CRM.FEE, 0) - ROUND( IFNULL(CRM.FEE, 0) / getTax ( LCI.LEAS_FORM, '手续费', LCCT.START_DATE ), 2 ) ) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP WHERE FLOWUNID=:FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT MAX(LRPT.FLOWUNID) FLOWUNID, CRM.CONTRACT_ID, SUM(IFNULL(CRM.FEE, 0)) AS FEE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN (SELECT LRPT.FLOWUNID, LRPT.CONTRACT_ID, MAX(LCRAT.PAYDAY_ADJUST) PAYDAY_ADJUST FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.FLOWUNID = LRPT.FLOWUNID AND LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE LRPT.FLOWUNID=:FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = CRM.CONTRACT_ID WHERE DATE_FORMAT(CRM.END_DATE, '%Y%m') >= DATE_FORMAT(LRPT.PAYDAY_ADJUST, '%Y%m') GROUP BY CRM.CONTRACT_ID) CRM ON CRM.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = CRM.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND LCCT.HANDLING_CHARGE_MONEY_TYPE = '0020' AND IFNULL(CRM.FEE, 0) > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
}else {
sql="SELECT ROUND( ( getTax ( lci.LEAS_FORM, '"+taxType+"', LCCT.START_DATE ) - 1 ) * 100, 0 ) AS TAX_NUM, "+date1+" AS MONEY, ROUND( "+date1+" / getTax ( LCI.LEAS_FORM, '"+taxType+"', LCCT.START_DATE ), 2 ) AS MONEYNOTAX, ( "+date1+" - ROUND( "+date1+" / getTax ( LCI.LEAS_FORM, '"+taxType+"', LCCT.START_DATE ), 2 ) ) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE, CASE WHEN (SELECT EBANK_NUMBER FROM LC_RENT_INCOME WHERE EBANK_NUMBER = IFNULL(LE.EBANK_NUMBER, 0) GROUP BY EBANK_NUMBER) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO, CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) WHEN (SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID2, CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) WHEN (SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME2 FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE, MAX(EBANK_NUMBER) AS EBANK_NUMBER, MAX(CUSTOMER_ID) AS CUSTOMER_ID FROM LC_EBANK_TEMP WHERE FLOWUNID = :FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT WHERE LRPT.FLOWUNID = :FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRPT ON LRPT.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND "+date1+" > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
// 调整未实现利息收入
if("PZ2018072100000045".equals(VOUCHERNO)){
sql="SELECT IFNULL(LRPT.INTEREST, 0) AS MONEY, ROUND( IFNULL(LRPT.INTEREST, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) AS MONEYNOTAX, ( IFNULL(LRPT.INTEREST, 0) - ROUND( IFNULL(LRPT.INTEREST, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) ) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP WHERE FLOWUNID=:FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER WHERE LRPT.FLOWUNID=:FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE LCRAT.FLOWUNID=:FLOWUNID AND DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') >= DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND IFNULL(LRPT.INTEREST, 0) > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
// 收到的逾期租金
}else if("PZ2018081700000127".equals(VOUCHERNO)) {
sql="SELECT IFNULL(LRPT.RENT, 0) - IFNULL(LRI.RENT, 0) AS MONEY, IFNULL(LRPT.CORPUS, 0) - IFNULL(LRI.CORPUS, 0) AS MONEYNOTAX, IFNULL(LRPT.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE, CASE WHEN (SELECT EBANK_NUMBER FROM LC_RENT_INCOME WHERE EBANK_NUMBER = IFNULL(LE.EBANK_NUMBER, 0) GROUP BY EBANK_NUMBER) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO, CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) WHEN (SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID2, CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) WHEN (SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME2 FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE, MAX(EBANK_NUMBER) AS EBANK_NUMBER, MAX(CUSTOMER_ID) AS CUSTOMER_ID FROM LC_EBANK_TEMP WHERE FLOWUNID = :FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER WHERE LRPT.FLOWUNID = :FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.FLOWUNID, LRPT.CONTRACT_ID, SUM(LRPT.RENT) RENT, SUM(LRPT.CORPUS) CORPUS, SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE LCRAT.FLOWUNID = :FLOWUNID AND DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') < DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID, SUM(LRI.RENT) RENT, SUM(LRI.CORPUS) CORPUS, SUM(LRI.INTEREST) INTEREST FROM LC_RENT_INCOME LRI GROUP BY LRI.CONTRACT_ID) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND ( IFNULL(LRPT.RENT, 0) - IFNULL(LRI.RENT, 0) ) > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
// 将当月利息转收入
}else if("PZ2018081700000129".equals(VOUCHERNO)) {
sql="SELECT ROUND( ( getTax ( lci.LEAS_FORM, '租息', LCCT.START_DATE ) - 1 ) * 100, 0 ) AS TAX_NUM, IFNULL(LRPT.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) AS MONEY, ROUND( IFNULL(LRPT.INTEREST, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) - ROUND( IFNULL(LRI.INTEREST, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) AS MONEYNOTAX, ( IFNULL(LRPT.INTEREST, 0) - ROUND( IFNULL(LRPT.INTEREST, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) ) - ( IFNULL(LRI.INTEREST, 0) - ROUND( IFNULL(LRI.INTEREST, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) ) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP WHERE FLOWUNID=:FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER WHERE LRPT.FLOWUNID=:FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, LRPT.PLAN_LIST, SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE LCRAT.FLOWUNID=:FLOWUNID AND DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m') = DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m') AND DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') < DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID, LRPT.PLAN_LIST) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID, LRI.PLAN_LIST, SUM(LRI.INTEREST) INTEREST FROM LC_RENT_INCOME LRI GROUP BY LRI.CONTRACT_ID, LRI.PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRPT.CONTRACT_ID AND LRI.PLAN_LIST = LRPT.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND ( IFNULL(LRPT.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) ) > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
// 收到的提前还款剩余本金
}else if("PZ2018081700000136".equals(VOUCHERNO)) {
sql="SELECT IFNULL(LCRAT.OTHER_OUT, 0) AS MONEY, ( IFNULL(LCRAT.CORPUS_OVERAGE, 0) - IFNULL(LCRAT.OTHER_OUT, 0) ) AS MONEYNOTAX, IFNULL(LCRAT.CORPUS_OVERAGE, 0) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE, CASE WHEN (SELECT EBANK_NUMBER FROM LC_RENT_INCOME WHERE EBANK_NUMBER = IFNULL(LE.EBANK_NUMBER, 0) GROUP BY EBANK_NUMBER) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO, CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) WHEN (SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID2, CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) WHEN (SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME2 FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE, MAX(EBANK_NUMBER) AS EBANK_NUMBER, MAX(CUSTOMER_ID) AS CUSTOMER_ID FROM LC_EBANK_TEMP WHERE FLOWUNID = :FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT WHERE LRPT.FLOWUNID = :FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRPT ON LRPT.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND IFNULL(LCRAT.CORPUS_OVERAGE, 0) > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
// 确认贴息收入
}else if("PZ2018072100000046".equals(VOUCHERNO)) {
sql="SELECT IFNULL(CRM.DISCOUNT, 0) AS MONEY, ROUND( IFNULL(CRM.DISCOUNT, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) AS MONEYNOTAX, ( IFNULL(CRM.DISCOUNT, 0) - ROUND( IFNULL(CRM.DISCOUNT, 0) / getTax ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) ) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP WHERE FLOWUNID=:FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT MAX(LRPT.FLOWUNID) FLOWUNID, CRM.CONTRACT_ID, SUM(IFNULL(CRM.DISCOUNT, 0)) AS DISCOUNT FROM CONTRACT_RENT_MONTH CRM LEFT JOIN (SELECT LRPT.FLOWUNID, LRPT.CONTRACT_ID, MAX(LCRAT.PAYDAY_ADJUST) PAYDAY_ADJUST FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.FLOWUNID = LRPT.FLOWUNID AND LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE LRPT.FLOWUNID=:FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = CRM.CONTRACT_ID WHERE DATE_FORMAT(CRM.END_DATE, '%Y%m') >= DATE_FORMAT(LRPT.PAYDAY_ADJUST, '%Y%m') GROUP BY CRM.CONTRACT_ID) CRM ON CRM.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = CRM.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND IFNULL(CRM.DISCOUNT, 0) > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
// 确认手续费
}else if("PZ2018081700000122".equals(VOUCHERNO)) {
sql="SELECT IFNULL(CRM.FEE, 0) AS MONEY, ROUND( IFNULL(CRM.FEE, 0) / getTax ( LCI.LEAS_FORM, '手续费', LCCT.START_DATE ), 2 ) AS MONEYNOTAX, ( IFNULL(CRM.FEE, 0) - ROUND( IFNULL(CRM.FEE, 0) / getTax ( LCI.LEAS_FORM, '手续费', LCCT.START_DATE ), 2 ) ) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP WHERE FLOWUNID=:FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT MAX(LRPT.FLOWUNID) FLOWUNID, CRM.CONTRACT_ID, SUM(IFNULL(CRM.FEE, 0)) AS FEE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN (SELECT LRPT.FLOWUNID, LRPT.CONTRACT_ID, MAX(LCRAT.PAYDAY_ADJUST) PAYDAY_ADJUST FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.FLOWUNID = LRPT.FLOWUNID AND LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE LRPT.FLOWUNID=:FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = CRM.CONTRACT_ID WHERE DATE_FORMAT(CRM.END_DATE, '%Y%m') >= DATE_FORMAT(LRPT.PAYDAY_ADJUST, '%Y%m') GROUP BY CRM.CONTRACT_ID) CRM ON CRM.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = CRM.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND LCCT.HANDLING_CHARGE_MONEY_TYPE = '0020' AND IFNULL(CRM.FEE, 0) > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
}else {
sql="SELECT ROUND( ( getTax ( lci.LEAS_FORM, '"+taxType+"', LCCT.START_DATE ) - 1 ) * 100, 0 ) AS TAX_NUM, "+date1+" AS MONEY, ROUND( "+date1+" / getTax ( LCI.LEAS_FORM, '"+taxType+"', LCCT.START_DATE ), 2 ) AS MONEYNOTAX, ( "+date1+" - ROUND( "+date1+" / getTax ( LCI.LEAS_FORM, '"+taxType+"', LCCT.START_DATE ), 2 ) ) AS MONEYTAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(LE.FACT_DATE, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE, CASE WHEN (SELECT EBANK_NUMBER FROM LC_RENT_INCOME WHERE EBANK_NUMBER = IFNULL(LE.EBANK_NUMBER, 0) GROUP BY EBANK_NUMBER) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO, CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) WHEN (SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID2, CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) WHEN (SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO = LE.CUSTOMER_ID) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME2 FROM LC_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID, MAX(FACT_DATE) AS FACT_DATE, MAX(EBANK_NUMBER) AS EBANK_NUMBER, MAX(CUSTOMER_ID) AS CUSTOMER_ID FROM LC_EBANK_TEMP WHERE FLOWUNID = :FLOWUNID GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID, LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT WHERE LRPT.FLOWUNID = :FLOWUNID GROUP BY LRPT.FLOWUNID, LRPT.CONTRACT_ID) LRPT ON LRPT.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND "+date1+" > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
}
// 执行SQL, 获取结果集
List<Map<String,String>> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, map);
CreateVoucherServiceImpl vs=new CreateVoucherServiceImpl();
String VOUCHER_TYPE="1";// 凭证分类 金蝶
for (int i=0;i<dataList.size();i++){
MONEY=dataList.get(i).get("MONEY");
MONEYNOTAX=dataList.get(i).get("MONEYNOTAX").toString();
MONEYTAX=dataList.get(i).get("MONEYTAX").toString();
if("PZ2018081700000127".equals(VOUCHERNO)) {
CORPUS=dataList.get(i).get("CORPUS");
INTEREST=dataList.get(i).get("INTEREST");
}
ACCOUNT_DATE=dataList.get(i).get("ACCOUNT_DATE");
FACT_DATE =dataList.get(i).get("FACT_DATE");
CONTRACT_ID=dataList.get(i).get("CONTRACT_ID");
CONTRACT_NUMBER=dataList.get(i).get("CONTRACT_NUMBER");
PROJECT_NAME=dataList.get(i).get("PROJECT_NAME");
leas_form=dataList.get(i).get("LEAS_FORM");
DISTRIBUTOR_ID=dataList.get(i).get("DISTRIBUTOR_ID");
DISTRIBUTOR_NAME=dataList.get(i).get("DISTRIBUTOR_NAME");
CUSTID=dataList.get(i).get("CUSTOMERID");
CUSTNAME=dataList.get(i).get("CUSTOMERNAME");
CUSTID2=dataList.get(i).get("CUSTOMERID2");
CUSTNAME2=dataList.get(i).get("CUSTOMERNAME2");
CUSTOMERTYPE=dataList.get(i).get("CUSTOMERTYPE");
BUSINESSTYPE=dataList.get(i).get("BUSINESSTYPE");
TAX_NUM=dataList.get(i).get("TAX_NUM");
YES_OR_NO=dataList.get(i).get("YES_OR_NO");
// 通过税率获取编码
BizObject TAX_CODES=null;
if(TAX_NUM!=null && !"".equals(TAX_NUM)) {
TAX_CODES=JBOFactory.createBizObjectQuery(TAX_CODE.CLASS_NAME,"TAX_NUMBER='"+TAX_NUM+"'").getSingleResult(false);
}
param.put("FACT_MONEY",MONEY);
param.put("INTERESTNOTAX",MONEYNOTAX);
param.put("TAX",MONEYTAX);
if("PZ2018081700000127".equals(VOUCHERNO)) {
param.put("CORPUS",CORPUS);
param.put("INTEREST",INTEREST);
}
param.put("ACCOUNT_DATE",ACCOUNT_DATE);
param.put("FACT_DATE",FACT_DATE);
param.put("CONTRACT_ID",CONTRACT_ID);
param.put("CONTRACT_NUMBER",CONTRACT_NUMBER);
param.put("PROJECT_NAME",PROJECT_NAME);
param.put("LEAS_FORM",leas_form);
param.put("DISTRIBUTOR_ID",DISTRIBUTOR_ID);
param.put("DISTRIBUTOR_NAME",DISTRIBUTOR_NAME);
param.put("CUSTID",CUSTID);
param.put("CUSTNAME",CUSTNAME);
param.put("YES_OR_NO",YES_OR_NO);
param.put("CUSTID2",CUSTID2);
param.put("CUSTNAME2",CUSTNAME2);
param.put("CUSTOMERTYPE",CUSTOMERTYPE);
param.put("BUSINESSTYPE",BUSINESSTYPE);
param.put("VOUCHERNO",VOUCHERNO);
if(TAX_CODES!=null) {
param.put("TAX_CODE",TAX_CODES.getAttribute("TAX_CODES").getString());
}
if("1".equals(BUSINESSTYPE)){
// 收到的逾期利息
if("PZ2018081700000128".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0603");// 主营类型
}
// 收到的违约金
if("PZ2018081700000130".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0602");// 主营类型
}
// 收到的提前还款手续费 || 收到的提前日息差 || 收到的一年内利息
if("PZ2018081700000132".equals(VOUCHERNO) || "PZ2018072100000047".equals(VOUCHERNO) || "PZ2018081700000138".equals(VOUCHERNO) || "PZ2018072100000046".equals(VOUCHERNO) || "PZ2018081700000122".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0604");// 主营类型
}
// 收到名义货价
if("PZ2018081700000134".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0605");// 主营类型
}
// 将当月利息转收入
if("PZ2018081700000129".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0604");// 主营类型
}
param.put("CASHFLOW", "");// 现金流项目
}
param.put("FlowUnid", FlowUnid);
map.clear();
map.put("PROJ_TYPE", leas_form);
map.put("VOUCHER_NO", VOUCHERNO);
BizObject vouch=DataOperatorUtil.getSingleJBO(LV_VOUCHER_CONFIG.CLASS_NAME, map, Sqlca);
if(vouch!=null){
vs.createVoucher(vouch.getAttribute("id").getString(),vouch.getAttribute("MODULAR_NUMBER").getString(), vouch.getAttribute("OWNED_COMPANY").getString(), leas_form, VOUCHER_TYPE, userid,param, Sqlca1);
}
}
if(Sqlca!=null){
Sqlca.commit();
}
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
throw new Exception("凭证生成出错!");
}finally {
if(Sqlca!=null){
Sqlca.commit();
Sqlca.disConnect();
}
}
// 执行SQL, 获取结果集
List<Map<String,String>> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, map);
CreateVoucherServiceImpl vs=new CreateVoucherServiceImpl();
String VOUCHER_TYPE="1";// 凭证分类 金蝶
for (int i=0;i<dataList.size();i++){
MONEY=dataList.get(i).get("MONEY");
MONEYNOTAX=dataList.get(i).get("MONEYNOTAX").toString();
MONEYTAX=dataList.get(i).get("MONEYTAX").toString();
if("PZ2018081700000127".equals(VOUCHERNO)) {
CORPUS=dataList.get(i).get("CORPUS");
INTEREST=dataList.get(i).get("INTEREST");
}
ACCOUNT_DATE=dataList.get(i).get("ACCOUNT_DATE");
FACT_DATE =dataList.get(i).get("FACT_DATE");
CONTRACT_ID=dataList.get(i).get("CONTRACT_ID");
CONTRACT_NUMBER=dataList.get(i).get("CONTRACT_NUMBER");
PROJECT_NAME=dataList.get(i).get("PROJECT_NAME");
leas_form=dataList.get(i).get("LEAS_FORM");
DISTRIBUTOR_ID=dataList.get(i).get("DISTRIBUTOR_ID");
DISTRIBUTOR_NAME=dataList.get(i).get("DISTRIBUTOR_NAME");
CUSTID=dataList.get(i).get("CUSTOMERID");
CUSTNAME=dataList.get(i).get("CUSTOMERNAME");
CUSTID2=dataList.get(i).get("CUSTOMERID2");
CUSTNAME2=dataList.get(i).get("CUSTOMERNAME2");
CUSTOMERTYPE=dataList.get(i).get("CUSTOMERTYPE");
BUSINESSTYPE=dataList.get(i).get("BUSINESSTYPE");
TAX_NUM=dataList.get(i).get("TAX_NUM");
YES_OR_NO=dataList.get(i).get("YES_OR_NO");
// 通过税率获取编码
BizObject TAX_CODES=null;
if(TAX_NUM!=null && !"".equals(TAX_NUM)) {
TAX_CODES=JBOFactory.createBizObjectQuery(TAX_CODE.CLASS_NAME,"TAX_NUMBER='"+TAX_NUM+"'").getSingleResult(false);
}
param.put("FACT_MONEY",MONEY);
param.put("INTERESTNOTAX",MONEYNOTAX);
param.put("TAX",MONEYTAX);
if("PZ2018081700000127".equals(VOUCHERNO)) {
param.put("CORPUS",CORPUS);
param.put("INTEREST",INTEREST);
}
param.put("ACCOUNT_DATE",ACCOUNT_DATE);
param.put("FACT_DATE",FACT_DATE);
param.put("CONTRACT_ID",CONTRACT_ID);
param.put("CONTRACT_NUMBER",CONTRACT_NUMBER);
param.put("PROJECT_NAME",PROJECT_NAME);
param.put("LEAS_FORM",leas_form);
param.put("DISTRIBUTOR_ID",DISTRIBUTOR_ID);
param.put("DISTRIBUTOR_NAME",DISTRIBUTOR_NAME);
param.put("CUSTID",CUSTID);
param.put("CUSTNAME",CUSTNAME);
param.put("YES_OR_NO",YES_OR_NO);
param.put("CUSTID2",CUSTID2);
param.put("CUSTNAME2",CUSTNAME2);
param.put("CUSTOMERTYPE",CUSTOMERTYPE);
param.put("BUSINESSTYPE",BUSINESSTYPE);
param.put("VOUCHERNO",VOUCHERNO);
if(TAX_CODES!=null) {
param.put("TAX_CODE",TAX_CODES.getAttribute("TAX_CODES").getString());
}
if("1".equals(BUSINESSTYPE)){
// 收到的逾期利息
if("PZ2018081700000128".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0603");// 主营类型
}
// 收到的违约金
if("PZ2018081700000130".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0602");// 主营类型
}
// 收到的提前还款手续费 || 收到的提前日息差 || 收到的一年内利息
if("PZ2018081700000132".equals(VOUCHERNO) || "PZ2018072100000047".equals(VOUCHERNO) || "PZ2018081700000138".equals(VOUCHERNO) || "PZ2018072100000046".equals(VOUCHERNO) || "PZ2018081700000122".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0604");// 主营类型
}
// 收到名义货价
if("PZ2018081700000134".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0605");// 主营类型
}
// 将当月利息转收入
if("PZ2018081700000129".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0604");// 主营类型
}
param.put("CASHFLOW", "");// 现金流项目
}
param.put("FlowUnid", FlowUnid);
map.clear();
map.put("PROJ_TYPE", leas_form);
map.put("VOUCHER_NO", VOUCHERNO);
BizObject vouch=DataOperatorUtil.getSingleJBO(LV_VOUCHER_CONFIG.CLASS_NAME, map, Sqlca);
if(vouch!=null){
vs.createVoucher(vouch.getAttribute("id").getString(),vouch.getAttribute("MODULAR_NUMBER").getString(), vouch.getAttribute("OWNED_COMPANY").getString(), leas_form, VOUCHER_TYPE, userid,param, Sqlca);
}
}
if(Sqlca!=null){
Sqlca.commit();
}
String sMessage="true";
return sMessage;
}

View File

@ -3,14 +3,11 @@ package com.tenwa.voucher.CreateVoucherProcess;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jbo.voucher.LV_VOUCHER_CONFIG;
import jbo.voucher.TAX_CODE;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.flow.baseBussion.BaseBussiness;
import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
@ -20,12 +17,10 @@ import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
*/
public class CreateVoucherCustCautionMoneyIncome extends BaseBussiness {
public String CreateVoucher(String FlowUnid, String VOUCHERNO, String FeeType,String userid) throws Exception {
public String CreateVoucher(Transaction Sqlca, String FlowUnid, String VOUCHERNO, String FeeType,String userid) throws Exception {
Transaction Sqlca = null;
Map<String, String> map = new HashMap<String, String>();
Map<String, String> param = new HashMap<String, String>();
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
String MONEY = null;
String MONEYNOTAX = null;
@ -140,10 +135,6 @@ public class CreateVoucherCustCautionMoneyIncome extends BaseBussiness {
}
}
if (Sqlca != null) {
Sqlca.commit();
}
String sMessage = "true";
return sMessage;
}

View File

@ -17,12 +17,10 @@ import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
public class CreateVoucherDepositDeductionToMoney extends BaseBussiness {
public String CreateVoucher(String FlowUnid, String VOUCHERNO,String userid) throws Exception {
public String CreateVoucher(Transaction Sqlca,String FlowUnid, String VOUCHERNO,String userid) throws Exception {
Transaction Sqlca = null;
Map<String, String> map = new HashMap<String, String>();
Map<String, String> param = new HashMap<String, String>();
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
CreateVoucherServiceImpl vs = new CreateVoucherServiceImpl();
String VOUCHER_TYPE = "1";
@ -134,10 +132,6 @@ public class CreateVoucherDepositDeductionToMoney extends BaseBussiness {
}
}
if (Sqlca != null) {
Sqlca.commit();
}
String sMessage = "true";
return sMessage;
}

View File

@ -3,31 +3,24 @@ package com.tenwa.voucher.CreateVoucherProcess;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jbo.app.tenwa.customer.CUSTOMER_LIST;
import jbo.voucher.LV_VOUCHER_CONFIG;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.flow.baseBussion.BaseBussiness;
import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
/***
* 经销商的保证金的收取和退回
* @author amarsoft
*
*/
public class CreateVoucherDistCautionMoneyRe extends BaseBussiness{
public String CreateVoucher(String FlowUnid,String VOUCHERNO,String userid) throws Exception {
public String CreateVoucher(Transaction Sqlca,String FlowUnid,String VOUCHERNO,String userid) throws Exception {
Transaction Sqlca =null;
//this.initBussinessParam(Sqlca);
Map<String,String> map=new HashMap<String, String>();
Map<String,String> param=new HashMap<String, String>();
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
String MONEY=null;
String ACCOUNT_DATE=null;
String FACT_DATE=null;
@ -41,11 +34,7 @@ public String CreateVoucher(String FlowUnid,String VOUCHERNO,String userid) thro
String sql="";
param.clear();
map.put("FLOWUNID", FlowUnid);
/*if("PZ2018071100000011".equals(VOUCHERNO)||"PZ2018081500000118".equals(VOUCHERNO)){
sql= "SELECT DDIT.CAUTION_MONEY,DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE,DDIT.LOCAL_ACCOUNT AS ACC_NUMBER,DDIT.REFUND_PERSON,DIF.DISTRIBUTOR_CODING DISTRIBUTOR_NO,DIF.DISTRIBUTOR_NAME FROM D_DEPOSITRETURN_INFO_TEMP DDIT LEFT JOIN DISTRIBUTOR_INFO DIF ON DIF.DISTRIBUTOR_NO=DDIT.DISTRIBUTOR_ID WHERE DDIT.FLOWUNID=:FLOWUNID";
}*/
if("PZ2018072100000032".equals(VOUCHERNO)){
//sql= "SELECT DDIT.CAUTION_MONEY,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(DDIT.COLLECT_TIME, '%Y/%m/%d') AS FACT_DATE,DDIT.payer,DIF.DISTRIBUTOR_CODING DISTRIBUTOR_NO,DIF.DISTRIBUTOR_NAME,DDIT.LOCAL_ACCOUNT AS ACC_NUMBER, DDIT.LOCAL_BANK FROM D_DEPOSITCHARGE_INFO_TEMP DDIT LEFT JOIN DISTRIBUTOR_INFO DIF ON DIF.DISTRIBUTOR_NO = DDIT.DISTRIBUTOR_ID WHERE DDIT.FLOWUNID = :FLOWUNID ";
sql="SELECT DDIT.CAUTION_MONEY,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(DDIT.COLLECT_TIME, '%Y/%m/%d') AS FACT_DATE,DDIT.payer,DIF.DISTRIBUTOR_CODING DISTRIBUTOR_NO,DIF.DISTRIBUTOR_NAME,DDIT.LOCAL_ACCOUNT AS ACC_NUMBER,DDIT.LOCAL_BANK,DDIT.SUBJECTID,DDIT.SUBJECTNAME FROM D_DEPOSITCHARGE_INFO_TEMP DDIT LEFT JOIN DISTRIBUTOR_INFO DIF ON DIF.DISTRIBUTOR_NO = DDIT.DISTRIBUTOR_ID WHERE DDIT.FLOWUNID = :FLOWUNID ";
}
List<Map<String,String>> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, map);
@ -100,9 +89,6 @@ public String CreateVoucher(String FlowUnid,String VOUCHERNO,String userid) thro
vs.createVoucher(vouch.getAttribute("id").getString(),vouch.getAttribute("MODULAR_NUMBER").getString(), vouch.getAttribute("OWNED_COMPANY").getString(), leas_form, VOUCHER_TYPE, userid,param, Sqlca);
}}
}
if(Sqlca!=null){
Sqlca.commit();
}
String sMessage="true";
return sMessage;
}

View File

@ -6,17 +6,14 @@ import java.util.Map;
import jbo.voucher.LV_VOUCHER_CONFIG;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
public class CreateVoucherForOtherPay {
public String CreateVoucher(String FlowUnid,String VOUCHERNO,String userid) throws Exception {
Transaction Sqlca =null;
public String CreateVoucher(Transaction Sqlca,String FlowUnid,String VOUCHERNO,String userid) throws Exception {
Map<String,String> map=new HashMap<String, String>();
Map<String,String> param=new HashMap<String, String>();
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
String MONEY=null;
String MONEYNOTAX=null;
String MONEYTAX=null;
@ -87,11 +84,6 @@ public class CreateVoucherForOtherPay {
}
}
}
if(Sqlca!=null){
Sqlca.commit();
}
String sMessage="true";
return sMessage;
}

View File

@ -17,13 +17,11 @@ import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
public class CreateVoucherLoanDistributor {
public String CreateVoucher(String FlowUnid,String VOUCHERNO,String userid) throws Exception {
public String CreateVoucher(Transaction Sqlca,String FlowUnid,String VOUCHERNO,String userid) throws Exception {
Transaction Sqlca =null;
Map<String,String> map=new HashMap<String, String>();
Map<String,String> param=new HashMap<String, String>();
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
String MONEY=null;
String MONEYNOTAX=null;
String MONEYTAX=null;
@ -492,10 +490,6 @@ public class CreateVoucherLoanDistributor {
}
}
if(Sqlca!=null){
Sqlca.commit();
}
String sMessage="true";
return sMessage;
}

View File

@ -5,7 +5,6 @@ import com.tenwa.flow.baseBussion.BaseBussiness;
import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherLoanDistributor;
/**
* 起租相关凭证, 实际付款(汽车)流程结束后生成
* @author xiezhiwen
*/
public class ContractOnhireVoucher extends BaseBussiness {
@ -18,34 +17,34 @@ public class ContractOnhireVoucher extends BaseBussiness {
/**
* 回租
*/
cvld.CreateVoucher(FlowUnid, "PZ2018073100000061",userid);// 确认GPS收入 --回租
cvld.CreateVoucher(FlowUnid, "PZ2018070900000003",userid);// 收取首付款-回租
cvld.CreateVoucher(FlowUnid, "PZ2018070900000002",userid);// 购置融资租赁资产-回租
cvld.CreateVoucher(FlowUnid, "PZ2018073100000062",userid);// 购置融资租赁资产---第一车贷
cvld.CreateVoucher(FlowUnid, "PZ2018071000000005",userid);// 合同起租一次性确认收入-回租
cvld.CreateVoucher(FlowUnid, "PZ2018071000000006",userid);// 合同起租按月分摊收入--回租
cvld.CreateVoucher(FlowUnid, "PZ2018071000000004",userid);// 收取客户保证金--回租
cvld.CreateVoucher(FlowUnid, "PZ2018071000000007",userid);// 收取客户手续费一次性确认收入--回租
cvld.CreateVoucher(FlowUnid, "PZ2018071000000009",userid);// 收取客户手续费按月分摊收入--回租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2018073100000061",userid);// 确认GPS收入 --回租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2018070900000003",userid);// 收取首付款-回租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2018070900000002",userid);// 购置融资租赁资产-回租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2018073100000062",userid);// 购置融资租赁资产---第一车贷
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2018071000000005",userid);// 合同起租一次性确认收入-回租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2018071000000006",userid);// 合同起租按月分摊收入--回租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2018071000000004",userid);// 收取客户保证金--回租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2018071000000007",userid);// 收取客户手续费一次性确认收入--回租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2018071000000009",userid);// 收取客户手续费按月分摊收入--回租
cvld.CreateVoucher(FlowUnid, "PZ2021032400000003",userid);// 起租-收到个人意外险金额--回租
cvld.CreateVoucher(FlowUnid, "PZ2021032400000004",userid);// 起租-收到贴息--回租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2021032400000003",userid);// 起租-收到个人意外险金额--回租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2021032400000004",userid);// 起租-收到贴息--回租
/**
* 直租
*/
cvld.CreateVoucher(FlowUnid, "PZ2019070100000001",userid);// 确认GPS收入 --直租
cvld.CreateVoucher(FlowUnid, "PZ2019070100000002",userid);// 收取首付款-直租
cvld.CreateVoucher(FlowUnid, "PZ2020080500000001",userid);// 收取客户保证金-直租
cvld.CreateVoucher(FlowUnid, "PZ2019082600000002",userid);// 购入保险-直租
cvld.CreateVoucher(FlowUnid, "PZ2019082600000003",userid);// 购入购置税-直租
cvld.CreateVoucher(FlowUnid, "PZ2020041000000002",userid);// 加装及杂费-直租
cvld.CreateVoucher(FlowUnid, "PZ2019070100000003",userid);// 购置融资租赁资产-直租深圳或者天津公司
cvld.CreateVoucher(FlowUnid, "PZ2020081100000004",userid);// 购置融资租赁资产-直租分子公司
cvld.CreateVoucher(FlowUnid, "PZ2019070100000004",userid);// 合同起租-直租(车牌挂在天津或者深圳公司下
cvld.CreateVoucher(FlowUnid, "PZ2020081100000005",userid);// 合同起租-直租车牌挂在分子公司下
cvld.CreateVoucher(FlowUnid, "PZ2019070100000005",userid);// 收取客户手续费一次性确认收入--直租
cvld.CreateVoucher(FlowUnid, "PZ2019070100000006",userid);// 收取客户手续费按月分摊收入--直租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000001",userid);// 确认GPS收入 --直租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000002",userid);// 收取首付款-直租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2020080500000001",userid);// 收取客户保证金-直租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2019082600000002",userid);// 购入保险-直租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2019082600000003",userid);// 购入购置税-直租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2020041000000002",userid);// 加装及杂费-直租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000003",userid);// 购置融资租赁资产-直租深圳或者天津公司
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2020081100000004",userid);// 购置融资租赁资产-直租分子公司
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000004",userid);// 合同起租-直租(车牌挂在天津或者深圳公司下
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2020081100000005",userid);// 合同起租-直租车牌挂在分子公司下
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000005",userid);// 收取客户手续费一次性确认收入--直租
cvld.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000006",userid);// 收取客户手续费按月分摊收入--直租
return "true";
}
}

View File

@ -17,18 +17,18 @@ public class ContractTerminate extends BaseBussiness {
String userid = this.getAttribute("CurUserID").toString();
CreateVoucherContractTerminate cvct=new CreateVoucherContractTerminate();
cvct.CreateVoucher(FlowUnid, "PZ2018072100000045",userid);// 提前还款-调整未实现利息收入--回租
cvct.CreateVoucher(FlowUnid, "PZ2018081700000127",userid);// 提前还款-收到的逾期租金--回租
cvct.CreateVoucher(FlowUnid, "PZ2018081700000129",userid);// 提前还款-将当月利息转收入-- 回租
cvct.CreateVoucher(FlowUnid, "PZ2018081700000128",userid);// 提前还款-收到的逾期利息--回租
cvct.CreateVoucher(FlowUnid, "PZ2018081700000130",userid);// 提前还款-收到的违约金--回租
cvct.CreateVoucher(FlowUnid, "PZ2018081700000132",userid);// 提前还款-收到的提前还款手续费--回租
cvct.CreateVoucher(FlowUnid, "PZ2018072100000047",userid);// 提前还款-收到的提前日息差--回租
cvct.CreateVoucher(FlowUnid, "PZ2018081700000138",userid);// 提前还款-收到的一年内利息--回租
cvct.CreateVoucher(FlowUnid, "PZ2018081700000134",userid);// 提前还款-收到名义货价--回租
cvct.CreateVoucher(FlowUnid, "PZ2018081700000136",userid);// 提前还款-收到的提前还款剩余本金----银行未带
cvct.CreateVoucher(FlowUnid, "PZ2018072100000046",userid);// 提前还款-确认贴息收入--回租
cvct.CreateVoucher(FlowUnid, "PZ2018081700000122",userid);// 提前还款-确认手续费按月分摊--回租
cvct.CreateVoucher(Sqlca,FlowUnid, "PZ2018072100000045",userid);// 提前还款-调整未实现利息收入--回租
cvct.CreateVoucher(Sqlca,FlowUnid, "PZ2018081700000127",userid);// 提前还款-收到的逾期租金--回租
cvct.CreateVoucher(Sqlca,FlowUnid, "PZ2018081700000129",userid);// 提前还款-将当月利息转收入-- 回租
cvct.CreateVoucher(Sqlca,FlowUnid, "PZ2018081700000128",userid);// 提前还款-收到的逾期利息--回租
cvct.CreateVoucher(Sqlca,FlowUnid, "PZ2018081700000130",userid);// 提前还款-收到的违约金--回租
cvct.CreateVoucher(Sqlca,FlowUnid, "PZ2018081700000132",userid);// 提前还款-收到的提前还款手续费--回租
cvct.CreateVoucher(Sqlca,FlowUnid, "PZ2018072100000047",userid);// 提前还款-收到的提前日息差--回租
cvct.CreateVoucher(Sqlca,FlowUnid, "PZ2018081700000138",userid);// 提前还款-收到的一年内利息--回租
cvct.CreateVoucher(Sqlca,FlowUnid, "PZ2018081700000134",userid);// 提前还款-收到名义货价--回租
cvct.CreateVoucher(Sqlca,FlowUnid, "PZ2018081700000136",userid);// 提前还款-收到的提前还款剩余本金----银行未带
cvct.CreateVoucher(Sqlca,FlowUnid, "PZ2018072100000046",userid);// 提前还款-确认贴息收入--回租
cvct.CreateVoucher(Sqlca,FlowUnid, "PZ2018081700000122",userid);// 提前还款-确认手续费按月分摊--回租
return "true";
}

View File

@ -16,10 +16,10 @@ public class CreateVoucherDepositDeduction extends BaseBussiness {
String userid = this.getAttribute("CurUserID").toString();
CreateVoucherDepositDeductionToMoney cvdd=new CreateVoucherDepositDeductionToMoney();
cvdd.CreateVoucher(FlowUnid, "PZ2018072100000053",userid);//保证金抵扣--回租
cvdd.CreateVoucher(FlowUnid, "PZ2019070100000026",userid);//保证金抵扣--直租
cvdd.CreateVoucher(Sqlca,FlowUnid, "PZ2018072100000053",userid);//保证金抵扣--回租
cvdd.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000026",userid);//保证金抵扣--直租
cvdd.CreateVoucher(FlowUnid, "PZ2019070100000027",userid);//确认未实现利息收入-抵扣租金利息--直租
cvdd.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000027",userid);//确认未实现利息收入-抵扣租金利息--直租
return "true";
}
}

View File

@ -5,7 +5,6 @@ import com.tenwa.flow.baseBussion.BaseBussiness;
import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherDistCautionMoneyRe;
/**
* 经销商保证金退回流程结束后生成相应凭证
* @author xiezhiwen
*/
public class DistributorCautionMoneyVoucher extends BaseBussiness {
@ -15,11 +14,7 @@ public class DistributorCautionMoneyVoucher extends BaseBussiness {
String userid = this.getAttribute("CurUserID").toString();
String FlowUnid=this.getAttribute("FlowUnid").toString();
CreateVoucherDistCautionMoneyRe cvdc=new CreateVoucherDistCautionMoneyRe();
//cvdc.CreateVoucher(FlowUnid, "PZ2018071100000011");//退回经销商保证金--回租
//cvdc.CreateVoucher(FlowUnid, "PZ2018081500000118");//退回经销商保证金--直租
cvdc.CreateVoucher(FlowUnid, "PZ2018072100000032",userid);//收到经销商保证金-回款-回租
//cvdc.CreateVoucher(FlowUnid, "PZ2018081500000119");//收到经销商保证金-回款-直租
cvdc.CreateVoucher(Sqlca,FlowUnid, "PZ2018072100000032",userid);//收到经销商保证金-回款-回租
return "true";
}
}

View File

@ -12,7 +12,6 @@ import org.slf4j.LoggerFactory;
/**
* 网银收款流程结束后生成相应的凭证
* @author xiezhiwen
*/
public class IncomeVoucher extends BaseBussiness {
private static final Logger logger = LoggerFactory.getLogger(IncomeVoucher.class);
@ -34,34 +33,34 @@ public class IncomeVoucher extends BaseBussiness {
*/
CreateVoucherCustCautionMoneyIncome cvci=new CreateVoucherCustCautionMoneyIncome();
// 汽车回租
cvci.CreateVoucher(FlowUnid, "PZ2018072100000026", "feetype30",userid);//收到的违约金/罚款 --回租
cvci.CreateVoucher(FlowUnid, "PZ2018072100000031", "feetype4",userid); //收到名义货价 --回租
cvci.CreateVoucher(FlowUnid, "PZ2019121600000162", "feetype2",userid); //回款-收到客户保证金 --回租
cvci.CreateVoucher(FlowUnid, "PZ2019121600000163", "feetype1",userid); //回款-收到客户手续费(一次性)--回租
cvci.CreateVoucher(FlowUnid, "PZ2019121700000164", "feetype1",userid); //回款-收到客户手续费(按月) --回租
cvci.CreateVoucher(Sqlca,FlowUnid, "PZ2018072100000026", "feetype30",userid);//收到的违约金/罚款 --回租
cvci.CreateVoucher(Sqlca,FlowUnid, "PZ2018072100000031", "feetype4",userid); //收到名义货价 --回租
cvci.CreateVoucher(Sqlca,FlowUnid, "PZ2019121600000162", "feetype2",userid); //回款-收到客户保证金 --回租
cvci.CreateVoucher(Sqlca,FlowUnid, "PZ2019121600000163", "feetype1",userid); //回款-收到客户手续费(一次性)--回租
cvci.CreateVoucher(Sqlca,FlowUnid, "PZ2019121700000164", "feetype1",userid); //回款-收到客户手续费(按月) --回租
cvci.CreateVoucher(FlowUnid, "PZ2021032400000006", "feetype32",userid); //回款-收到个人意外险(网银来款)--回租
cvci.CreateVoucher(FlowUnid, "PZ2021032400000005", "feetype33",userid); //回款-收到客户贴息 --回租
cvci.CreateVoucher(Sqlca,FlowUnid, "PZ2021032400000006", "feetype32",userid); //回款-收到个人意外险(网银来款)--回租
cvci.CreateVoucher(Sqlca,FlowUnid, "PZ2021032400000005", "feetype33",userid); //回款-收到客户贴息 --回租
// 汽车直租
cvci.CreateVoucher(FlowUnid, "PZ2019070100000015", "feetype30",userid);//收到的违约金/罚款 --回租
cvci.CreateVoucher(FlowUnid, "PZ2019070100000019", "feetype4",userid); //收到名义货价--直租
cvci.CreateVoucher(FlowUnid, "PZ2020041000000003", "feetype2",userid); //直租-收到客户保证金
cvci.CreateVoucher(FlowUnid, "PZ2020080400000003", "feetype5",userid); //直租-收到客户首付款
cvci.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000015", "feetype30",userid);//收到的违约金/罚款 --回租
cvci.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000019", "feetype4",userid); //收到名义货价--直租
cvci.CreateVoucher(Sqlca,FlowUnid, "PZ2020041000000003", "feetype2",userid); //直租-收到客户保证金
cvci.CreateVoucher(Sqlca,FlowUnid, "PZ2020080400000003", "feetype5",userid); //直租-收到客户首付款
/**
* 汽车网银回款-租金部分
*/
CreateVoucherRentIncome cvri=new CreateVoucherRentIncome();
// 汽车回租
cvri.CreateVoucher(FlowUnid,"PZ2018072100000024",userid);//回款-收到的租金(网银)--当月(回租)
cvri.CreateVoucher(FlowUnid,"PZ2018080400000081",userid);//回款-收到的租金(网银)--跨月(回租)
cvri.CreateVoucher(FlowUnid,"PZ2018072100000025",userid);//回款-收到的逾期利息(网银)--(回租)
cvri.CreateVoucher(Sqlca,FlowUnid,"PZ2018072100000024",userid);//回款-收到的租金(网银)--当月(回租)
cvri.CreateVoucher(Sqlca,FlowUnid,"PZ2018080400000081",userid);//回款-收到的租金(网银)--跨月(回租)
cvri.CreateVoucher(Sqlca,FlowUnid,"PZ2018072100000025",userid);//回款-收到的逾期利息(网银)--(回租)
// 汽车直租
cvri.CreateVoucher(FlowUnid,"PZ2019070100000016",userid);//回款-收到的租金(网银)--当月(直租)
cvri.CreateVoucher(FlowUnid,"PZ2019070100000017",userid);//回款-收到的租金(网银)--跨月(直租)
cvri.CreateVoucher(FlowUnid,"PZ2019070100000014",userid);//回款-收到的逾期利息(网银)--(直租)
cvri.CreateVoucher(Sqlca,FlowUnid,"PZ2019070100000016",userid);//回款-收到的租金(网银)--当月(直租)
cvri.CreateVoucher(Sqlca,FlowUnid,"PZ2019070100000017",userid);//回款-收到的租金(网银)--跨月(直租)
cvri.CreateVoucher(Sqlca,FlowUnid,"PZ2019070100000014",userid);//回款-收到的逾期利息(网银)--(直租)
/**
* 代偿反冲

View File

@ -17,7 +17,7 @@ public class OtherPayMoneyVoucher extends BaseBussiness {
// 其他支付,客户多余还款退回
CreateVoucherForOtherPay CVFOP = new CreateVoucherForOtherPay();
CVFOP.CreateVoucher(FlowUnid, "PZ2018072100000051", userid);
CVFOP.CreateVoucher(Sqlca,FlowUnid, "PZ2018072100000051", userid);
return "true";
}

View File

@ -18,19 +18,19 @@ public class RedIncomeVoucher extends BaseBussiness {
/**
* Æû³µ»Ø×â
*/
cvri.CreateVoucher(FlowUnid, "PZ2018072100000038",userid);//网银回款反冲-收到的逾期利息
cvri.CreateVoucher(FlowUnid, "PZ2018072100000039",userid);//网银回款反冲-收到的违约金/罚款
cvri.CreateVoucher(FlowUnid, "PZ2018072100000037",userid);//网银回款反冲-收到的租金
cvri.CreateVoucher(FlowUnid, "PZ2018072100000043",userid);//网银回款反冲-收到名义货价
cvri.CreateVoucher(FlowUnid, "PZ2018072100000034",userid);//网银回款反冲-收到客户保证金
cvri.CreateVoucher(Sqlca,FlowUnid, "PZ2018072100000038",userid);//网银回款反冲-收到的逾期利息
cvri.CreateVoucher(Sqlca,FlowUnid, "PZ2018072100000039",userid);//网银回款反冲-收到的违约金/罚款
cvri.CreateVoucher(Sqlca,FlowUnid, "PZ2018072100000037",userid);//网银回款反冲-收到的租金
cvri.CreateVoucher(Sqlca,FlowUnid, "PZ2018072100000043",userid);//网银回款反冲-收到名义货价
cvri.CreateVoucher(Sqlca,FlowUnid, "PZ2018072100000034",userid);//网银回款反冲-收到客户保证金
/**
* Æû³µÖ±×â
*/
cvri.CreateVoucher(FlowUnid, "PZ2019070100000023",userid);//网银回款反冲-收到的租金
cvri.CreateVoucher(FlowUnid, "PZ2019070100000020",userid);//网银回款反冲-收到的逾期利息
cvri.CreateVoucher(FlowUnid, "PZ2019070100000021",userid);//网银回款反冲-收到的违约金/罚款
cvri.CreateVoucher(FlowUnid, "PZ2019070100000025",userid);//网银回款反冲-收到名义货价
cvri.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000023",userid);//网银回款反冲-收到的租金
cvri.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000020",userid);//网银回款反冲-收到的逾期利息
cvri.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000021",userid);//网银回款反冲-收到的违约金/罚款
cvri.CreateVoucher(Sqlca,FlowUnid, "PZ2019070100000025",userid);//网银回款反冲-收到名义货价
return "true";
}

View File

@ -73,7 +73,8 @@ public class CreateVoucherMonthSettlement {
// 月结-确认未实现利息收入
if ("PZ2018071200000016".equals(voucherNo)) {
// sql="SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CRM.INTEREST_TAX AS MONEY,ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,(IFNULL(LRP.CORPUS, 0) - ROUND(IFNULL(LRP.CORPUS, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS CORPUS_TAX,((IFNULL(LRP.CORPUS, 0) - ROUND(IFNULL(LRP.CORPUS, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) + (IFNULL(CRM.INTEREST_TAX, 0) - ROUND(IFNULL(CRM.INTEREST_TAX, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2))) AS CORPUS_ADD_INTEREST_TAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(NOW(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(INTEREST) AS INTEREST,MIN(HIRE_DATE) AS HIRE_DATE FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.CONTRACT_ID = lci.id LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_EQUIPMENT_CAR LEC ON LEC.CONTRACT_ID = LCI.ID LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID LEFT JOIN (SELECT F58 FROM voucher_v8 WHERE module_name LIKE '%月结-确认未实现利息收入%' GROUP BY F58)V8 ON V8.f58=CRM.ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND LCI.LEAS_FORM='02' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND ((IFNULL(LRP.INTEREST, 0) - IFNULL(LRI.INTEREST, 0)) <> 0 OR (DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m') < DATE_FORMAT(LRP.PLAN_DATE, '%Y/%m') AND LRP.COLLECT_MSG IN ('微信支付', '银联支付'))) AND (CAST(CRM.RENT_LIST AS SIGNED) - CAST(IFNULL(LRI2.PLAN_LIST, 0) AS SIGNED)) <= 2 AND V8.f58 IS NULL ";
sql="SELECT ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) AS TAX_NUM, CRM.ID, CRM.INTEREST_TAX AS MONEY, ROUND(CRM.INTEREST_TAX/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX, ( CRM.INTEREST_TAX-ROUND(CRM.INTEREST_TAX/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) ) AS TAX, ( IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) ) AS CORPUS_TAX, ( ( IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) )+( IFNULL(CRM.INTEREST_TAX, 0)-ROUND(IFNULL(CRM.INTEREST_TAX,0)/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) ) ) AS CORPUS_ADD_INTEREST_TAX, DATE_FORMAT(NOW(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(NOW(),'%Y/%m/%d') AS FACT_DATE, CRM.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=CRM.CONTRACT_ID AND LRP.PLAN_LIST=CRM.RENT_LIST LEFT JOIN ( SELECT CONTRACT_ID, PLAN_LIST, SUM(INTEREST) AS INTEREST, MIN(HIRE_DATE) AS HIRE_DATE, MAX(INPUTTIME) AS IMPUTTIME FROM LC_RENT_INCOME GROUP BY CONTRACT_ID, PLAN_LIST ) LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID AND LRI.PLAN_LIST=LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID=LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT CONTRACT_ID, MAX(PLAN_LIST) AS PLAN_LIST FROM LC_RENT_INCOME GROUP BY CONTRACT_ID ) LRI2 ON LRI2.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID=LUL.PROJECT_ID LEFT JOIN ( SELECT RENT_PLAN_ID, PLAN_LIST FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID, PLAN_LIST ) DDI ON DDI.RENT_PLAN_ID=LRP.ID AND DDI.PLAN_LIST=LRP.PLAN_LIST LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%月结-确认未实现利息收入%' GROUP BY F58 ) V8 ON V8.F58=CRM.ID WHERE LPI.BUSINESSTYPE='1' AND LUL.IS_MAIN='Y' AND LCI.LEAS_FORM='02' AND DATE_FORMAT(CRM.END_DATE,'%Y/%m')<=DATE_FORMAT(NOW(),'%Y/%m') AND ( ( IFNULL(LRP.INTEREST,0)-IFNULL(LRI.INTEREST,0) )<>0 OR ( ( IFNULL(LRP.INTEREST,0)-IFNULL(LRI.INTEREST,0) )=0 AND DATE_FORMAT(IFNULL(LRI.IMPUTTIME,LRI.HIRE_DATE),'%Y/%m')<>DATE_FORMAT(CRM.END_DATE,'%Y/%m') ) ) AND ( CAST(CRM.RENT_LIST AS SIGNED)-CAST(IFNULL(LRI2.PLAN_LIST,0) AS SIGNED) )<=2 AND V8.F58 IS NULL AND DDI.RENT_PLAN_ID IS NULL AND LCI.CONTRACT_STATUS='31' ";
// sql="SELECT ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) AS TAX_NUM, CRM.ID, CRM.INTEREST_TAX AS MONEY, ROUND(CRM.INTEREST_TAX/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX, ( CRM.INTEREST_TAX-ROUND(CRM.INTEREST_TAX/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) ) AS TAX, ( IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) ) AS CORPUS_TAX, ( ( IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) )+( IFNULL(CRM.INTEREST_TAX, 0)-ROUND(IFNULL(CRM.INTEREST_TAX,0)/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) ) ) AS CORPUS_ADD_INTEREST_TAX, DATE_FORMAT(NOW(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(NOW(),'%Y/%m/%d') AS FACT_DATE, CRM.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=CRM.CONTRACT_ID AND LRP.PLAN_LIST=CRM.RENT_LIST LEFT JOIN ( SELECT CONTRACT_ID, PLAN_LIST, SUM(INTEREST) AS INTEREST, MIN(HIRE_DATE) AS HIRE_DATE, MAX(INPUTTIME) AS IMPUTTIME FROM LC_RENT_INCOME GROUP BY CONTRACT_ID, PLAN_LIST ) LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID AND LRI.PLAN_LIST=LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID=LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT CONTRACT_ID, MAX(PLAN_LIST) AS PLAN_LIST FROM LC_RENT_INCOME GROUP BY CONTRACT_ID ) LRI2 ON LRI2.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID=LUL.PROJECT_ID LEFT JOIN ( SELECT RENT_PLAN_ID, PLAN_LIST FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID, PLAN_LIST ) DDI ON DDI.RENT_PLAN_ID=LRP.ID AND DDI.PLAN_LIST=LRP.PLAN_LIST LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%月结-确认未实现利息收入%' GROUP BY F58 ) V8 ON V8.F58=CRM.ID WHERE LPI.BUSINESSTYPE='1' AND LUL.IS_MAIN='Y' AND LCI.LEAS_FORM='02' AND DATE_FORMAT(CRM.END_DATE,'%Y/%m')<=DATE_FORMAT(NOW(),'%Y/%m') AND ( ( IFNULL(LRP.INTEREST,0)-IFNULL(LRI.INTEREST,0) )<>0 OR ( ( IFNULL(LRP.INTEREST,0)-IFNULL(LRI.INTEREST,0) )=0 AND DATE_FORMAT(IFNULL(LRI.IMPUTTIME,LRI.HIRE_DATE),'%Y/%m')<>DATE_FORMAT(CRM.END_DATE,'%Y/%m') ) ) AND ( CAST(CRM.RENT_LIST AS SIGNED)-CAST(IFNULL(LRI2.PLAN_LIST,0) AS SIGNED) )<=2 AND V8.F58 IS NULL AND DDI.RENT_PLAN_ID IS NULL AND LCI.CONTRACT_STATUS='31' ";
sql="SELECT ROUND( ( GETTAX ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ) - 1 ) * 100, 0 ) AS TAX_NUM, CRM.ID, (IFNULL(CRM.INTEREST_TAX,0)-IFNULL(LRI.INTEREST,0)) AS MONEY, ROUND( (IFNULL(CRM.INTEREST_TAX,0)-IFNULL(LRI.INTEREST,0)) / GETTAX ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) AS MONEYNOTAX, ( (IFNULL(CRM.INTEREST_TAX,0)-IFNULL(LRI.INTEREST,0)) - ROUND( (IFNULL(CRM.INTEREST_TAX,0)-IFNULL(LRI.INTEREST,0)) / GETTAX ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) ) AS TAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(NOW(), '%Y/%m/%d') AS FACT_DATE, CRM.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.RENT_LIST LEFT JOIN (SELECT CONTRACT_ID, PLAN_LIST, SUM(INTEREST) AS INTEREST, MIN(HIRE_DATE) AS HIRE_DATE, MAX(INPUTTIME) AS IMPUTTIME FROM LC_RENT_INCOME WHERE IFNULL(INTEREST,0)>0 GROUP BY CONTRACT_ID, PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID, MAX(PLAN_LIST) AS PLAN_LIST FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID LEFT JOIN (SELECT RENT_PLAN_ID, PLAN_LIST FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE = 'bondRepay' GROUP BY RENT_PLAN_ID, PLAN_LIST) DDI ON DDI.RENT_PLAN_ID = LRP.ID AND DDI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN (SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '月结-确认未实现利息收入' AND F58 IS NOT NULL GROUP BY F58) V8 ON V8.F58 = CRM.ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND LCI.LEAS_FORM = '02' AND LCI.CONTRACT_STATUS = '31' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') <= DATE_FORMAT(NOW(), '%Y/%m') AND ( ( IFNULL(LRP.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) ) <> 0 OR ( ( IFNULL(LRP.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) ) = 0 AND DATE_FORMAT( IFNULL(LRI.IMPUTTIME, LRI.HIRE_DATE), '%Y/%m' ) <> DATE_FORMAT(CRM.END_DATE, '%Y/%m') ) ) AND ( CAST(CRM.RENT_LIST AS SIGNED) - CAST(IFNULL(LRI2.PLAN_LIST, 0) AS SIGNED) ) <= 2 AND (IFNULL(CRM.INTEREST_TAX,0)-IFNULL(LRI.INTEREST,0))>0 AND DDI.RENT_PLAN_ID IS NULL AND V8.F58 IS NULL";
// 月结-确认手续费
} else if ("PZ2018071200000017".equals(voucherNo)) {
sql = "SELECT CRM.ID, CRM.INTEREST AS MONEY, ROUND(CRM.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX, ( CRM.INTEREST-ROUND(CRM.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) ) AS TAX, CRM.FEE AS FEEMONEY, IFNULL((CRM.FEE-ROUND(CRM.FEE/GETTAX(LCI.LEAS_FORM,'手续费',LCCT.START_DATE))),0) AS FEE_NOTAX, CRM.DISCOUNT AS DISCOUNT, IFNULL((CRM.DISCOUNT-ROUND(CRM.DISCOUNT/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE))),0) AS DISCOUNT_NOTAX, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE, CRM.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=CRM.CONTRACT_ID AND LRP.PLAN_LIST=CRM.RENT_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON CRM.CONTRACT_ID=LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID=LUL.PROJECT_ID LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%月结-确认手续费%' GROUP BY F58 ) V8 ON V8.F58=CRM.ID WHERE LPI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='02' AND LUL.IS_MAIN='Y' AND DATE_FORMAT(CRM.END_DATE,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m') AND LCCT.HANDLING_CHARGE_MONEY_TYPE='0020' AND V8.F58 IS NULL AND LCI.CONTRACT_STATUS='31' ";
@ -87,7 +88,7 @@ public class CreateVoucherMonthSettlement {
*/
if("PZ2019070100000028".equals(voucherNo)) {
// sql="SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CRM.INTEREST_TAX AS MONEY,ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,(IFNULL(LRP.CORPUS, 0) - ROUND(IFNULL(LRP.CORPUS, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS CORPUS_TAX,((IFNULL(LRP.CORPUS, 0) - ROUND(IFNULL(LRP.CORPUS, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) + (IFNULL(CRM.INTEREST_TAX, 0) - ROUND(IFNULL(CRM.INTEREST_TAX, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2))) AS CORPUS_ADD_INTEREST_TAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(NOW(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(INTEREST) AS INTEREST,MIN(HIRE_DATE) AS HIRE_DATE FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.CONTRACT_ID = lci.id LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_EQUIPMENT_CAR LEC ON LEC.CONTRACT_ID = LCI.ID LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID LEFT JOIN (SELECT F58 FROM voucher_v8 WHERE module_name LIKE '%月结-确认未实现利息收入%' GROUP BY F58)V8 ON V8.f58=CRM.ID WHERE LPI.BUSINESSTYPE = '1' AND lul.IS_MAIN = 'Y' AND LCI.LEAS_FORM='01' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND ((IFNULL(LRP.INTEREST, 0) - IFNULL(LRI.INTEREST, 0)) <> 0 OR (DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m') < DATE_FORMAT(LRP.PLAN_DATE, '%Y/%m') AND LRP.COLLECT_MSG IN ('微信支付', '银联支付'))) AND (CAST(CRM.RENT_LIST AS SIGNED) - CAST(IFNULL(LRI2.PLAN_LIST, 0) AS SIGNED)) <= 2 AND V8.f58 IS NULL ";
sql="SELECT ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) AS TAX_NUM, CRM.ID, CRM.INTEREST_TAX AS MONEY, ROUND(CRM.INTEREST_TAX/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX, ( CRM.INTEREST_TAX-ROUND(CRM.INTEREST_TAX/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) ) AS TAX, ( IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) ) AS CORPUS_TAX, ( ( IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) )+( IFNULL(CRM.INTEREST_TAX, 0)-ROUND(IFNULL(CRM.INTEREST_TAX,0)/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) ) ) AS CORPUS_ADD_INTEREST_TAX, DATE_FORMAT(NOW(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(NOW(),'%Y/%m/%d') AS FACT_DATE, CRM.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=CRM.CONTRACT_ID AND LRP.PLAN_LIST=CRM.RENT_LIST LEFT JOIN ( SELECT CONTRACT_ID, PLAN_LIST, SUM(INTEREST) AS INTEREST, MIN(HIRE_DATE) AS HIRE_DATE, MAX(INPUTTIME) AS IMPUTTIME FROM LC_RENT_INCOME GROUP BY CONTRACT_ID, PLAN_LIST ) LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID AND LRI.PLAN_LIST=LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID=LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT CONTRACT_ID, MAX(PLAN_LIST) AS PLAN_LIST FROM LC_RENT_INCOME GROUP BY CONTRACT_ID ) LRI2 ON LRI2.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID=LUL.PROJECT_ID LEFT JOIN ( SELECT RENT_PLAN_ID, PLAN_LIST FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID, PLAN_LIST ) DDI ON DDI.RENT_PLAN_ID=LRP.ID AND DDI.PLAN_LIST=LRP.PLAN_LIST LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%月结-确认未实现利息收入%' GROUP BY F58 ) V8 ON V8.F58=CRM.ID WHERE LPI.BUSINESSTYPE='1' AND LUL.IS_MAIN='Y' AND LCI.LEAS_FORM='01' AND DATE_FORMAT(CRM.END_DATE,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m') AND ( ( IFNULL(LRP.INTEREST,0)-IFNULL(LRI.INTEREST,0) )<>0 OR ( ( IFNULL(LRP.INTEREST,0)-IFNULL(LRI.INTEREST,0) )=0 AND DATE_FORMAT(IFNULL(LRI.IMPUTTIME,LRI.HIRE_DATE),'%Y/%m')<>DATE_FORMAT(CRM.END_DATE,'%Y/%m') ) ) AND ( CAST(CRM.RENT_LIST AS SIGNED)-CAST(IFNULL(LRI2.PLAN_LIST,0) AS SIGNED) )<=2 AND V8.F58 IS NULL AND DDI.RENT_PLAN_ID IS NULL AND LCI.CONTRACT_STATUS='31' ";
sql="SELECT ROUND( ( GETTAX ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ) - 1 ) * 100, 0 ) AS TAX_NUM, CRM.ID, (IFNULL(CRM.INTEREST_TAX,0)-IFNULL(LRI.INTEREST,0)) AS MONEY, ROUND( (IFNULL(CRM.INTEREST_TAX,0)-IFNULL(LRI.INTEREST,0)) / GETTAX ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) AS MONEYNOTAX, ( (IFNULL(CRM.INTEREST_TAX,0)-IFNULL(LRI.INTEREST,0)) - ROUND( (IFNULL(CRM.INTEREST_TAX,0)-IFNULL(LRI.INTEREST,0)) / GETTAX ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) ) AS TAX, ( IFNULL(LRP.CORPUS, 0) - ROUND( IFNULL(LRP.CORPUS, 0) / GETTAX ( LCI.LEAS_FORM, '本金', LCCT.START_DATE ), 2 ) ) AS CORPUS_TAX, ( ( IFNULL(LRP.CORPUS, 0) - ROUND( IFNULL(LRP.CORPUS, 0) / GETTAX ( LCI.LEAS_FORM, '本金', LCCT.START_DATE ), 2 ) ) + ( (IFNULL(CRM.INTEREST_TAX,0)-IFNULL(LRI.INTEREST,0)) - ROUND( (IFNULL(CRM.INTEREST_TAX,0)-IFNULL(LRI.INTEREST,0)) / GETTAX ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) ) ) AS CORPUS_ADD_INTEREST_TAX, DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(NOW(), '%Y/%m/%d') AS FACT_DATE, CRM.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.RENT_LIST LEFT JOIN (SELECT CONTRACT_ID, PLAN_LIST, SUM(INTEREST) AS INTEREST, MIN(HIRE_DATE) AS HIRE_DATE, MAX(INPUTTIME) AS IMPUTTIME FROM LC_RENT_INCOME WHERE IFNULL(INTEREST,0)>0 GROUP BY CONTRACT_ID, PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID, MAX(PLAN_LIST) AS PLAN_LIST FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID LEFT JOIN (SELECT RENT_PLAN_ID, PLAN_LIST FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE = 'bondRepay' GROUP BY RENT_PLAN_ID, PLAN_LIST) DDI ON DDI.RENT_PLAN_ID = LRP.ID AND DDI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN (SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%月结-确认未实现利息收入%' GROUP BY F58) V8 ON V8.F58 = CRM.ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND LCI.LEAS_FORM = '01' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND ( ( I FNULL(LRP.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) ) <>44 0 OR ( ( IFNULL(LRP.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) 4 ) = 0 AND DATE_FORMAT( IFNULL(LRI.IMPUTTIME, LRI.HIRE_DATE), '%Y/%m' ) <> DATE_FORMAT(CRM.END_DATE, '%Y/%m') ) ) AND ( CAST(CRM.RENT_LIST AS SIGNED) - CAST(IFNULL(LRI2.PLAN_LIST, 0) AS SIGNED) ) <= 2 AND V8.F58 IS NULL AND DDI.RENT_PLAN_ID IS NULL AND LCI.CONTRACT_STATUS = '31'";
}else if("PZ2019070100000029".equals(voucherNo)) {
sql = "SELECT CRM.ID, CRM.INTEREST AS MONEY, ROUND(CRM.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX, ( CRM.INTEREST-ROUND(CRM.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) ) AS TAX, CRM.FEE AS FEEMONEY, IFNULL((CRM.FEE-ROUND(CRM.FEE/GETTAX(LCI.LEAS_FORM,'手续费',LCCT.START_DATE))),0) AS FEE_NOTAX, CRM.DISCOUNT AS DISCOUNT, IFNULL((CRM.DISCOUNT-ROUND(CRM.DISCOUNT/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE))),0) AS DISCOUNT_NOTAX, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE, CRM.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=CRM.CONTRACT_ID AND LRP.PLAN_LIST=CRM.RENT_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON CRM.CONTRACT_ID=LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID=LUL.PROJECT_ID LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%月结-确认手续费%' GROUP BY F58 ) V8 ON V8.F58=CRM.ID WHERE LPI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='01' AND LUL.IS_MAIN='Y' AND DATE_FORMAT(CRM.END_DATE,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m') AND LCCT.HANDLING_CHARGE_MONEY_TYPE='0020' AND V8.F58 IS NULL AND LCI.CONTRACT_STATUS='31' ";
}

View File

@ -1,5 +1,6 @@
package com.tenwa.voucher.CreateVoucherProcess;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -7,6 +8,7 @@ import java.util.Map;
import jbo.voucher.LV_VOUCHER_CONFIG;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.awe.util.ASResultSet;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
@ -17,94 +19,115 @@ import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
*/
public class CreateVoucherRedCompensatory {
public void CreateVoucher(String VOUCHERNO,String userid,String LRI_ID) throws Exception{
public void CreateVoucher(String VOUCHERNO,String userid,String LRI_ID){
Transaction Sqlca =null;
Map<String,String> map=new HashMap<String, String>();
Map<String,String> param=new HashMap<String, String>();
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
String MONEY=null;
String MONEYNOTAX=null;
String MONEYTAX=null;
String ACCOUNT_DATE=null;
String FACT_DATE=null;
String CONTRACT_ID=null;
String leas_form=null;
String DISTRIBUTOR_ID=null;
String DISTRIBUTOR_NAME=null;
String CONTRACT_NUMBER=null;
String BUSINESSTYPE=null;
String PLAN_LIST=null;
String CHARGE_WAY=null;
String F58=null;
String F56=null;
try {
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
Map<String,String> map=new HashMap<String, String>();
Map<String,String> param=new HashMap<String, String>();
String sql="";
param.clear();
map.clear();
String MONEY=null;
String MONEYNOTAX=null;
String MONEYTAX=null;
String ACCOUNT_DATE=null;
String FACT_DATE=null;
String CONTRACT_ID=null;
String leas_form=null;
String DISTRIBUTOR_ID=null;
String DISTRIBUTOR_NAME=null;
String CONTRACT_NUMBER=null;
String BUSINESSTYPE=null;
String PLAN_LIST=null;
String CHARGE_WAY=null;
String F58=null;
String F56=null;
// 代偿反冲-收到的租金
if("PZ2019071500000030".equals(VOUCHERNO)){
sql="SELECT LRI.CHARGE_WAY, IFNULL(LRI.RENT,0) AS MONEY, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE, LRP.CONTRACT_ID, V8.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, V8.DISTRIBUTOR_NAME, LRP.PLAN_LIST, LRI.PLAN_ID AS F58, LRI.ID AS F56, LCI.CONTRACT_NUMBER FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID, MAX(ID) AS ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID )DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN ( SELECT F58, MAX(F65) AS DISTRIBUTOR_CODING, MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND (F58 IS NOT NULL AND F58<>'') AND F59='1' GROUP BY F58 ) V8 ON V8.F58=DDI.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿反冲-收到代偿的租金' AND (F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V9 ON V9.F56=LRI.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRI.CONTRACT_ID WHERE LRI.ID='"+LRI_ID+"' AND LCI.BUSINESSTYPE='1' AND IFNULL(LRI.RENT,0)>0 AND V9.F56 IS NULL";
// 代偿反冲-收到的逾期利息
}else if("PZ2019071500000031".equals(VOUCHERNO)){
sql="SELECT LRI.CHARGE_WAY, IFNULL(LRI.PENALTY,0) AS MONEY, IFNULL(V8.MONEY,0) AS MONEYNOTAX, ROUND((IFNULL(LRI.PENALTY,0)-IFNULL(V8.MONEY,0)),2) AS MONEYTAX, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE, LRP.CONTRACT_ID, DI.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, LRP.PLAN_LIST, LRI.PLAN_ID AS F58, LRI.ID AS F56, LCI.CONTRACT_NUMBER FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRI.CONTRACT_ID AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN (SELECT RENT_PLAN_ID,MAX(ID) AS ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' AND IFNULL(PENALTY,0)>0 GROUP BY RENT_PLAN_ID)DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT F58, SUM(F7) AS MONEY FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-代偿逾期利息' AND (F58 IS NOT NULL AND F58<>'') GROUP BY F58 ) V8 ON V8.F58=DDI.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿反冲-代偿逾期利息' AND (F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V9 ON V9.F56=LRI.ID WHERE LRI.ID='"+LRI_ID+"' AND LCI.BUSINESSTYPE='1' AND V9.F56 IS NULL AND IFNULL(LRI.PENALTY,0)>0";
// 代偿反冲-收到的租金微信
}else if("PZ2020070600000001".equals(VOUCHERNO)){
sql="SELECT LRI.CHARGE_WAY, IFNULL(LRI.RENT,0) AS MONEY, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE, LRP.CONTRACT_ID, V8.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, V8.DISTRIBUTOR_NAME, LRP.PLAN_LIST, LRI.PLAN_ID AS F58, LRI.ID AS F56, LCI.CONTRACT_NUMBER FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRI.CONTRACT_ID AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN (SELECT RENT_PLAN_ID,MAX(ID) AS ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID)DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN ( SELECT F58, MAX(F65) AS DISTRIBUTOR_CODING, MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND (F58 IS NOT NULL AND F58<>'') AND F59='1' GROUP BY F58 ) V8 ON V8.F58=DDI.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿反冲-收到代偿的租金-微信' AND (F56 IS NOT NULL AND F56<>'' AND F58 IS NOT NULL AND F58<>'') GROUP BY F56 ) V9 ON V9.F56=LRI.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRI.CONTRACT_ID WHERE LRI.ID='"+LRI_ID+"' AND LCI.BUSINESSTYPE='1' AND IFNULL(LRI.RENT,0)>0 AND V9.F56 IS NULL";
// 代偿反冲-收到的逾期利息微信
}else if("PZ2020070600000002".equals(VOUCHERNO)){
sql="SELECT LRI.CHARGE_WAY, IFNULL(LRI.PENALTY,0) AS MONEY, IFNULL(V8.MONEY,0) AS MONEYNOTAX, ROUND((IFNULL(LRI.PENALTY,0)-IFNULL(V8.MONEY,0)),2) AS MONEYTAX, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE, LRP.CONTRACT_ID, DI.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, LRP.PLAN_LIST, LRI.PLAN_ID AS F58, LRI.ID AS F56, LCI.CONTRACT_NUMBER FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRI.CONTRACT_ID AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN (SELECT RENT_PLAN_ID,MAX(ID) AS ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' AND IFNULL(PENALTY,0)>0 GROUP BY RENT_PLAN_ID)DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT F58, SUM(F7) AS MONEY FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-代偿逾期利息' AND (F58 IS NOT NULL AND F58<>'') GROUP BY F58 ) V8 ON V8.F58=DDI.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿反冲-代偿逾期利息-微信' AND (F58 IS NOT NULL AND F58<>'' AND F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V9 ON V9.F56=LRI.ID WHERE LRI.ID='"+LRI_ID+"' AND LCI.BUSINESSTYPE='1' AND V9.F56 IS NULL AND IFNULL(LRI.PENALTY,0)>0";
}
List<Map<String,String>> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, null);
String sql="";
param.clear();
map.clear();
CreateVoucherServiceImpl vs=new CreateVoucherServiceImpl();
String VOUCHER_TYPE="1";// 凭证分类 金蝶
// 代偿反冲-收到的租金
if("PZ2019071500000030".equals(VOUCHERNO)){
sql="SELECT LRI.CHARGE_WAY, IFNULL(LRI.RENT,0) AS MONEY, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE, LRP.CONTRACT_ID, V8.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, V8.DISTRIBUTOR_NAME, LRP.PLAN_LIST, LRI.PLAN_ID AS F58, LRI.ID AS F56, LCI.CONTRACT_NUMBER FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID, MAX(ID) AS ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN ( SELECT F58, MAX(F65) AS DISTRIBUTOR_CODING, MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME='代偿-收到代偿的租金' AND (F58 IS NOT NULL AND F58<>'') AND F59='1' GROUP BY F58 ) V8 ON V8.F58=DDI.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE (MODULE_NAME='代偿反冲-收到代偿的租金' OR MODULE_NAME='代偿反冲-收到代偿的租金-微信银联') AND (F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V9 ON V9.F56=LRI.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRI.CONTRACT_ID WHERE LRI.ID='"+LRI_ID+"' AND LCI.BUSINESSTYPE='1' AND IFNULL(LRI.RENT,0)>0 AND V9.F56 IS NULL";
// 代偿反冲-收到的逾期利息
}else if("PZ2019071500000031".equals(VOUCHERNO)){
sql="SELECT LRI.CHARGE_WAY, IFNULL(LRI.PENALTY,0) AS MONEY, IFNULL(V8.MONEY,0) AS MONEYNOTAX, ROUND((IFNULL(LRI.PENALTY,0)-IFNULL(V8.MONEY,0)),2) AS MONEYTAX, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE, LRP.CONTRACT_ID, DI.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, LRP.PLAN_LIST, LRI.PLAN_ID AS F58, LRI.ID AS F56, LCI.CONTRACT_NUMBER FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRI.CONTRACT_ID AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID, MAX(ID) AS ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' AND IFNULL(PENALTY,0)>0 GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT F58, SUM(F7) AS MONEY FROM VOUCHER_V8 WHERE MODULE_NAME='代偿-代偿逾期利息' AND (F58 IS NOT NULL AND F58<>'') GROUP BY F58 ) V8 ON V8.F58=DDI.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE (MODULE_NAME='代偿反冲-代偿逾期利息' OR MODULE_NAME='代偿反冲-代偿逾期利息-微信银联') AND (F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V9 ON V9.F56=LRI.ID WHERE LRI.ID='"+LRI_ID+"' AND LCI.BUSINESSTYPE='1' AND V9.F56 IS NULL AND IFNULL(LRI.PENALTY,0)>0";
// 代偿反冲-收到的租金微信
}else if("PZ2020070600000001".equals(VOUCHERNO)){
sql="SELECT LRI.CHARGE_WAY, IFNULL(LRI.RENT,0) AS MONEY, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE, LRP.CONTRACT_ID, V8.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, V8.DISTRIBUTOR_NAME, LRP.PLAN_LIST, LRI.PLAN_ID AS F58, LRI.ID AS F56, LCI.CONTRACT_NUMBER FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRI.CONTRACT_ID AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN (SELECT RENT_PLAN_ID,MAX(ID) AS ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID)DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN ( SELECT F58, MAX(F65) AS DISTRIBUTOR_CODING, MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND (F58 IS NOT NULL AND F58<>'') AND F59='1' GROUP BY F58 ) V8 ON V8.F58=DDI.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿反冲-收到代偿的租金-微信' AND (F56 IS NOT NULL AND F56<>'' AND F58 IS NOT NULL AND F58<>'') GROUP BY F56 ) V9 ON V9.F56=LRI.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRI.CONTRACT_ID WHERE LRI.ID='"+LRI_ID+"' AND LCI.BUSINESSTYPE='1' AND IFNULL(LRI.RENT,0)>0 AND V9.F56 IS NULL";
// 代偿反冲-收到的逾期利息微信
}else if("PZ2020070600000002".equals(VOUCHERNO)){
sql="SELECT LRI.CHARGE_WAY, IFNULL(LRI.PENALTY,0) AS MONEY, IFNULL(V8.MONEY,0) AS MONEYNOTAX, ROUND((IFNULL(LRI.PENALTY,0)-IFNULL(V8.MONEY,0)),2) AS MONEYTAX, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE, LRP.CONTRACT_ID, DI.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, LRP.PLAN_LIST, LRI.PLAN_ID AS F58, LRI.ID AS F56, LCI.CONTRACT_NUMBER FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRI.CONTRACT_ID AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN (SELECT RENT_PLAN_ID,MAX(ID) AS ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' AND IFNULL(PENALTY,0)>0 GROUP BY RENT_PLAN_ID)DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT F58, SUM(F7) AS MONEY FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-代偿逾期利息' AND (F58 IS NOT NULL AND F58<>'') GROUP BY F58 ) V8 ON V8.F58=DDI.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿反冲-代偿逾期利息-微信' AND (F58 IS NOT NULL AND F58<>'' AND F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V9 ON V9.F56=LRI.ID WHERE LRI.ID='"+LRI_ID+"' AND LCI.BUSINESSTYPE='1' AND V9.F56 IS NULL AND IFNULL(LRI.PENALTY,0)>0";
}
List<Map<String,String>> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, null);
for (int i=0;i<dataList.size();i++){
MONEY=dataList.get(i).get("MONEY");
MONEYNOTAX=dataList.get(i).get("MONEYNOTAX");
MONEYTAX=dataList.get(i).get("MONEYTAX");
ACCOUNT_DATE=dataList.get(i).get("ACCOUNT_DATE");
FACT_DATE =dataList.get(i).get("FACT_DATE");
CONTRACT_ID=dataList.get(i).get("CONTRACT_ID");
leas_form="01";
DISTRIBUTOR_ID=dataList.get(i).get("DISTRIBUTOR_ID");
DISTRIBUTOR_NAME=dataList.get(i).get("DISTRIBUTOR_NAME");
BUSINESSTYPE=dataList.get(i).get("BUSINESSTYPE");
PLAN_LIST=dataList.get(i).get("PLAN_LIST");
F58=dataList.get(i).get("F58");
F56=dataList.get(i).get("F56");
CONTRACT_NUMBER=dataList.get(i).get("CONTRACT_NUMBER");
CHARGE_WAY=dataList.get(i).get("CHARGE_WAY");
CreateVoucherServiceImpl vs=new CreateVoucherServiceImpl();
String VOUCHER_TYPE="1";// 凭证分类 金蝶
param.put("FACT_MONEY",MONEY);
param.put("INTERESTNOTAX",MONEYNOTAX);
param.put("TAX",MONEYTAX);
param.put("ACCOUNT_DATE",ACCOUNT_DATE);
param.put("FACT_DATE",FACT_DATE);
param.put("CONTRACT_ID",CONTRACT_ID);
param.put("LEAS_FORM",leas_form);
param.put("CUSTID",DISTRIBUTOR_ID);
param.put("CUSTNAME",DISTRIBUTOR_NAME);
param.put("PLAN_LIST",PLAN_LIST);
param.put("F58",F58);
param.put("F56",F56);
param.put("CONTRACT_NUMBER",CONTRACT_NUMBER);
param.put("CHARGE_WAY",CHARGE_WAY);
param.put("BUSINESSTYPE",BUSINESSTYPE);
param.put("VOUCHERNO",VOUCHERNO);
for (int i=0;i<dataList.size();i++){
MONEY=dataList.get(i).get("MONEY");
MONEYNOTAX=dataList.get(i).get("MONEYNOTAX");
MONEYTAX=dataList.get(i).get("MONEYTAX");
ACCOUNT_DATE=dataList.get(i).get("ACCOUNT_DATE");
FACT_DATE =dataList.get(i).get("FACT_DATE");
CONTRACT_ID=dataList.get(i).get("CONTRACT_ID");
leas_form="01";
DISTRIBUTOR_ID=dataList.get(i).get("DISTRIBUTOR_ID");
DISTRIBUTOR_NAME=dataList.get(i).get("DISTRIBUTOR_NAME");
BUSINESSTYPE=dataList.get(i).get("BUSINESSTYPE");
PLAN_LIST=dataList.get(i).get("PLAN_LIST");
F58=dataList.get(i).get("F58");
F56=dataList.get(i).get("F56");
CONTRACT_NUMBER=dataList.get(i).get("CONTRACT_NUMBER");
CHARGE_WAY=dataList.get(i).get("CHARGE_WAY");
map.clear();
map.put("PROJ_TYPE", leas_form);
map.put("VOUCHER_NO", VOUCHERNO);
BizObject vouch=DataOperatorUtil.getSingleJBO(LV_VOUCHER_CONFIG.CLASS_NAME, map, Sqlca);
param.put("FACT_MONEY",MONEY);
param.put("INTERESTNOTAX",MONEYNOTAX);
param.put("TAX",MONEYTAX);
param.put("ACCOUNT_DATE",ACCOUNT_DATE);
param.put("FACT_DATE",FACT_DATE);
param.put("CONTRACT_ID",CONTRACT_ID);
param.put("LEAS_FORM",leas_form);
param.put("CUSTID",DISTRIBUTOR_ID);
param.put("CUSTNAME",DISTRIBUTOR_NAME);
param.put("PLAN_LIST",PLAN_LIST);
param.put("F58",F58);
param.put("F56",F56);
param.put("CONTRACT_NUMBER",CONTRACT_NUMBER);
param.put("CHARGE_WAY",CHARGE_WAY);
param.put("BUSINESSTYPE",BUSINESSTYPE);
param.put("VOUCHERNO",VOUCHERNO);
if(vouch!=null){
vs.createVoucher(vouch.getAttribute("id").getString(),vouch.getAttribute("MODULAR_NUMBER").getString(), vouch.getAttribute("OWNED_COMPANY").getString(), leas_form, VOUCHER_TYPE, userid,param, Sqlca);
}
}
if(Sqlca!=null){
map.clear();
map.put("PROJ_TYPE", leas_form);
map.put("VOUCHER_NO", VOUCHERNO);
BizObject vouch=DataOperatorUtil.getSingleJBO(LV_VOUCHER_CONFIG.CLASS_NAME, map, Sqlca);
if(vouch!=null){
vs.createVoucher(vouch.getAttribute("id").getString(),vouch.getAttribute("MODULAR_NUMBER").getString(), vouch.getAttribute("OWNED_COMPANY").getString(), leas_form, VOUCHER_TYPE, userid,param, Sqlca);
}
}
Sqlca.commit();
} catch (Exception e) {
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null){
try {
Sqlca.commit();
} catch (JBOException e) {
e.printStackTrace();
}
try {
Sqlca.disConnect();
} catch (JBOException e) {
e.printStackTrace();
}
}
}
}
@ -117,95 +140,97 @@ public class CreateVoucherRedCompensatory {
* @throws Exception
*/
public void CreateVoucher(String FLOWUNID,String VOUCHERNO,String userid,Transaction Sqlca) throws Exception{
Transaction Sqlca1 = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
ASResultSet rs=null;
CreateVoucherServiceImpl vs=new CreateVoucherServiceImpl();
String VOUCHER_TYPE="1";// 凭证分类 金蝶
Map<String,String> map=new HashMap<String, String>();
Map<String,String> param=new HashMap<String, String>();
String MONEY=null;
String MONEYNOTAX=null;
String MONEYTAX=null;
String ACCOUNT_DATE=null;
String FACT_DATE=null;
String CONTRACT_ID=null;
String leas_form=null;
String DISTRIBUTOR_ID=null;
String DISTRIBUTOR_NAME=null;
String DISTRIBUTOR_ID2=null;
String DISTRIBUTOR_NAME2=null;
String CONTRACT_NUMBER=null;
String BUSINESSTYPE=null;
String PLAN_LIST=null;
String F58=null;
String YES_OR_NO=null;
String sql="";
param.clear();
map.clear();
// 代偿反冲-收到的租金
if("PZ2019071500000030".equals(VOUCHERNO)){
//sql="SELECT IFNULL(V8.MONEY, 0) AS MONEY,0.00 AS MONEYNOTAX,0.00 AS MONEYTAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LRP.CONTRACT_ID,V8.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID,V8.DISTRIBUTOR_NAME,LRP.PLAN_LIST,LRP.ID AS F58,LCI.CONTRACT_NUMBER,LCI.BUSINESSTYPE FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRIT.CONTRACT_ID AND LRP.PLAN_LIST=LRIT.PLAN_LIST LEFT JOIN (SELECT SUM(F7) AS MONEY,F58,MAX(F65) AS DISTRIBUTOR_CODING,MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿-收到代偿的租金%' AND F59 = '1' GROUP BY F58) V8 ON V8.F58=LRP.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRP.CONTRACT_ID WHERE LCI.BUSINESSTYPE = '1' AND IFNULL(V8.MONEY, 0) > 0 AND NOT EXISTS (SELECT F58 FROM VOUCHER_V8 WHERE F58 = V8.F58 AND F59 = 1 AND MODULE_NAME LIKE '%代偿反冲-收到代偿的租金%') AND LRIT.FLOWUNID='"+FLOWUNID+"' ";
//sql="SELECT IFNULL(V8.MONEY, 0) AS MONEY,0.00 AS MONEYNOTAX,0.00 AS MONEYTAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LRP.CONTRACT_ID,V8.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID,V8.DISTRIBUTOR_NAME,LRP.PLAN_LIST,LRP.ID AS F58,LCI.CONTRACT_NUMBER,LCI.BUSINESSTYPE,CASE WHEN (SELECT EBANK_NUMBER FROM LC_RENT_INCOME WHERE EBANK_NUMBER = IFNULL(LRIT.EBANK_NUMBER, 0) GROUP BY EBANK_NUMBER) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO,CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) ELSE V8.DISTRIBUTOR_CODING END AS DISTRIBUTOR_ID2,CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) ELSE V8.DISTRIBUTOR_NAME END AS DISTRIBUTOR_NAME2 FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = LRIT.CONTRACT_ID AND LRP.PLAN_LIST = LRIT.PLAN_LIST LEFT JOIN LC_EBANK LE ON LE.ID = LRIT.EBANK_NUMBER LEFT JOIN (SELECT SUM(F7) AS MONEY,F58,MAX(F65) AS DISTRIBUTOR_CODING,MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿-收到代偿的租金%' AND F59 = '1' GROUP BY F58) V8 ON V8.F58 = LRP.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRP.CONTRACT_ID WHERE LCI.BUSINESSTYPE = '1' AND IFNULL(V8.MONEY, 0) > 0 AND NOT EXISTS (SELECT F58 FROM VOUCHER_V8 WHERE F58 = V8.F58 AND F59 = 1 AND MODULE_NAME LIKE '%代偿反冲-收到代偿的租金%') AND LRIT.FLOWUNID = '"+FLOWUNID+"'";
sql="SELECT IFNULL(LRIT.RENT,0) AS MONEY, 0.00 AS MONEYNOTAX, 0.00 AS MONEYTAX, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE, LRP.CONTRACT_ID, V8.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, V8.DISTRIBUTOR_NAME, LRP.PLAN_LIST, LRP.ID AS F58, LCI.CONTRACT_NUMBER, LCI.BUSINESSTYPE, CASE WHEN ( SELECT LRI.EBANK_NUMBER FROM LC_RENT_INCOME LRI WHERE EBANK_NUMBER=IFNULL(LRIT.EBANK_NUMBER,0) AND NOT EXISTS(SELECT 1 FROM LC_RENT_INCOME_TEMP LRIT2 WHERE LRIT2.FLOWUNID='"+FLOWUNID+"' AND LRIT2.CONTRACT_ID=LRI.CONTRACT_ID AND LRIT2.PLAN_LIST=LRI.PLAN_LIST) GROUP BY LRI.EBANK_NUMBER ) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO, CASE WHEN ( SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) ELSE CIF.CUSTOMER_NUM END AS DISTRIBUTOR_ID2, CASE WHEN ( SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) ELSE CIF.CUSTOMERNAME END AS DISTRIBUTOR_NAME2 FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRIT.CONTRACT_ID AND LRP.PLAN_LIST=LRIT.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID, MAX(ID) AS ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN LC_EBANK LE ON LE.ID=LRIT.EBANK_NUMBER LEFT JOIN ( SELECT SUM(F7) AS MONEY, F58, MAX(F65) AS DISTRIBUTOR_CODING, MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿-收到代偿的租金%' AND F59='1' AND (F58 IS NOT NULL AND F58<>'') GROUP BY F58 ) V8 ON V8.F58=DDI.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID WHERE LCI.BUSINESSTYPE='1' AND LUL.IS_MAIN='Y' AND IFNULL(V8.MONEY,0)>0 AND IFNULL(LRIT.RENT,0)>0 AND LRIT.FLOWUNID='"+FLOWUNID+"'";
// 代偿反冲-收到的逾期利息
}else if("PZ2019071500000031".equals(VOUCHERNO)){
//sql="SELECT IFNULL(LRI.PENALTY, 0) AS MONEY,IFNULL(V8.MONEY, 0) AS MONEYNOTAX,ROUND((IFNULL(LRI.PENALTY, 0) - IFNULL(V8.MONEY, 0)),2) AS MONEYTAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LRP.CONTRACT_ID,V8.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID,V8.DISTRIBUTOR_NAME,LRP.PLAN_LIST,LRP.ID AS F58,LCI.CONTRACT_NUMBER,LCI.BUSINESSTYPE FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRIT.CONTRACT_ID AND LRP.PLAN_LIST =LRIT.PLAN_LIST LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(IFNULL(PENALTY,0)) AS PENALTY FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST)LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID AND LRI.PLAN_LIST=LRP.PLAN_LIST LEFT JOIN (SELECT SUM(F7) AS MONEY,F58,MAX(F65) AS DISTRIBUTOR_CODING,MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿-代偿逾期利息%' AND F59 = 1 GROUP BY F58) V8 ON V8.F58=LRP.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRP.CONTRACT_ID WHERE LCI.BUSINESSTYPE = '1' AND IFNULL(V8.MONEY, 0) > 0 AND NOT EXISTS (SELECT F58 FROM VOUCHER_V8 WHERE F58 = V8.F58 AND F59 = 1 AND MODULE_NAME LIKE '%代偿反冲-代偿逾期利息%') AND LRIT.FLOWUNID='"+FLOWUNID+"' ";
//sql="SELECT IFNULL(LRI.PENALTY, 0) AS MONEY,IFNULL(V8.MONEY, 0) AS MONEYNOTAX,ROUND((IFNULL(LRI.PENALTY, 0) - IFNULL(V8.MONEY, 0)),2) AS MONEYTAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LRP.CONTRACT_ID,V8.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID,V8.DISTRIBUTOR_NAME,LRP.PLAN_LIST,LRP.ID AS F58,LCI.CONTRACT_NUMBER,LCI.BUSINESSTYPE,CASE WHEN (SELECT EBANK_NUMBER FROM LC_RENT_INCOME WHERE EBANK_NUMBER = IFNULL(LRIT.EBANK_NUMBER, 0) GROUP BY EBANK_NUMBER) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO,CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) ELSE V8.DISTRIBUTOR_CODING END AS DISTRIBUTOR_ID2,CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) ELSE V8.DISTRIBUTOR_NAME END AS DISTRIBUTOR_NAME2 FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = LRIT.CONTRACT_ID AND LRP.PLAN_LIST = LRIT.PLAN_LIST LEFT JOIN LC_EBANK LE ON LE.ID = LRIT.EBANK_NUMBER LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(IFNULL(PENALTY, 0)) AS PENALTY FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN (SELECT SUM(F7) AS MONEY,F58,MAX(F65) AS DISTRIBUTOR_CODING,MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿-代偿逾期利息%' AND F59 = 1 GROUP BY F58) V8 ON V8.F58 = LRP.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRP.CONTRACT_ID WHERE LCI.BUSINESSTYPE = '1' AND IFNULL(V8.MONEY, 0) > 0 AND NOT EXISTS (SELECT F58 FROM VOUCHER_V8 WHERE F58 = V8.F58 AND F59 = 1 AND MODULE_NAME LIKE '%代偿反冲-代偿逾期利息%') AND LRIT.FLOWUNID = '"+FLOWUNID+"' ";
sql="SELECT IFNULL(LRIT.PENALTY, 0) AS MONEY, IFNULL(V8.MONEY, 0) AS MONEYNOTAX, ROUND( ( IFNULL(LRIT.PENALTY, 0) - IFNULL(V8.MONEY, 0) ), 2 ) AS MONEYTAX, DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE, LRP.CONTRACT_ID, DI.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, LRP.PLAN_LIST, LRP.ID AS F58, LCI.CONTRACT_NUMBER, LCI.BUSINESSTYPE, CASE WHEN (SELECT LRI.EBANK_NUMBER FROM LC_RENT_INCOME LRI WHERE EBANK_NUMBER = IFNULL(LRIT.EBANK_NUMBER, 0) AND NOT EXISTS (SELECT 1 FROM LC_RENT_INCOME_TEMP LRIT2 WHERE LRIT2.FLOWUNID = '"+FLOWUNID+"' AND LRIT2.CONTRACT_ID = LRI.CONTRACT_ID AND LRIT2.PLAN_LIST = LRI.PLAN_LIST) GROUP BY LRI.EBANK_NUMBER) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO, CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) ELSE CIF.CUSTOMER_NUM END AS DISTRIBUTOR_ID2, CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) ELSE CIF.CUSTOMERNAME END AS DISTRIBUTOR_NAME2 FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = LRIT.CONTRACT_ID AND LRP.PLAN_LIST = LRIT.PLAN_LIST LEFT JOIN (SELECT RENT_PLAN_ID, MAX(ID) AS ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE = 'bondRepay' AND IFNULL(PENALTY, 0) > 0 GROUP BY RENT_PLAN_ID) DDI ON DDI.RENT_PLAN_ID = LRP.ID LEFT JOIN LC_EBANK LE ON LE.ID = LRIT.EBANK_NUMBER LEFT JOIN (SELECT CONTRACT_ID, PLAN_LIST, SUM(IFNULL(PENALTY, 0)) AS PENALTY FROM LC_RENT_INCOME GROUP BY CONTRACT_ID, PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN (SELECT SUM(F7) AS MONEY, F58, MAX(F65) AS DISTRIBUTOR_CODING, MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿-代偿逾期利息%' AND F59 = 1 GROUP BY F58) V8 ON V8.F58 = DDI.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRP.CONTRACT_ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID WHERE LCI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND DDI.ID IS NOT NULL AND IFNULL(LRIT.PENALTY, 0) > 0 AND LRIT.FLOWUNID = '"+FLOWUNID+"'";
}
rs=Sqlca.getASResultSet(sql);
while(rs.next()){
MONEY = rs.getString("MONEY");
MONEYNOTAX = rs.getString("MONEYNOTAX");
MONEYTAX = rs.getString("MONEYTAX");
ACCOUNT_DATE = rs.getString("ACCOUNT_DATE");
FACT_DATE = rs.getString("FACT_DATE");
CONTRACT_ID = rs.getString("CONTRACT_ID");
leas_form="01";
DISTRIBUTOR_ID = rs.getString("DISTRIBUTOR_ID");
DISTRIBUTOR_NAME = rs.getString("DISTRIBUTOR_NAME");
DISTRIBUTOR_ID2 = rs.getString("DISTRIBUTOR_ID2");
DISTRIBUTOR_NAME2 = rs.getString("DISTRIBUTOR_NAME2");
BUSINESSTYPE = rs.getString("BUSINESSTYPE");
PLAN_LIST = rs.getString("PLAN_LIST");
F58 = rs.getString("F58");
CONTRACT_NUMBER = rs.getString("CONTRACT_NUMBER");
YES_OR_NO = rs.getString("YES_OR_NO");
param.put("FACT_MONEY",MONEY);
param.put("INTERESTNOTAX",MONEYNOTAX);
param.put("TAX",MONEYTAX);
param.put("ACCOUNT_DATE",ACCOUNT_DATE);
param.put("FACT_DATE",FACT_DATE);
param.put("CONTRACT_ID",CONTRACT_ID);
param.put("LEAS_FORM",leas_form);
param.put("CUSTID",DISTRIBUTOR_ID);
param.put("CUSTNAME",DISTRIBUTOR_NAME);
param.put("CUSTID2",DISTRIBUTOR_ID2);
param.put("CUSTNAME2",DISTRIBUTOR_NAME2);
param.put("PLAN_LIST",PLAN_LIST);
param.put("F58",F58);
param.put("CONTRACT_NUMBER",CONTRACT_NUMBER);
param.put("BUSINESSTYPE",BUSINESSTYPE);
param.put("YES_OR_NO",YES_OR_NO);
param.put("VOUCHERNO",VOUCHERNO);
try {
CreateVoucherServiceImpl vs=new CreateVoucherServiceImpl();
String VOUCHER_TYPE="1";// 凭证分类 金蝶
Map<String,String> map=new HashMap<String, String>();
Map<String,String> param=new HashMap<String, String>();
String MONEY=null;
String MONEYNOTAX=null;
String MONEYTAX=null;
String ACCOUNT_DATE=null;
String FACT_DATE=null;
String CONTRACT_ID=null;
String leas_form=null;
String DISTRIBUTOR_ID=null;
String DISTRIBUTOR_NAME=null;
String DISTRIBUTOR_ID2=null;
String DISTRIBUTOR_NAME2=null;
String CONTRACT_NUMBER=null;
String BUSINESSTYPE=null;
String PLAN_LIST=null;
String F58=null;
String YES_OR_NO=null;
String sql="";
param.clear();
map.clear();
map.put("PROJ_TYPE", leas_form);
map.put("VOUCHER_NO", VOUCHERNO);
BizObject vouch=DataOperatorUtil.getSingleJBO(LV_VOUCHER_CONFIG.CLASS_NAME, map, Sqlca);
if(vouch!=null){
vs.createVoucher(vouch.getAttribute("id").getString(),vouch.getAttribute("MODULAR_NUMBER").getString(), vouch.getAttribute("OWNED_COMPANY").getString(), leas_form, VOUCHER_TYPE, userid,param, Sqlca1);
// 代偿反冲-收到的租金
if("PZ2019071500000030".equals(VOUCHERNO)){
sql="SELECT IFNULL(LRIT.RENT,0) AS MONEY, 0.00 AS MONEYNOTAX, 0.00 AS MONEYTAX, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE, LRP.CONTRACT_ID, V8.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, V8.DISTRIBUTOR_NAME, LRP.PLAN_LIST, LRP.ID AS F58, LCI.CONTRACT_NUMBER, LCI.BUSINESSTYPE, CASE WHEN ( SELECT LRI.EBANK_NUMBER FROM LC_RENT_INCOME LRI WHERE EBANK_NUMBER=IFNULL(LRIT.EBANK_NUMBER,0) AND NOT EXISTS(SELECT 1 FROM LC_RENT_INCOME_TEMP LRIT2 WHERE LRIT2.FLOWUNID='"+FLOWUNID+"' AND LRIT2.CONTRACT_ID=LRI.CONTRACT_ID AND LRIT2.PLAN_LIST=LRI.PLAN_LIST) GROUP BY LRI.EBANK_NUMBER ) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO, CASE WHEN ( SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) ELSE CIF.CUSTOMER_NUM END AS DISTRIBUTOR_ID2, CASE WHEN ( SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) ELSE CIF.CUSTOMERNAME END AS DISTRIBUTOR_NAME2 FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRIT.CONTRACT_ID AND LRP.PLAN_LIST=LRIT.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID, MAX(ID) AS ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN LC_EBANK LE ON LE.ID=LRIT.EBANK_NUMBER LEFT JOIN ( SELECT SUM(F7) AS MONEY, F58, MAX(F65) AS DISTRIBUTOR_CODING, MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿-收到代偿的租金%' AND F59='1' AND (F58 IS NOT NULL AND F58<>'') GROUP BY F58 ) V8 ON V8.F58=DDI.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID WHERE LCI.BUSINESSTYPE='1' AND LUL.IS_MAIN='Y' AND IFNULL(V8.MONEY,0)>0 AND IFNULL(LRIT.RENT,0)>0 AND LRIT.FLOWUNID='"+FLOWUNID+"'";
// 代偿反冲-收到的逾期利息
}else if("PZ2019071500000031".equals(VOUCHERNO)){
sql="SELECT IFNULL(LRIT.PENALTY,0) AS MONEY, IFNULL(V8.MONEY,0) AS MONEYNOTAX, ROUND((IFNULL(LRIT.PENALTY,0)-IFNULL(V8.MONEY,0)),2) AS MONEYTAX, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE, LRP.CONTRACT_ID, DI.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, LRP.PLAN_LIST, LRP.ID AS F58, LCI.CONTRACT_NUMBER, LCI.BUSINESSTYPE, CASE WHEN ( SELECT LRI.EBANK_NUMBER FROM LC_RENT_INCOME LRI WHERE EBANK_NUMBER=IFNULL(LRIT.EBANK_NUMBER,0) AND NOT EXISTS(SELECT 1 FROM LC_RENT_INCOME_TEMP LRIT2 WHERE LRIT2.FLOWUNID='"+FLOWUNID+"' AND LRIT2.CONTRACT_ID=LRI.CONTRACT_ID AND LRIT2.PLAN_LIST=LRI.PLAN_LIST) GROUP BY LRI.EBANK_NUMBER ) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO, CASE WHEN ( SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) ELSE CIF.CUSTOMER_NUM END AS DISTRIBUTOR_ID2, CASE WHEN ( SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) ELSE CIF.CUSTOMERNAME END AS DISTRIBUTOR_NAME2 FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRIT.CONTRACT_ID AND LRP.PLAN_LIST=LRIT.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID, MAX(ID) AS ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN ( SELECT RENT_PLAN_ID, MAX(ID) AS ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' AND IFNULL(PENALTY,0)>0 GROUP BY RENT_PLAN_ID ) DDI2 ON DDI2.RENT_PLAN_ID=LRP.ID LEFT JOIN LC_EBANK LE ON LE.ID=LRIT.EBANK_NUMBER LEFT JOIN ( SELECT CONTRACT_ID, PLAN_LIST, SUM(IFNULL(PENALTY,0)) AS PENALTY FROM LC_RENT_INCOME GROUP BY CONTRACT_ID, PLAN_LIST ) LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID AND LRI.PLAN_LIST=LRP.PLAN_LIST LEFT JOIN ( SELECT SUM(F7) AS MONEY, F58, MAX(F65) AS DISTRIBUTOR_CODING, MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿-代偿逾期利息%' AND F59=1 GROUP BY F58 ) V8 ON V8.F58=DDI2.ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID WHERE LCI.BUSINESSTYPE='1' AND LUL.IS_MAIN='Y' AND DDI.ID IS NOT NULL AND IFNULL(LRIT.PENALTY,0)>0 AND LRIT.FLOWUNID='"+FLOWUNID+"'";
}
rs=Sqlca.getASResultSet(sql);
while(rs.next()){
MONEY = rs.getString("MONEY");
MONEYNOTAX = rs.getString("MONEYNOTAX");
MONEYTAX = rs.getString("MONEYTAX");
ACCOUNT_DATE = rs.getString("ACCOUNT_DATE");
FACT_DATE = rs.getString("FACT_DATE");
CONTRACT_ID = rs.getString("CONTRACT_ID");
leas_form="01";
DISTRIBUTOR_ID = rs.getString("DISTRIBUTOR_ID");
DISTRIBUTOR_NAME = rs.getString("DISTRIBUTOR_NAME");
DISTRIBUTOR_ID2 = rs.getString("DISTRIBUTOR_ID2");
DISTRIBUTOR_NAME2 = rs.getString("DISTRIBUTOR_NAME2");
BUSINESSTYPE = rs.getString("BUSINESSTYPE");
PLAN_LIST = rs.getString("PLAN_LIST");
F58 = rs.getString("F58");
CONTRACT_NUMBER = rs.getString("CONTRACT_NUMBER");
YES_OR_NO = rs.getString("YES_OR_NO");
param.put("FACT_MONEY",MONEY);
param.put("INTERESTNOTAX",MONEYNOTAX);
param.put("TAX",MONEYTAX);
param.put("ACCOUNT_DATE",ACCOUNT_DATE);
param.put("FACT_DATE",FACT_DATE);
param.put("CONTRACT_ID",CONTRACT_ID);
param.put("LEAS_FORM",leas_form);
param.put("CUSTID",DISTRIBUTOR_ID);
param.put("CUSTNAME",DISTRIBUTOR_NAME);
param.put("CUSTID2",DISTRIBUTOR_ID2);
param.put("CUSTNAME2",DISTRIBUTOR_NAME2);
param.put("PLAN_LIST",PLAN_LIST);
param.put("F58",F58);
param.put("CONTRACT_NUMBER",CONTRACT_NUMBER);
param.put("BUSINESSTYPE",BUSINESSTYPE);
param.put("YES_OR_NO",YES_OR_NO);
param.put("VOUCHERNO",VOUCHERNO);
map.clear();
map.put("PROJ_TYPE", leas_form);
map.put("VOUCHER_NO", VOUCHERNO);
BizObject vouch=DataOperatorUtil.getSingleJBO(LV_VOUCHER_CONFIG.CLASS_NAME, map, Sqlca);
if(vouch!=null){
vs.createVoucher(vouch.getAttribute("id").getString(),vouch.getAttribute("MODULAR_NUMBER").getString(), vouch.getAttribute("OWNED_COMPANY").getString(), leas_form, VOUCHER_TYPE, userid,param, Sqlca);
}
}
} catch (Exception e) {
e.printStackTrace();
throw new Exception("凭证生成出错!");
}finally {
if(Sqlca!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
if(Sqlca1!=null){
rs.close();
Sqlca1.commit();
Sqlca1.disConnect();
}
}
}

View File

@ -3,27 +3,20 @@ package com.tenwa.voucher.CreateVoucherProcess;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jbo.voucher.LV_VOUCHER_CONFIG;
import jbo.voucher.TAX_CODE;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
public class CreateVoucherRedRentIncome {
public void CreateVoucher(String FlowUnid,String VOUCHERNO,String userid){
public void CreateVoucher(Transaction Sqlca,String FlowUnid,String VOUCHERNO,String userid) throws Exception{
Transaction Sqlca =null;
try{
Map<String,String> map=new HashMap<String, String>();
Map<String,String> param=new HashMap<String, String>();
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
String MONEY=null;
String MONEYNOTAX=null;
String MONEYTAX=null;
@ -57,11 +50,9 @@ public class CreateVoucherRedRentIncome {
map.put("FLOWUNID", FlowUnid);
// 收到的租金
if("PZ2018072100000037".equals(VOUCHERNO) || "PZ2019070100000023".equals(VOUCHERNO)){
//sql = "SELECT ROUND((getTax (lci.LEAS_FORM,'理쏜',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LRIT.INTEREST, 0) AS MONEY,CASE WHEN MONTH(NOW()) = MONTH(LRP.PLAN_DATE) THEN ROUND(IFNULL(LRIT.INTEREST, 0) / getTax (LCI.LEAS_FORM,'理口',LCCT.START_DATE),2) ELSE '0' END AS MONEYNOTAX,CASE WHEN MONTH(NOW()) = MONTH(LRP.PLAN_DATE) THEN (IFNULL(LRIT.INTEREST, 0) - ROUND(IFNULL(LRIT.INTEREST, 0) / getTax (LCI.LEAS_FORM,'理口',LCCT.START_DATE),2)) ELSE '0' END AS MONEYTAX,IFNULL(LRIT.RENT,0) AS RENTMONEY,IFNULL(LRIT.CORPUS, 0) AS CORPUS,CASE WHEN MONTH(NOW()) = MONTH(LRP.PLAN_DATE) THEN (IFNULL(LRIT.CORPUS,0)-ROUND(IFNULL(LRIT.CORPUS,0)/getTax(LCI.LEAS_FORM,'굶쏜',LCCT.START_DATE),2)) ELSE '0' END AS CORPUS_TAX,CASE WHEN MONTH(NOW()) = MONTH(LRP.PLAN_DATE) THEN ((IFNULL(LRIT.CORPUS, 0) - ROUND(IFNULL(LRIT.CORPUS, 0) / getTax (LCI.LEAS_FORM,'굶쏜',LCCT.START_DATE),2))+(IFNULL(LRIT.INTEREST, 0) - ROUND(IFNULL(LRIT.INTEREST, 0) / getTax (LCI.LEAS_FORM,'理口',LCCT.START_DATE),2))) ELSE '0' END AS CORPUS_ADD_INTEREST_TAX,CASE WHEN MONTH(NOW()) = MONTH(LRP.PLAN_DATE) THEN LRIT.INTEREST ELSE '0' END AS INTEREST,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,DI.F_I_TYPE,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LRIT.PLAN_LIST FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = LRIT.CONTRACT_ID AND lrp.plan_list = lrit.plan_list LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRIT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND LRIT.RENT<0 AND LRIT.FLOWUNID = :FLOWUNID ";
sql = "SELECT ROUND((getTax(lci.LEAS_FORM,'租金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LRIT.INTEREST, 0) AS MONEY,CASE WHEN MONTH(NOW()) = MONTH(LRP.PLAN_DATE) THEN ROUND(IFNULL(LRIT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) ELSE '0' END AS MONEYNOTAX,CASE WHEN MONTH(NOW()) = MONTH(LRP.PLAN_DATE) THEN (IFNULL(LRIT.INTEREST, 0) - ROUND(IFNULL(LRIT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) ELSE '0' END AS MONEYTAX,IFNULL(LRIT.RENT, 0) AS RENTMONEY,IFNULL(LRIT.CORPUS, 0) AS CORPUS,CASE WHEN MONTH(NOW()) = MONTH(LRP.PLAN_DATE) THEN (IFNULL(LRIT.CORPUS, 0) - ROUND(IFNULL(LRIT.CORPUS, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) ELSE '0' END AS CORPUS_TAX,CASE WHEN MONTH(NOW()) = MONTH(LRP.PLAN_DATE) THEN ((IFNULL(LRIT.CORPUS, 0) - ROUND(IFNULL(LRIT.CORPUS, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) + (IFNULL(LRIT.INTEREST, 0) - ROUND(IFNULL(LRIT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2))) ELSE '0' END AS CORPUS_ADD_INTEREST_TAX,CASE WHEN MONTH(NOW()) = MONTH(LRP.PLAN_DATE) THEN LRIT.INTEREST ELSE '0' END AS INTEREST,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,DI.F_I_TYPE,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LRIT.PLAN_LIST,LRP.ID AS F58,CASE WHEN (SELECT MAX(F65) AS F65 FROM VOUCHER_V8 WHERE F58=LRP.ID AND F59=1 AND MODULE_NAME LIKE '%回款-收到的租金(网银)%' GROUP BY F58) IS NOT NULL THEN (SELECT MAX(F65) AS F65 FROM VOUCHER_V8 WHERE F58=LRP.ID AND F59=1 AND MODULE_NAME LIKE '%回款-收到的租金(网银)%' GROUP BY F58) ELSE 'APZL00000000DC' END AS RED_CUSTOMER_NUM,CASE WHEN (SELECT MAX(F61) AS F61 FROM VOUCHER_V8 WHERE F58=LRP.ID AND F59=1 AND MODULE_NAME LIKE '%回款-收到的租金(网银)%' GROUP BY F58) IS NOT NULL THEN (SELECT MAX(F61) AS F61 FROM VOUCHER_V8 WHERE F58=LRP.ID AND F59=1 AND MODULE_NAME LIKE '%回款-收到的租金(网银)%' GROUP BY F58) ELSE '汽车C端待查客户' END AS RED_CUSTOMER_NAME FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = LRIT.CONTRACT_ID AND lrp.plan_list = lrit.plan_list LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRIT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND LRIT.RENT < 0 AND LRIT.FLOWUNID = :FLOWUNID ";
// 收到的逾期利息
}else if("PZ2018072100000038".equals(VOUCHERNO) || "PZ2019070100000020".equals(VOUCHERNO)){
//sql= "SELECT ROUND((getTax(lci.LEAS_FORM,'待퍅적口',LCCT.START_DATE)-1)*100,0) AS TAX_NUM,IFNULL(LRIT.PENALTY,0) AS MONEY,ROUND(IFNULL(LRIT.PENALTY,0)/getTax(LCI.LEAS_FORM,'待퍅적口',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRIT.PENALTY,0)-ROUND(IFNULL(LRIT.PENALTY,0)/getTax(LCI.LEAS_FORM,'待퍅적口',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,DI.F_I_TYPE,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LRIT.PLAN_LIST FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRIT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND IFNULL(LRIT.PENALTY, 0)<0 AND LRIT.FLOWUNID=:FLOWUNID ";
sql= "SELECT ROUND((getTax(lci.LEAS_FORM,'逾期利息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LRIT.PENALTY, 0) AS MONEY,ROUND(IFNULL(LRIT.PENALTY, 0) / getTax(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRIT.PENALTY, 0) - ROUND(IFNULL(LRIT.PENALTY, 0) / getTax(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,DI.F_I_TYPE,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LRIT.PLAN_LIST,LRP.ID AS F58,CASE WHEN (SELECT MAX(F65) AS F65 FROM VOUCHER_V8 WHERE F58=LRP.ID AND F59=1 AND MODULE_NAME LIKE '%回款-收到的租金(网银)%' GROUP BY F58) IS NOT NULL THEN (SELECT MAX(F65) AS F65 FROM VOUCHER_V8 WHERE F58=LRP.ID AND F59=1 AND MODULE_NAME LIKE '%回款-收到的租金(网银)%' GROUP BY F58) ELSE 'APZL00000000DC' END AS RED_CUSTOMER_NUM,CASE WHEN (SELECT MAX(F61) AS F61 FROM VOUCHER_V8 WHERE F58=LRP.ID AND F59=1 AND MODULE_NAME LIKE '%回款-收到的租金(网银)%' GROUP BY F58) IS NOT NULL THEN (SELECT MAX(F61) AS F61 FROM VOUCHER_V8 WHERE F58=LRP.ID AND F59=1 AND MODULE_NAME LIKE '%回款-收到的租金(网银)%' GROUP BY F58) ELSE '汽车C端待查客户' END AS RED_CUSTOMER_NAME FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRIT.CONTRACT_ID AND LRP.PLAN_LIST=LRIT.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRIT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND IFNULL(LRIT.PENALTY, 0) < 0 AND LRIT.FLOWUNID = :FLOWUNID ";
// 收到的违约金/罚款
}else if("PZ2018072100000039".equals(VOUCHERNO) || "PZ2019070100000021".equals(VOUCHERNO)) {
@ -173,24 +164,6 @@ public class CreateVoucherRedRentIncome {
if(vouch!=null){
vs.createVoucher(vouch.getAttribute("id").getString(),vouch.getAttribute("MODULAR_NUMBER").getString(), vouch.getAttribute("OWNED_COMPANY").getString(), leas_form, VOUCHER_TYPE, userid,param, Sqlca);
}
}
if(Sqlca!=null){
Sqlca.commit();
}
}catch (Exception e){
e.printStackTrace();
}finally{
if(Sqlca!=null){
try {
Sqlca.disConnect();
} catch (JBOException e) {
e.printStackTrace();
}
Sqlca = null;
}
}
}
}

View File

@ -3,10 +3,8 @@ package com.tenwa.voucher.CreateVoucherProcess;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jbo.voucher.LV_VOUCHER_CONFIG;
import jbo.voucher.TAX_CODE;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.are.jbo.JBOFactory;
@ -17,11 +15,9 @@ import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
public class CreateVoucherRentIncome {
public void CreateVoucher(String flowunid,String VOUCHERNO,String userid) throws Exception{
Transaction Sqlca =null;
public void CreateVoucher(Transaction Sqlca, String flowunid,String VOUCHERNO,String userid) throws Exception{
Map<String,String> map=new HashMap<String, String>();
Map<String,String> param=new HashMap<String, String>();
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
String MONEY=null;
String MONEYNOTAX=null;
String MONEYTAX=null;
@ -58,7 +54,7 @@ public class CreateVoucherRentIncome {
} else if (("PZ2018080400000081".equals(VOUCHERNO)) || ("PZ2019070100000017".equals(VOUCHERNO))) {
sql = "SELECT ROUND((GETTAX(LCI.LEAS_FORM,'×â½ð',LCCT.START_DATE)-1)*100,0) AS TAX_NUM, IFNULL(LRIT.INTEREST,0) AS MONEY, ROUND(IFNULL(LRIT.INTEREST,0)/GETTAX(LCI.LEAS_FORM,'×âÏ¢',LCCT.START_DATE),2) AS MONEYNOTAX, (IFNULL(LRIT.INTEREST,0)-ROUND(IFNULL(LRIT.INTEREST,0)/GETTAX(LCI.LEAS_FORM,'×âÏ¢',LCCT.START_DATE),2)) AS MONEYTAX, IFNULL(LRIT.RENT,0) AS RENTMONEY, IFNULL(LRIT.CORPUS,0) AS CORPUS, DATE_FORMAT(CASE WHEN (LRIT.ACCOUNTING_DATE IS NOT NULL OR LRIT.ACCOUNTING_DATE!='') THEN LRIT.ACCOUNTING_DATE ELSE NOW() END,'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(CASE WHEN (LRIT.HIRE_DATE IS NOT NULL OR LRIT.HIRE_DATE!='') THEN LRIT.HIRE_DATE ELSE NOW() END, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE, LRIT.PLAN_LIST, LRP.ID AS F58, CASE WHEN ( SELECT EBANK_NUMBER FROM LC_RENT_INCOME WHERE EBANK_NUMBER=IFNULL(LRIT.EBANK_NUMBER,0) GROUP BY EBANK_NUMBER ) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO, CASE WHEN ( SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) WHEN ( SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO=LE.CUSTOMER_ID ) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID2, CASE WHEN ( SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) WHEN ( SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO=LE.CUSTOMER_ID ) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME2 FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRIT.CONTRACT_ID AND LRP.PLAN_LIST=LRIT.PLAN_LIST LEFT JOIN LC_EBANK LE ON LE.ID=LRIT.EBANK_NUMBER LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRIT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID=LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE='1' AND LUL.IS_MAIN='Y' AND IFNULL(LRIT.RENT,0)>0 AND DATE_FORMAT(NOW(),'%Y-%m')<>DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m') AND NOT EXISTS(SELECT DDI.ID FROM D_DEPOSITRETURN_INFO DDI WHERE DDI.MONEY_TYPE='bondRepay' AND DDI.RENT_PLAN_ID=LRP.ID ) AND LRIT.FLOWUNID=:FLOWUNID";
} else if (("PZ2018072100000025".equals(VOUCHERNO)) || ("PZ2019070100000014".equals(VOUCHERNO))) {
sql = "SELECT ROUND((GETTAX(LCI.LEAS_FORM,'待퍅적口',LCCT.START_DATE)-1)*100,0) AS TAX_NUM, IFNULL(LRIT.PENALTY,0) AS MONEY, ROUND(IFNULL(LRIT.PENALTY,0)/GETTAX(LCI.LEAS_FORM,'待퍅적口',LCCT.START_DATE),2) AS MONEYNOTAX, (IFNULL(LRIT.PENALTY,0)-ROUND(IFNULL(LRIT.PENALTY,0)/GETTAX(LCI.LEAS_FORM,'待퍅적口',LCCT.START_DATE),2)) AS MONEYTAX, DATE_FORMAT(CASE WHEN (LRIT.ACCOUNTING_DATE IS NOT NULL OR LRIT.ACCOUNTING_DATE!='') THEN LRIT.ACCOUNTING_DATE ELSE NOW() END,'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(CASE WHEN (LRIT.HIRE_DATE IS NOT NULL OR LRIT.HIRE_DATE!='') THEN LRIT.HIRE_DATE ELSE NOW() END, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE, LRIT.PLAN_LIST, LRP.ID AS F58, CASE WHEN ( SELECT EBANK_NUMBER FROM LC_RENT_INCOME WHERE EBANK_NUMBER=IFNULL(LRIT.EBANK_NUMBER,0) GROUP BY EBANK_NUMBER ) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO, CASE WHEN ( SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) WHEN ( SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO=LE.CUSTOMER_ID ) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID2, CASE WHEN ( SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) WHEN ( SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO=LE.CUSTOMER_ID ) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME2 FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRIT.CONTRACT_ID AND LRP.PLAN_LIST=LRIT.PLAN_LIST LEFT JOIN LC_EBANK LE ON LE.ID=LRIT.EBANK_NUMBER LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID=LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE='1' AND LUL.IS_MAIN='Y' AND IFNULL(LRIT.PENALTY,0)>0 AND NOT EXISTS(SELECT DDI.ID FROM D_DEPOSITRETURN_INFO DDI WHERE DDI.MONEY_TYPE='bondRepay' AND IFNULL(DDI.PENALTY,0)>0 AND DDI.RENT_PLAN_ID=LRP.ID ) AND LRIT.FLOWUNID=:FLOWUNID";
sql = "SELECT ROUND((GETTAX(LCI.LEAS_FORM,'待퍅적口',LCCT.START_DATE)-1)*100,0) AS TAX_NUM, IFNULL(LRIT.PENALTY,0) AS MONEY, ROUND(IFNULL(LRIT.PENALTY,0)/GETTAX(LCI.LEAS_FORM,'待퍅적口',LCCT.START_DATE),2) AS MONEYNOTAX, (IFNULL(LRIT.PENALTY,0)-ROUND(IFNULL(LRIT.PENALTY,0)/GETTAX(LCI.LEAS_FORM,'待퍅적口',LCCT.START_DATE),2)) AS MONEYTAX, DATE_FORMAT(CASE WHEN (LRIT.ACCOUNTING_DATE IS NOT NULL OR LRIT.ACCOUNTING_DATE!='') THEN LRIT.ACCOUNTING_DATE ELSE NOW() END,'%Y/%m/%d') AS ACCOUNT_DATE, DATE_FORMAT(CASE WHEN (LRIT.HIRE_DATE IS NOT NULL OR LRIT.HIRE_DATE!='') THEN LRIT.HIRE_DATE ELSE NOW() END, '%Y/%m/%d') AS FACT_DATE, LCCT.CONTRACT_ID, LCI.CONTRACT_NUMBER, LCI.PROJECT_NAME, LCI.LEAS_FORM, DI.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID, DI.DISTRIBUTOR_NAME, DI.F_I_TYPE, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE, LRIT.PLAN_LIST, LRP.ID AS F58, CASE WHEN ( SELECT EBANK_NUMBER FROM LC_RENT_INCOME WHERE EBANK_NUMBER=IFNULL(LRIT.EBANK_NUMBER,0) GROUP BY EBANK_NUMBER ) IS NULL THEN 'YES' ELSE 'NO' END AS YES_OR_NO, CASE WHEN ( SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) WHEN ( SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT DISTRIBUTOR_CODING FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO=LE.CUSTOMER_ID ) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID2, CASE WHEN ( SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID ) WHEN ( SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO=LE.CUSTOMER_ID ) IS NOT NULL THEN ( SELECT DISTRIBUTOR_NAME FROM DISTRIBUTOR_INFO WHERE DISTRIBUTOR_NO=LE.CUSTOMER_ID ) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME2 FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRIT.CONTRACT_ID AND LRP.PLAN_LIST=LRIT.PLAN_LIST LEFT JOIN LC_EBANK LE ON LE.ID=LRIT.EBANK_NUMBER LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID=LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE='1' AND LUL.IS_MAIN='Y' AND IFNULL(LRIT.PENALTY,0)>0 AND NOT EXISTS(SELECT DDI.ID FROM D_DEPOSITRETURN_INFO DDI WHERE DDI.MONEY_TYPE='bondRepay' AND DDI.RENT_PLAN_ID=LRP.ID) AND LRIT.FLOWUNID=:FLOWUNID";
}
@ -148,8 +144,5 @@ public class CreateVoucherRentIncome {
vs.createVoucher(vouch.getAttribute("id").getString(),vouch.getAttribute("MODULAR_NUMBER").getString(), vouch.getAttribute("OWNED_COMPANY").getString(), leas_form, VOUCHER_TYPE, userid,param, Sqlca);
}
}
if(Sqlca!=null){
Sqlca.commit();
}
}
}

View File

@ -0,0 +1,898 @@
package com.tenwa.voucher.CreateVoucherProcess;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
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.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.tenwa.comm.util.date.DateAssistant;
import com.tenwa.jbo.manager.DataUtil;
import com.tenwa.reckon.bean.TabCalBean;
import com.tenwa.reckon.util.DateUtil;
import com.tenwa.reckon.util.TbBeanTools;
import com.tenwa.reckon.util.UUIDUtil;
public class EarlyContract {
// 流程编号
private String flowunid;
// 租赁物编号
private String IDS;
// 提出日期
private String PAYDAY_ADJUST;
// 提请结清租赁物占比
private String REPURCHASE_RATIO;
// 合同ID
private String contractId;
// 合同年利率
private String YEAR_RATE;
// 变更类型
private String ADJUST_TYPE;
// 商定逾期罚息
private String AGREED_PENALTY;
// 其它应收
private String OTHER_IN;
// 投放编号
private String plannumber;
// 产品编号
private String productId;
//
private String calType;
//
private String planList;
//结清方式
private String SettleMethod;
public String getSettleMethod() {
return SettleMethod;
}
public void setSettleMethod(String settleMethod) {
SettleMethod = settleMethod;
}
public String getPlanList() {
return planList;
}
public void setPlanList(String planList) {
this.planList = planList;
}
public String getCalType() {
return calType;
}
public void setCalType(String calType) {
this.calType = calType;
}
public String getPlannumber() {
return plannumber;
}
public void setPlannumber(String plannumber) {
this.plannumber = plannumber;
}
public String getProductId() {
return productId;
}
public void setProductId(String productId) {
this.productId = productId;
}
public String getPAYDAY_ADJUST() {
return PAYDAY_ADJUST;
}
public void setPAYDAY_ADJUST(String pAYDAY_ADJUST) {
PAYDAY_ADJUST = pAYDAY_ADJUST;
}
public String getREPURCHASE_RATIO() {
return REPURCHASE_RATIO;
}
public void setREPURCHASE_RATIO(String rEPURCHASE_RATIO) {
REPURCHASE_RATIO = rEPURCHASE_RATIO;
}
public String getContractId() {
return contractId;
}
public void setContractId(String contractId) {
this.contractId = contractId;
}
public String getYEAR_RATE() {
return YEAR_RATE;
}
public void setYEAR_RATE(String yEAR_RATE) {
YEAR_RATE = yEAR_RATE;
}
public String getADJUST_TYPE() {
return ADJUST_TYPE;
}
public void setADJUST_TYPE(String aDJUST_TYPE) {
ADJUST_TYPE = aDJUST_TYPE;
}
public String getAGREED_PENALTY() {
return AGREED_PENALTY;
}
public void setAGREED_PENALTY(String aGREED_PENALTY) {
AGREED_PENALTY = aGREED_PENALTY;
}
public String getOTHER_IN() {
return OTHER_IN;
}
public void setOTHER_IN(String oTHER_IN) {
OTHER_IN = oTHER_IN;
}
public String getFlowunid() {
return flowunid;
}
public void setFlowunid(String flowunid) {
this.flowunid = flowunid;
}
public String getIDS() {
return IDS;
}
public void setIDS(String iDS) {
IDS = iDS;
}
//校验约定终止日
public String timeInfo(JBOTransaction tx) {
String ret = "true";
String time = "";
Date date1=null;
Date date2=null;
Date date4=null;
Date date5=null;
//获取当前日期
Date date3 = new Date();
Transaction Sqlca = null;
try {
Sqlca = Transaction.createTransaction(tx);
//获取到本月租金计划还款时间
time = Sqlca.getString("select PLAN_DATE from lc_rent_plan_temp lrpt where FLOWUNID = '"+flowunid+"' and substr(PLAN_DATE,1,7) = (select DATE_FORMAT(now(),'%Y/%m') from dual)");
Calendar c = Calendar.getInstance();
Calendar b = Calendar.getInstance();
SimpleDateFormat formatter=new SimpleDateFormat("yyyy/MM/dd");
SimpleDateFormat mon=new SimpleDateFormat("yyyy/MM");
//将本月租金计划还款时间转为时间格式
date1=formatter.parse(time);
//将约定终止日转化为时间格式
date2=formatter.parse(PAYDAY_ADJUST);
c.setTime(date1);
b.setTime(date2);
//获取下月租金计划还款时间月份
c.add(Calendar.MONTH, 1);
b.add(Calendar.MONTH, 0);
String t1 = formatter.format(date3);
date3 = formatter.parse(t1);
String lastMonth1 = mon.format(c.getTime());
date4 = mon.parse(lastMonth1);
//获取约定终止日月份
String lastMonth2 = mon.format(b.getTime());
date5 = mon.parse(lastMonth2);
if(date4.before(date5)) {
ret = "false";
}
}catch(Exception e){
ret = "false";
}
return ""+ret+"";
}
/**
* 获取租赁物比重
*/
public String getReductionRatio(JBOTransaction tx) {
Transaction Sqlca = null;
String REDUCTION_RATIO="";
try {
Sqlca = Transaction.createTransaction(tx);
String idss="";
if(IDS!=null && !"".equals(IDS)) {
String[] ids = IDS.split("@~");
for (String id : ids) {
if("".equals(idss)) {
idss="'"+id+"'";
}else {
idss+=",'"+id+"'";
}
}
}
// 获取租赁物-增融后租赁物价格()
REDUCTION_RATIO = Sqlca.getString("select EQUIP_PRICE as REDUCTION_RATIO from (select SUM(retainfield2) as EQUIP_PRICE from LB_EQUIPMENT_CAR_TEMP where ID in ("+idss+") and FLOWUNID = '"+flowunid+"' group by CONTRACT_ID ) LECT");
REDUCTION_RATIO = new BigDecimal(REDUCTION_RATIO).multiply(new BigDecimal(100)).toString();
DecimalFormat df = new DecimalFormat("#.00");
REDUCTION_RATIO = df.format(Double.valueOf(REDUCTION_RATIO.toString()));
} catch (Exception e) {
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null) {
try {
Sqlca.disConnect();
Sqlca=null;
} catch (JBOException e) {
e.printStackTrace();
}
}
}
return ""+REDUCTION_RATIO+"";
}
/*
* 获取留购价金额
* */
public String getPrice(JBOTransaction tx){
Transaction Sqlca = null;
String NOMINAL_PRICE="";
try {
Sqlca = Transaction.createTransaction(tx);
String idss="";
// 单车留购价
String PRICE = Sqlca.getString("select ifnull(lcct.NOMINAL_PRICE,1)/ ifnull(t.um,1) from lc_calc_condition_temp lcct left join (select count(id) as um from lb_equipment_car_temp lect where FLOWUNID = '"+flowunid+"') t on 1 = 1 where FLOWUNID = '"+flowunid+"'");
double i = 0;
if(IDS!=null && !"".equals(IDS)) {
String[] ids = IDS.split("@~");
for (String id : ids) {
if("".equals(idss)) {
i = i+1;
idss="'"+id+"'";
}else {
i = i+1;
idss+=",'"+id+"'";
}
}
}
NOMINAL_PRICE = String.valueOf(i*Double.valueOf(PRICE));
} catch (Exception e) {
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
return ""+NOMINAL_PRICE+"";
}
//判断本次部分结清是否选取完全部车辆
public String getYesNo(JBOTransaction tx) {
Transaction Sqlca = null;
String YesNo = "";
try {
Sqlca = Transaction.createTransaction(tx);
String idss="";
if(IDS!=null && !"".equals(IDS)) {
String[] ids = IDS.split("@~");
for (String id : ids) {
if("".equals(idss)) {
idss="'"+id+"'";
}else {
idss+=",'"+id+"'";
}
}
}
YesNo = Sqlca.getString("select case when count(id)=0 then 'Y' else 'N' end from lb_equipment_car_temp lect where FLOWUNID = '"+flowunid+"' and id not in ("+idss+") and (TERMINATE_TYPE = '1' or TERMINATE_TYPE is null)");
}catch(Exception e) {
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
return ""+YesNo+"";
}
// 判断合同是否为部分结清
public String Countnum(JBOTransaction tx) {
String Countnum = "";
Transaction Sqlca = null;
try {
Sqlca = Transaction.createTransaction(tx);
Countnum = Sqlca.getString("select count(*) from lc_rent_plan where CONTRACT_ID = '"+contractId+"' and MEMO = '部分结清' ");
}catch(Exception e) {
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
return ""+Countnum+"";
}
//全部结清更新租赁物临时表
public void alterdata(JBOTransaction tx) {
Transaction Sqlca = null;
try {
Sqlca = Transaction.createTransaction(tx);
String sql="UPDATE LB_EQUIPMENT_CAR_TEMP SET TERMINATE_TYPE='3' WHERE (TERMINATE_TYPE IS NULL OR TERMINATE_TYPE='1') AND FLOWUNID='"+flowunid+"' ";
Sqlca.executeSQL(sql);
Sqlca.commit();
}catch(Exception e) {
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
}
/**
* 全部结清将租赁物等于未结清的标记为本次结清如果是部分结清将选中租赁物标记为本次结清
*/
@SuppressWarnings("deprecation")
public String setEquipmentTerminateStatus(JBOTransaction tx) {
Transaction Sqlca = null;
String succeed="true";
try {
Sqlca = Transaction.createTransaction(tx);
/**
* 每次选择全部结清与部分结清初始化租赁物状态
*/
String sql1="UPDATE LB_EQUIPMENT_CAR_TEMP SET TERMINATE_TYPE='1',SETTLE_STATUS='1' WHERE FLOWUNID='"+flowunid+"' AND ifnull(TERMINATE_TYPE,'1') <> '2' ";
Sqlca.executeSQL(sql1);
String sql2="UPDATE LB_EQUIPMENT_CAR_TEMP SET TERMINATE_TYPE='3' WHERE FLOWUNID='"+flowunid+"'";
// 部分结清将选中的变更为本次结清
if(IDS!=null && !"".equals(IDS)) {
String[] ids = IDS.split("@~");
String idss="";
for (String id : ids) {
if("".equals(idss)) {
idss="'"+id+"'";
}else {
idss+=",'"+id+"'";
}
}
sql2 = sql2+" AND ID IN("+idss+")";
Sqlca.executeSQL(sql2);
// 全部结清将未结清租赁物全部转入本次结清租赁物
}else {
Sqlca.executeSQL(sql1);
}
Sqlca.commit();
} catch (Exception e) {
succeed="false";
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null) {
try {
Sqlca.disConnect();
Sqlca=null;
} catch (JBOException e) {
e.printStackTrace();
}
}
}
return ""+succeed+"";
}
// 提前结清撤销是变更租赁物状态
@SuppressWarnings("deprecation")
public String setEquipStatus(JBOTransaction tx) {
Transaction Sqlca = null;
String succeed="true";
try {
Sqlca = Transaction.createTransaction(tx);
/**
* 每次选择全部结清与部分结清初始化租赁物状态
*/
String sql1="UPDATE LB_EQUIPMENT_CAR_TEMP SET TERMINATE_TYPE='1',SETTLE_STATUS='1' WHERE FLOWUNID='"+flowunid+"' AND ifnull(TERMINATE_TYPE,'1') <> '2' ";
Sqlca.executeSQL(sql1);
Sqlca.executeSQL("delete from lc_rent_income_temp where FLOWUNID = '"+flowunid+"'");
Sqlca.commit();
} catch (Exception e) {
succeed="false";
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null) {
try {
Sqlca.disConnect();
Sqlca=null;
} catch (JBOException e) {
e.printStackTrace();
}
}
}
return ""+succeed+"";
}
/**
* 获取结清金额数据
*/
public String getSettlementMoney(JBOTransaction tx){
Transaction Sqlca = null;
try{
Sqlca = Transaction.createTransaction(tx);
// 剩余本金- 本次结清车辆约定终止日次月后所有本金
String CORPUS_OVERAGE = Sqlca.getString("select sum(CORPUS) from lc_rent_plan lrp where STR_TO_DATE(lrp.PLAN_DATE, '%Y/%m/%d')> STR_TO_DATE('"+PAYDAY_ADJUST+"', '%Y/%m/%d') and lrp.CONTRACT_ID = '"+contractId+"'");
if(CORPUS_OVERAGE == null) {
CORPUS_OVERAGE="0.00";
}
// 部分结清车辆未到期本金- 本次结清车辆约定终止日次月后所有本金
BigDecimal cd = new BigDecimal(Double.parseDouble(CORPUS_OVERAGE)*Double.parseDouble(REPURCHASE_RATIO)/100);
double t1 = cd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
String PREMATURE_MONEY = Double.toString(t1);
if(PREMATURE_MONEY == null) {
PREMATURE_MONEY="0.00";
}
// 剩余车辆未到期本金- 本次结清车辆约定终止日次月后所有本金
BigDecimal bg = new BigDecimal(Double.parseDouble(CORPUS_OVERAGE) - Double.parseDouble(PREMATURE_MONEY));
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
String RESIDUE_MONEY = Double.toString(f1);
if(RESIDUE_MONEY == null) {
RESIDUE_MONEY="0.00";
}
// 逾期租金- 本次结清车辆截止约定终止日上月所有逾期租金
String DUN_RENT = Sqlca.getString("select ifnull(sum(round(ifnull(ifnull(LRP.RENT,0),0) - ifnull(ifnull(LRI.RENT,0),0),2)),0) as OVER_RENT from LC_RENT_PLAN LRP left join (select CONTRACT_ID,PLAN_LIST,SUM(ifnull(RENT, 0)) as RENT from LC_RENT_INCOME group by CONTRACT_ID,PLAN_LIST ) LRI on LRI.CONTRACT_ID = LRP.CONTRACT_ID and LRP.PLAN_LIST = LRI.PLAN_LIST where STR_TO_DATE(LRP.PLAN_DATE,'%Y/%m/%d') < STR_TO_DATE('"+PAYDAY_ADJUST+"','%Y/%m/%d') and LRP.CONTRACT_ID = '"+contractId+"'");
if(DUN_RENT == null) {
DUN_RENT="0.00";
}
// return CORPUS_OVERAGE+"@"+PREMATURE_MONEY+"@"+RESIDUE_MONEY+"@"+DUN_RENT+";
return ""+CORPUS_OVERAGE+"@"+PREMATURE_MONEY+"@"+RESIDUE_MONEY+"@"+DUN_RENT+"";
}catch(Exception e){
e.printStackTrace();
return "ERR";
}
}
//提前部分结清只能发起一次
public String getdisposable(JBOTransaction tx){
Transaction Sqlca = null;
String disposable = "";
try {
Sqlca = Transaction.createTransaction(tx);
//获取合同租赁物是否发起过提前部分结清
disposable = Sqlca.getString("select case when count(*)>0 then 'true' else 'false' end from apzl.lb_equipment_car_temp where FLOWUNID = '"+flowunid+"' and TERMINATE_TYPE = '2'");
}catch(Exception e) {
e.printStackTrace();
}
return ""+disposable+"";
}
@SuppressWarnings("unchecked")
public String partSettlement(JBOTransaction tx){
com.amarsoft.awe.util.Transaction Sqlca = null;
try{
TabCalBean bean = TbBeanTools.getTabInfoTrans(calType, flowunid,plannumber,productId,tx);
BigDecimal t = new BigDecimal( "0.01" );
BigDecimal zero = new BigDecimal(0);
Sqlca = com.amarsoft.awe.util.Transaction.createTransaction(tx);
//本次结清租赁物比例
String equipmentRatio = REPURCHASE_RATIO;
String paydayAdjust = PAYDAY_ADJUST;
BigDecimal equipmentRatio2 = new BigDecimal(equipmentRatio).divide(new BigDecimal(100));
BizObjectManager lfratBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_FUND_RENT_ADJUST_TEMP",Sqlca);
BizObject lfrat = lfratBm.createQuery("FLOWUNID='"+flowunid+"'").getSingleResult(true);
String CONTRACT_ID = Sqlca.getString("SELECT lci.id FROM lb_contract_info_temp lcit left join lb_contract_info lci on lci.CONTRACT_NO = lcit.CONTRACT_NO where lcit.FLOWUNID='"+flowunid+"'");
String adjustType = lfrat.getAttribute("ADJUST_TYPE").toString();
// 获取网银
String EBANK_NUMBER = Sqlca.getString("SELECT LE.ID FROM LC_EBANK_TEMP LET LEFT JOIN LC_EBANK LE ON LE.EBANK_NUMBER=LET.EBANK_NUMBER where LET.FLOWUNID='"+flowunid+"'");
String FACT_DATE = Sqlca.getString("SELECT FACT_DATE FROM LC_EBANK_TEMP LET where LET.FLOWUNID='"+flowunid+"'");
// String MAXIMUM_TOTAL = lfrat.getAttribute("MAXIMUM_TOTAL").getString();
// String RECEIVABLE_MONEY02 = MAXIMUM_TOTAL;
// //String OPEN_MONEY = lfrat.getAttribute("OPEN_MONEY").getString();
// // 判断结清类型是否为提前结清
// if("01".equals(adjustType)){
// Sqlca.executeSQL(new SqlObject("update LC_EBANK_TEMP let set HAD_MONEY = HAD_MONEY+"+RECEIVABLE_MONEY02+",MAYOPE_MONEY=MAYOPE_MONEY-"+RECEIVABLE_MONEY02+" where LET.FLOWUNID = '" +flowunid+ "'") );
// }else if("coerce_terminate".equals(adjustType)){
// Sqlca.executeSQL(new SqlObject("update LC_EBANK_TEMP let set HAD_MONEY = HAD_MONEY+MAYOPE_MONEY,MAYOPE_MONEY=MAYOPE_MONEY-MAYOPE_MONEY where LET.FLOWUNID = '" +flowunid+ "'") );
// }
/**
* 变更租金计划表
*/
// 获取日期大于约定终止日所在月的租金计划按比例算出每期租金本金利息,在约定终止日那一月汇总后边的
String planlist = Sqlca.getString("select max(PLAN_LIST) from LC_RENT_PLAN where CONTRACT_ID = '"+contractId+"' and STR_TO_DATE(PLAN_DATE,'%Y/%m/%d')<= STR_TO_DATE('"+paydayAdjust+"','%Y/%m/%d')");
BizObjectManager lrptBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_RENT_PLAN_TEMP",Sqlca);
List<BizObject> lrptBoList = lrptBm.createQuery("FLOWUNID='"+flowunid+"' and plan_list >= '"+planlist+"' order by plan_list desc").getResultList(true);
//查询结清租金
// BigDecimal tax = new BigDecimal( bean.getTax() ).multiply( t );
// BigDecimal other = new BigDecimal( bean.getOther() ).multiply( t ).add( BigDecimal.ONE );
// 获取该合同约定终止日所在月开始所有本金
String SUM_CORPUS = Sqlca.getString("SELECT ifnull(SUM(ifnull(CORPUS,0)),0) FROM LC_RENT_PLAN WHERE CONTRACT_ID='"+contractId+"' AND date_format(STR_TO_DATE(PLAN_DATE,'%Y/%m/%d'),'%Y/%m/%d')>date_format(STR_TO_DATE('"+paydayAdjust+"','%Y/%m/%d'),'%Y/%m/%d')");
// 未结清租金
BigDecimal now_rent = new BigDecimal(0);
// 未结清本金
BigDecimal now_corpus = new BigDecimal(0);
// 结清日最近的一期租金
BigDecimal end_rent = new BigDecimal(0);
// 结清日最近的一期本金
BigDecimal end_corpus = new BigDecimal(0);
// 结清日最近的一期利息
BigDecimal end_interest = new BigDecimal(0);
String last_plan_date = "";
for(int i=0; i<lrptBoList.size();i++) {
BizObject lrptBo = lrptBoList.get(i);
BigDecimal rent= new BigDecimal(0);
BigDecimal corpus= new BigDecimal(0);
BigDecimal interest= new BigDecimal(0);
// 约定终止日所在那一期次, 如果约定日期小于第一期月份本金为0
if(i==lrptBoList.size()-1) {
last_plan_date = lrptBo.getAttribute("PLAN_DATE").getString();
String planList = lrptBo.getAttribute("plan_list").getString();
//获取当期计划表本金和租息
String incomeCorpus = Sqlca.getString("SELECT ifnull(SUM(ifnull(CORPUS,0)),0) FROM LC_RENT_INCOME WHERE CONTRACT_ID='"+contractId+"' AND PLAN_LIST='"+planList+"'");
String incomeInterest = Sqlca.getString("SELECT ifnull(SUM(ifnull(INTEREST,0)),0) FROM LC_RENT_INCOME WHERE CONTRACT_ID='"+contractId+"' AND PLAN_LIST='"+planList+"'");
BigDecimal noIncomeCorpus = new BigDecimal(lrptBo.getAttribute("CORPUS").toString()).subtract(new BigDecimal(incomeCorpus));
BigDecimal noIncomeInterest = new BigDecimal(lrptBo.getAttribute("INTEREST").toString()).subtract(new BigDecimal(incomeInterest));
corpus=new BigDecimal(SUM_CORPUS).subtract(now_corpus).add(new BigDecimal(lrptBo.getAttribute("corpus").toString()));
interest = new BigDecimal(lrptBo.getAttribute("interest").toString());
rent=corpus.add(interest);
//计算调整后实收本金
end_corpus = noIncomeCorpus;
//计算调整后实收租息
end_interest = noIncomeInterest;
}else {
// 获取结清后约定终止日后边期次当期租金计划的租金本金利息
rent = new BigDecimal(lrptBo.getAttribute("RENT").toString()).subtract(new BigDecimal(lrptBo.getAttribute("RENT").toString()).multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
corpus = new BigDecimal(lrptBo.getAttribute("CORPUS").toString()).subtract(new BigDecimal(lrptBo.getAttribute("CORPUS").toString()).multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
interest = new BigDecimal(lrptBo.getAttribute("INTEREST").toString()).subtract(new BigDecimal(lrptBo.getAttribute("INTEREST").toString()).multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
if(interest.compareTo(zero)==1) {
interest=rent.subtract(corpus);
}
now_rent=now_rent.add(rent);
now_corpus=now_corpus.add(corpus);
}
lrptBo.setAttributeValue("RENT",rent.toString());
lrptBo.setAttributeValue("CORPUS_BUSINESS",corpus.toString());
lrptBo.setAttributeValue("CORPUS",corpus.toString());
lrptBo.setAttributeValue("INTEREST_BUSINESS",interest);
lrptBo.setAttributeValue("INTEREST",interest);
lrptBo.setAttributeValue("MEMO","部分结清");
lrptBm.saveObject(lrptBo);
}
// 因为不确定结清日期是否大于等于第一期月份所以不按照月份删除按照实际金额删除
Sqlca.executeSQL(new SqlObject("delete from LC_RENT_PLAN_TEMP where flowunid='"+flowunid+"' AND ifnull(rent,0)=0 AND MEMO='部分结清' "));
/**
* 保证金抵扣租金
* 对应的逾期租金当期租金未到期本金逾期违约金名义价款提前终止合同损失金及其他应收
*/
BizObject lrptBo2 = lrptBm.createQuery("FLOWUNID='"+flowunid+"' ").getSingleResult(false);
//创建租金实收
BizObjectManager lritBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_RENT_INCOME_TEMP",Sqlca);
//创建资金收付
BizObjectManager lfitBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_FUND_INCOME_TEMP",Sqlca);
// 创建资金计划
BizObjectManager lfptBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_FUND_PLAN_TEMP",Sqlca);
String sql="";
if("coerce_terminate".equals(adjustType)){
sql = "select ifnull(LRPT.RENT,0)-ifnull(LRI.RENT,0) as OVER_RENT,ifnull(LRPT.CORPUS,0)-ifnull(LRI.CORPUS,0) as OVER_CORPUS,ifnull(LRPT.INTEREST,0)-ifnull(LRI.INTEREST,0) as OVER_INTEREST,LRPT.PLAN_LIST as PLAN_LIST,LRPT.PLAN_DATE as PLAN_DATE,LRP.PLAN_ID,date_format(now(),'%Y/%m/%d') as ACCOUNTING_DATE,date_format(now(),'%Y/%m/%d %h:%i:%s') as INPUTTIME from(select MAX(ID) as PLAN_ID,CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) as PLAN_DATE,SUM(RENT) as RENT,SUM(CORPUS) as CORPUS,SUM(INTEREST) as INTEREST from LC_RENT_PLAN_TEMP where FLOWUNID = '"+flowunid+"' and CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST ) LRPT left join (select CONTRACT_ID,PLAN_LIST,MAX(ID) as PLAN_ID from LC_RENT_PLAN where CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST )LRP on LRP.CONTRACT_ID = LRPT.CONTRACT_ID and LRP.PLAN_LIST = LRPT.PLAN_LIST left join (select CONTRACT_ID,PLAN_LIST,SUM(RENT) as RENT,SUM(CORPUS) as CORPUS,SUM(INTEREST) as INTEREST from LC_RENT_INCOME where CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST ) LRI on LRI.CONTRACT_ID = LRPT.CONTRACT_ID and LRI.PLAN_LIST = LRPT.PLAN_LIST where ifnull(LRPT.RENT,0)>ifnull(LRI.RENT,0) order by LRPT.PLAN_LIST";
}else{
sql = "select ifnull(LRPT.RENT,0)-ifnull(LRI.RENT,0) as OVER_RENT,ifnull(LRPT.CORPUS,0)-ifnull(LRI.CORPUS,0) as OVER_CORPUS,ifnull(LRPT.INTEREST,0)-ifnull(LRI.INTEREST,0) as OVER_INTEREST,LRPT.PLAN_LIST as PLAN_LIST,LRPT.PLAN_DATE as PLAN_DATE,LRP.PLAN_ID,date_format(now() ,'%Y/%m/%d') as ACCOUNTING_DATE,date_format(now(),'%Y/%m/%d %h:%m:%s') as INPUTTIME from(select MAX(ID) as PLAN_ID,CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) as PLAN_DATE,SUM(RENT) as RENT,SUM(CORPUS) as CORPUS,SUM(INTEREST) as INTEREST from LC_RENT_PLAN_TEMP where FLOWUNID = '"+flowunid+"' and CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST ) LRPT left join (select CONTRACT_ID,PLAN_LIST,MAX(ID) as PLAN_ID from LC_RENT_PLAN where CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST )LRP on LRP.CONTRACT_ID = LRPT.CONTRACT_ID and LRP.PLAN_LIST = LRPT.PLAN_LIST left join (select CONTRACT_ID,PLAN_LIST,SUM(RENT) as RENT,SUM(CORPUS) as CORPUS,SUM(INTEREST) as INTEREST from LC_RENT_INCOME where CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST ) LRI on LRI.CONTRACT_ID = LRPT.CONTRACT_ID and LRI.PLAN_LIST = LRPT.PLAN_LIST where ifnull(LRPT.RENT,0)>ifnull(LRI.RENT,0) and LRPT.PLAN_DATE <= '"+last_plan_date+"' order by LRPT.PLAN_LIST ";
}
/**
* 保证金抵扣留购价款 (强制结清不核销留购价)
*/
BigDecimal REPURCHASE_MONEY = new BigDecimal(lfrat.getAttribute("REPURCHASE_MONEY").toString());
/**
* 处理资金计划表-其他应收
*/
BigDecimal OTHER_IN = new BigDecimal(lfrat.getAttribute("OTHER_IN").toString());
String OTHER_IN_ID = UUID.randomUUID().toString().replaceAll("-","");
if(OTHER_IN.compareTo(zero)>0) {
BizObject lfptBo = lfptBm.newObject();
lfptBo.setAttributeValue("ID",OTHER_IN_ID);
lfptBo.setAttributeValue("PROJECT_ID",lrptBo2.getAttribute("PROJECT_ID"));
lfptBo.setAttributeValue("PROJECT_PLAN_NUMBER",lrptBo2.getAttribute("PROJECT_PLAN_NUMBER"));
lfptBo.setAttributeValue("CONTRACT_ID",lrptBo2.getAttribute("CONTRACT_ID"));
lfptBo.setAttributeValue("CONTRACT_PLAN_NUMBER",lrptBo2.getAttribute("CONTRACT_PLAN_NUMBER"));
lfptBo.setAttributeValue("PAYMENT_NUMBER",lrptBo2.getAttribute("PAYMENT_NUMBER"));
lfptBo.setAttributeValue("PLAN_LIST","1");
lfptBo.setAttributeValue("PAY_TYPE","pay_type_in");
lfptBo.setAttributeValue("FEE_TYPE","feetype8");
lfptBo.setAttributeValue("SETTLE_METHOD","settlemethod6");
lfptBo.setAttributeValue("PLAN_DATE",paydayAdjust);
lfptBo.setAttributeValue("PLAN_MONEY",OTHER_IN.toString());
lfptBo.setAttributeValue("FLOWUNID",flowunid);
lfptBo.setAttributeValue("INPUTTIME",DateUtil.getSystemDateTime());
lfptBm.saveObject(lfptBo);
}
BigDecimal OTHER_OUT = new BigDecimal(lfrat.getAttribute("OTHER_OUT").toString());
String OTHER_OUT_ID = UUID.randomUUID().toString().replaceAll("-","");
if(OTHER_OUT.compareTo(zero)>0) {
BizObject lfptBo = lfptBm.newObject();
lfptBo.setAttributeValue("ID",OTHER_OUT_ID);
lfptBo.setAttributeValue("PROJECT_ID",lrptBo2.getAttribute("PROJECT_ID"));
lfptBo.setAttributeValue("PROJECT_PLAN_NUMBER",lrptBo2.getAttribute("PROJECT_PLAN_NUMBER"));
lfptBo.setAttributeValue("CONTRACT_ID",lrptBo2.getAttribute("CONTRACT_ID"));
lfptBo.setAttributeValue("CONTRACT_PLAN_NUMBER",lrptBo2.getAttribute("CONTRACT_PLAN_NUMBER"));
lfptBo.setAttributeValue("PAYMENT_NUMBER",lrptBo2.getAttribute("PAYMENT_NUMBER"));
lfptBo.setAttributeValue("PLAN_LIST","1");
lfptBo.setAttributeValue("PAY_TYPE","pay_type_out");
lfptBo.setAttributeValue("FEE_TYPE","feetype11");
lfptBo.setAttributeValue("SETTLE_METHOD","settlemethod6");
lfptBo.setAttributeValue("PLAN_DATE",paydayAdjust);
lfptBo.setAttributeValue("PLAN_MONEY",OTHER_OUT.toString());
lfptBo.setAttributeValue("FLOWUNID",flowunid);
lfptBo.setAttributeValue("INPUTTIME",DateUtil.getSystemDateTime());
lfptBm.saveObject(lfptBo);
}
/**
* 租金实收表操作
*/
sql = "SELECT ifnull(LRPT.RENT,0)-ifnull(LRI.RENT,0)-ifnull(LRIT.RENT,0) AS OVER_RENT, ifnull(LRPT.CORPUS,0)-ifnull(LRI.CORPUS,0)-ifnull(LRIT.CORPUS,0) AS OVER_CORPUS, ifnull(LRPT.INTEREST,0)-ifnull(LRI.INTEREST,0)-ifnull(LRIT.INTEREST,0) AS OVER_INTEREST, LRPT.PLAN_LIST AS PLAN_LIST, LRPT.PLAN_DATE AS PLAN_DATE, LRP.PLAN_ID, date_format(now(),'%Y/%m/%d') AS ACCOUNTING_DATE, date_format(now(),'%Y/%m/%d %h:%m:%s') AS INPUTTIME FROM ( SELECT MAX(ID) AS PLAN_ID, CONTRACT_ID, PLAN_LIST, MAX(PLAN_DATE) AS PLAN_DATE, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_PLAN_TEMP WHERE FLOWUNID='"+flowunid+"' AND CONTRACT_ID='"+contractId+"' GROUP BY CONTRACT_ID, PLAN_LIST ) LRPT LEFT JOIN (SELECT CONTRACT_ID, PLAN_LIST, MAX(ID) AS PLAN_ID FROM LC_RENT_PLAN WHERE CONTRACT_ID='"+contractId+"' GROUP BY CONTRACT_ID, PLAN_LIST )LRP ON LRP.CONTRACT_ID=LRPT.CONTRACT_ID AND LRP.PLAN_LIST=LRPT.PLAN_LIST LEFT JOIN ( SELECT CONTRACT_ID, PLAN_LIST, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_INCOME WHERE CONTRACT_ID='"+contractId+"' GROUP BY CONTRACT_ID, PLAN_LIST ) LRI ON LRI.CONTRACT_ID=LRPT.CONTRACT_ID AND LRI.PLAN_LIST=LRPT.PLAN_LIST LEFT JOIN ( SELECT CONTRACT_ID, PLAN_LIST, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_INCOME_TEMP WHERE CONTRACT_ID='"+contractId+"' and FLOWUNID='"+flowunid+"' GROUP BY CONTRACT_ID, PLAN_LIST ) LRIT ON LRIT.CONTRACT_ID=LRPT.CONTRACT_ID AND LRIT.PLAN_LIST=LRPT.PLAN_LIST WHERE ifnull(LRPT.RENT,0)>(ifnull(LRI.RENT,0)+ifnull(LRIT.RENT,0)) AND LRPT.PLAN_LIST<=(SELECT MIN(PLAN_LIST) FROM LC_RENT_PLAN_TEMP WHERE FLOWUNID='"+flowunid+"' AND date_format(STR_TO_DATE(PLAN_DATE,'%Y/%m/%d'),'%Y/%m/%d')>=date_format(STR_TO_DATE('"+paydayAdjust+"','%Y/%m/%d'),'%Y/%m/%d')) ORDER BY LRPT.PLAN_LIST";
List<Map<String, String>> dataList = DataUtil.query(sql, Sqlca);
for(int i=0; i<dataList.size();i++) {
// 获取抵扣前当期应收租金本金利息
String PLAN_LIST=dataList.get(i).get("PLAN_LIST");
String PLAN_DATE = dataList.get(i).get("PLAN_DATE");
String PLAN_ID = dataList.get(i).get("PLAN_ID");
String INPUTTIME = dataList.get(i).get("INPUTTIME");
// end_corpus
BigDecimal over_rent = new BigDecimal(0);
BigDecimal over_corpus = new BigDecimal(0);
BigDecimal over_interest = new BigDecimal(0);
BigDecimal over_penalty = new BigDecimal(0);
if(i==dataList.size()-1) {
if(PLAN_DATE.equals(paydayAdjust)){
over_interest=new BigDecimal(dataList.get(i).get("OVER_INTEREST"));
over_corpus=new BigDecimal(dataList.get(i).get("OVER_CORPUS"));
over_rent=new BigDecimal(dataList.get(i).get("OVER_RENT"));
}
}else {
String overSql = "select ifnull(LRPT.RENT,0) - ifnull(LRI.RENT,0) as OVER_RENT,ifnull(LRPT.CORPUS,0) - ifnull(LRI.CORPUS,0) as OVER_CORPUS,ifnull(LRPT.INTEREST,0) - ifnull(LRI.INTEREST,0) as OVER_INTEREST,LRPT.PLAN_LIST as PLAN_LIST,LRPT.PLAN_DATE as PLAN_DATE,LRP.PLAN_ID,date_format(now() ,'%Y/%m/%d') as ACCOUNTING_DATE,date_format(now() ,'%Y/%m/%d %h/%m/%s') as INPUTTIME from(select MAX(ID) as PLAN_ID,CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) as PLAN_DATE,SUM(RENT) as RENT,SUM(CORPUS) as CORPUS,SUM(INTEREST) as INTEREST from LC_RENT_PLAN_TEMP where FLOWUNID = '"+flowunid+"' and CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST) LRPT left join (select CONTRACT_ID,PLAN_LIST,MAX(ID) as PLAN_ID from LC_RENT_PLAN where CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST) LRP on LRP.CONTRACT_ID = LRPT.CONTRACT_ID and LRP.PLAN_LIST = LRPT.PLAN_LIST left join (select CONTRACT_ID,PLAN_LIST,SUM(RENT) as RENT,SUM(CORPUS) as CORPUS,SUM(INTEREST) as INTEREST from LC_RENT_INCOME where CONTRACT_ID = '"+contractId+"' group by CONTRACT_ID,PLAN_LIST) LRI on LRI.CONTRACT_ID = LRPT.CONTRACT_ID and LRI.PLAN_LIST = LRPT.PLAN_LIST left join VI_LC_RENT_PLAN vlrp on vlrp.CONTRACT_ID = LRPT.CONTRACT_ID and vlrp.PLAN_LIST = LRPT.PLAN_LIST where (ifnull(LRPT.RENT,0) > ifnull(LRI.RENT,0)or vlrp.PENALTY_OVER>0) and LRPT.PLAN_LIST = '"+PLAN_LIST+"' order by LRPT.PLAN_LIST";
List<Map<String, String>> dataOverList = DataUtil.query(overSql, Sqlca);
BigDecimal plan_rent = new BigDecimal(dataOverList.get(0).get("OVER_RENT"));
BigDecimal plan_corpus = new BigDecimal(dataOverList.get(0).get("OVER_CORPUS"));
String factSql = "SELECT CONTRACT_ID, PLAN_LIST, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_INCOME_TEMP WHERE CONTRACT_ID='"+contractId+"' and FLOWUNID='"+flowunid+"' and plan_list='"+PLAN_LIST+"' GROUP BY CONTRACT_ID, PLAN_LIST";
List<Map<String, String>> dataFactList = DataUtil.query(factSql, Sqlca);
BigDecimal old_rent = new BigDecimal(0);
BigDecimal old_corpus = new BigDecimal(0);
if(dataFactList.size()>0){
old_rent = new BigDecimal(dataFactList.get(0).get("RENT"));
old_corpus = new BigDecimal(dataFactList.get(0).get("CORPUS"));
}
over_rent=plan_rent.setScale(2,BigDecimal.ROUND_HALF_UP).subtract(old_rent);
over_corpus=plan_corpus.setScale(2,BigDecimal.ROUND_HALF_UP).subtract(old_corpus);
//提交结清收取逾期利息,强制结清不收利息
if("SETTLE_METHOD02".equals(SettleMethod)){
over_interest=over_rent.subtract(over_corpus);
}else{
over_rent=over_corpus;
}
}
if(over_rent.compareTo(BigDecimal.ZERO)!=0){
BizObject lritBo = lritBm.newObject();
lritBo.setAttributeValue("PROJECT_ID",lrptBo2.getAttribute("PROJECT_ID"));
lritBo.setAttributeValue("PROJECT_PLAN_NUMBER",lrptBo2.getAttribute("PROJECT_PLAN_NUMBER"));
lritBo.setAttributeValue("CONTRACT_ID",lrptBo2.getAttribute("CONTRACT_ID"));
lritBo.setAttributeValue("CONTRACT_PLAN_NUMBER",lrptBo2.getAttribute("CONTRACT_PLAN_NUMBER"));
lritBo.setAttributeValue("PAYMENT_NUMBER",lrptBo2.getAttribute("PAYMENT_NUMBER"));
lritBo.setAttributeValue("PLAN_LIST",PLAN_LIST);
lritBo.setAttributeValue("PLAN_ID",PLAN_ID);
lritBo.setAttributeValue("RENT",over_rent.toString());
lritBo.setAttributeValue("CORPUS",over_corpus.toString());
lritBo.setAttributeValue("INTEREST",over_interest.toString());
lritBo.setAttributeValue("PENALTY",over_penalty);
lritBo.setAttributeValue("HIRE_LIST",getHireList(lrptBo2.getAttribute("PAYMENT_NUMBER").toString(),PLAN_LIST,Sqlca));
lritBo.setAttributeValue("HIRE_DATE",FACT_DATE);
lritBo.setAttributeValue("CORPUS_ADJUST","0.00");
lritBo.setAttributeValue("INTEREST_ADJUST","0.00");
lritBo.setAttributeValue("PENALTY_ADJUST","0.00");
lritBo.setAttributeValue("SETTLE_METHOD","settlemethod6");
lritBo.setAttributeValue("DEDUCTION_ID","");
lritBo.setAttributeValue("ACCOUNTING_DATE",paydayAdjust);
lritBo.setAttributeValue("ROLL_BACK","0");
lritBo.setAttributeValue("FLOWUNID",flowunid);
lritBo.setAttributeValue("IS_FLOWING","0");
lritBo.setAttributeValue("INPUTTIME",INPUTTIME);
lritBo.setAttributeValue("EBANK_NUMBER",EBANK_NUMBER);
lritBm.saveObject(lritBo);
}
}
/**
* 处理保证金未抵扣的留购价款
*/
BizObject boLFP = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_FUND_PLAN",tx).createQuery("CONTRACT_ID='"+CONTRACT_ID+"' and FEE_TYPE='feetype4'").getSingleResult(false);
if(!"coerce_terminate".equals(adjustType)){
if(REPURCHASE_MONEY.compareTo(BigDecimal.ZERO)!=0){
BizObject lfitBo2 = lfitBm.newObject();
lfitBo2.setAttributeValue("ID", UUIDUtil.getUUID());
lfitBo2.setAttributeValue("PROJECT_ID",boLFP.getAttribute("PROJECT_ID").getString());
lfitBo2.setAttributeValue("PROJECT_PLAN_NUMBER",boLFP.getAttribute("PROJECT_PLAN_NUMBER").getString());
lfitBo2.setAttributeValue("CONTRACT_ID",boLFP.getAttribute("CONTRACT_ID").getString());
lfitBo2.setAttributeValue("CONTRACT_PLAN_NUMBER",boLFP.getAttribute("CONTRACT_PLAN_NUMBER").getString());
lfitBo2.setAttributeValue("PAYMENT_NUMBER",boLFP.getAttribute("PAYMENT_NUMBER").getString());
lfitBo2.setAttributeValue("PLAN_ID",boLFP.getAttribute("ID").getString());
lfitBo2.setAttributeValue("PLAN_LIST","1");
lfitBo2.setAttributeValue("PAY_TYPE","pay_type_in");
lfitBo2.setAttributeValue("FEE_TYPE","feetype4");
lfitBo2.setAttributeValue("SETTLE_METHOD","settlemethod6");
lfitBo2.setAttributeValue("CHARGE_LIST","1");
lfitBo2.setAttributeValue("FACT_DATE",paydayAdjust);
lfitBo2.setAttributeValue("FACT_MONEY",REPURCHASE_MONEY);
lfitBo2.setAttributeValue("FEE_ADJUST","0.00");
lfitBo2.setAttributeValue("ACCOUNTING_DATE",paydayAdjust);
lfitBo2.setAttributeValue("ROLL_BACK","0");
lfitBo2.setAttributeValue("FLOWUNID",flowunid);
lfitBo2.setAttributeValue("IS_FLOWING","0");
lfitBo2.setAttributeValue("INPUTTIME", DateAssistant.getTodayNow());
lfitBo2.setAttributeValue("EBANK_NUMBER",EBANK_NUMBER);
lfitBm.saveObject(lfitBo2);
}
}
/**
* 处理保证金未抵扣的其他应收
*/
if(OTHER_IN.compareTo(BigDecimal.ZERO)!=0){
BizObject lfitBo2 = lfitBm.newObject();
lfitBo2.setAttributeValue("ID", UUIDUtil.getUUID());
lfitBo2.setAttributeValue("PROJECT_ID",boLFP.getAttribute("PROJECT_ID").getString());
lfitBo2.setAttributeValue("PROJECT_PLAN_NUMBER",boLFP.getAttribute("PROJECT_PLAN_NUMBER").getString());
lfitBo2.setAttributeValue("CONTRACT_ID",boLFP.getAttribute("CONTRACT_ID").getString());
lfitBo2.setAttributeValue("CONTRACT_PLAN_NUMBER",boLFP.getAttribute("CONTRACT_PLAN_NUMBER").getString());
lfitBo2.setAttributeValue("PAYMENT_NUMBER",boLFP.getAttribute("PAYMENT_NUMBER").getString());
lfitBo2.setAttributeValue("PLAN_ID",OTHER_IN_ID);
lfitBo2.setAttributeValue("PLAN_LIST","1");
lfitBo2.setAttributeValue("PAY_TYPE","pay_type_in");
lfitBo2.setAttributeValue("FEE_TYPE","feetype8");
lfitBo2.setAttributeValue("SETTLE_METHOD","settlemethod6");
lfitBo2.setAttributeValue("CHARGE_LIST","1");
lfitBo2.setAttributeValue("FACT_DATE",paydayAdjust);
lfitBo2.setAttributeValue("FACT_MONEY",OTHER_IN);
lfitBo2.setAttributeValue("FEE_ADJUST","0.00");
lfitBo2.setAttributeValue("ACCOUNTING_DATE",paydayAdjust);
lfitBo2.setAttributeValue("ROLL_BACK","0");
lfitBo2.setAttributeValue("FLOWUNID",flowunid);
lfitBo2.setAttributeValue("IS_FLOWING","0");
lfitBo2.setAttributeValue("INPUTTIME", DateAssistant.getTodayNow());
lfitBo2.setAttributeValue("EBANK_NUMBER",EBANK_NUMBER);
lfitBm.saveObject(lfitBo2);
}
/**
* 租金计划临时表变更回笼状态
*/
List<BizObject> lrptBoList2 = lrptBm.createQuery("FLOWUNID='"+flowunid+"' and v.ifnull(PLAN_STATUS,'未回笼')<>'已回笼' order by plan_list desc").getResultList(false);
for(int i=0;i<lrptBoList2.size();i++) {
String PLAN_LIST = lrptBoList2.get(i).getAttribute("PLAN_LIST").toString();
double RENT = Double.parseDouble(lrptBoList2.get(i).getAttribute("RENT").toString());
DataUtil.executeUpdate("UPDATE LC_RENT_PLAN_TEMP SET PLAN_STATUS=(SELECT CASE WHEN (ifnull(LFIT.RENT,0)+ifnull(LRI.RENT,0))>="+RENT+" THEN '已回笼' WHEN (ifnull(LFIT.RENT,0)+ifnull(LRI.RENT,0))> 0 AND (ifnull(LFIT.RENT,0)+ifnull(LRI.RENT,0))<"+RENT+" THEN '部分回笼' ELSE '未回笼' END FROM (SELECT MAX(CONTRACT_ID) AS CONTRACT_ID, SUM(ifnull(RENT,0)) AS RENT FROM LC_RENT_INCOME_TEMP WHERE FLOWUNID='"+flowunid+"' AND PLAN_LIST='"+PLAN_LIST+"' )LFIT LEFT JOIN (SELECT MAX(CONTRACT_ID) AS CONTRACT_ID, SUM(ifnull(RENT,0)) AS RENT FROM LC_RENT_INCOME WHERE CONTRACT_ID='"+CONTRACT_ID+"' AND PLAN_LIST='"+PLAN_LIST+"' )LRI ON LRI.CONTRACT_ID=LFIT.CONTRACT_ID ) WHERE FLOWUNID='"+flowunid+"' AND PLAN_LIST='"+PLAN_LIST+"'", tx);
}
BizObjectManager lcctBom = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP", Sqlca);
BizObject lcctBo = lcctBom.createQuery("flowunid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false);
BigDecimal clean_lease_money = new BigDecimal(lcctBo.getAttribute("CLEAN_LEASE_MONEY").toString()); //融资额
List<BizObject> lrptBList = lrptBm.createQuery("flowunid=:flowunid order by plan_list").setParameter("flowunid", flowunid).getResultList(true);
for(BizObject lrptB : lrptBList) {
String corpus = lrptB.getAttribute("CORPUS").toString();
BigDecimal bdCorpus = new BigDecimal(corpus);
lrptB.setAttributeValue("ALL_REMAIN_CORPUS", clean_lease_money.subtract(bdCorpus).toString());
clean_lease_money = clean_lease_money.subtract(bdCorpus);
lrptBm.saveObject(lrptB);
}
Sqlca.commit();
}catch(Exception e){
e.printStackTrace();
try {
Sqlca.rollback();
} catch (JBOException jboException) {
jboException.printStackTrace();
}
return "操作失败";
} finally {
try {
if(Sqlca!=null) {
Sqlca.disConnect();
}
} catch (JBOException e) {
e.printStackTrace();
}
}
return "操作成功";
}
/**
* 获取回笼期项
*/
public String getHireList(String paymentNumber,String planList,com.amarsoft.awe.util.Transaction Sqlca) throws Exception{
String hireList = Sqlca.getString("select max(HIRE_LIST) HIRE_LIST from (select max(HIRE_LIST) HIRE_LIST from LC_RENT_INCOME_TEMP where ROLL_BACK='0' and IS_FLOWING='0' and PAYMENT_NUMBER='"+paymentNumber+"' and PLAN_LIST='"+planList+"' union all select max(HIRE_LIST) HIRE_LIST from LC_RENT_INCOME where ROLL_BACK='0' and PAYMENT_NUMBER='"+paymentNumber+"' and PLAN_LIST='"+planList+"') aa");
if(hireList==null){
return "1";
}
int hireList2 = Integer.valueOf(hireList);
return hireList2+1+"";
}
}

View File

@ -2,15 +2,17 @@ package com.tenwa.voucher.CreateVoucherProcess;
import java.util.List;
import java.util.Map;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.are.jbo.JBOTransaction;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.flow.util.FlowUtil;
/**
* 自动及定时任务自动生成代偿凭证
* @author xiezhiwen
*/
public class InsertVoucherRentCompensatory {
/**
@ -35,50 +37,120 @@ public class InsertVoucherRentCompensatory {
* 查询租金实收表, 将需要生成凭证的数据存入中间表
* @throws Exception
*/
public void initLVRentIncome() throws Exception{
public void initLVRentIncome(){
Transaction Sqlca =null;
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
/**
* 查询数据, 判断是否需要执行插入中间表
*/
// 查询是否有当月的, 未生成凭证的数据(经销商代偿)
String sqls11 = "SELECT O.ID FROM D_DEPOSITRETURN_INFO O LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID=O.RENT_PLAN_ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV ON LV.INCOME_ID = O.ID WHERE O.MONEY_TYPE = 'bondRepay' AND DATE_FORMAT(O.INPUTTIME, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND DATE_FORMAT(O.INPUTTIME, '%Y-%m') = DATE_FORMAT(LRP.PLAN_DATE, '%Y-%m') AND LV.INCOME_ID IS NULL AND IFNULL(O.CORPUS, 0) + IFNULL(O.INTEREST, 0) > 0";
// 查询跨月的, 未生成凭证的数据(经销商代偿)
String sqls22 = "SELECT O.ID FROM D_DEPOSITRETURN_INFO O LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID=O.RENT_PLAN_ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV ON LV.INCOME_ID = O.ID WHERE O.MONEY_TYPE = 'bondRepay' AND DATE_FORMAT(O.INPUTTIME, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND DATE_FORMAT(O.INPUTTIME, '%Y-%m') <> DATE_FORMAT(LRP.PLAN_DATE, '%Y-%m') AND LV.INCOME_ID IS NULL AND IFNULL(O.CORPUS, 0) + IFNULL(O.INTEREST, 0) > 0";
// 查询当前数据是否有逾期利息(经销商代偿)
String sqls33 = "SELECT O.ID FROM D_DEPOSITRETURN_INFO O LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID = O.RENT_PLAN_ID LEFT JOIN (SELECT INCOME_ID FROM LV_PENALTY_PLAN GROUP BY INCOME_ID) LV ON LV.INCOME_ID = O.ID WHERE O.MONEY_TYPE = 'bondRepay' AND DATE_FORMAT(O.INPUTTIME, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND LV.INCOME_ID IS NULL AND IFNULL(O.PENALTY, 0) > 0";
List<Map<String,String>> dataList11=DataOperatorUtil.getDataBySql(Sqlca, sqls11, null);
List<Map<String,String>> dataList22=DataOperatorUtil.getDataBySql(Sqlca, sqls22, null);
List<Map<String,String>> dataList33=DataOperatorUtil.getDataBySql(Sqlca, sqls33, null);
/**
* 将数据插入中间表的SQL
*/
// 未逾期及逾期未过月(经销商代偿)
String sql11 = "INSERT INTO LV_RENT_PLAN ( SELECT REPLACE(UUID(), '-', ''), CONCAT('k', getSerialNumber ('凭证号')), CI.CUSTOMER_NUM, CI.CUSTOMERNAME, LCI.ID, LCI.CONTRACT_NUMBER, O.ID, DATE_FORMAT(O.INPUTTIME, '%Y/%m/%d') AS HIRE_DATE, LRP.PLAN_LIST, (IFNULL(O.CORPUS,0)+IFNULL(O.INTEREST,0)) AS RENT, IFNULL(O.CORPUS,0) AS CORPUS, IFNULL(O.INTEREST,0) AS INTEREST, 0.00 AS PENALTY, '' OWN_BANK, '' OWN_ACCOUNT, '' OWN_NUMBER, '' EBANK_NUMBER, '' CARDDEDUCT_ID, DATE_FORMAT(O.INPUTTIME, '%Y/%m/%d') AS ACCOUNTING_DATE, LRP.COLLECT_STATUS, LCI.BUSINESSTYPE, LCI.LEAS_FORM FROM D_DEPOSITRETURN_INFO O LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID=O.RENT_PLAN_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID AND LUL.IS_MAIN='Y' LEFT JOIN CUSTOMER_INFO CI ON CI.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID ) LV ON LV.INCOME_ID = O.ID WHERE O.MONEY_TYPE = 'bondRepay' AND DATE_FORMAT(O.INPUTTIME, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND DATE_FORMAT(O.INPUTTIME, '%Y-%m') = DATE_FORMAT(LRP.PLAN_DATE, '%Y-%m') AND LV.INCOME_ID IS NULL AND IFNULL(O.CORPUS, 0) + IFNULL(O.INTEREST, 0) > 0)";
// 逾期过月(经销商代偿)
String sql22 = "INSERT INTO LV_RENT_PLAN2 ( SELECT REPLACE(UUID(), '-', ''), CONCAT('k', getSerialNumber ('凭证号')), CI.CUSTOMER_NUM, CI.CUSTOMERNAME, LCI.ID, LCI.CONTRACT_NUMBER, O.ID, DATE_FORMAT(O.INPUTTIME, '%Y/%m/%d') AS HIRE_DATE, LRP.PLAN_LIST, (IFNULL(O.CORPUS,0)+IFNULL(O.INTEREST,0)) AS RENT, IFNULL(O.CORPUS,0) AS CORPUS, IFNULL(O.INTEREST,0) AS INTEREST, 0.00 AS PENALTY, '' OWN_BANK, '' OWN_ACCOUNT, '' OWN_NUMBER, '' EBANK_NUMBER, '' CARDDEDUCT_ID, DATE_FORMAT(O.INPUTTIME, '%Y/%m/%d') AS ACCOUNTING_DATE, LRP.COLLECT_STATUS, LCI.BUSINESSTYPE, LCI.LEAS_FORM FROM D_DEPOSITRETURN_INFO O LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID=O.RENT_PLAN_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID AND LUL.IS_MAIN='Y' LEFT JOIN CUSTOMER_INFO CI ON CI.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID ) LV ON LV.INCOME_ID = O.ID WHERE O.MONEY_TYPE = 'bondRepay' AND DATE_FORMAT(O.INPUTTIME, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND DATE_FORMAT(O.INPUTTIME, '%Y-%m') <> DATE_FORMAT(LRP.PLAN_DATE, '%Y-%m') AND LV.INCOME_ID IS NULL AND IFNULL(O.CORPUS, 0) + IFNULL(O.INTEREST, 0) > 0) ";
// 逾期利息(经销商代偿)
String sql33 = "INSERT INTO LV_PENALTY_PLAN ( SELECT REPLACE(UUID(), '-', ''), CONCAT('k', getSerialNumber ('凭证号')) AS VOUCHER_F3, CI.CUSTOMER_NUM, CI.CUSTOMERNAME, LCI.ID, LCI.CONTRACT_NUMBER, O.ID, DATE_FORMAT(O.INPUTTIME, '%Y/%m/%d') AS HIRE_DATE, LRP.PLAN_LIST, 0.00 AS RENT, 0.00 AS CORPUS, 0.00 AS INTEREST, IFNULL(O.PENALTY,0) AS PENALTY, '' OWN_BANK, '' OWN_ACCOUNT, '' OWN_NUMBER, '' EBANK_NUMBER, '' CARDDEDUCT_ID, DATE_FORMAT(O.INPUTTIME, '%Y/%m/%d') AS ACCOUNTING_DATE, LRP.COLLECT_STATUS, LCI.BUSINESSTYPE, LCI.LEAS_FORM FROM D_DEPOSITRETURN_INFO O LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID=O.RENT_PLAN_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID AND LUL.IS_MAIN='Y' LEFT JOIN CUSTOMER_INFO CI ON CI.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN (SELECT INCOME_ID FROM LV_PENALTY_PLAN GROUP BY INCOME_ID ) LV ON LV.INCOME_ID = O.ID WHERE O.MONEY_TYPE = 'bondRepay' AND DATE_FORMAT(O.INPUTTIME, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND LV.INCOME_ID IS NULL AND IFNULL(O.PENALTY,0) > 0)";
/**
* 根据查询语句判断, 有值才执行插入SQL
*/
if(dataList11 != null && !dataList11.isEmpty()) {
SqlObject sqlss11 = new SqlObject(sql11);
Sqlca.executeSQL(sqlss11);
}
if(dataList22 != null && !dataList22.isEmpty()) {
SqlObject sqlss22 = new SqlObject(sql22);
Sqlca.executeSQL(sqlss22);
}
if(dataList33 != null && !dataList33.isEmpty()) {
SqlObject sqlss33 = new SqlObject(sql33);
Sqlca.executeSQL(sqlss33);
}
Sqlca.commit();
if(Sqlca!=null){
Sqlca.disConnect();
try {
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
/**
* 查询数据, 判断是否需要执行插入中间表
*/
// 查询是否有当月的, 未生成凭证的数据(经销商代偿)
String sqls11 = "SELECT O.ID FROM D_DEPOSITRETURN_INFO O LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID=O.RENT_PLAN_ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV ON LV.INCOME_ID = O.ID WHERE O.MONEY_TYPE = 'bondRepay' AND DATE_FORMAT(O.INPUTTIME, '%Y-%m-%d') > DATE_FORMAT('2022-02-22', '%Y-%m-%d') AND DATE_FORMAT(O.INPUTTIME, '%Y-%m') = DATE_FORMAT(LRP.PLAN_DATE, '%Y-%m') AND LV.INCOME_ID IS NULL AND IFNULL(O.CORPUS, 0) + IFNULL(O.INTEREST, 0) > 0";
// 查询跨月的, 未生成凭证的数据(经销商代偿)
String sqls22 = "SELECT O.ID FROM D_DEPOSITRETURN_INFO O LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID=O.RENT_PLAN_ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV ON LV.INCOME_ID = O.ID WHERE O.MONEY_TYPE = 'bondRepay' AND DATE_FORMAT(O.INPUTTIME, '%Y-%m-%d') > DATE_FORMAT('2022-02-22', '%Y-%m-%d') AND DATE_FORMAT(O.INPUTTIME, '%Y-%m') <> DATE_FORMAT(LRP.PLAN_DATE, '%Y-%m') AND LV.INCOME_ID IS NULL AND IFNULL(O.CORPUS, 0) + IFNULL(O.INTEREST, 0) > 0";
// 查询当前数据是否有逾期利息(经销商代偿)
String sqls33 = "SELECT O.ID FROM D_DEPOSITRETURN_INFO O LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID = O.RENT_PLAN_ID LEFT JOIN (SELECT INCOME_ID FROM LV_PENALTY_PLAN GROUP BY INCOME_ID) LV ON LV.INCOME_ID = O.ID WHERE O.MONEY_TYPE = 'bondRepay' AND DATE_FORMAT(O.INPUTTIME, '%Y-%m-%d') > DATE_FORMAT('2022-02-22', '%Y-%m-%d') AND LV.INCOME_ID IS NULL AND IFNULL(O.PENALTY, 0) > 0";
/**
* 将数据插入中间表
*/
String insertSql="";
SqlObject sqlObj=null;
String F3="";
String ID="";
// 当月代偿租金
List<Map<String,String>> dataList11=DataOperatorUtil.getDataBySql(Sqlca, sqls11, null);
if(dataList11 != null && !dataList11.isEmpty()) {
for(int i=0;i<dataList11.size();i++) {
F3="";
ID="";
try {
F3="k"+FlowUtil.getVoucher_Number(Sqlca);
} catch (Exception e) {
e.printStackTrace();
continue;
}
try {
ID = dataList11.get(i).get("ID");
// 未逾期及逾期未过月(经销商代偿)
insertSql = "INSERT INTO LV_RENT_PLAN ( SELECT REPLACE(UUID(),'-',''), '"+F3+"', CI.CUSTOMER_NUM, CI.CUSTOMERNAME, LCI.ID, LCI.CONTRACT_NUMBER, O.ID, DATE_FORMAT(O.INPUTTIME,'%Y/%m/%d') AS HIRE_DATE, LRP.PLAN_LIST, (IFNULL(O.CORPUS,0)+IFNULL(O.INTEREST,0)) AS RENT, IFNULL(O.CORPUS,0) AS CORPUS, IFNULL(O.INTEREST,0) AS INTEREST, 0.00 AS PENALTY, '' AS OWN_BANK, '' AS OWN_ACCOUNT, '' AS OWN_NUMBER, '' AS EBANK_NUMBER, '' AS CARDDEDUCT_ID, DATE_FORMAT(O.INPUTTIME,'%Y/%m/%d') AS ACCOUNTING_DATE, LRP.COLLECT_STATUS, LCI.BUSINESSTYPE, LCI.LEAS_FORM FROM D_DEPOSITRETURN_INFO O LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID=O.RENT_PLAN_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID AND LUL.IS_MAIN='Y' LEFT JOIN CUSTOMER_INFO CI ON CI.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN ( SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID ) LV ON LV.INCOME_ID=O.ID WHERE O.ID='"+ID+"' AND LV.INCOME_ID IS NULL )";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
// 逾期过月(经销商代偿)
List<Map<String,String>> dataList22=DataOperatorUtil.getDataBySql(Sqlca, sqls22, null);
if(dataList22 != null && !dataList22.isEmpty()) {
for(int i=0;i<dataList22.size();i++) {
F3="";
ID="";
try {
F3="k"+FlowUtil.getVoucher_Number(Sqlca);
} catch (Exception e) {
e.printStackTrace();
continue;
}
try {
ID = dataList22.get(i).get("ID");
insertSql = "INSERT INTO LV_RENT_PLAN2 ( SELECT REPLACE(UUID(),'-',''), '"+F3+"', CI.CUSTOMER_NUM, CI.CUSTOMERNAME, LCI.ID, LCI.CONTRACT_NUMBER, O.ID, DATE_FORMAT(O.INPUTTIME,'%Y/%m/%d') AS HIRE_DATE, LRP.PLAN_LIST, (IFNULL(O.CORPUS,0)+IFNULL(O.INTEREST,0)) AS RENT, IFNULL(O.CORPUS,0) AS CORPUS, IFNULL(O.INTEREST,0) AS INTEREST, 0.00 AS PENALTY, '' AS OWN_BANK, '' AS OWN_ACCOUNT, '' AS OWN_NUMBER, '' AS EBANK_NUMBER, '' AS CARDDEDUCT_ID, DATE_FORMAT(O.INPUTTIME,'%Y/%m/%d') AS ACCOUNTING_DATE, LRP.COLLECT_STATUS, LCI.BUSINESSTYPE, LCI.LEAS_FORM FROM D_DEPOSITRETURN_INFO O LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID=O.RENT_PLAN_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID AND LUL.IS_MAIN='Y' LEFT JOIN CUSTOMER_INFO CI ON CI.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN ( SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID ) LV ON LV.INCOME_ID=O.ID WHERE O.ID='"+ID+"' AND LV.INCOME_ID IS NULL )";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
// 逾期利息(经销商代偿)
List<Map<String,String>> dataList33=DataOperatorUtil.getDataBySql(Sqlca, sqls33, null);
if(dataList33 != null && !dataList33.isEmpty()) {
for(int i=0;i<dataList33.size();i++) {
F3="";
ID="";
try {
F3="k"+FlowUtil.getVoucher_Number(Sqlca);
} catch (Exception e) {
e.printStackTrace();
continue;
}
try {
ID = dataList33.get(i).get("ID");
insertSql = "INSERT INTO LV_PENALTY_PLAN ( SELECT REPLACE(UUID(),'-',''), '"+F3+"' AS VOUCHER_F3, CI.CUSTOMER_NUM, CI.CUSTOMERNAME, LCI.ID, LCI.CONTRACT_NUMBER, O.ID, DATE_FORMAT(O.INPUTTIME,'%Y/%m/%d') AS HIRE_DATE, LRP.PLAN_LIST, 0.00 AS RENT, 0.00 AS CORPUS, 0.00 AS INTEREST, IFNULL(O.PENALTY,0) AS PENALTY, '' AS OWN_BANK, '' AS OWN_ACCOUNT, '' AS OWN_NUMBER, '' AS EBANK_NUMBER, '' AS CARDDEDUCT_ID, DATE_FORMAT(O.INPUTTIME,'%Y/%m/%d') AS ACCOUNTING_DATE, LRP.COLLECT_STATUS, LCI.BUSINESSTYPE, LCI.LEAS_FORM FROM D_DEPOSITRETURN_INFO O LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID=O.RENT_PLAN_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID AND LUL.IS_MAIN='Y' LEFT JOIN CUSTOMER_INFO CI ON CI.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN ( SELECT INCOME_ID FROM LV_PENALTY_PLAN GROUP BY INCOME_ID ) LV ON LV.INCOME_ID=O.ID WHERE O.ID='"+ID+"' AND LV.INCOME_ID IS NULL )";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
Sqlca.commit();
} catch (Exception e) {
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null){
try {
Sqlca.commit();
} catch (JBOException e) {
e.printStackTrace();
}
try {
Sqlca.disConnect();
} catch (JBOException e) {
e.printStackTrace();
}
}
}
}
@ -87,105 +159,169 @@ public class InsertVoucherRentCompensatory {
* @param VOUCHERNO
* @throws Exception
*/
public void CreateVoucher() throws Exception{
public void CreateVoucher() {
Transaction Sqlca =null;
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
/**
* 查询中间表, 判断是否有数据需要执行
*/
/**
* 汽车回租
*/
// 当月的租金(经销商代偿)-(汽车回租)
String sqlqh11 = "SELECT O.ID FROM LV_RENT_PLAN O LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=O.INCOME_ID WHERE DATE_FORMAT(O.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND IFNULL(O.RENT,0)>0 AND O.BUSINESSTYPE='1' AND O.LEAS_FORM='02' AND V8.F58 IS NULL";
// 本月以前的租金(经销商代偿)-(汽车回租)
String sqlqh22 = "SELECT O.ID FROM LV_RENT_PLAN2 O LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=O.INCOME_ID WHERE DATE_FORMAT(O.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND IFNULL(O.RENT,0)>0 AND O.BUSINESSTYPE='1' AND O.LEAS_FORM='02' AND V8.F58 IS NULL";
// 逾期利息(经销商代偿)-(汽车回租)
String sqlqh33 = "SELECT O.PENALTY FROM LV_PENALTY_PLAN O LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-代偿逾期利息' AND F58 IS NOT NULL AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-07', '%Y-%m-%d') GROUP BY F58 ) V8 ON V8.F58=O.INCOME_ID WHERE DATE_FORMAT(O.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND IFNULL(O.PENALTY,0)>0 AND O.BUSINESSTYPE='1' AND O.LEAS_FORM='02' AND V8.F58 IS NULL";
try {
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
/**
* 查询中间表, 判断是否有数据需要执行
*/
/**
* 汽车回租
*/
// 当月的租金(经销商代偿)-(汽车回租)
String sqlqh11 = "SELECT O.ID FROM LV_RENT_PLAN O LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-22', '%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=O.INCOME_ID WHERE DATE_FORMAT(O.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-22', '%Y-%m-%d') AND IFNULL(O.RENT,0)>0 AND O.BUSINESSTYPE='1' AND O.LEAS_FORM='02' AND V8.F58 IS NULL";
// 本月以前的租金(经销商代偿)-(汽车回租)
String sqlqh22 = "SELECT O.ID FROM LV_RENT_PLAN2 O LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-22', '%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=O.INCOME_ID WHERE DATE_FORMAT(O.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-22', '%Y-%m-%d') AND IFNULL(O.RENT,0)>0 AND O.BUSINESSTYPE='1' AND O.LEAS_FORM='02' AND V8.F58 IS NULL";
// 逾期利息(经销商代偿)-(汽车回租)
String sqlqh33 = "SELECT O.ID,O.PENALTY FROM LV_PENALTY_PLAN O LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-代偿逾期利息' AND F58 IS NOT NULL AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-22', '%Y-%m-%d') GROUP BY F58 ) V8 ON V8.F58=O.INCOME_ID WHERE DATE_FORMAT(O.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-22', '%Y-%m-%d') AND IFNULL(O.PENALTY,0)>0 AND O.BUSINESSTYPE='1' AND O.LEAS_FORM='02' AND V8.F58 IS NULL";
/**
* 汽车直租
*/
// 当月的租金(经销商代偿)-(汽车直租)
String sqlqz11 = "SELECT O.ID FROM LV_RENT_PLAN O LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=O.INCOME_ID WHERE DATE_FORMAT(O.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND IFNULL(O.RENT,0)>0 AND O.BUSINESSTYPE='1' AND O.LEAS_FORM='01' AND V8.F58 IS NULL";
// 本月以前的租金(经销商代偿)-(汽车直租)
String sqlqz22 = "SELECT O.ID FROM LV_RENT_PLAN2 O LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=O.INCOME_ID WHERE DATE_FORMAT(O.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND IFNULL(O.RENT,0)>0 AND O.BUSINESSTYPE='1' AND O.LEAS_FORM='01' AND V8.F58 IS NULL";
// 逾期利息(经销商代偿)-(汽车直租)
String sqlqz33 = "SELECT O.PENALTY FROM LV_PENALTY_PLAN O LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-代偿逾期利息' AND F58 IS NOT NULL AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-07', '%Y-%m-%d') GROUP BY F58 ) V8 ON V8.F58=O.INCOME_ID WHERE DATE_FORMAT(O.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND IFNULL(O.PENALTY,0)>0 AND O.BUSINESSTYPE='1' AND O.LEAS_FORM='01' AND V8.F58 IS NULL";
/**
* 汽车直租
*/
// 当月的租金(经销商代偿)-(汽车直租)
String sqlqz11 = "SELECT O.ID FROM LV_RENT_PLAN O LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-22', '%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=O.INCOME_ID WHERE DATE_FORMAT(O.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-22', '%Y-%m-%d') AND IFNULL(O.RENT,0)>0 AND O.BUSINESSTYPE='1' AND O.LEAS_FORM='01' AND V8.F58 IS NULL";
// 本月以前的租金(经销商代偿)-(汽车直租)
String sqlqz22 = "SELECT O.ID FROM LV_RENT_PLAN2 O LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-22', '%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=O.INCOME_ID WHERE DATE_FORMAT(O.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-22', '%Y-%m-%d') AND IFNULL(O.RENT,0)>0 AND O.BUSINESSTYPE='1' AND O.LEAS_FORM='01' AND V8.F58 IS NULL";
// 逾期利息(经销商代偿)-(汽车直租)
String sqlqz33 = "SELECT O.ID,O.PENALTY FROM LV_PENALTY_PLAN O LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-代偿逾期利息' AND F58 IS NOT NULL AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-22', '%Y-%m-%d') GROUP BY F58 ) V8 ON V8.F58=O.INCOME_ID WHERE DATE_FORMAT(O.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-22', '%Y-%m-%d') AND IFNULL(O.PENALTY,0)>0 AND O.BUSINESSTYPE='1' AND O.LEAS_FORM='01' AND V8.F58 IS NULL";
/**
* 汽车回租
*/
List<Map<String,String>> dataListqh11=DataOperatorUtil.getDataBySql(Sqlca, sqlqh11, null);
List<Map<String,String>> dataListqh22=DataOperatorUtil.getDataBySql(Sqlca, sqlqh22, null);
List<Map<String,String>> dataListqh33=DataOperatorUtil.getDataBySql(Sqlca, sqlqh33, null);
/**
* 汽车直租
*/
List<Map<String,String>> dataListqz11=DataOperatorUtil.getDataBySql(Sqlca, sqlqz11, null);
List<Map<String,String>> dataListqz22=DataOperatorUtil.getDataBySql(Sqlca, sqlqz22, null);
List<Map<String,String>> dataListqz33=DataOperatorUtil.getDataBySql(Sqlca, sqlqz33, null);
/**
* 汽车类-回租
*/
// 收到的租金--经销商代偿-当月的-(汽车回租)
String sql_whereqh11 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到代偿的租金-',LVRI.PLAN_LIST) ELSE '收到代偿的租金' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT WHEN LV.SORT_NUMBER='2' THEN LVRI.INTEREST ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='3' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='4' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='5' THEN ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='6' THEN (LVRI.INTEREST-ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' OR LV.SORT_NUMBER='6' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='6' THEN '' WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_NAME ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='6' THEN '' WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_CODING ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='5' THEN '0604' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='6' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_PLAN LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019053000000001') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=LVRI.INCOME_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND IFNULL(LVRI.RENT,0)>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
// 收到的租金--经销商代偿-跨月的-(汽车回租)
String sql_whereqh22 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到代偿的租金-',LVRI.PLAN_LIST) ELSE '收到代偿的租金' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='3' THEN LVRI.INTEREST ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_NAME ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_CODING ELSE LVRI.CUST_ID END AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_PLAN2 LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019053000000002') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=LVRI.INCOME_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND IFNULL(LVRI.RENT,0)>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
//收到的逾期利息--经销商代偿-(汽车回租)
String sql_whereqh33 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('代偿逾期利息-',LVRI.PLAN_LIST) ELSE '代偿逾期利息' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.PENALTY ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.PENALTY ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='2' THEN LCI.CONTRACT_NUMBER ELSE '' END AS F60, DI.DISTRIBUTOR_NAME AS F61, LV.LOAN_SUBJECT AS F62, DI.DISTRIBUTOR_CODING AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_PENALTY_PLAN LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019053000000003') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-代偿逾期利息' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=LVRI.INCOME_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND IFNULL(LVRI.PENALTY,0)>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
/**
* 汽车类-直租
*/
// 收到的租金--经销商代偿-当月的-(汽车直租)
String sql_whereqz11 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到代偿的租金-',LVRI.PLAN_LIST) ELSE '收到代偿的租金' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT WHEN LV.SORT_NUMBER='2' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='3' THEN (LVRI.CORPUS-ROUND(LVRI.CORPUS/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='4' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='5' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='6' THEN ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='7' THEN ((LVRI.CORPUS-ROUND(LVRI.CORPUS/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) +(LVRI.INTEREST-ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'利息',LCCT.START_DATE),2))) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' OR LV.SORT_NUMBER='7' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='7' THEN '' WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_NAME ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='7' THEN '' WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_CODING ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='6' THEN '0604' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='7' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_PLAN LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019070100000012') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=LVRI.INCOME_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND IFNULL(LVRI.RENT,0)>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='01' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
// 收到的租金--经销商代偿-跨月的-(汽车直租)
String sql_whereqz22 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到代偿的租金-',LVRI.PLAN_LIST) ELSE '收到代偿的租金' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='3' THEN LVRI.INTEREST ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_NAME ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_CODING ELSE LVRI.CUST_ID END AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_PLAN2 LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019070100000013') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-07', '%Y-%m-%d') GROUP BY F58 ) V8 ON V8.F58=LVRI.INCOME_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND IFNULL(LVRI.RENT,0)>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='01' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
//收到的逾期利息--经销商代偿-(汽车直租)
String sql_whereqz33 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('代偿逾期利息-',LVRI.PLAN_LIST) ELSE '代偿逾期利息' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.PENALTY ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.PENALTY ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='2' THEN LCI.CONTRACT_NUMBER ELSE '' END AS F60, DI.DISTRIBUTOR_NAME AS F61, LV.LOAN_SUBJECT AS F62, DI.DISTRIBUTOR_CODING AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_PENALTY_PLAN LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019070100000011') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME='代偿-代偿逾期利息' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=LVRI.INCOME_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE, '%Y-%m-%d') > DATE_FORMAT('2022-02-07', '%Y-%m-%d') AND IFNULL(LVRI.PENALTY,0)>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='01' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
/**
* 根据查询语句判断, 有值才执行插入SQL
*/
/**
* 汽车回租
*/
if(dataListqh11 != null && !dataListqh11.isEmpty()) {
SqlObject sqlsqh11 = new SqlObject(sql_whereqh11);
Sqlca.executeSQL(sqlsqh11);
}
if(dataListqh22 != null && !dataListqh22.isEmpty()) {
SqlObject sqlsqh22 = new SqlObject(sql_whereqh22);
Sqlca.executeSQL(sqlsqh22);
}
if(dataListqh33 != null && !dataListqh33.isEmpty()) {
SqlObject sqlsqh33 = new SqlObject(sql_whereqh33);
Sqlca.executeSQL(sqlsqh33);
}
/**
* 汽车直租
*/
if(dataListqz11 != null && !dataListqz11.isEmpty()) {
SqlObject sqlsqz11 = new SqlObject(sql_whereqz11);
Sqlca.executeSQL(sqlsqz11);
}
if(dataListqz22 != null && !dataListqz22.isEmpty()) {
SqlObject sqlsqz22 = new SqlObject(sql_whereqz22);
Sqlca.executeSQL(sqlsqz22);
}
if(dataListqz33 != null && !dataListqz33.isEmpty()) {
SqlObject sqlsqz33 = new SqlObject(sql_whereqz33);
Sqlca.executeSQL(sqlsqz33);
}
Sqlca.commit();
System.out.println("***********************************************************");
System.out.println("**********************已生成代偿凭证**************************");
System.out.println("***********************************************************");
if(Sqlca!=null){
Sqlca.disConnect();
/**
* 根据查询语句判断, 有值才执行插入SQL
* 汽车回租
*/
String insertSql="";
SqlObject sqlObj=null;
String ID="";
// 收到的租金--经销商代偿-当月的-(汽车回租)
List<Map<String,String>> dataListqh11=DataOperatorUtil.getDataBySql(Sqlca, sqlqh11, null);
if(dataListqh11 != null && !dataListqh11.isEmpty()) {
for(int i=0;i<dataListqh11.size();i++) {
ID="";
try {
ID = dataListqh11.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到代偿的租金-',LVRI.PLAN_LIST) ELSE '收到代偿的租金' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT WHEN LV.SORT_NUMBER='2' THEN LVRI.INTEREST ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='3' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='4' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='5' THEN ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='6' THEN (LVRI.INTEREST-ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' OR LV.SORT_NUMBER='6' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='6' THEN '' WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_NAME ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='6' THEN '' WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_CODING ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='5' THEN '0604' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='6' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_PLAN LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019053000000001') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME='代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-22','%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=LVRI.INCOME_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
// 收到的租金--经销商代偿-跨月的-(汽车回租)
List<Map<String,String>> dataListqh22=DataOperatorUtil.getDataBySql(Sqlca, sqlqh22, null);
if(dataListqh22 != null && !dataListqh22.isEmpty()) {
for(int i=0;i<dataListqh22.size();i++) {
ID="";
try {
ID = dataListqh22.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到代偿的租金-',LVRI.PLAN_LIST) ELSE '收到代偿的租金' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='3' THEN LVRI.INTEREST ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_NAME ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_CODING ELSE LVRI.CUST_ID END AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_PLAN2 LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019053000000002') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME='代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-22','%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=LVRI.INCOME_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
//收到的逾期利息--经销商代偿-(汽车回租)
List<Map<String,String>> dataListqh33=DataOperatorUtil.getDataBySql(Sqlca, sqlqh33, null);
if(dataListqh33 != null && !dataListqh33.isEmpty()) {
for(int i=0;i<dataListqh33.size();i++) {
ID="";
try {
ID = dataListqh33.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('代偿逾期利息-',LVRI.PLAN_LIST) ELSE '代偿逾期利息' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.PENALTY ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.PENALTY ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='2' THEN LCI.CONTRACT_NUMBER ELSE '' END AS F60, DI.DISTRIBUTOR_NAME AS F61, LV.LOAN_SUBJECT AS F62, DI.DISTRIBUTOR_CODING AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_PENALTY_PLAN LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019053000000003') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME='代偿-代偿逾期利息' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-22','%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=LVRI.INCOME_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
/**
* 汽车直租
*/
// 收到的租金--经销商代偿-当月的-(汽车直租)
List<Map<String,String>> dataListqz11=DataOperatorUtil.getDataBySql(Sqlca, sqlqz11, null);
if(dataListqz11 != null && !dataListqz11.isEmpty()) {
for(int i=0;i<dataListqz11.size();i++) {
ID="";
try {
ID = dataListqz11.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到代偿的租金-',LVRI.PLAN_LIST) ELSE '收到代偿的租金' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT WHEN LV.SORT_NUMBER='2' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='3' THEN (LVRI.CORPUS-ROUND(LVRI.CORPUS/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='4' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='5' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='6' THEN ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='7' THEN ((LVRI.CORPUS-ROUND(LVRI.CORPUS/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) +(LVRI.INTEREST-ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'利息',LCCT.START_DATE),2))) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' OR LV.SORT_NUMBER='7' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='7' THEN '' WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_NAME ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='7' THEN '' WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_CODING ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='6' THEN '0604' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='7' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_PLAN LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019070100000012') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME='代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-22','%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=LVRI.INCOME_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
// 收到的租金--经销商代偿-跨月的-(汽车直租)
List<Map<String,String>> dataListqz22=DataOperatorUtil.getDataBySql(Sqlca, sqlqz22, null);
if(dataListqz22 != null && !dataListqz22.isEmpty()) {
for(int i=0;i<dataListqz22.size();i++) {
ID="";
try {
ID = dataListqz22.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到代偿的租金-',LVRI.PLAN_LIST) ELSE '收到代偿的租金' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='3' THEN LVRI.INTEREST ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_NAME ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN DI.DISTRIBUTOR_CODING ELSE LVRI.CUST_ID END AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_PLAN2 LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019070100000013') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME='代偿-收到代偿的租金' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-22','%Y-%m-%d') GROUP BY F58 ) V8 ON V8.F58=LVRI.INCOME_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
List<Map<String,String>> dataListqz33=DataOperatorUtil.getDataBySql(Sqlca, sqlqz33, null);
if(dataListqz33 != null && !dataListqz33.isEmpty()) {
for(int i=0;i<dataListqz33.size();i++) {
ID="";
try {
ID = dataListqz33.get(i).get("ID");
//收到的逾期利息--经销商代偿-(汽车直租)
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('代偿逾期利息-',LVRI.PLAN_LIST) ELSE '代偿逾期利息' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.PENALTY ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.PENALTY ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='2' THEN LCI.CONTRACT_NUMBER ELSE '' END AS F60, DI.DISTRIBUTOR_NAME AS F61, LV.LOAN_SUBJECT AS F62, DI.DISTRIBUTOR_CODING AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_PENALTY_PLAN LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019070100000011') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME='代偿-代偿逾期利息' AND DATE_FORMAT(GENERATE_DATE,'%Y-%m-%d')>DATE_FORMAT('2022-02-22','%Y-%m-%d') AND F58 IS NOT NULL GROUP BY F58 ) V8 ON V8.F58=LVRI.INCOME_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
Sqlca.commit();
System.out.println("***********************************************************");
System.out.println("**********************已生成代偿凭证**************************");
System.out.println("***********************************************************");
} catch (Exception e) {
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null){
try {
Sqlca.commit();
} catch (JBOException e) {
e.printStackTrace();
}
try {
Sqlca.disConnect();
} catch (JBOException e) {
e.printStackTrace();
}
}
}
}
}

View File

@ -3,18 +3,17 @@ package com.tenwa.voucher.CreateVoucherProcess;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherMethodSettle.IncomeVoucher;
import com.tenwa.flow.util.FlowUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 定时任务生成卡扣租金及逾期利息凭证
* @author xiezhiwen
*/
public class InsertVoucherRentIncome {
private static final Logger logger = LoggerFactory.getLogger(InsertVoucherRentIncome.class);
@ -33,115 +32,184 @@ public class InsertVoucherRentIncome {
* 查询租金实收表, 将需要生成凭证的数据存入中间表
* @throws Exception
*/
public void initLVRentIncome() throws Exception{
public void initLVRentIncome() {
Transaction Sqlca =null;
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
int a=0;
int b=0;
int c=0;
/**
* 查询数据, 判断是否需要执行插入中间表---改SQL别跨行
*/
// 查询是否有当月的, 未生成凭证的数据(卡扣)
logger.info("InsertVoucherRentIncome 20210906 新增fc_yc_overdue_repay_plan联表查询代码【开始】");
String sqls1="SELECT LRI.RENT FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME GROUP BY INCOME_ID, LRI_ID ) LV1 ON LV1.INCOME_ID=LRP.ID AND LV1.LRI_ID=LRI.ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME2 GROUP BY INCOME_ID, LRI_ID ) LV2 ON LV2.INCOME_ID=LRP.ID AND LV2.LRI_ID=LRI.ID LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') AND LRI.RENT>0 AND FYORP.ID IS NULL AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND DDI.RENT_PLAN_ID IS NULL) AND DATE_FORMAT(NOW(),'%Y-%m')=DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 查询跨月的, 未生成凭证的数W据(卡扣)
String sqls2="SELECT LRI.RENT FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME GROUP BY INCOME_ID, LRI_ID ) LV1 ON LV1.INCOME_ID=LRP.ID AND LV1.LRI_ID=LRI.ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME2 GROUP BY INCOME_ID, LRI_ID ) LV2 ON LV2.INCOME_ID=LRP.ID AND LV2.LRI_ID=LRI.ID LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') AND LRI.RENT>0 AND FYORP.ID IS NULL AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND DDI.RENT_PLAN_ID IS NULL) AND DATE_FORMAT(NOW(),'%Y-%m')<>DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 查询当前数据是否有逾期利息(卡扣)
String sqls3="SELECT LRI.PENALTY FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_PENALTY_INCOME GROUP BY INCOME_ID, LRI_ID ) LV1 ON LV1.INCOME_ID=LRI.PLAN_ID AND LV1.LRI_ID=LRI.ID LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' AND IFNULL(PENALTY,0)>0 GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') AND IFNULL(LRI.PENALTY,0)>0 AND FYORP.ID IS NULL AND (LV1.INCOME_ID IS NULL AND DDI.RENT_PLAN_ID IS NULL)";
try {
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
/**
* 查询数据, 判断是否需要执行插入中间表---改SQL别跨行
*/
// 查询是否有当月的, 未生成凭证的数据(卡扣)
logger.info("InsertVoucherRentIncome 20210906 新增fc_yc_overdue_repay_plan联表查询代码【开始】");
String sqls1="SELECT LRI.ID,LRI.RENT FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME GROUP BY INCOME_ID, LRI_ID ) LV1 ON LV1.INCOME_ID=LRP.ID AND LV1.LRI_ID=LRI.ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME2 GROUP BY INCOME_ID, LRI_ID ) LV2 ON LV2.INCOME_ID=LRP.ID AND LV2.LRI_ID=LRI.ID LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') AND LRI.RENT>0 AND FYORP.ID IS NULL AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND DDI.RENT_PLAN_ID IS NULL) AND DATE_FORMAT(NOW(),'%Y-%m')=DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 查询跨月的, 未生成凭证的数W据(卡扣)
String sqls2="SELECT LRI.ID,LRI.RENT FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME GROUP BY INCOME_ID, LRI_ID ) LV1 ON LV1.INCOME_ID=LRP.ID AND LV1.LRI_ID=LRI.ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME2 GROUP BY INCOME_ID, LRI_ID ) LV2 ON LV2.INCOME_ID=LRP.ID AND LV2.LRI_ID=LRI.ID LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') AND LRI.RENT>0 AND FYORP.ID IS NULL AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND DDI.RENT_PLAN_ID IS NULL) AND DATE_FORMAT(NOW(),'%Y-%m')<>DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 查询当前数据是否有逾期利息(卡扣)
String sqls3="SELECT LRI.ID,LRI.PENALTY FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_PENALTY_INCOME GROUP BY INCOME_ID, LRI_ID ) LV1 ON LV1.INCOME_ID=LRI.PLAN_ID AND LV1.LRI_ID=LRI.ID LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' AND IFNULL(PENALTY,0)>0 GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') AND IFNULL(LRI.PENALTY,0)>0 AND FYORP.ID IS NULL AND (LV1.INCOME_ID IS NULL AND DDI.RENT_PLAN_ID IS NULL)";
// 代偿反冲租金
String sqls4="SELECT LRI.RENT, LRI.ID AS F56 FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿反冲-收到代偿的租金' AND (F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V8 ON V8.F56=LRI.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('AutoBuckle','WXUnionPay','TLCollect') AND IFNULL(LRI.RENT,0)>0 AND FYORP.ID IS NULL AND DDI.RENT_PLAN_ID IS NOT NULL AND V8.F56 IS NULL";
// 代偿反冲逾期利息
String slqs5="SELECT LRI.PENALTY, LRI.ID AS F56 FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' AND IFNULL(PENALTY,0)>0 GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿反冲-代偿逾期利息' AND (F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V8 ON V8.F56=LRI.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('AutoBuckle','WXUnionPay','TLCollect') AND IFNULL(LRI.PENALTY,0)>0 AND FYORP.ID IS NULL AND DDI.RENT_PLAN_ID IS NOT NULL AND V8.F56 IS NULL";
// 代偿反冲租金微信WXPay
String sqls6="SELECT LRI.RENT, LRI.ID AS F56 FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿反冲-收到代偿的租金-微信' AND (F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V8 ON V8.F56=LRI.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('WXPay') AND IFNULL(LRI.RENT,0)>0 AND FYORP.ID IS NULL AND DDI.RENT_PLAN_ID IS NOT NULL AND V8.F56 IS NULL";
// 代偿反冲逾期利息微信
String slqs7="SELECT LRI.PENALTY, LRI.ID AS F56 FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' AND IFNULL(PENALTY,0)>0 GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿反冲-代偿逾期利息-微信' AND (F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V8 ON V8.F56=LRI.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('WXPay') AND IFNULL(LRI.PENALTY,0)>0 AND FYORP.ID IS NULL AND DDI.RENT_PLAN_ID IS NOT NULL AND V8.F56 IS NULL";
// 代偿反冲租金
String sqls4="SELECT LRI.RENT, LRI.ID AS F56 FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE (MODULE_NAME = '代偿反冲-收到代偿的租金' OR MODULE_NAME = '代偿反冲-收到代偿的租金-微信银联') AND (F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V8 ON V8.F56=LRI.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('AutoBuckle','WXUnionPay','TLCollect') AND IFNULL(LRI.RENT,0)>0 AND FYORP.ID IS NULL AND DDI.RENT_PLAN_ID IS NOT NULL AND V8.F56 IS NULL";
// 代偿反冲逾期利息
String slqs5="SELECT LRI.PENALTY, LRI.ID AS F56 FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' AND IFNULL(PENALTY,0)>0 GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE (MODULE_NAME = '代偿反冲-代偿逾期利息' OR MODULE_NAME = '代偿反冲-代偿逾期利息-微信银联') AND (F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V8 ON V8.F56=LRI.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('AutoBuckle','WXUnionPay','TLCollect') AND IFNULL(LRI.PENALTY,0)>0 AND FYORP.ID IS NULL AND DDI.RENT_PLAN_ID IS NOT NULL AND V8.F56 IS NULL";
// 代偿反冲租金微信WXPay
String sqls6="SELECT LRI.RENT, LRI.ID AS F56 FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿反冲-收到代偿的租金-微信' AND (F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V8 ON V8.F56=LRI.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('WXPay') AND IFNULL(LRI.RENT,0)>0 AND FYORP.ID IS NULL AND DDI.RENT_PLAN_ID IS NOT NULL AND V8.F56 IS NULL";
// 代偿反冲逾期利息微信
String slqs7="SELECT LRI.PENALTY, LRI.ID AS F56 FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' AND IFNULL(PENALTY,0)>0 GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN ( SELECT F56 FROM VOUCHER_V8 WHERE MODULE_NAME = '代偿反冲-代偿逾期利息-微信' AND (F56 IS NOT NULL AND F56<>'') GROUP BY F56 ) V8 ON V8.F56=LRI.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('WXPay') AND IFNULL(LRI.PENALTY,0)>0 AND FYORP.ID IS NULL AND DDI.RENT_PLAN_ID IS NOT NULL AND V8.F56 IS NULL";
List<Map<String,String>> dataList1=DataOperatorUtil.getDataBySql(Sqlca, sqls1, null);
List<Map<String,String>> dataList2=DataOperatorUtil.getDataBySql(Sqlca, sqls2, null);
List<Map<String,String>> dataList3=DataOperatorUtil.getDataBySql(Sqlca, sqls3, null);
List<Map<String,String>> dataList4=DataOperatorUtil.getDataBySql(Sqlca, sqls4, null);
List<Map<String,String>> dataList5=DataOperatorUtil.getDataBySql(Sqlca, slqs5, null);
List<Map<String,String>> dataList6=DataOperatorUtil.getDataBySql(Sqlca, sqls6, null);
List<Map<String,String>> dataList7=DataOperatorUtil.getDataBySql(Sqlca, slqs7, null);
logger.info("InsertVoucherRentIncome 20210906 新增fc_yc_overdue_repay_plan联表查询代码【结束】");
/**
* 将数据插入中间表的SQL
*/
// 未逾期及逾期未过月(卡扣)
String sql1="INSERT INTO LV_RENT_INCOME ( SELECT REPLACE(UUID(),'-',''), CONCAT('k',GETSERIALNUMBER('凭证号')), CIF.CUSTOMER_NUM, CIF.CUSTOMERNAME, LCI.ID, LCI.CONTRACT_NUMBER, LRP.ID, LRI.HIRE_DATE, LRP.PLAN_LIST, LRI.RENT, LRI.CORPUS, LRI.INTEREST, 0.00, LRI.OWN_BANK, LRI.OWN_ACCOUNT, LRI.OWN_NUMBER, LRI.EBANK_NUMBER, LRI.CARDDEDUCT_ID, LRI.ACCOUNTING_DATE, LRI.CHARGE_WAY AS COLLECT_STATUS, LCI.BUSINESSTYPE, LCI.LEAS_FORM, LRI.ID FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRI.CONTRACT_ID AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID AND LUL.IS_MAIN='Y' LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME GROUP BY INCOME_ID, LRI_ID ) LV1 ON LV1.INCOME_ID=LRI.PLAN_ID AND LV1.LRI_ID=LRI.ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME2 GROUP BY INCOME_ID, LRI_ID ) LV2 ON LV2.INCOME_ID=LRI.PLAN_ID AND LV2.LRI_ID=LRI.ID LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') AND LRI.RENT>0 AND FYORP.ID IS NULL AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND DDI.RENT_PLAN_ID IS NULL) AND DATE_FORMAT(NOW(),'%Y-%m')=DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m') )";
// 逾期过月(卡扣)
String sql2="INSERT INTO LV_RENT_INCOME2 ( SELECT REPLACE(UUID(),'-',''), CONCAT('k',GETSERIALNUMBER('凭证号')), CIF.CUSTOMER_NUM, CIF.CUSTOMERNAME, LCI.ID, LCI.CONTRACT_NUMBER, LRP.ID, LRI.HIRE_DATE, LRP.PLAN_LIST, LRI.RENT, LRI.CORPUS, LRI.INTEREST, 0.00, LRI.OWN_BANK, LRI.OWN_ACCOUNT, LRI.OWN_NUMBER, LRI.EBANK_NUMBER, LRI.CARDDEDUCT_ID, LRI.ACCOUNTING_DATE, LRI.CHARGE_WAY AS COLLECT_STATUS, LCI.BUSINESSTYPE, LCI.LEAS_FORM, LRI.ID FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRI.CONTRACT_ID AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID AND LUL.IS_MAIN='Y' LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME GROUP BY INCOME_ID, LRI_ID ) LV1 ON LV1.INCOME_ID=LRI.PLAN_ID AND LV1.LRI_ID=LRI.ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME2 GROUP BY INCOME_ID, LRI_ID ) LV2 ON LV2.INCOME_ID=LRI.PLAN_ID AND LV2.LRI_ID=LRI.ID LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') AND LRI.RENT>0 AND FYORP.ID IS NULL AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND DDI.RENT_PLAN_ID IS NULL) AND DATE_FORMAT(NOW(),'%Y-%m')<>DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m') )";
// 逾期利息(卡扣)
String sql3="INSERT INTO LV_PENALTY_INCOME ( SELECT REPLACE(UUID(),'-',''), CONCAT('k',GETSERIALNUMBER('凭证号')), CIF.CUSTOMER_NUM, CIF.CUSTOMERNAME, LCI.ID, LCI.CONTRACT_NUMBER, LRP.ID, LRI.HIRE_DATE, LRP.PLAN_LIST, 0.00, 0.00, 0.00, LRI.PENALTY, LRI.OWN_BANK, LRI.OWN_ACCOUNT, LRI.OWN_NUMBER, LRI.EBANK_NUMBER, LRI.CARDDEDUCT_ID, LRI.ACCOUNTING_DATE, LRI.CHARGE_WAY AS COLLECT_STATUS, LCI.BUSINESSTYPE, LCI.LEAS_FORM, LRI.ID FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRI.CONTRACT_ID AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID AND LUL.IS_MAIN='Y' LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_PENALTY_INCOME GROUP BY INCOME_ID, LRI_ID ) LV1 ON LV1.INCOME_ID=LRI.PLAN_ID AND LV1.LRI_ID=LRI.ID LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' AND IFNULL(PENALTY,0)>0 GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID LEFT JOIN FC_YC_OVERDUE_REPAY_PLAN FYORP ON FYORP.RENT_PLAN_ID=LRI.PLAN_ID WHERE DATE_FORMAT(LRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') AND IFNULL(LRI.PENALTY,0)>0 AND FYORP.ID IS NULL AND (LV1.INCOME_ID IS NULL AND DDI.RENT_PLAN_ID IS NULL) )";
/**
* 根据查询语句判断, 有值才执行插入SQL
*/
if(dataList1 != null && !dataList1.isEmpty()) {
SqlObject sqlss1 = new SqlObject(sql1);
a = Sqlca.executeSQL(sqlss1);
System.out.println("本次当月需生成卡扣租金凭证数据:"+a+"");
}
if(dataList2 != null && !dataList2.isEmpty()) {
SqlObject sqlss2 = new SqlObject(sql2);
b = Sqlca.executeSQL(sqlss2);
System.out.println("本次跨月需生成卡扣租金凭证数据:"+b+"");
}
if(dataList3 != null && !dataList3.isEmpty()) {
SqlObject sqlss3 = new SqlObject(sql3);
c = Sqlca.executeSQL(sqlss3);
System.out.println("本次需生成卡扣逾期利息凭证数据:"+c+"");
}
Sqlca.commit();
/**
* 收取租金时, 如果已经经销商代偿, 生成反冲代偿凭证; 将租金id存入集合, 遍历结合, 通过id生成凭证
*/
CreateVoucherRedCompensatory cvrc = new CreateVoucherRedCompensatory();
List<String> list = new ArrayList<String>();
for (Map<String, String> map1 : dataList4) {
if(!list.contains(map1.get("F56"))){
list.add(map1.get("F56"));
/**
* 将数据插入中间表的SQL
* 根据查询语句判断, 有值才执行插入SQL
*/
String insertSql="";
String ID="";
String F3="";
SqlObject sqlObj=null;
// 未逾期及逾期未过月(卡扣)
List<Map<String,String>> dataList1=DataOperatorUtil.getDataBySql(Sqlca, sqls1, null);
if(dataList1 != null && !dataList1.isEmpty()) {
for(int i=0; i<dataList1.size(); i++) {
F3="";
ID="";
try {
F3="k"+FlowUtil.getVoucher_Number(Sqlca);
} catch (Exception e) {
e.printStackTrace();
continue;
}
try {
ID = dataList1.get(i).get("ID");
insertSql="INSERT INTO LV_RENT_INCOME ( SELECT REPLACE(UUID(),'-',''), '"+F3+"', CIF.CUSTOMER_NUM, CIF.CUSTOMERNAME, LCI.ID, LCI.CONTRACT_NUMBER, LRP.ID, LRI.HIRE_DATE, LRP.PLAN_LIST, LRI.RENT, LRI.CORPUS, LRI.INTEREST, 0.00, LRI.OWN_BANK, LRI.OWN_ACCOUNT, LRI.OWN_NUMBER, LRI.EBANK_NUMBER, LRI.CARDDEDUCT_ID, LRI.ACCOUNTING_DATE, LRI.CHARGE_WAY AS COLLECT_STATUS, LCI.BUSINESSTYPE, LCI.LEAS_FORM, LRI.ID FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRI.CONTRACT_ID AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID AND LUL.IS_MAIN='Y' LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME GROUP BY INCOME_ID, LRI_ID ) LV1 ON LV1.INCOME_ID=LRI.PLAN_ID AND LV1.LRI_ID=LRI.ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME2 GROUP BY INCOME_ID, LRI_ID ) LV2 ON LV2.INCOME_ID=LRI.PLAN_ID AND LV2.LRI_ID=LRI.ID LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID WHERE LRI.ID='"+ID+"' AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND DDI.RENT_PLAN_ID IS NULL) )";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
System.out.println("本次当月需生成卡扣租金凭证数据:"+dataList1.size()+"");
}
}
for (Map<String, String> map2 : dataList5) {
if(!list.contains(map2.get("F56"))){
list.add(map2.get("F56"));
// 逾期过月(卡扣)
List<Map<String,String>> dataList2=DataOperatorUtil.getDataBySql(Sqlca, sqls2, null);
if(dataList2 != null && !dataList2.isEmpty()) {
for(int i=0; i<dataList2.size(); i++) {
F3="";
ID="";
try {
F3="k"+FlowUtil.getVoucher_Number(Sqlca);
} catch (Exception e) {
e.printStackTrace();
continue;
}
try {
ID = dataList2.get(i).get("ID");
insertSql="INSERT INTO LV_RENT_INCOME2 ( SELECT REPLACE(UUID(),'-',''), '"+F3+"', CIF.CUSTOMER_NUM, CIF.CUSTOMERNAME, LCI.ID, LCI.CONTRACT_NUMBER, LRP.ID, LRI.HIRE_DATE, LRP.PLAN_LIST, LRI.RENT, LRI.CORPUS, LRI.INTEREST, 0.00, LRI.OWN_BANK, LRI.OWN_ACCOUNT, LRI.OWN_NUMBER, LRI.EBANK_NUMBER, LRI.CARDDEDUCT_ID, LRI.ACCOUNTING_DATE, LRI.CHARGE_WAY AS COLLECT_STATUS, LCI.BUSINESSTYPE, LCI.LEAS_FORM, LRI.ID FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRI.CONTRACT_ID AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID AND LUL.IS_MAIN='Y' LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME GROUP BY INCOME_ID, LRI_ID ) LV1 ON LV1.INCOME_ID=LRI.PLAN_ID AND LV1.LRI_ID=LRI.ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_RENT_INCOME2 GROUP BY INCOME_ID, LRI_ID ) LV2 ON LV2.INCOME_ID=LRI.PLAN_ID AND LV2.LRI_ID=LRI.ID LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID WHERE LRI.ID='"+ID+"' AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND DDI.RENT_PLAN_ID IS NULL) )";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
System.out.println("本次跨月需生成卡扣租金凭证数据:"+dataList2.size()+"");
}
}
List<String> list2 = new ArrayList<String>();
for (Map<String, String> map1 : dataList6) {
if(!list2.contains(map1.get("F56"))){
list2.add(map1.get("F56"));
// 逾期利息(卡扣)
List<Map<String,String>> dataList3=DataOperatorUtil.getDataBySql(Sqlca, sqls3, null);
if(dataList3 != null && !dataList3.isEmpty()) {
for(int i=0; i<dataList3.size(); i++) {
F3="";
ID="";
try {
F3="k"+FlowUtil.getVoucher_Number(Sqlca);
} catch (Exception e) {
e.printStackTrace();
continue;
}
try {
ID = dataList3.get(i).get("ID");
insertSql="INSERT INTO LV_PENALTY_INCOME ( SELECT REPLACE(UUID(),'-',''), '"+F3+"', CIF.CUSTOMER_NUM, CIF.CUSTOMERNAME, LCI.ID, LCI.CONTRACT_NUMBER, LRP.ID, LRI.HIRE_DATE, LRP.PLAN_LIST, 0.00, 0.00, 0.00, LRI.PENALTY, LRI.OWN_BANK, LRI.OWN_ACCOUNT, LRI.OWN_NUMBER, LRI.EBANK_NUMBER, LRI.CARDDEDUCT_ID, LRI.ACCOUNTING_DATE, LRI.CHARGE_WAY AS COLLECT_STATUS, LCI.BUSINESSTYPE, LCI.LEAS_FORM, LRI.ID FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LRI.CONTRACT_ID AND LRP.PLAN_LIST=LRI.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID AND LUL.IS_MAIN='Y' LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN ( SELECT INCOME_ID, LRI_ID FROM LV_PENALTY_INCOME GROUP BY INCOME_ID, LRI_ID ) LV1 ON LV1.INCOME_ID=LRI.PLAN_ID AND LV1.LRI_ID=LRI.ID LEFT JOIN ( SELECT RENT_PLAN_ID FROM D_DEPOSITRETURN_INFO WHERE MONEY_TYPE='bondRepay' AND IFNULL(PENALTY,0)>0 GROUP BY RENT_PLAN_ID ) DDI ON DDI.RENT_PLAN_ID=LRP.ID WHERE LRI.ID='"+ID+"' AND (LV1.INCOME_ID IS NULL AND DDI.RENT_PLAN_ID IS NULL) )";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
System.out.println("本次需生成卡扣逾期利息凭证数据:"+dataList3.size()+"");
}
}
for (Map<String, String> map2 : dataList7) {
if(!list2.contains(map2.get("F56"))){
list2.add(map2.get("F56"));
}
}
List<Map<String,String>> dataList4=DataOperatorUtil.getDataBySql(Sqlca, sqls4, null);
List<Map<String,String>> dataList5=DataOperatorUtil.getDataBySql(Sqlca, slqs5, null);
List<Map<String,String>> dataList6=DataOperatorUtil.getDataBySql(Sqlca, sqls6, null);
List<Map<String,String>> dataList7=DataOperatorUtil.getDataBySql(Sqlca, slqs7, null);
logger.info("InsertVoucherRentIncome 20210906 新增fc_yc_overdue_repay_plan联表查询代码【结束】");
Sqlca.commit();
for (String F56 : list) {
// 判断当期是否已生成经销商代偿凭证, 如已生成, 反冲
cvrc.CreateVoucher("PZ2019071500000030", "admin",F56);// 代偿反冲-收到的租金
cvrc.CreateVoucher("PZ2019071500000031", "admin",F56);// 代偿反冲-收到的逾期利息
System.out.println("***********************************************************");
System.out.println("**********************代偿反冲凭证收成**************************");
System.out.println("***********************************************************");
}
for (String F56 : list2) {
// 判断当期是否已生成经销商代偿凭证, 如已生成, 反冲
cvrc.CreateVoucher("PZ2020070600000001", "admin",F56);// 代偿反冲-收到的租金微信
cvrc.CreateVoucher("PZ2020070600000002", "admin",F56);// 代偿反冲-收到的逾期利息微信
System.out.println("***********************************************************");
System.out.println("**********************代偿反冲凭证收成**************************");
System.out.println("***********************************************************");
}
/**
* 收取租金时, 如果已经经销商代偿, 生成反冲代偿凭证; 将租金id存入集合, 遍历结合, 通过id生成凭证
*/
CreateVoucherRedCompensatory cvrc = new CreateVoucherRedCompensatory();
List<String> list = new ArrayList<String>();
if(Sqlca!=null){
Sqlca.disConnect();
for (Map<String, String> map1 : dataList4) {
if(!list.contains(map1.get("F56"))){
list.add(map1.get("F56"));
}
}
for (Map<String, String> map2 : dataList5) {
if(!list.contains(map2.get("F56"))){
list.add(map2.get("F56"));
}
}
List<String> list2 = new ArrayList<String>();
for (Map<String, String> map1 : dataList6) {
if(!list2.contains(map1.get("F56"))){
list2.add(map1.get("F56"));
}
}
for (Map<String, String> map2 : dataList7) {
if(!list2.contains(map2.get("F56"))){
list2.add(map2.get("F56"));
}
}
for (String F56 : list) {
// 判断当期是否已生成经销商代偿凭证, 如已生成, 反冲
cvrc.CreateVoucher("PZ2019071500000030", "admin",F56);// 代偿反冲-收到的租金
cvrc.CreateVoucher("PZ2019071500000031", "admin",F56);// 代偿反冲-收到的逾期利息
System.out.println("***********************************************************");
System.out.println("**********************代偿反冲凭证收成**************************");
System.out.println("***********************************************************");
}
for (String F56 : list2) {
// 判断当期是否已生成经销商代偿凭证, 如已生成, 反冲
cvrc.CreateVoucher("PZ2020070600000001", "admin",F56);// 代偿反冲-收到的租金微信
cvrc.CreateVoucher("PZ2020070600000002", "admin",F56);// 代偿反冲-收到的逾期利息微信
System.out.println("***********************************************************");
System.out.println("**********************代偿反冲凭证收成**************************");
System.out.println("***********************************************************");
}
} catch (Exception e) {
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null){
try {
Sqlca.commit();
} catch (JBOException e) {
e.printStackTrace();
}
try {
Sqlca.disConnect();
} catch (JBOException e) {
e.printStackTrace();
}
}
}
}
@ -150,184 +218,296 @@ public class InsertVoucherRentIncome {
* @param VOUCHERNO
* @throws Exception
*/
public void CreateVoucher() throws Exception{
public void CreateVoucher() {
Transaction Sqlca =null;
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
/**
* 查询中间表, 判断是否有数据需要执行
*/
/**
* 汽车回租-卡扣
*/
// 当月的租金(卡扣)-(汽车回租)
String sqlqh1="SELECT LVRI.RENT, LVRI.INCOME_ID AS F58 FROM LV_RENT_INCOME LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')=DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 本月以前的租金(卡扣)-(汽车回租)
String sqlqh2="SELECT LVRI.RENT, LVRI.INCOME_ID AS F58 FROM LV_RENT_INCOME2 LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')<>DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 逾期利息(卡扣)-(汽车回租)
String sqlqh3="SELECT LVRI.PENALTY, LVRI.INCOME_ID AS F58 FROM LV_PENALTY_INCOME LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.PENALTY>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL";
/**
* 汽车直租-卡扣
*/
// 当月的租金(卡扣)-(汽车直租)
String sqlqz1="SELECT LVRI.RENT, LVRI.INCOME_ID AS F58 FROM LV_RENT_INCOME LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='01' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')=DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 本月以前的租金(卡扣)-(汽车直租)
String sqlqz2="SELECT LVRI.RENT, LVRI.INCOME_ID AS F58 FROM LV_RENT_INCOME2 LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='01' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')<>DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 逾期利息(卡扣)-(汽车直租)
String sqlqz3="SELECT LVRI.PENALTY, LVRI.INCOME_ID AS F58 FROM LV_PENALTY_INCOME LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.PENALTY>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='01' AND V8.F58 IS NULL";
/**
* 汽车回租-微信
*/
// 当月的租金(微信)-(汽车回租)
String sqlWh1="SELECT LVRI.RENT, LVRI.INCOME_ID AS F58 FROM LV_RENT_INCOME LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXPay' AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')=DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 本月以前的租金(微信)-(汽车回租)
String sqlWh2="SELECT LVRI.RENT, LVRI.INCOME_ID AS F58 FROM LV_RENT_INCOME2 LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXPay' AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')<>DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 逾期利息(微信)-(汽车回租)
String sqlWh3="SELECT LVRI.PENALTY, LVRI.INCOME_ID AS F58 FROM LV_PENALTY_INCOME LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(微信)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXPay' AND LVRI.PENALTY>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL";
/**
* 汽车回租-微信银联
*/
// 当月的租金(微信)-(汽车直租)
String sqlWYh1="SELECT LVRI.RENT, LVRI.INCOME_ID AS F58 FROM LV_RENT_INCOME LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信银联)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXUnionPay' AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')=DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 本月以前的租金(微信)-(汽车直租)
String sqlWYh2="SELECT LVRI.RENT, LVRI.INCOME_ID AS F58 FROM LV_RENT_INCOME2 LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信银联)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXUnionPay' AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')<>DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 逾期利息(微信)-(汽车直租)
String sqlWYh3="SELECT LVRI.PENALTY, LVRI.INCOME_ID AS F58 FROM LV_PENALTY_INCOME LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(微信银联)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXUnionPay' AND LVRI.PENALTY>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL";
try {
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
/**
* 查询中间表, 判断是否有数据需要执行
*/
/**
* 汽车回租-卡扣
*/
// 当月的租金(卡扣)-(汽车回租)
String sqlqh1="SELECT LVRI.ID FROM LV_RENT_INCOME LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')=DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 本月以前的租金(卡扣)-(汽车回租)
String sqlqh2="SELECT LVRI.ID FROM LV_RENT_INCOME2 LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')<>DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 逾期利息(卡扣)-(汽车回租)
String sqlqh3="SELECT LVRI.ID FROM LV_PENALTY_INCOME LVRI LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.PENALTY>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL";
/**
* 汽车直租-卡扣
*/
// 当月的租金(卡扣)-(汽车直租)
String sqlqz1="SELECT LVRI.ID FROM LV_RENT_INCOME LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='01' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')=DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 本月以前的租金(卡扣)-(汽车直租)
String sqlqz2="SELECT LVRI.ID FROM LV_RENT_INCOME2 LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='01' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')<>DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 逾期利息(卡扣)-(汽车直租)
String sqlqz3="SELECT LVRI.ID FROM LV_PENALTY_INCOME LVRI LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.PENALTY>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='01' AND V8.F58 IS NULL";
/**
* 汽车回租-微信
*/
// 当月的租金(微信)-(汽车回租)
String sqlWh1="SELECT LVRI.ID FROM LV_RENT_INCOME LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXPay' AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')=DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 本月以前的租金(微信)-(汽车回租)
String sqlWh2="SELECT LVRI.ID FROM LV_RENT_INCOME2 LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXPay' AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')<>DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 逾期利息(微信)-(汽车回租)
String sqlWh3="SELECT LVRI.ID FROM LV_PENALTY_INCOME LVRI LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(微信)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXPay' AND LVRI.PENALTY>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL";
/**
* 汽车回租-微信银联
*/
// 当月的租金(微信)-(汽车直租)
String sqlWYh1="SELECT LVRI.ID FROM LV_RENT_INCOME LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信银联)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXUnionPay' AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')=DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 本月以前的租金(微信)-(汽车直租)
String sqlWYh2="SELECT LVRI.ID FROM LV_RENT_INCOME2 LVRI LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID=LVRI.CONTRACT_ID AND LRP.ID=LVRI.INCOME_ID LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信银联)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXUnionPay' AND LVRI.RENT>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL AND DATE_FORMAT(NOW(),'%Y-%m')<>DATE_FORMAT(LRP.PLAN_DATE,'%Y-%m')";
// 逾期利息(微信)-(汽车直租)
String sqlWYh3="SELECT LVRI.ID FROM LV_PENALTY_INCOME LVRI LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(微信银联)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-22','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXUnionPay' AND LVRI.PENALTY>0 AND LVRI.BUSINESSTYPE='1' AND LVRI.LEAS_FORM='02' AND V8.F58 IS NULL";
/**
* 汽车回租-卡扣
*/
List<Map<String,String>> dataListqh1=DataOperatorUtil.getDataBySql(Sqlca, sqlqh1, null);
List<Map<String,String>> dataListqh2=DataOperatorUtil.getDataBySql(Sqlca, sqlqh2, null);
List<Map<String,String>> dataListqh3=DataOperatorUtil.getDataBySql(Sqlca, sqlqh3, null);
/**
* 汽车直租-卡扣
*/
List<Map<String,String>> dataListqz1= DataOperatorUtil.getDataBySql(Sqlca, sqlqz1, null);
List<Map<String,String>> dataListqz2= DataOperatorUtil.getDataBySql(Sqlca, sqlqz2, null);
List<Map<String,String>> dataListqz3= DataOperatorUtil.getDataBySql(Sqlca, sqlqz3, null);
/**
* 根据查询语句判断, 有值才执行插入SQL
* 汽车回租-卡扣
*/
String insertSql="";
SqlObject sqlObj=null;
String ID="";
// 收到的租金--卡扣-当月的-(汽车回租)
List<Map<String,String>> dataListqh1=DataOperatorUtil.getDataBySql(Sqlca, sqlqh1, null);
if(dataListqh1 != null && !dataListqh1.isEmpty()) {
for(int i=0; i<dataListqh1.size(); i++) {
ID="";
try {
ID = dataListqh1.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT WHEN LV.SORT_NUMBER='2' THEN LVRI.INTEREST ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='3' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='4' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='5' THEN ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='6' THEN (LVRI.INTEREST-ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' OR LV.SORT_NUMBER='6' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' WHEN LV.SORT_NUMBER='6' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' WHEN LV.SORT_NUMBER='6' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='5' THEN '0604' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='6' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2018082100000142') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
// 收到的租金--卡扣-跨月的-(汽车回租)
List<Map<String,String>> dataListqh2=DataOperatorUtil.getDataBySql(Sqlca, sqlqh2, null);
if(dataListqh2 != null && !dataListqh2.isEmpty()) {
for(int i=0; i<dataListqh2.size(); i++) {
ID="";
try {
ID = dataListqh2.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='3' THEN LVRI.INTEREST ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' ELSE LVRI.CUST_ID END AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME2 LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2018082100000143') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
//收到的逾期利息--卡扣-(汽车回租)
List<Map<String,String>> dataListqh3=DataOperatorUtil.getDataBySql(Sqlca, sqlqh3, null);
if(dataListqh3 != null && !dataListqh3.isEmpty()) {
for(int i=0; i<dataListqh3.size(); i++) {
ID="";
try {
ID = dataListqh3.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的逾期利息-卡扣-',LVRI.PLAN_LIST) ELSE '收到的逾期利息-卡扣' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.PENALTY ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='3' THEN LVRI.PENALTY-(ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='2' THEN LCI.CONTRACT_NUMBER ELSE '' END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='2' THEN '0603' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='3' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_PENALTY_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2018082100000144') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
/**
* 汽车直租-卡扣
*/
// 收到的租金--卡扣-当月的-(汽车直租)
List<Map<String,String>> dataListqz1= DataOperatorUtil.getDataBySql(Sqlca, sqlqz1, null);
if(dataListqz1 != null && !dataListqz1.isEmpty()) {
for(int i=0; i<dataListqz1.size(); i++) {
ID="";
try {
ID = dataListqz1.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT WHEN LV.SORT_NUMBER='2' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='3' THEN (LVRI.CORPUS-ROUND(LVRI.CORPUS/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='4' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='5' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='6' THEN ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='7' THEN ((LVRI.CORPUS-ROUND(LVRI.CORPUS/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) +(LVRI.INTEREST-ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'利息',LCCT.START_DATE),2))) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' OR LV.SORT_NUMBER='7' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' WHEN LV.SORT_NUMBER='7' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' WHEN LV.SORT_NUMBER='7' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='6' THEN '0604' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='7' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019070100000008') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
// 收到的租金--卡扣-跨月的-(汽车直租)
List<Map<String,String>> dataListqz2= DataOperatorUtil.getDataBySql(Sqlca, sqlqz2, null);
if(dataListqz2 != null && !dataListqz2.isEmpty()) {
for(int i=0; i<dataListqz2.size(); i++) {
ID="";
try {
ID = dataListqz2.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='3' THEN LVRI.INTEREST ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' ELSE LVRI.CUST_ID END AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME2 LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019070100000009') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
List<Map<String,String>> dataListqz3= DataOperatorUtil.getDataBySql(Sqlca, sqlqz3, null);
//收到的逾期利息--卡扣-(汽车直租)
if(dataListqz3 != null && !dataListqz3.isEmpty()) {
for(int i=0; i<dataListqz3.size(); i++) {
ID="";
try {
ID = dataListqz3.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的逾期利息-卡扣-',LVRI.PLAN_LIST) ELSE '收到的逾期利息-卡扣' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.PENALTY ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='3' THEN LVRI.PENALTY-(ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='2' THEN LCI.CONTRACT_NUMBER ELSE '' END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='2' THEN '0603' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='3' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_PENALTY_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019070100000007') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
/**
* 汽车回租-微信
*/
List<Map<String,String>> dataListWh1=DataOperatorUtil.getDataBySql(Sqlca, sqlWh1, null);
List<Map<String,String>> dataListWh2=DataOperatorUtil.getDataBySql(Sqlca, sqlWh2, null);
List<Map<String,String>> dataListWh3=DataOperatorUtil.getDataBySql(Sqlca, sqlWh3, null);
/**
* 汽车直租-微信
*/
List<Map<String,String>> dataListWYh1= DataOperatorUtil.getDataBySql(Sqlca, sqlWYh1, null);
List<Map<String,String>> dataListWYh2= DataOperatorUtil.getDataBySql(Sqlca, sqlWYh2, null);
List<Map<String,String>> dataListWYh3= DataOperatorUtil.getDataBySql(Sqlca, sqlWYh3, null);
/**
* 汽车回租-微信
*/
// 收到的租金--卡扣-当月的-(汽车回租)
List<Map<String,String>> dataListWh1=DataOperatorUtil.getDataBySql(Sqlca, sqlWh1, null);
if(dataListWh1 != null && !dataListWh1.isEmpty()) {
for(int i=0; i<dataListWh1.size(); i++) {
ID="";
try {
ID = dataListWh1.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-微信-',LVRI.PLAN_LIST) ELSE '收到的租金-微信' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT WHEN LV.SORT_NUMBER='2' THEN LVRI.INTEREST ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='3' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='4' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='5' THEN ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='6' THEN (LVRI.INTEREST-ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' OR LV.SORT_NUMBER='6' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '北京安鹏昌达资产管理有限公司' WHEN LV.SORT_NUMBER='6' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN '807001002013' WHEN LV.SORT_NUMBER='6' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='5' THEN '0604' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='6' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019120900000160') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
// 收到的租金--卡扣-跨月的-(汽车回租)
List<Map<String,String>> dataListWh2=DataOperatorUtil.getDataBySql(Sqlca, sqlWh2, null);
if(dataListWh2 != null && !dataListWh2.isEmpty()) {
for(int i=0; i<dataListWh2.size(); i++) {
ID="";
try {
ID = dataListWh2.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-微信-',LVRI.PLAN_LIST) ELSE '收到的租金-微信' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='3' THEN LVRI.INTEREST ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '北京安鹏昌达资产管理有限公司' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN '807001002013' ELSE LVRI.CUST_ID END AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME2 LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019120900000161') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
//收到的逾期利息--卡扣-(汽车回租)
List<Map<String,String>> dataListWh3=DataOperatorUtil.getDataBySql(Sqlca, sqlWh3, null);
if(dataListWh3 != null && !dataListWh3.isEmpty()) {
for(int i=0; i<dataListWh3.size(); i++) {
ID="";
try {
ID = dataListWh3.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的逾期利息-微信-',LVRI.PLAN_LIST) ELSE '收到的逾期利息-微信' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.PENALTY ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='3' THEN LVRI.PENALTY-(ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='2' THEN LCI.CONTRACT_NUMBER ELSE '' END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '北京安鹏昌达资产管理有限公司' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN '807001002013' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='2' THEN '0603' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='3' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_PENALTY_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019120900000159') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(微信)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
/**
* 汽车类-回租-卡扣
*/
// 收到的租金--卡扣-当月的-(汽车回租)
String sql_whereqh1 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT WHEN LV.SORT_NUMBER='2' THEN LVRI.INTEREST ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='3' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='4' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='5' THEN ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='6' THEN (LVRI.INTEREST-ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' OR LV.SORT_NUMBER='6' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' WHEN LV.SORT_NUMBER='6' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' WHEN LV.SORT_NUMBER='6' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='5' THEN '0604' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='6' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2018082100000142') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.RENT>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
// 收到的租金--卡扣-跨月的-(汽车回租)
String sql_whereqh2 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='3' THEN LVRI.INTEREST ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' ELSE LVRI.CUST_ID END AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME2 LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2018082100000143') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.RENT>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
//收到的逾期利息--卡扣-(汽车回租)
String sql_whereqh3 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的逾期利息-卡扣-',LVRI.PLAN_LIST) ELSE '收到的逾期利息-卡扣' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.PENALTY ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='3' THEN LVRI.PENALTY-(ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='2' THEN LCI.CONTRACT_NUMBER ELSE '' END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='2' THEN '0603' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='3' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_PENALTY_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2018082100000144') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.PENALTY>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
/**
* 汽车类-直租-卡扣
*/
// 收到的租金--卡扣-当月的-(汽车直租)
String sql_whereqz1 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT WHEN LV.SORT_NUMBER='2' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='3' THEN (LVRI.CORPUS-ROUND(LVRI.CORPUS/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='4' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='5' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='6' THEN ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='7' THEN ((LVRI.CORPUS-ROUND(LVRI.CORPUS/GETTAX(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) +(LVRI.INTEREST-ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'利息',LCCT.START_DATE),2))) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' OR LV.SORT_NUMBER='7' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' WHEN LV.SORT_NUMBER='7' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' WHEN LV.SORT_NUMBER='7' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='6' THEN '0604' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='7' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019070100000008') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.RENT>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='01' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
// 收到的租金--卡扣-跨月的-(汽车直租)
String sql_whereqz2 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='3' THEN LVRI.INTEREST ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' ELSE LVRI.CUST_ID END AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME2 LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019070100000009') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.RENT>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='01' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
//收到的逾期利息--卡扣-(汽车直租)
String sql_whereqz3 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的逾期利息-卡扣-',LVRI.PLAN_LIST) ELSE '收到的逾期利息-卡扣' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.PENALTY ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='3' THEN LVRI.PENALTY-(ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='2' THEN LCI.CONTRACT_NUMBER ELSE '' END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='2' THEN '0603' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='3' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_PENALTY_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019070100000007') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS IN ('AutoBuckle','TLCollect') AND LVRI.PENALTY>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='01' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
/**
* 汽车类-回租-微信
*/
// 收到的租金--卡扣-当月的-(汽车回租)
String sql_whereWh1 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-微信-',LVRI.PLAN_LIST) ELSE '收到的租金-微信' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT WHEN LV.SORT_NUMBER='2' THEN LVRI.INTEREST ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='3' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='4' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='5' THEN ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='6' THEN (LVRI.INTEREST-ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' OR LV.SORT_NUMBER='6' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '北京安鹏昌达资产管理有限公司' WHEN LV.SORT_NUMBER='6' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN '807001002013' WHEN LV.SORT_NUMBER='6' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='5' THEN '0604' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='6' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019120900000160') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXPay' AND LVRI.RENT>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
// 收到的租金--卡扣-跨月的-(汽车回租)
String sql_whereWh2 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-微信-',LVRI.PLAN_LIST) ELSE '收到的租金-微信' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='3' THEN LVRI.INTEREST ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '北京安鹏昌达资产管理有限公司' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN '807001002013' ELSE LVRI.CUST_ID END AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME2 LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019120900000161') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXPay' AND IFNULL(LVRI.RENT,0)>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL AND LVRI.RENT>0 ORDER BY LVRI.VOUCHER_F3";
//收到的逾期利息--卡扣-(汽车回租)
String sql_whereWh3 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的逾期利息-微信-',LVRI.PLAN_LIST) ELSE '收到的逾期利息-微信' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.PENALTY ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='3' THEN LVRI.PENALTY-(ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='2' THEN LCI.CONTRACT_NUMBER ELSE '' END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '北京安鹏昌达资产管理有限公司' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN '807001002013' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='2' THEN '0603' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='3' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_PENALTY_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019120900000159') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(微信)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXPay' AND IFNULL(LVRI.PENALTY,0)>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
/**
* 汽车类-回租-微信银联
*/
// 收到的租金--卡扣-当月的-(汽车回租)
String sql_whereWYh1 = "INSERT INTO VOUCHER_V8 ( ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(), '-', '') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR( CASE WHEN ( LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE = '' ) THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT( LVRI.ACCOUNTING_DATE, '%Y/%m/%d' ) END, 1, 4 ) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT( '收到的租金-微信银联-', LVRI.PLAN_LIST ) ELSE '收到的租金-微信银联' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER = '1' THEN LVRI.RENT WHEN LV.SORT_NUMBER = '2' THEN LVRI.INTEREST ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER = '3' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER = '4' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER = '5' THEN ROUND( LVRI.INTEREST / GETTAX ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) WHEN LV.SORT_NUMBER = '6' THEN ( LVRI.INTEREST - ROUND( LVRI.INTEREST / GETTAX ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ), 2 ) ) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN ( LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE = '' ) THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT( LVRI.ACCOUNTING_DATE, '%Y/%m/%d' ) END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR( CASE WHEN ( LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE = '' ) THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT( LVRI.ACCOUNTING_DATE, '%Y/%m/%d' ) END, 1, 4 ) AS F51, SUBSTR( CASE WHEN ( LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE = '' ) THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT( LVRI.ACCOUNTING_DATE, '%Y/%m/%d' ) END, 6, 2 ) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER = '1' OR LV.SORT_NUMBER = '6' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER = '1' THEN '汽车C端待查客户' WHEN LV.SORT_NUMBER = '6' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER = '1' THEN 'APZL00000000DC' WHEN LV.SORT_NUMBER = '6' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER = '5' THEN '0604' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER = '6' THEN (SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER = ROUND( ( GETTAX ( LCI.LEAS_FORM, '租息', LCCT.START_DATE ) - 1 ) * 100, 0 )) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION = '1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME = LCI.SUBJECTNAME LEFT JOIN (SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID = LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID = LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019120500000153')) LV ON LV.PROJ_TYPE = LCI.LEAS_FORM LEFT JOIN (SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信银联)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56 = LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') > DATE_FORMAT('2022-02-07', '%Y/%m/%d') AND LVRI.COLLECT_STATUS = 'WXUnionPay' AND IFNULL(LVRI.RENT, 0) > 0 AND LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM = '02' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
// 收到的租金--卡扣-跨月的-(汽车回租)
String sql_whereWYh2 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-微信银联-',LVRI.PLAN_LIST) ELSE '收到的租金-微信银联' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='3' THEN LVRI.INTEREST ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' ELSE LVRI.CUST_ID END AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME2 LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019120500000154') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信银联)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXUnionPay' AND LVRI.RENT>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
//收到的逾期利息--卡扣-(汽车回租)
String sql_whereWYh3 = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的逾期利息-微信银联-',LVRI.PLAN_LIST) ELSE '收到的逾期利息-微信银联' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.PENALTY ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='3' THEN LVRI.PENALTY-(ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='2' THEN LCI.CONTRACT_NUMBER ELSE '' END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='2' THEN '0603' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='3' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_PENALTY_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019120500000155') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(微信银联)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE DATE_FORMAT(LVRI.HIRE_DATE,'%Y/%m/%d')>DATE_FORMAT('2022-02-07','%Y/%m/%d') AND LVRI.COLLECT_STATUS='WXUnionPay' AND LVRI.PENALTY>0 AND LCI.BUSINESSTYPE='1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL ORDER BY LVRI.VOUCHER_F3";
/**
* 根据查询语句判断, 有值才执行插入SQL
*/
/**
* 汽车回租-卡扣
*/
if(dataListqh1 != null && !dataListqh1.isEmpty()) {
SqlObject sqlsqh1 = new SqlObject(sql_whereqh1);
Sqlca.executeSQL(sqlsqh1);
/**
* 汽车直租-微信
*/
// 收到的租金--卡扣-当月的-(汽车回租)
List<Map<String,String>> dataListWYh1= DataOperatorUtil.getDataBySql(Sqlca, sqlWYh1, null);
if(dataListWYh1 != null && !dataListWYh1.isEmpty()) {
for(int i=0; i<dataListWYh1.size(); i++) {
ID="";
try {
ID = dataListWYh1.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-微信银联-',LVRI.PLAN_LIST) ELSE '收到的租金-微信银联' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT WHEN LV.SORT_NUMBER='2' THEN LVRI.INTEREST ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='3' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='4' THEN LVRI.INTEREST WHEN LV.SORT_NUMBER='5' THEN ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='6' THEN (LVRI.INTEREST-ROUND(LVRI.INTEREST/GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' OR LV.SORT_NUMBER='6' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' WHEN LV.SORT_NUMBER='6' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' WHEN LV.SORT_NUMBER='6' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='5' THEN '0604' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='6' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019120500000153') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信银联)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
// 收到的租金--卡扣-跨月的-(汽车回租)
List<Map<String,String>> dataListWYh2= DataOperatorUtil.getDataBySql(Sqlca, sqlWYh2, null);
if(dataListWYh2 != null && !dataListWYh2.isEmpty()) {
for(int i=0; i<dataListWYh2.size(); i++) {
ID="";
try {
ID = dataListWYh2.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-微信银联-',LVRI.PLAN_LIST) ELSE '收到的租金-微信银联' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.RENT ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN LVRI.CORPUS WHEN LV.SORT_NUMBER='3' THEN LVRI.INTEREST ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='1' THEN '' ELSE LCI.CONTRACT_NUMBER END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' ELSE LVRI.CUST_ID END AS F65, '' AS F73, '' AS F74, '' AS F75, '' AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_RENT_INCOME2 LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019120500000154') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%-收到的租金(微信银联)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
//收到的逾期利息--卡扣-(汽车回租)
List<Map<String,String>> dataListWYh3= DataOperatorUtil.getDataBySql(Sqlca, sqlWYh3, null);
if(dataListWYh3 != null && !dataListWYh3.isEmpty()) {
for(int i=0; i<dataListWYh3.size(); i++) {
ID="";
try {
ID = dataListWYh3.get(i).get("ID");
insertSql = "INSERT INTO VOUCHER_V8 (ID, EVIDENCE_MESSAGE, PERIODYEAR, F15, F2, F3, F5, F6, F7, F8, F12, F1, F49, F50, F51, F52, F56, F59, F60, F61, F62, F65, F73, F74, F75, F76, V8_STATUS, GENERATE_DATE, V8_FLAG, MODULE_NAME, ENTRYDC, INPUTUSERID, F58, F67, F47, F48 ) SELECT REPLACE(UUID(),'-','') AS ID, '凭证输出' AS EVIDENCE_MESSAGE, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS PERIODYEAR, LVRI.HIRE_DATE AS F15, LV.SUBJECTS_CODE AS F2, LVRI.VOUCHER_F3 AS F3, CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的逾期利息-微信银联-',LVRI.PLAN_LIST) ELSE '收到的逾期利息-微信银联' END AS F5, LV.LOAN_SUBJECT AS F6, CASE WHEN LV.SORT_NUMBER='1' THEN LVRI.PENALTY ELSE 0.00 END AS F7, CASE WHEN LV.SORT_NUMBER='2' THEN ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2) WHEN LV.SORT_NUMBER='3' THEN LVRI.PENALTY-(ROUND(LVRI.PENALTY/GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2)) ELSE 0.00 END AS F8, '定时任务-每天生成租金实收凭证' AS F12, CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END AS F1, LCI.SUBJECTID AS F49, LCI.SUBJECTNAME AS F50, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS F51, SUBSTR(CASE WHEN (LVRI.ACCOUNTING_DATE IS NULL OR LVRI.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(LVRI.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS F52, LVRI.LRI_ID AS F56, LV.SORT_NUMBER AS F59, CASE WHEN LV.SORT_NUMBER='2' THEN LCI.CONTRACT_NUMBER ELSE '' END AS F60, CASE WHEN LV.SORT_NUMBER='1' THEN '汽车C端待查客户' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_NAME END AS F61, LV.LOAN_SUBJECT AS F62, CASE WHEN LV.SORT_NUMBER='1' THEN 'APZL00000000DC' WHEN LV.SORT_NUMBER='3' THEN '' ELSE LVRI.CUST_ID END AS F65, CASE WHEN LV.SORT_NUMBER='2' THEN '0603' ELSE '' END AS F73, '' AS F74, '' AS F75, CASE WHEN LV.SORT_NUMBER='3' THEN ( SELECT TAX_CODES FROM TAX_CODE WHERE TAX_NUMBER=ROUND((GETTAX(LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE)-1)*100,0) ) ELSE '' END AS F76, '已完整' AS V8_STATUS, DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS GENERATE_DATE, '0' AS V8_FLAG, LV.MODULAR_NUMBER AS MODULE_NAME, CASE WHEN LV.LOAN_DIRECTION='1' THEN '1' ELSE '-1' END AS ENTRYDC, 'admin' AS INPUTUSERID, LVRI.INCOME_ID AS F58, LCI.LEAS_FORM AS F67, LCI.CONTRACT_NUMBER, OI.OWN_NUMBER FROM LV_PENALTY_INCOME LVRI LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LVRI.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID=LCI.ID LEFT JOIN ( SELECT OWN_NUMBER, MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER ) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN ( SELECT LVC.PROJ_TYPE, LVL.ID, LVL.LOAN_DIRECTION, LVC.OWNED_COMPANY, LVL.SORT_NUMBER, LVL.LOAN_SUBJECT, LVC.MODULAR_NUMBER, LSC.SUBJECTS_CODE FROM LV_VOUCHER_CONFIG LVC LEFT JOIN LV_VOUCHER_LOAN LVL ON LVL.VOUCHER_ID=LVC.ID LEFT JOIN LV_STACTS_CONFIG LSC ON LSC.ID=LVL.LOAN_SUBJECT WHERE LVC.VOUCHER_NO IN ('PZ2019120500000155') ) LV ON LV.PROJ_TYPE=LCI.LEAS_FORM LEFT JOIN ( SELECT F58, F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到的逾期利息(微信银联)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58, F56 ) V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LVRI.ID='"+ID+"' AND V8.F58 IS NULL";
sqlObj = new SqlObject(insertSql);
Sqlca.executeSQL(sqlObj);
Sqlca.commit();
} catch (Exception e) {
Sqlca.rollback();
e.printStackTrace();
}
}
}
Sqlca.commit();
System.out.println("*******************merge20210906****************************************");
System.out.println("**********************租金回笼定时任务执行完成*********************");
System.out.println("***********************************************************");
} catch (Exception e) {
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null){
try {
Sqlca.commit();
} catch (JBOException e) {
e.printStackTrace();
}
try {
Sqlca.disConnect();;
} catch (JBOException e) {
e.printStackTrace();
}
}
}
if(dataListqh2 != null && !dataListqh2.isEmpty()) {
SqlObject sqlsqh2 = new SqlObject(sql_whereqh2);
Sqlca.executeSQL(sqlsqh2);
}
if(dataListqh3 != null && !dataListqh3.isEmpty()) {
SqlObject sqlsqh3 = new SqlObject(sql_whereqh3);
Sqlca.executeSQL(sqlsqh3);
}
/**
* 汽车直租-卡扣
*/
if(dataListqz1 != null && !dataListqz1.isEmpty()) {
SqlObject sqlsqz1 = new SqlObject(sql_whereqz1);
Sqlca.executeSQL(sqlsqz1);
}
if(dataListqz2 != null && !dataListqz2.isEmpty()) {
SqlObject sqlsqz2 = new SqlObject(sql_whereqz2);
Sqlca.executeSQL(sqlsqz2);
}
if(dataListqz3 != null && !dataListqz3.isEmpty()) {
SqlObject sqlsqz3 = new SqlObject(sql_whereqz3);
Sqlca.executeSQL(sqlsqz3);
}
/**
* 汽车回租-微信
*/
if(dataListWh1 != null && !dataListWh1.isEmpty()) {
SqlObject sqlsWh1 = new SqlObject(sql_whereWh1);
Sqlca.executeSQL(sqlsWh1);
}
if(dataListWh2 != null && !dataListWh2.isEmpty()) {
SqlObject sqlsWh2 = new SqlObject(sql_whereWh2);
Sqlca.executeSQL(sqlsWh2);
}
if(dataListWh3 != null && !dataListWh3.isEmpty()) {
SqlObject sqlsWh3 = new SqlObject(sql_whereWh3);
Sqlca.executeSQL(sqlsWh3);
}
/**
* 汽车回租-微信银联
*/
if(dataListWYh1 != null && !dataListWYh1.isEmpty()) {
SqlObject sqlsWYh1 = new SqlObject(sql_whereWYh1);
Sqlca.executeSQL(sqlsWYh1);
}
if(dataListWYh2 != null && !dataListWYh2.isEmpty()) {
SqlObject sqlsWYh2 = new SqlObject(sql_whereWYh2);
Sqlca.executeSQL(sqlsWYh2);
}
if(dataListWYh3 != null && !dataListWYh3.isEmpty()) {
SqlObject sqlsWYh3 = new SqlObject(sql_whereWYh3);
Sqlca.executeSQL(sqlsWYh3);
}
Sqlca.commit();
if(Sqlca!=null){
Sqlca.disConnect();
}
System.out.println("*******************merge20210906****************************************");
System.out.println("**********************租金回笼定时任务执行完成*********************");
System.out.println("***********************************************************");
}
}

View File

@ -469,4 +469,8 @@ public interface LB_EQUIPMENT_CAR{
* ±êÊ STRING(32)<br>
*/
public static final String uu_id = "uu_id";
/**
* 标识租赁物是否结清 STRING(32)<br>
*/
public static final String TERMINATE_TYPE = "TERMINATE_TYPE";
}

View File

@ -457,4 +457,10 @@ public interface LB_EQUIPMENT_CAR_TEMP{
* ±êÊ STRING(32)<br>
*/
public static final String uu_id = "uu_id";
/**
* 标识租赁物是否结清 STRING(32)<br>
*/
public static final String TERMINATE_TYPE = "TERMINATE_TYPE";
}

View File

@ -177,4 +177,24 @@ public interface LC_FUND_RENT_ADJUST{
* 商定还款日息差 STRING(32)<br>
*/
public static final String AGREED_DATEPENALTY = "AGREED_DATEPENALTY";
/**
* 结清方式 STRING(32)<br>
*/
public static final String SETTLE_METHOD = "SETTLE_METHOD";
/**
* 租赁物比重 STRING(32)<br>
*/
public static final String PROPROTION_NUMBER = "PROPROTION_NUMBER";
/**
* 融资金额() STRING(32)<br>
*/
public static final String CLEAN_LEASE_MONEY = "CLEAN_LEASE_MONEY";
/**
* 部分结清车辆未到期本金 STRING(32)<br>
*/
public static final String PREMATURE_MONEY = "PREMATURE_MONEY";
/**
* 剩余车辆未到期本金 STRING(32)<br>
*/
public static final String RESIDUE_MONEY = "RESIDUE_MONEY";
}

View File

@ -181,4 +181,24 @@ public interface LC_FUND_RENT_ADJUST_TEMP{
* 商定还款日息差 STRING(32)<br>
*/
public static final String AGREED_DATEPENALTY = "AGREED_DATEPENALTY";
/**
* 结清方式 STRING(32)<br>
*/
public static final String SETTLE_METHOD = "SETTLE_METHOD";
/**
* 租赁物比重 STRING(32)<br>
*/
public static final String PROPROTION_NUMBER = "PROPROTION_NUMBER";
/**
* 融资金额() STRING(32)<br>
*/
public static final String CLEAN_LEASE_MONEY = "CLEAN_LEASE_MONEY";
/**
* 部分结清车辆未到期本金 STRING(32)<br>
*/
public static final String PREMATURE_MONEY = "PREMATURE_MONEY";
/**
* 剩余车辆未到期本金 STRING(32)<br>
*/
public static final String RESIDUE_MONEY = "RESIDUE_MONEY";
}

View File

@ -101,4 +101,16 @@ public interface D_DEPOSITRETURN_INFO{
* 连续代偿期数 STRING(32)<br>
*/
public static final String COMPENSATORY_CON = "COMPENSATORY_CON";
/**
* 本金 DOUBLE(22)<br>
*/
public static final String CORPUS = "CORPUS";
/**
* 利息 DOUBLE(22)<br>
*/
public static final String INTEREST = "INTEREST";
/**
* 罚息 DOUBLE(22)<br>
*/
public static final String PENALTY = "PENALTY";
}

View File

@ -325,4 +325,8 @@ public interface LB_EQUIPMENT_CAR{
* ±êÊ STRING(32)<br>
*/
public static final String uu_id = "uu_id";
/**
* 标识租赁物是否结清 STRING(32)<br>
*/
public static final String TERMINATE_TYPE = "TERMINATE_TYPE";
}

View File

@ -321,4 +321,8 @@ public interface LB_EQUIPMENT_CAR_HIS{
* ±êÊ STRING(32)<br>
*/
public static final String uu_id = "uu_id";
/**
* 标识租赁物是否结清 STRING(32)<br>
*/
public static final String TERMINATE_TYPE = "TERMINATE_TYPE";
}

View File

@ -457,4 +457,8 @@ public interface LB_EQUIPMENT_CAR_TEMP{
* ±êÊ STRING(32)<br>
*/
public static final String uu_id = "uu_id";
/**
* 标识租赁物是否结清 STRING(32)<br>
*/
public static final String TERMINATE_TYPE = "TERMINATE_TYPE";
}

View File

@ -0,0 +1,28 @@
package jbo.sys;
import java.lang.String;
/**
* 客户和经销商名称 - JBO命名常量类<br><br>
* Note: This file is generated by ADE tools, <em>dont</em> modify it.<br>
*/
public interface VI_CUSTOMER_DISTRIBUTOR{
/**
* 客户和经销商名称<br><br>
* 代表本类映射的BizObjectClass
*/
public static final String CLASS_NAME = "jbo.sys.VI_CUSTOMER_DISTRIBUTOR";
/**
* 对象编号 STRING(20)<br>
*/
public static final String flow_unid = "flow_unid";
/**
* 客户名称 STRING(20)<br>
*/
public static final String CUSTOMER_NAME = "CUSTOMER_NAME";
/**
* 经销商名称 STRING(20)<br>
*/
public static final String DISTRIBUTOR_NAME = "DISTRIBUTOR_NAME";
}

View File

@ -51,7 +51,7 @@ WHERE ((`lci`.`CONTRACT_STATUS` = '31')
WHERE ((`lorl`.`PAYMENT_NUMBER` = `lrp`.`PAYMENT_NUMBER`)
AND ((lorl.plan_id=lrp.id
AND (`lorl`.`FLOW_NAME` IN('微信银联收款','微信支付收款','网银收款')))
OR lorl.flow_name IN ('合同中途终止')
OR lorl.flow_name IN ('合同中途终止','提前结清申请')
)
)))))
);

View File

@ -24,3 +24,10 @@ Insert Into AWE_Role_Menu (roleid,menuid) Values ('399','130');
Insert Into AWE_Role_Menu (roleid,menuid) Values ('800R00000021','130');
Insert Into AWE_Role_Menu (roleid,menuid) Values ('800R00000030','130');
Insert Into AWE_Role_Menu (roleid,menuid) Values ('800R00000034','130');
-- 休眠流程添加休眠前和休眠后的本金是否一致
Insert Into SCENARIO_CATALOG (scenarioid,scenarioname,scenariodescribe,defaultsubtypeno,initiateclass,inputuser,inputorg,inputtime,updateuser,updatetime,remark,isriskwarn) Values ('租金休眠流程','租金休眠流程','','10','',null,null,null,null,null,'',null);
Insert Into SCENARIO_MODEL (scenarioid,modelid,sortno,modelname,modeldescribe,modeltype,subtypeno,runcondition,status,nopassdeal,passdeal,passmessage,nopassmessage,executescript,remark,inputuser,inputorg,inputtime,updateuser,updatetime,groupid,modelkind,bizviewer) Values ('租金休眠流程','0010','0010','融资金额','','20','','','1','10',null,'通过','休眠后的本金与原本金不相等!','select case when lcc.CLEAN_LEASE_MONEY-a.CORPUS=0 then "true" else "false" end from (select sum(CORPUS) as CORPUS,CONTRACT_ID from LC_RENT_PLAN_TEMP where FLOWUNID =''#{ObjectNo}'' group by CONTRACT_ID ) a left join lc_calc_condition lcc on a.contract_id =lcc.CONTRACT_ID','',null,null,null,null,null,null,null,null);
Insert Into SCENARIO_GROUP (scenarioid,groupid,sortno,groupname,remark,inputuser,inputorg,inputtime,updateuser,updatetime) Values ('租金休眠流程','0010','0010','休眠申请','',null,null,null,null,null);
Insert Into SCENARIO_RELATIVE (scenarioid,groupid,modelid) Values ('租金休眠流程','0010','0010');

View File

@ -57,7 +57,7 @@ public class SelectBalance {
return "ERROR@剩余额度不足";
}
}
return "ERROR@网络异常……";
return "ERROR@经销商没有保证金";
}
}

View File

@ -14,6 +14,7 @@ import com.gnete.security.crypt.CryptException;
import com.tenwa.comm.util.date.DateAssistant;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.lease.app.allinpay.service.impl.AllinpayPaymentDo;
import com.tenwa.lease.app.quartzmession.AutoRefresh;
import com.tenwa.quartz.DateUtil;
import jbo.app.tenwa.calc.LC_COLLECT_MANUAL_INFO;
import jbo.app.tenwa.calc.LC_RENT_INCOME;
@ -38,11 +39,16 @@ import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CollectAuditInfoCache {
private static final Lock lock = new ReentrantLock();
private static Log log = LogFactory.getLog(CollectAuditInfoCache.class);
private String id;
@ -55,6 +61,7 @@ public class CollectAuditInfoCache {
private String collectStyle;
private String datas;
private String jobName;
private String operateFrom;
public String getDatas() {
return datas;
@ -729,12 +736,29 @@ public class CollectAuditInfoCache {
bod.setAttributeValue("PLAN_LIST",bom.getAttribute("plan_list").toString());
bod.setAttributeValue("RENT_PLAN_ID",bom.getAttribute("id").toString());
bod.setAttributeValue("COMPENSATORY_CON",COMPENSATORY_CON);
moneyHandle(bom.getAttribute("id").toString(),bod,tx);
bd.saveObject(bod);
//修改经销商信息表里的金额
bdi.createQuery("update O set O.sums='"+account_balance+"' where O.distributor_no=:distributor_id").setParameter("distributor_id", distributor_id).executeUpdate();
}
return "总共有 "+i+" 笔租金收款成功\n"+j+" 笔租金收款失败";
}
/**
* 处理本金利息罚息
* @param planId
* @param bo
*/
private void moneyHandle(String planId, BizObject bo, JBOTransaction tx) throws Exception {
ASResultSet as2 = Transaction.createTransaction(tx).getASResultSet2("select * from vi_repay_money where plan_id = '" + planId + "';");
if (as2.next()) {
bo.setAttributeValue("corpus", as2.getStringValue("corpus"));
bo.setAttributeValue("interest", as2.getStringValue("interest"));
bo.setAttributeValue("penalty", as2.getStringValue("penalty"));
}
as2.close();
}
private BigDecimal BigDecimal(String string) {
// TODO Auto-generated method stub
return null;
@ -835,37 +859,43 @@ public class CollectAuditInfoCache {
* @throws Exception
*/
public String batchCollectManageManual(JBOTransaction tx) throws Exception{
String[] ids = id.split("@");
String datas_json = datas.replaceAll("@", ",");
JSONObject object = JSON.parseObject(datas_json);
StringBuffer parms = new StringBuffer();
for (String str : ids) {
if (parms.length()==0) {
parms.append("'"+str+"'");
}else{
parms.append(",'"+str+"'");
boolean lockHoldStatus = lock.tryLock();
try {
if (lockHoldStatus) {
String[] ids = id.split("@");
String datas_json = datas.replaceAll("@", ",");
JSONObject object = JSON.parseObject(datas_json);
StringBuffer parms = new StringBuffer();
for (String str : ids) {
if (parms.length()==0) {
parms.append("'"+str+"'");
}else{
parms.append(",'"+str+"'");
}
}
BizObjectManager bm = JBOFactory.getFactory().getManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME);
List<BizObject> bolistTL = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,O.rent,O.project_id from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where O.contract_id=ca.contract_id and collect_type='TLcollect' and O.id in ("+parms.toString()+")").getResultList(false);
List<BizObject> bolistYL = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,O.rent from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where O.contract_id=ca.contract_id and collect_type='YLcollect' and O.id in ("+parms.toString()+")").getResultList(false);
if (bolistTL.size() != 0) {
AllinpayPaymentDo apd = new AllinpayPaymentDo();
for(BizObject bo:bolistTL){
String plan_id = bo.getAttribute("id").toString();
bo.setAttributeValue("rent", object.get(plan_id));
}
apd.BatchCollectMoeny(tx, bolistTL);
}
if (bolistYL.size() != 0) {
for(BizObject bo:bolistYL){
String plan_id = bo.getAttribute("id").toString();
bo.setAttributeValue("rent", object.get(plan_id));
}
singleBatchCollectMoeny(tx, bolistYL);
}
}
} finally {
if (lockHoldStatus) lock.unlock();
}
BizObjectManager bm = JBOFactory.getFactory().getManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME);
List<BizObject> bolistTL = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,O.rent,O.project_id from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where O.contract_id=ca.contract_id and collect_type='TLcollect' and O.id in ("+parms.toString()+")").getResultList(false);
List<BizObject> bolistYL = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,O.rent from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where O.contract_id=ca.contract_id and collect_type='YLcollect' and O.id in ("+parms.toString()+")").getResultList(false);
if (bolistTL.size() != 0) {
AllinpayPaymentDo apd = new AllinpayPaymentDo();
for(BizObject bo:bolistTL){
String plan_id = bo.getAttribute("id").toString();
bo.setAttributeValue("rent", object.get(plan_id));
}
apd.BatchCollectMoeny(tx, bolistTL);
}
if (bolistYL.size() != 0) {
for(BizObject bo:bolistYL){
String plan_id = bo.getAttribute("id").toString();
bo.setAttributeValue("rent", object.get(plan_id));
}
singleBatchCollectMoeny(tx, bolistYL);
}
return "·¢Æð¿Û¿îÉêÇë³É¹¦£¡";
return lockHoldStatus ? "发起扣款申请成功!" : "禁止重复发起扣款";
}
/**
* 检查定时任务是否正在运行
@ -922,6 +952,11 @@ public class CollectAuditInfoCache {
* @throws Exception
*/
public String queryBatchCollectStatus(JBOTransaction tx) throws Exception{
if(!Objects.isNull(operateFrom)){
if(AutoRefresh.getHoldLockStatus()){
return "定时任务回盘中,禁止手工操作!";
}
}
Transaction Sqlca = Transaction.createTransaction(tx);
BizObjectManager bm = JBOFactory.getFactory().getManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME);
BizObjectManager bc = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME);
@ -2012,4 +2047,12 @@ public class CollectAuditInfoCache {
this.jobName = jobName;
}
public String getOperateFrom() {
return operateFrom;
}
public void setOperateFrom(String operateFrom) {
this.operateFrom = operateFrom;
}
}

View File

@ -11,6 +11,7 @@ import com.amarsoft.awe.util.Transaction;
import com.gnete.security.crypt.CryptException;
import com.tenwa.comm.util.date.DateAssistant;
import com.tenwa.lease.app.allinpay.service.impl.AllinpayPaymentDo;
import com.tenwa.lease.app.quartzmession.AutoRefresh;
import com.tenwa.quartz.DateUtil;
import jbo.app.tenwa.calc.LC_COLLECT_MANUAL_INFO;
import jbo.app.tenwa.calc.LC_RENT_INCOME;
@ -36,11 +37,16 @@ import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CollectAuditInfoCacheTj {
private static final Lock lock = new ReentrantLock();
private static Log log = LogFactory.getLog(CollectAuditInfoCacheTj.class);
private String id;
@ -53,6 +59,7 @@ public class CollectAuditInfoCacheTj {
private String collectStyle;
private String datas;
private String jobName;
private String operateFrom;
public String getDatas() {
return datas;
@ -833,38 +840,44 @@ public class CollectAuditInfoCacheTj {
* @return
* @throws Exception
*/
public String batchCollectManageManual(JBOTransaction tx) throws Exception{
String[] ids = id.split("@");
String datas_json = datas.replaceAll("@", ",");
JSONObject object = JSON.parseObject(datas_json);
StringBuffer parms = new StringBuffer();
for (String str : ids) {
if (parms.length()==0) {
parms.append("'"+str+"'");
}else{
parms.append(",'"+str+"'");
public String batchCollectManageManual(JBOTransaction tx) throws Exception {
boolean lockHoldStatus = lock.tryLock();
try {
if (lockHoldStatus) {
String[] ids = id.split("@");
String datas_json = datas.replaceAll("@", ",");
JSONObject object = JSON.parseObject(datas_json);
StringBuffer parms = new StringBuffer();
for (String str : ids) {
if (parms.length()==0) {
parms.append("'"+str+"'");
}else{
parms.append(",'"+str+"'");
}
}
BizObjectManager bm = JBOFactory.getFactory().getManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME);
List<BizObject> bolistTL = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,O.rent,O.project_id from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where O.contract_id=ca.contract_id and collect_type='TLcollect' and O.id in ("+parms.toString()+")").getResultList(false);
List<BizObject> bolistYL = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,O.rent from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where O.contract_id=ca.contract_id and collect_type='YLcollect' and O.id in ("+parms.toString()+")").getResultList(false);
if (bolistTL.size() != 0) {
AllinpayPaymentDo apd = new AllinpayPaymentDo();
for(BizObject bo:bolistTL){
String plan_id = bo.getAttribute("id").toString();
bo.setAttributeValue("rent", object.get(plan_id));
}
apd.BatchCollectMoeny(tx, bolistTL);
}
if (bolistYL.size() != 0) {
for(BizObject bo:bolistYL){
String plan_id = bo.getAttribute("id").toString();
bo.setAttributeValue("rent", object.get(plan_id));
}
singleBatchCollectMoeny(tx, bolistYL);
}
}
} finally {
if (lockHoldStatus) lock.unlock();
}
BizObjectManager bm = JBOFactory.getFactory().getManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME);
List<BizObject> bolistTL = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,O.rent,O.project_id from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where O.contract_id=ca.contract_id and collect_type='TLcollect' and O.id in ("+parms.toString()+")").getResultList(false);
List<BizObject> bolistYL = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,O.rent from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where O.contract_id=ca.contract_id and collect_type='YLcollect' and O.id in ("+parms.toString()+")").getResultList(false);
if (bolistTL.size() != 0) {
AllinpayPaymentDo apd = new AllinpayPaymentDo();
for(BizObject bo:bolistTL){
String plan_id = bo.getAttribute("id").toString();
bo.setAttributeValue("rent", object.get(plan_id));
}
apd.BatchCollectMoeny(tx, bolistTL);
}
if (bolistYL.size() != 0) {
for(BizObject bo:bolistYL){
String plan_id = bo.getAttribute("id").toString();
bo.setAttributeValue("rent", object.get(plan_id));
}
singleBatchCollectMoeny(tx, bolistYL);
}
return "·¢Æð¿Û¿îÉêÇë³É¹¦£¡";
return lockHoldStatus ? "发起扣款申请成功!" : "禁止重复发起扣款";
}
/**
* 检查定时任务是否正在运行
@ -922,6 +935,11 @@ public class CollectAuditInfoCacheTj {
* @throws Exception
*/
public String queryBatchCollectStatus(JBOTransaction tx) throws Exception{
if(!Objects.isNull(operateFrom)){
if(AutoRefresh.getHoldLockStatus()){
return "定时任务回盘中,禁止手工操作!";
}
}
Transaction Sqlca = Transaction.createTransaction(tx);
BizObjectManager bm = JBOFactory.getFactory().getManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME);
BizObjectManager bc = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME);
@ -1631,7 +1649,7 @@ public class CollectAuditInfoCacheTj {
try{
trans = JBOFactory.createJBOTransaction();
Transaction transaction = Transaction.createTransaction(trans);
BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME);
BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME,trans);
BizObject bo = bm.createQuery("O.id=:id").setParameter("id", planId).getSingleResult(false);
String itemsn0 = "";
if (bo !=null) {
@ -2019,5 +2037,11 @@ public class CollectAuditInfoCacheTj {
this.jobName = jobName;
}
public String getOperateFrom() {
return operateFrom;
}
public void setOperateFrom(String operateFrom) {
this.operateFrom = operateFrom;
}
}

View File

@ -174,15 +174,7 @@ public class NewCustomerCompanyController{
if(customernum!="" && customernum!=null && customernum.length()>0){
newCustomer.setAttributeValue("customer_num", customernum);
}else{
//»ñÈ¡±àÂë¹æÔò
String serinum=FlowUtil.getCustomer_Id(tx);
String serin="";
if(serinum.length()<15){
for(int i=0;i<15-serinum.length();i++){
serin+="0";
}
}
newCustomer.setAttributeValue("customer_num", "APZLC"+serin+serinum);
newCustomer.setAttributeValue("customer_num", FlowUtil.getCustomer_Number(true,"C"));
}
newCustomer.setAttributeValue("inputtime", DateAssistant.getTodayNow());
custManager.saveObject(newCustomer);

View File

@ -81,8 +81,8 @@ public class SmsController {
String sendPassword = messageConfig.getAttribute("SENDER_PASSWORD_").getString();
String sendUrl = messageConfig.getAttribute("SEND_MESSAGE_URL_").getString();
HttpClient httpClient = new HttpClient();
//余额查询的接口url
String url = sendUrl+"?pwd="+sendPassword+"&username="+sendUsername;
//余额查询的接口url,查询余额连接不一样不能从页面配置的获取
String url = "http://api.rcs6g.com/getBalance.api.php?pwd="+sendPassword+"&username="+sendUsername;
GetMethod getMethod = new GetMethod(url);
int statusCode = httpClient.executeMethod(getMethod);
System.out.println("״̬Âë:"+statusCode);

View File

@ -1,31 +1,32 @@
package com.tenwa.lease.app.quartzmession;
import org.quartz.JobExecutionContext;
import com.amarsoft.are.util.StringFunction;
import com.base.util.QuartzUtil;
public class AutoFiveGradeClass {
public String execute(JobExecutionContext arg0){
private String curUserId;
public void setCurUserId(String curUserId) {
this.curUserId = curUserId;
}
public String execute() {
AutoFiveGradeClassification autoFive = new AutoFiveGradeClassification();
String startime = StringFunction.getTodayNow();
Object userId = arg0.getTrigger().getJobDataMap().get("CurUserId");
String curUserId = userId == null? "system" : userId.toString();
try {
String result= autoFive.autoFiveGradeClassification();
if(result=="success"){
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.AutoFiveGradeClass", "success", "³É¹¦", curUserId);
return "success";
}else{
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.AutoFiveGradeClass", "error", "ʧ°Ü", curUserId);
return "error";
}
} catch (Exception e) {
e.printStackTrace();
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.AutoFiveGradeClass", "error", "ʧ°Ü", curUserId);
try {
String result = autoFive.autoFiveGradeClassification();
if (result == "success") {
QuartzUtil.insertLog(startime, "com.tenwa.lease.app.quartzmession.AutoFiveGradeClass", "success", "³É¹¦", curUserId);
return "success";
} else {
QuartzUtil.insertLog(startime, "com.tenwa.lease.app.quartzmession.AutoFiveGradeClass", "error", "ʧ°Ü", curUserId);
return "error";
}
} catch (Exception e) {
e.printStackTrace();
QuartzUtil.insertLog(startime, "com.tenwa.lease.app.quartzmession.AutoFiveGradeClass", "error", "ʧ°Ü", curUserId);
return "error";
}
}
}

View File

@ -93,8 +93,12 @@ public class AutoFiveGradeClassification implements Job {
//更新合同状态为100105 分类状态
sqlca.executeSQL("update LC_CALC_CONDITION_STATUS LCCS join lb_contract_info lci on LCCS.CONTRACT_ID = lci.ID set LCCS.FIVE_GRADE='ClassifyResult01',LCCS.FIVE_GRADE_DATE= date_format(curdate(),'%Y/%m/%d'),LCCS.FIVE_GRADE_DEMO=concat(date_format(curdate(),'%Y/%m/%d'),'日自动跑批') where lci.CONTRACT_STATUS in ('100','105') and LCCS.FIVE_GRADE <> 'ClassifyResult01'");
//更新合同状态为31分类状态
//更新合同状态为31分类状态逾期
sqlca.executeSQL("{call proc_autoFiveClassify()}");
//更新合同状态为31分类状态未逾期,刚起租 2022/03/15
sqlca.executeSQL("{call proc_autoFiveClassify_normal()}");
sqlca.commit();
List<BizObject> diList = JBOFactory.getBizObjectManager(DISTRIBUTOR_INFO.CLASS_NAME).createQuery("1=1").getResultList(false);
for (BizObject bo : diList) {

View File

@ -24,6 +24,15 @@ import java.util.concurrent.locks.ReentrantLock;
public class AutoRefresh implements Job {
private static final Lock lock = new ReentrantLock();
private static boolean isHoldLock = false;
public static boolean getHoldLockStatus() {
return isHoldLock;
}
public static Lock getQuartzLock() {
return lock;
}
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
@ -33,6 +42,7 @@ public class AutoRefresh implements Job {
boolean lockHoldStatus = lock.tryLock();
try {
if (lockHoldStatus) {
isHoldLock = true;
CollectAuditInfoCache ca = new CollectAuditInfoCache();
JBOTransaction tx = null;
try {
@ -85,7 +95,10 @@ public class AutoRefresh implements Job {
} catch (Exception e) {
e.printStackTrace();
} finally {
if (lockHoldStatus) lock.unlock();
if (lockHoldStatus) {
lock.unlock();
isHoldLock = false;
}
}
}
}

View File

@ -24,9 +24,9 @@ public class CorpusSourceFundIncomeCreateVoucherJob implements Job {
VoucherInfoService voucher = new FundIncomeVoucherPSBC();
voucher.run();
QuartzUtil.insertLog(startime,"com.tenwa.comm.message.controller.BusinessCancelJob", "success", "成功", curUserId);
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.CorpusSourceFundIncomeCreateVoucherJob", "success", "成功", curUserId);
} catch (Exception e) {
QuartzUtil.insertLog(startime,"com.tenwa.comm.message.controller.BusinessCancelJob", "error", "失败", curUserId);
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.CorpusSourceFundIncomeCreateVoucherJob", "error", "失败", curUserId);
}
}

View File

@ -1,5 +1,6 @@
package com.tenwa.lease.app.quartzmession;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@ -11,6 +12,7 @@ import com.tenwa.voucher.CreateVoucherProcess.InsertVoucherRentIncome;
* 生成卡扣凭证明细-定时任务
* @author xiezhiwen
*/
@DisallowConcurrentExecution
public class CreateVoucherRentIncomeMission implements Job {
@Override
@ -29,9 +31,9 @@ public class CreateVoucherRentIncomeMission implements Job {
InsertVoucherRentIncome ivri=new InsertVoucherRentIncome();
ivri.execute();
QuartzUtil.insertLog(startime,"com.tenwa.comm.message.controller.BusinessCancelJob", "success", "成功", curUserId);
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.CreateVoucherRentIncomeMission", "success", "成功", curUserId);
} catch (Exception e) {
QuartzUtil.insertLog(startime,"com.tenwa.comm.message.controller.BusinessCancelJob", "error", "失败", curUserId);
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.CreateVoucherRentIncomeMission", "error", "失败", curUserId);
}
}

View File

@ -44,11 +44,11 @@ public class MarginDeduction implements Job{
BizObjectManager lfiBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_FUND_INCOME");
BizObjectManager lfpBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_FUND_PLAN");
BizObjectManager vlrpBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.VI_LC_RENT_PLAN_NEW");
List<Map<String,String>> listData = DataOperatorUtil.getDataBySql("select cast(lfp.PLAN_MONEY as decimal(18,2))-cast(ifnull(lfit.fact_money,'0') as decimal(18,2))-cast(IfNULL(lfi.fact_money,'0') as decimal(18,2)) as fact_money,lci.id as contractId " +
List<Map<String,String>> listData = DataOperatorUtil.getDataBySql("select cast(sum(lfp.PLAN_MONEY) as decimal(18,2))-cast(ifnull(lfit.fact_money,'0') as decimal(18,2))-cast(IfNULL(lfi.fact_money,'0') as decimal(18,2)) as fact_money,lci.id as contractId " +
"from lc_fund_plan lfp left join lb_contract_info lci on lci.id=lfp.CONTRACT_ID " +
" left join (select sum(fact_money) fact_money,PAYMENT_NUMBER from lc_fund_income_temp where FEE_TYPE='feetype16' and is_flowing='0' and ROLL_BACK='0' group by PAYMENT_NUMBER) lfit on lfp.PAYMENT_NUMBER=lfit.PAYMENT_NUMBER " +
" LEFT JOIN (SELECT SUM(fact_money) fact_money,PAYMENT_NUMBER FROM lc_fund_income WHERE FEE_TYPE='feetype16' AND ROLL_BACK='0' group by PAYMENT_NUMBER) lfi on lfp.PAYMENT_NUMBER=lfi.PAYMENT_NUMBER " +
"where lci.BUSINESSTYPE='1' and lci.CONTRACT_STATUS='31' and lfp.FEE_TYPE='feetype16' and lfp.SETTLE_METHOD is not null ");
"where lci.BUSINESSTYPE='1' and lci.CONTRACT_STATUS='31' and lfp.FEE_TYPE='feetype16' and lfp.SETTLE_METHOD is not null AND NOT EXISTS (SELECT 1 FROM lc_occupy_rent_list lorl WHERE lfp.PAYMENT_NUMBER = lorl.PAYMENT_NUMBER AND lorl.flow_name IN ('合同中途终止','微信银联收款','微信支付收款','网银收款','提前结清申请')) group by lci.id HAVING fact_money>0");
if(listData!=null && listData.size() > 0 ){
for (int i = 0; i < listData.size(); i++) {
try {

View File

@ -2,7 +2,10 @@ package com.tenwa.lease.flow.contract.commbusiness;
import com.amarsoft.are.jbo.BizObjectManager;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.awe.util.ASResultSet;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.context.ASUser;
import com.tenwa.flow.baseBussion.BaseBussiness;
import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO;
@ -12,12 +15,38 @@ public class LBInitContractStatusBusiness extends BaseBussiness {
@Override
public Object run(Transaction Sqlca) throws Exception {
this.initBussinessParam(Sqlca);
String flowname=(String)this.getAttribute("FlowName");
String contractId=this.getAttribute("ContractId").toString();
String settletype=this.getAttribute("settletype").toString();
String contractStatus=this.getAttribute("ContractStatus").toString();
String FlowUnid=this.getAttribute("FlowUnid").toString();
BizObjectManager bom=JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME);
String part = Sqlca.getString(" select case when min(TERMINATE_TYPE)=1 or min(TERMINATE_TYPE) is null then 'Y' else 'N' end from lb_equipment_car_temp lect where FLOWUNID = '"+FlowUnid+"' group by FLOWUNID");
Sqlca.join(bom);
if("提前结清".equals(flowname)&&"Y".equals(settletype)&&"Y".equals(part)) {
contractStatus = "31";
}else if("提前结清".equals(flowname)) {
settle(Sqlca);
}
bom.createQuery("update O set CONTRACT_STATUS=:contractstatus where id=:contractid").setParameter("contractstatus", contractStatus).setParameter("contractid", contractId).executeUpdate();
String sMessage="true";
return sMessage;
}
public void settle(Transaction Sqlca) throws Exception {
this.initBussinessParam(Sqlca);
String contractid = this.getAttribute("ContractId").toString();//当前用户对象
String CurUser = this.getAttribute("CurUserID").toString(); //当前用户对象
String flowunid = this.getAttribute("ObjectNo").toString(); //获取流程编号
String insertSql = "insert into lb_contract_settlement select :contractId,:flowunid,curdate(),now(),:userId,max(lrp.PLAN_LIST)"
+" from lb_contract_info lci left join lc_rent_plan lrp on lci.id = lrp.CONTRACT_ID "
+" where lci.id=:contractId";
SqlObject sqlObject = new SqlObject(insertSql)
.setParameter("contractId", contractid)
.setParameter("flowunid", flowunid)
.setParameter("userId", CurUser);
Sqlca.executeSQL(sqlObject);
}
}

View File

@ -1,21 +1,17 @@
package com.tenwa.lease.flow.contract.onhirechange;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.amarsoft.are.jbo.*;
import com.amarsoft.dict.als.manage.CodeManager;
import com.tenwa.comm.exception.BusinessException;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.flow.action.comm.BaseFlowStartAction;
import jbo.app.tenwa.calc.LC_CALC_CONDITION;
import jbo.com.tenwa.entity.comm.flow.FLOW_BUSSINESS_OBJECT;
import jbo.com.tenwa.lease.comm.LC_OCCUPY_RENT_LIST;
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.tenwa.comm.exception.BusinessException;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.flow.action.comm.BaseFlowStartAction;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*/
public class OnhireChangeFlowStartAction extends BaseFlowStartAction {
@ -77,15 +73,16 @@ public class OnhireChangeFlowStartAction extends BaseFlowStartAction {
}
}
public void createCheck(JBOTransaction tx,BizObject flowBussiness) throws JBOException{
public void createCheck(JBOTransaction tx,BizObject flowBussiness) throws Exception{
String contractId=flowBussiness.getAttribute("contract_id").getString();
String applyType=this.FlowParam.get("applyType");
List<BizObject> conditions=JBOFactory.createBizObjectQuery(LC_CALC_CONDITION.CLASS_NAME,"contract_id=:contractid").setParameter("contractid", contractId).getResultList(false);
BizObjectManager bm=JBOFactory.getBizObjectManager(LC_OCCUPY_RENT_LIST.CLASS_NAME, tx);
for(BizObject condition:conditions)
{
BizObject bo=bm.newObject();
bo.setAttributeValue("payment_number", condition.getAttribute("payment_number").getString());
bo.setAttributeValue("flow_name","Æð×âºóºÏͬ±ä¸ü");
bo.setAttributeValue("flow_name",CodeManager.getItemName("ApplyType", applyType));
bo.setAttributeValue("flowunid", flowBussiness.getAttribute("flow_unid").toString());
bm.saveObject(bo);
}

View File

@ -3,6 +3,7 @@ package com.tenwa.lease.flow.contract.terminate;
import java.util.HashMap;
import java.util.Map;
import com.amarsoft.dict.als.manage.CodeManager;
import jbo.com.tenwa.entity.comm.flow.FLOW_BUSSINESS_OBJECT;
import jbo.com.tenwa.lease.comm.LC_OCCUPY_RENT_LIST;
@ -71,14 +72,15 @@ public class TerminateFlowStartAction extends BaseFlowStartAction {
}
}
public void createCheck(JBOTransaction tx,BizObject flowBussiness) throws JBOException{
BizObjectManager bm=JBOFactory.getBizObjectManager(LC_OCCUPY_RENT_LIST.CLASS_NAME, tx);
String payment_number=this.getFlowParam().get("payment_number");
BizObject bo=bm.newObject();
bo.setAttributeValue("payment_number", payment_number);
bo.setAttributeValue("flow_name","合同中途终止");
bo.setAttributeValue("flowunid", flowBussiness.getAttribute("flow_unid").toString());
bm.saveObject(bo);
public void createCheck(JBOTransaction tx, BizObject flowBussiness) throws Exception {
BizObjectManager bm = JBOFactory.getBizObjectManager(LC_OCCUPY_RENT_LIST.CLASS_NAME, tx);
String payment_number = this.getFlowParam().get("payment_number");
String applyType = this.FlowParam.get("applyType");
BizObject bo = bm.newObject();
bo.setAttributeValue("payment_number", payment_number);
bo.setAttributeValue("flow_name", CodeManager.getItemName("ApplyType", applyType));
bo.setAttributeValue("flowunid", flowBussiness.getAttribute("flow_unid").toString());
bm.saveObject(bo);
}
}

View File

@ -1,28 +1,41 @@
package com.tenwa.lease.flow.project.commbusiness;
import jbo.com.tenwa.entity.comm.flow.FLOW_BUSSINESS_OBJECT;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.BizObjectManager;
import com.amarsoft.are.jbo.BizObjectQuery;
import com.amarsoft.are.jbo.JBOFactory;
import java.util.HashMap;
import java.util.Map;
import com.amarsoft.awe.util.ASResultSet;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.context.ASUser;
import com.tenwa.flow.baseBussion.BaseBussiness;
import com.tenwa.lease.flow.comm.service.LeaseFlowBaseService;
import com.tenwa.lease.flow.comm.service.ServiceOperatorEnum;
import com.tenwa.lease.flow.comm.serviceImp.LeaseFlowBaseServiceImp;
public class AdvanceSettleChangRent extends BaseBussiness{
@Override
public Object run(Transaction tx) throws Exception {
this.initBussinessParam(tx.getTransaction());
String flowname=(String)this.getAttribute("FlowName");
String settletype=this.getAttribute("settletype").toString();
String FlowUnid=this.getAttribute("FlowUnid").toString();
String part = tx.getString(" select case when min(TERMINATE_TYPE)=1 or min(TERMINATE_TYPE) is null then 'Y' else 'N' end from lb_equipment_car_temp lect where FLOWUNID = '"+FlowUnid+"' group by FLOWUNID");
ASUser CurUser = ASUser.getUser(this.getAttribute("CurUserID").toString(), tx); //µ±Ç°Óû§ÔÏó
String SQL="{call proc_terminate_bill_income('"+this.getAttribute("ContractId").toString()+"','"+this.getAttribute("ObjectNo").toString()+"','"+this.getAttribute("CurUserID").toString()+"','"+CurUser.getOrgID()+"')} ";
SqlObject asql = new SqlObject(SQL);
ASResultSet rs = null;
rs = tx.getASResultSet(asql);
if("Ìáǰ½áÇå".equals(flowname)&&"Y".equals(settletype)&&"Y".equals(part)) {
Map<String,String> fromCondtion = new HashMap<String, String>();
fromCondtion.put("FLOWUNID", FlowUnid);
Map<String,String> otherProperty = new HashMap<String, String>();
otherProperty.put("FLOWUNID", "");
LeaseFlowBaseService service=new LeaseFlowBaseServiceImp();
SqlObject sqlObject = new SqlObject("update lc_rent_income_temp set IS_FLOWING = '1' where FLOWUNID = '"+FlowUnid+"'");
tx.executeSQL(sqlObject);
service.copyRentIncomeInfo(tx, fromCondtion, null , otherProperty, ServiceOperatorEnum.TempToFormal,null);
}else{
String SQL="{call proc_terminate_bill_income('"+this.getAttribute("ContractId").toString()+"','"+this.getAttribute("ObjectNo").toString()+"','"+this.getAttribute("CurUserID").toString()+"','"+CurUser.getOrgID()+"')} ";
SqlObject asql = new SqlObject(SQL);
ASResultSet rs = null;
rs = tx.getASResultSet(asql);
}
return "true";
}
}

View File

@ -1,30 +1,5 @@
package com.tenwa.lease.flow.project.commbusiness;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import jbo.app.tenwa.customer.CUSTOMER_ADDRESS;
import jbo.app.tenwa.customer.CUSTOMER_ADDRESS_TEMP;
import jbo.app.tenwa.customer.CUSTOMER_CERT;
import jbo.app.tenwa.customer.CUSTOMER_CERT_TEMP;
import jbo.app.tenwa.customer.CUSTOMER_COMPANY;
import jbo.app.tenwa.customer.CUSTOMER_COMPANY_TEMP;
import jbo.app.tenwa.customer.CUSTOMER_FAMILY;
import jbo.app.tenwa.customer.CUSTOMER_FAMILY_TEMP;
import jbo.app.tenwa.customer.CUSTOMER_INFO;
import jbo.app.tenwa.customer.CUSTOMER_INFO_TEMP;
import jbo.app.tenwa.customer.CUSTOMER_PERSON;
import jbo.app.tenwa.customer.CUSTOMER_PERSON_TEMP;
import jbo.app.tenwa.customer.CUSTOMER_TYPE;
import jbo.app.tenwa.customer.CUSTOMER_TYPE_TEMP;
import jbo.com.tenwa.lease.comm.VI_CUST_TENANT;
import jbo.com.tenwa.lease.comm.CUST_PERSON_HIS;
import jbo.com.tenwa.lease.comm.LB_GUARANTEE_UNIT;
import jbo.com.tenwa.lease.comm.LB_UNION_LESSEE;
import jbo.com.tenwa.lease.comm.LB_UNION_LESSEE_TEMP;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.BizObjectManager;
import com.amarsoft.are.jbo.JBOFactory;
@ -32,22 +7,34 @@ import com.amarsoft.awe.util.Transaction;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.flow.baseBussion.BaseBussiness;
import com.tenwa.lease.flow.project.businessapply.CustomerCompare;
import jbo.app.tenwa.customer.*;
import jbo.com.tenwa.lease.comm.CUST_PERSON_HIS;
import jbo.com.tenwa.lease.comm.LB_UNION_LESSEE;
import jbo.com.tenwa.lease.comm.LB_UNION_LESSEE_TEMP;
import jbo.com.tenwa.lease.comm.VI_CUST_TENANT;
import org.apache.commons.lang3.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
public class LBCustomerRelaTempToFormalBusiness extends BaseBussiness {
@SuppressWarnings("unchecked")
@Override
public Object run(Transaction Sqlca) throws Exception {
this.initBussinessParam(Sqlca);
String custType1 = "";
String customeridForCust = "";
// String custType = this.getAttribute("custType").toString();
String ProjectId = this.getAttribute("ProjectId").toString();
// String CustomerId = this.getAttribute("CustomerId").toString();
String flowunid = this.getAttribute("FlowUnid").toString();
//String certType = this.getAttribute("certType").toString();
String certType = this.getAttribute("certtype").toString();
//String certId = this.getAttribute("certNo").toString();
String certId = this.getAttribute("certid").toString();
/**
* 查询证件表与客户类型表, 如果已经有客户类型, 拷表时替换, 否则新增
*/
BizObjectManager bomCT1 = JBOFactory.getBizObjectManager(CUSTOMER_CERT.CLASS_NAME,Sqlca);
BizObjectManager bomCTT1 = JBOFactory.getBizObjectManager(CUSTOMER_TYPE.CLASS_NAME,Sqlca); //客户类型临时表
List<BizObject> boCT1 = bomCT1.createQuery("certtype='"+certType+"' and certid='"+certId+"'").getResultList(false);
@ -63,62 +50,111 @@ public class LBCustomerRelaTempToFormalBusiness extends BaseBussiness {
}
}
}
Map<String,String>fromCondtion=new HashMap<String, String>();
fromCondtion.put("flowunid",this.getAttribute("FlowUnid").toString());
Map<String,String>otherProperty=new HashMap<String, String>();
Map<String,String>infoProperty=new HashMap<String, String>();
Map<String,String>personProperty=new HashMap<String, String>();
Map<String,String>companyProperty=new HashMap<String, String>();
//1.处理存量客户 还是用之前的客户id 存到 关联表中只有自然人能做存量客户
if("cust_type.cust".equals(custType1)){
/**
* 承租人临时表到正式表
*/
fromCondtion.put("flowunid",this.getAttribute("FlowUnid").toString());
String CustId1 = customeridForCust;
otherProperty.put(LB_UNION_LESSEE.CUSTOMER_ID, CustId1);
otherProperty.put(LB_UNION_LESSEE.PROJECT_ID, ProjectId);
DataOperatorUtil.copySingleJBO(LB_UNION_LESSEE_TEMP.CLASS_NAME, fromCondtion, LB_UNION_LESSEE.CLASS_NAME, null, otherProperty, Sqlca);
//VI_CUST_PERSON视图查出来6张表的所有信息
/**
* VI_CUST_PERSON视图查出来6张表的所有信息
* 正式表中只存储客户的最新的信息 所以通过 CustomerId 会查到唯一的一条 承租人
* 将客户上一次的信息导入历史表之后正式表做update操作
*/
fromCondtion.clear();
fromCondtion.put("customerid",CustId1);
//正式表中只存储客户的最新的信息 所以通过 CustomerId 会查到唯一的一条 承租人
otherProperty.clear();
otherProperty.put("STATUS","02");
DataOperatorUtil.copySingleJBO(VI_CUST_TENANT.CLASS_NAME, fromCondtion, CUST_PERSON_HIS.CLASS_NAME, null, otherProperty, Sqlca);
//将客户上一次的信息导入历史表之后正式表做update操作
//更新CUSTOMER_INFO信息
fromCondtion.clear();
fromCondtion.put("flowunid",flowunid);
BizObject cibo = DataOperatorUtil.getJBOBySQL("flowunid=:flowunid", LB_UNION_LESSEE_TEMP.CLASS_NAME, fromCondtion, Sqlca);
String custid2 = cibo.getAttribute("customer_id").toString();
String custName = cibo.getAttribute("customer_name").toString();
fromCondtion.put("customerid", custid2);//区别担保人和承租人
otherProperty.clear();
otherProperty.put("customerid", CustId1);
/**
* 查询客户正式表, 如果识别号有正式表数据, copy表用FLOWUNID做来源
*/
BizObjectManager bomCet = JBOFactory.getBizObjectManager("jbo.app.tenwa.customer.CUSTOMER_INFO",Sqlca);
BizObject bo = bomCet.createQuery("certid='"+certId+"'").getSingleResult(false);
if(bo!=null) {
String CUSTOMERNAME = bo.getAttribute("CUSTOMERNAME").getString();
/**
* 更新表:
* CUSTOMER_INFO_TEMP--> CUSTOMER_INFO
*/
fromCondtion.clear();
fromCondtion.put("flowunid",flowunid);
otherProperty.clear();
otherProperty.put("customerid", CustId1);
infoProperty.clear();
infoProperty.put("customerid", CustId1);
infoProperty.put("customername", CUSTOMERNAME);
DataOperatorUtil.copySingleJBO(CUSTOMER_INFO_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_INFO.CLASS_NAME, otherProperty, infoProperty, Sqlca);
/**
* 更新表:
* CUSTOMER_PERSON_TEMP-->CUSTOMER_PERSON
* CUSTOMER_COMPANY_TEMP-->CUSTOMER_COMPANY
*/
personProperty.clear();
personProperty.put("customerid", CustId1);
personProperty.put("FULLNAME", CUSTOMERNAME);
companyProperty.clear();
companyProperty.put("customerid", CustId1);
companyProperty.put("enterprisename", CUSTOMERNAME);
if("03".equals(this.getAttribute("CustomerType"))){ // 自然人
DataOperatorUtil.copySingleJBO(CUSTOMER_PERSON_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_PERSON.CLASS_NAME, otherProperty, personProperty, Sqlca);
}else{
DataOperatorUtil.copySingleJBO(CUSTOMER_COMPANY_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_COMPANY.CLASS_NAME, otherProperty, companyProperty, Sqlca);
}
/**
* 更新表:
* CUSTOMER_ADDRESS_TEMP-->CUSTOMER_ADDRESS
* CUSTOMER_CERT_TEMP-->CUSTOMER_CERT
* CUSTOMER_TYPE_TEMP-->CUSTOMER_TYPE
*/
DataOperatorUtil.copySingleJBO(CUSTOMER_ADDRESS_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_ADDRESS.CLASS_NAME, otherProperty, otherProperty, Sqlca);
DataOperatorUtil.copySingleJBO(CUSTOMER_CERT_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_CERT.CLASS_NAME, otherProperty, infoProperty, Sqlca);
DataOperatorUtil.copySingleJBO(CUSTOMER_TYPE_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_TYPE.CLASS_NAME, otherProperty, otherProperty, Sqlca);
}else {
//更新CUSTOMER_INFO信息
fromCondtion.clear();
fromCondtion.put("flowunid",flowunid);
BizObject cibo = DataOperatorUtil.getJBOBySQL("flowunid=:flowunid", LB_UNION_LESSEE_TEMP.CLASS_NAME, fromCondtion, Sqlca);
String custid2 = cibo.getAttribute("customer_id").toString();
String custName = cibo.getAttribute("customer_name").toString();
fromCondtion.put("customerid", custid2);//区别担保人和承租人
otherProperty.clear();
otherProperty.put("customerid", CustId1);
//修改CUSTOMER_INFOCUSTOMER_CERT
Map<String,String>infoProperty=new HashMap<String, String>();
infoProperty.put("customerid", CustId1);
infoProperty.put("customername", custName);
//修改CUSTOMER_PERSON
Map<String,String>personProperty=new HashMap<String, String>();
personProperty.put("customerid", CustId1);
personProperty.put("FULLNAME", custName);
//更新CUSTOMER_COMPANY
Map<String,String>companyProperty=new HashMap<String, String>();
companyProperty.put("customerid", CustId1);
companyProperty.put("enterprisename", custName);
//修改CUSTOMER_INFOCUSTOMER_CERT
infoProperty.clear();
infoProperty.put("customerid", CustId1);
infoProperty.put("customername", custName);
//修改CUSTOMER_PERSON
personProperty.clear();
personProperty.put("customerid", CustId1);
personProperty.put("FULLNAME", custName);
//更新CUSTOMER_COMPANY
companyProperty.clear();
companyProperty.put("customerid", CustId1);
companyProperty.put("enterprisename", custName);
DataOperatorUtil.copySingleJBO(CUSTOMER_INFO_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_INFO.CLASS_NAME, otherProperty, infoProperty, Sqlca);
if("03".equals(this.getAttribute("CustomerType"))){ // 自然人
DataOperatorUtil.copySingleJBO(CUSTOMER_PERSON_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_PERSON.CLASS_NAME, otherProperty, personProperty, Sqlca);
}else{
DataOperatorUtil.copySingleJBO(CUSTOMER_COMPANY_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_COMPANY.CLASS_NAME, otherProperty, companyProperty, Sqlca);
DataOperatorUtil.copySingleJBO(CUSTOMER_INFO_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_INFO.CLASS_NAME, otherProperty, infoProperty, Sqlca);
if("03".equals(this.getAttribute("CustomerType"))){ // 自然人
DataOperatorUtil.copySingleJBO(CUSTOMER_PERSON_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_PERSON.CLASS_NAME, otherProperty, personProperty, Sqlca);
}else{
DataOperatorUtil.copySingleJBO(CUSTOMER_COMPANY_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_COMPANY.CLASS_NAME, otherProperty, companyProperty, Sqlca);
}
DataOperatorUtil.copySingleJBO(CUSTOMER_ADDRESS_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_ADDRESS.CLASS_NAME, otherProperty, otherProperty, Sqlca);
DataOperatorUtil.copySingleJBO(CUSTOMER_CERT_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_CERT.CLASS_NAME, otherProperty, infoProperty, Sqlca);
DataOperatorUtil.copySingleJBO(CUSTOMER_TYPE_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_TYPE.CLASS_NAME, otherProperty, otherProperty, Sqlca);
}
DataOperatorUtil.copySingleJBO(CUSTOMER_ADDRESS_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_ADDRESS.CLASS_NAME, otherProperty, otherProperty, Sqlca);
DataOperatorUtil.copySingleJBO(CUSTOMER_CERT_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_CERT.CLASS_NAME, otherProperty, infoProperty, Sqlca);
// DataOperatorUtil.copySingleJBO(CUSTOMER_FAMILY_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_FAMILY.CLASS_NAME, otherProperty, otherProperty, Sqlca);
DataOperatorUtil.copySingleJBO(CUSTOMER_TYPE_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_TYPE.CLASS_NAME, otherProperty, otherProperty, Sqlca);
/* CustomerCompare cc= new CustomerCompare();
otherProperty.clear();
otherProperty.put(LB_GUARANTEE_UNIT.PROJECT_ID,ProjectId);
//将担保人信息导入正式表担保人和承租人在相同的表中为了保证这些表中的数据的唯一每一次都校验身份证并将信息存储在历史表中
this.copyGuarantee(Sqlca, flowunid, cc, otherProperty);*/
// return "true";
}else{
fromCondtion.clear();
fromCondtion.put("flowunid",this.getAttribute("FlowUnid").toString());
@ -141,41 +177,22 @@ public class LBCustomerRelaTempToFormalBusiness extends BaseBussiness {
DataOperatorUtil.copyJBOSet(CUSTOMER_COMPANY_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_COMPANY.CLASS_NAME, toCondtion, null, cc, Sqlca);
}
DataOperatorUtil.copyJBOSet(CUSTOMER_CERT_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_CERT.CLASS_NAME, toCondtion, null, cc, Sqlca);
// DataOperatorUtil.copyJBOSet(CUSTOMER_FAMILY_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_FAMILY.CLASS_NAME, toCondtion, null, cc, Sqlca);
DataOperatorUtil.copyJBOSet(CUSTOMER_ADDRESS_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_ADDRESS.CLASS_NAME, toCondtion, null, cc, Sqlca);
}
otherProperty.clear();
//otherProperty.put(LB_UNION_LESSEE.CUSTOMER_ID, custid);
//otherProperty.put(LB_UNION_LESSEE.PROJECT_ID, ProjectId);
otherProperty = this.getDefaultOtherProperty();
fromCondtion.clear();
fromCondtion.put(LB_UNION_LESSEE_TEMP.FLOWUNID,this.getAttribute("FlowUnid").toString());
DataOperatorUtil.copySingleJBO(LB_UNION_LESSEE_TEMP.CLASS_NAME, fromCondtion, LB_UNION_LESSEE.CLASS_NAME, null, otherProperty, Sqlca);
//List<BizObject> unitList=DataOperatorUtil.getSetJBO(LB_GUARANTEE_UNIT_TEMP.CLASS_NAME, fromCondtion, Sqlca);
/* for(BizObject unit:unitList){
fromCondtion.clear();
fromCondtion.put("id",unit.getAttribute("id").toString());
DataOperatorUtil.copySingleJBO(LB_GUARANTEE_UNIT_TEMP.CLASS_NAME, fromCondtion, LB_GUARANTEE_UNIT.CLASS_NAME, null, null, Sqlca);
fromCondtion.clear();
fromCondtion.put("customerid",unit.getAttribute("ASSUROR").getString());
fromCondtion.put("flowunid",this.getAttribute("FlowUnid").toString());
toCondtion.clear();
toCondtion.put("customerid", unit.getAttribute("ASSUROR").getString());
DataOperatorUtil.copyJBOSet(CUSTOMER_PERSON_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_PERSON.CLASS_NAME, toCondtion, null, cc, Sqlca);
DataOperatorUtil.copyJBOSet(CUSTOMER_CERT_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_CERT.CLASS_NAME, toCondtion, null, cc, Sqlca);
DataOperatorUtil.copyJBOSet(CUSTOMER_FAMILY_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_FAMILY.CLASS_NAME, toCondtion, null, cc, Sqlca);
DataOperatorUtil.copyJBOSet(CUSTOMER_ADDRESS_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_ADDRESS.CLASS_NAME, toCondtion, null, cc, Sqlca);
}*/
}
//配偶信息不考虑存量客户
fromCondtion.clear();
fromCondtion.put("flowunid",this.getAttribute("FlowUnid").toString());
otherProperty.clear();
otherProperty.put("project_id",this.getAttribute("ProjectId").toString());
otherProperty.put("customerid",StringUtils.isNotEmpty(customeridForCust) ? customeridForCust : Sqlca.getString("select customer_id from LB_UNION_LESSEE_TEMP where FLOWUNID = '" + this.getAttribute("FlowUnid").toString() + "'"));
DataOperatorUtil.copyJBOSet(CUSTOMER_FAMILY_TEMP.CLASS_NAME, fromCondtion, CUSTOMER_FAMILY.CLASS_NAME, null, otherProperty, null, Sqlca);
String sMessage="true";
return sMessage;
String sMessage="true";
return sMessage;
}
}

View File

@ -1,8 +1,13 @@
package com.tenwa.lease.flow.project.commbusiness;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.List;
import java.util.Map;
import com.amarsoft.app.lc.workflow.action.GetFlowAction;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.flow.baseBussion.BaseBussiness;
import com.tenwa.lease.flow.comm.service.LeaseFlowBaseService;
import com.tenwa.lease.flow.comm.service.ServiceOperatorEnum;
@ -23,7 +28,38 @@ public class LBEquipmentFormalToTempBusiness extends BaseBussiness {
Map<String,String>otherProperty=this.getDefaultOtherProperty();
otherProperty.put("IS_FLOW","Y");
service.copyOrLoadLBEquipment(Sqlca,fromCondtion,null,otherProperty,ServiceOperatorEnum.FormalToTemp, null);
ratio(Sqlca);
String sMessage="true";
return sMessage;
}
public void ratio(Transaction Sqlca) throws Exception {
String PROPROTION_NUMBER;
BigDecimal ratio = new BigDecimal(0);
String id01;
String id02;
String flowUnid=this.getAttribute("ObjectNo").toString();
String sql="select ifnull(round(round(lect.EQUIP_PRICE / ifnull(t.num, 1), 4), 4),0) as PROPROTION_NUMBER,f.id as id01,lect.id as id02 from lb_equipment_car_temp lect left join (select CONTRACT_ID,sum(ifnull(EQUIP_PRICE, 0)) as num from apzl.lb_equipment_car where (TERMINATE_TYPE = '1' or TERMINATE_TYPE is null) group by CONTRACT_ID ) t on t.CONTRACT_ID = lect.CONTRACT_ID left join (select id from apzl.lb_equipment_car_temp a where FLOWUNID = '"+flowUnid+"' and (TERMINATE_TYPE = '1' or TERMINATE_TYPE is null) order by id desc limit 1) f on 1=1 where (TERMINATE_TYPE = '1' or TERMINATE_TYPE is null) and lect.FLOWUNID = '"+flowUnid+"' order by lect.id";
List<Map<String,String>> list=DataOperatorUtil.getDataBySql(Sqlca, sql, null);
for (Map<String,String> let : list) {
PROPROTION_NUMBER = let.get("PROPROTION_NUMBER");
id01 = let.get("id01");
id02 = let.get("id02");
if("".equals(id01) || id01 == null) {
id01 = "0";
}
if(!id01.equals(id02)) {
BigDecimal bd = new BigDecimal(let.get("PROPROTION_NUMBER"));
ratio = ratio.add(bd);
Sqlca.executeSQL(new SqlObject("update lb_equipment_car_temp set retainfield2 = '"+PROPROTION_NUMBER+"' where id = '"+id02+"'"));
}else {
BigDecimal gread = new BigDecimal(1);
gread = gread.subtract(ratio);
PROPROTION_NUMBER = gread.toString();
Sqlca.executeSQL(new SqlObject("update lb_equipment_car_temp set retainfield2 = '"+PROPROTION_NUMBER+"' where id = '"+id02+"'"));
}
}
}
}

View File

@ -1,13 +1,22 @@
package com.tenwa.lease.flow.project.commbusiness;
import java.util.List;
import java.util.Map;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.BizObjectManager;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.flow.baseBussion.BaseBussiness;
import com.tenwa.lease.flow.comm.service.LeaseFlowBaseService;
import com.tenwa.lease.flow.comm.service.ServiceOperatorEnum;
import com.tenwa.lease.flow.comm.serviceImp.LeaseFlowBaseServiceImp;
import jbo.com.tenwa.lease.comm.LB_EQUIPMENT_CAR;
import jbo.com.tenwa.lease.comm.LB_EQUIPMENT_CAR_TEMP;
public class LBEquipmentTempToFormalBusiness extends BaseBussiness {
@Override
@ -15,15 +24,30 @@ public class LBEquipmentTempToFormalBusiness extends BaseBussiness {
this.initBussinessParam(Sqlca);
String flowname=(String)this.getAttribute("FlowName");
String flowunid=(String)this.getAttribute("FlowUnid");
String settletype= this.getAttribute("settletype") == null ? "" : this.getAttribute("settletype").toString();
LeaseFlowBaseService service=new LeaseFlowBaseServiceImp();
Map<String,String>fromCondtion=this.getDefaultTempToFormalFromCondtion();
Map<String,String>toCondtion=this.getDefaultTempToFormalToCondtion();
Map<String,String>otherProperty=this.getDefaultOtherProperty();
if("ºÏͬÆð×âÁ÷³Ì".equals(flowname)){
otherProperty.put("status", "0010");
}
if("Ìáǰ½áÇå".equals(flowname) && "Y".equals(settletype) ) {
// Sqlca.executeSQL(new SqlObject("update LB_EQUIPMENT_CAR_TEMP set TERMINATE_TYPE='2' where TERMINATE_TYPE = '3' and FLOWUNID='"+flowunid+"'"));
fromCondtion.put("TERMINATE_TYPE", "3");
otherProperty.put("TERMINATE_TYPE", "2");
BizObjectManager lectManage = JBOFactory.getBizObjectManager(LB_EQUIPMENT_CAR_TEMP.CLASS_NAME);
List<BizObject> lects = lectManage.createQuery(" TERMINATE_TYPE='3' and FLOWUNID=:FLOWUNID ").setParameter("FLOWUNID", flowunid).getResultList(false);
for (BizObject lect : lects) {
fromCondtion.put("FRAME_NUMBER", lect.getAttribute("FRAME_NUMBER").toString() );
toCondtion.put("FRAME_NUMBER", lect.getAttribute("FRAME_NUMBER").toString() );
DataOperatorUtil.copySingleJBO(LB_EQUIPMENT_CAR_TEMP.CLASS_NAME, fromCondtion,LB_EQUIPMENT_CAR.CLASS_NAME, toCondtion, otherProperty, Sqlca);
}
}else {
service.copyOrLoadLBEquipment(Sqlca, fromCondtion, toCondtion, otherProperty, ServiceOperatorEnum.TempToFormal, null);
}
Sqlca.executeSQL(new SqlObject("update LB_EQUIPMENT_CAR_TEMP set IS_FLOW='N' where FLOWUNID='"+flowunid+"'"));
service.copyOrLoadLBEquipment(Sqlca, fromCondtion, toCondtion, otherProperty, ServiceOperatorEnum.TempToFormal, null);
String sMessage="true";
return sMessage;
}

View File

@ -24,20 +24,17 @@ import jbo.com.tenwa.lease.comm.LB_UNION_LESSEE;
import jbo.com.tenwa.lease.comm.LB_UNION_LESSEE_TEMP;
import jbo.prd.LB_PRODUCT_CORPUS_SOURCE;
import jbo.prd.PRD_SPECIFIC_LIBRARY;
import java.util.*;
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.util.StringFunction;
import com.amarsoft.awe.dw.ui.page.body.imp.Integer;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.context.ASUser;
import com.mchange.v2.async.StrandedTaskReporting;
import com.tenwa.comm.util.date.DateAssistant;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.flow.baseBussion.BaseBussiness;
import com.tenwa.flow.util.FlowUtil;
@ -97,6 +94,7 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
BizObjectManager bmLULT = JBOFactory.getBizObjectManager(LB_UNION_LESSEE_TEMP.CLASS_NAME,tx);
BizObjectManager bmLECT = JBOFactory.getBizObjectManager(LB_EQUIPMENT_CAR_TEMP.CLASS_NAME,tx);
BizObjectManager bmCI = JBOFactory.getBizObjectManager(CUSTOMER_INFO_TEMP.CLASS_NAME,tx);
BizObjectManager bomcct = JBOFactory.getBizObjectManager(CUSTOMER_CERT_TEMP.CLASS_NAME,tx);
BizObjectManager bsbom = JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME, tx);
String deptid = asUser.getOrgID();
String distributoIid="";
@ -169,12 +167,16 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
Map<String,String>fromCondtion=new HashMap<String, String>();
fromCondtion.put("CUSTOMERID",customerId);
//存量客户目前只考虑为配偶的进行考表操作
Map<String,String> familyFromCondtion =new HashMap<String, String>();
familyFromCondtion.put("CUSTOMERID",customerId);
familyFromCondtion.put("Spouse_","Y");
//otherProperty.put(CUSTOMER_INFO_TEMP.distributor_id, distributoIid);
//拷到临时表
DataOperatorUtil.copySingleJBO(CUSTOMER_INFO.CLASS_NAME, fromCondtion, CUSTOMER_INFO_TEMP.CLASS_NAME, null, infoProperty, tx);
DataOperatorUtil.copySingleJBO(CUSTOMER_CERT.CLASS_NAME, fromCondtion, CUSTOMER_CERT_TEMP.CLASS_NAME, null, infoProperty, tx);
DataOperatorUtil.copySingleJBO(CUSTOMER_FAMILY.CLASS_NAME, fromCondtion, CUSTOMER_FAMILY_TEMP.CLASS_NAME, null, familyProperty, tx);
DataOperatorUtil.copySingleJBO(CUSTOMER_FAMILY.CLASS_NAME, familyFromCondtion, CUSTOMER_FAMILY_TEMP.CLASS_NAME, null, familyProperty, tx);
DataOperatorUtil.copySingleJBO(CUSTOMER_ADDRESS.CLASS_NAME, fromCondtion, CUSTOMER_ADDRESS_TEMP.CLASS_NAME, null, otherProperty, tx);
if("03".equals(this.getAttribute("CustomerType"))){ // 自然人
DataOperatorUtil.copySingleJBO(CUSTOMER_PERSON.CLASS_NAME, fromCondtion, CUSTOMER_PERSON_TEMP.CLASS_NAME, null, personProperty, tx);
@ -212,7 +214,7 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
}
}
}
BizObject bmC = this.saveCustomerInfo(bmCI, tx, asUser,distributoIid);//新增主表客户信息
BizObject bmC = this.saveCustomerInfo(bmCI,bomcct, tx, asUser,distributoIid);//新增主表客户信息
customerId = bmC.getAttribute("customerid").getString();
this.saveCustomerType(bmCTT, tx, customerId,asUser);//证件类型临时表
this.savePersonOrCompany(bomC, tx, colName,customerId,asUser,lbat);//自然人||法人
@ -229,33 +231,35 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
return sMessage;
}
private BizObject saveCustomerInfo(BizObjectManager bomCI,JBOTransaction tx,ASUser asUser,String distributoIid)throws JBOException{
private BizObject saveCustomerInfo(BizObjectManager bomCI,BizObjectManager bomcct,JBOTransaction tx,ASUser asUser,String distributoIid)throws Exception{
BizObject bmC = bomCI.newObject();//保存客户信息
try {
//客户信息表
String custty="03".equals(this.getAttribute("CustomerType"))? "Z":"F";
String serinum=FlowUtil.getCustomer_Number(tx);
String serin="";
if(serinum.length()<15){
for(int i=0;i<15-serinum.length();i++){
serin+="0";
}
}
bmC.setAttributeValue("customername", this.getAttribute("custname"));//自然人名称
bmC.setAttributeValue("customer_num", "APZL"+custty+serin+serinum);//自然人名称
bmC.setAttributeValue("customertype", this.getAttribute("CustomerType"));//客户类型
bmC.setAttributeValue("distributor_id", distributoIid);
bmC.setAttributeValue("certtype", this.getAttribute("certtype"));//证件类型
bmC.setAttributeValue("certid", this.getAttribute("certid"));//证件号
bmC.setAttributeValue("inputuserid", asUser.getUserID());//登记人
bmC.setAttributeValue("inputorgid", asUser.getOrgID());//登记部门
bmC.setAttributeValue("flowunid", this.getAttribute("FlowUnid"));//流程ID
bmC.setAttributeValue("inputtime", StringFunction.getTodayNow());//登记时间,系统当前时间
bomCI.saveObject(bmC);
} catch (Exception e) {
tx.rollback();
e.printStackTrace();
}
//客户信息表
String custty="03".equals(this.getAttribute("CustomerType"))? "Z":"F";
bmC.setAttributeValue("customername", this.getAttribute("custname"));//自然人名称
bmC.setAttributeValue("customer_num", FlowUtil.getCustomer_Number(false,custty));//自然人序号
bmC.setAttributeValue("customertype", this.getAttribute("CustomerType"));//客户类型
bmC.setAttributeValue("distributor_id", distributoIid);
bmC.setAttributeValue("certtype", this.getAttribute("certtype"));//证件类型
bmC.setAttributeValue("certid", this.getAttribute("certid"));//证件号
bmC.setAttributeValue("inputuserid", asUser.getUserID());//登记人
bmC.setAttributeValue("inputorgid", asUser.getOrgID());//登记部门
bmC.setAttributeValue("flowunid", this.getAttribute("FlowUnid"));//流程ID
bmC.setAttributeValue("inputtime", StringFunction.getTodayNow());//登记时间,系统当前时间
bomCI.saveObject(bmC);
//将注册证件添加到证件表中
BizObject newCert = bomcct.newObject();
newCert.setAttributeValue("customerid", bmC.getAttribute("customerid").getString());
newCert.setAttributeValue("issuecountry","CHN");// 证件国别-没有选项,默认中国吧
newCert.setAttributeValue("certtype",this.getAttribute("certtype").toString());
newCert.setAttributeValue("certid",this.getAttribute("certid").toString());
newCert.setAttributeValue("status","valid");
newCert.setAttributeValue("customername",this.getAttribute("custname"));
newCert.setAttributeValue("flowunid", this.getAttribute("FlowUnid"));//流程ID
newCert.setAttributeValue("inputuserid", asUser.getUserID());
newCert.setAttributeValue("inputorgid", asUser.getOrgID());
newCert.setAttributeValue("inputtime", DateAssistant.getTodayNow());
bomcct.saveObject(newCert);
return bmC;
}
private void savePersonOrCompany(BizObjectManager bomC,JBOTransaction tx,String colName,String customerId,ASUser asUser,BizObject lbat)throws JBOException{