package com.tenwa.sdk.controller; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import jbo.app.tenwa.calc.LC_FUND_INCOME_TEMP; import jbo.com.tenwa.entity.comm.own.OWN_ACCOUNT; import jbo.com.tenwa.lease.comm.LC_FUND_INCOME_CALLBACK_DETAIL_TEMP; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; 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.Configure; import com.tenwa.sdk.VO.SDKCheckPayDateBackVO; import com.tenwa.sdk.VO.SDKCheckPayDateDetail; import com.tenwa.sdk.VO.SDKInfoVO; import com.tenwa.sdk.VO.SDKToCheckPayDate; import com.tenwa.sdk.VO.SDKTsinfx; import com.tenwa.sdk.utils.HttpRequest; import com.tenwa.sdk.utils.XMLStream; import com.thoughtworks.xstream.XStream; /** * 1:获取实际付款流程的实际支付时间 * @author tangfutang */ public class SelectActualPaymentDate{ public static void execute(String contractIds,String flowUnid , JBOTransaction tx) throws JobExecutionException { try{ contractIds = contractIds.replaceAll("@", "','"); BizObjectManager lficdtMange = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_DETAIL_TEMP.CLASS_NAME, tx); List lficdtList = lficdtMange.createQuery(" isPaymentDate is null and flowunid=:flowunid and contract_id in ('"+contractIds+"')").setParameter("flowunid", flowUnid).getResultList(true); if(lficdtList!=null&&lficdtList.size()>0){ //查询深圳账户信息 BizObjectManager accountManager = JBOFactory.getBizObjectManager(OWN_ACCOUNT.CLASS_NAME); List accountBoList = accountManager.createQuery("select o.acc_number,o.acc_bank,o.acc_name,o.branch_code,oi.OWN_NAME from o left join jbo.com.tenwa.entity.comm.own.OWN_INFO oi on o.own_id = oi.OWN_NUMBER where o.money_type='01' and o.state_='0010' and o.acc_type='0010' and o.FbSdk='Y' and (o.account_type='out_account' or o.account_type='inAndOut_account') and oi.OWN_NAME='安鹏国际融资租赁(深圳)有限公司'").getResultList(false); BizObject accountBo = accountBoList.get(0); /*List accountBoList_tj = accountManager.createQuery("select o.acc_number,o.acc_bank,o.acc_name,o.branch_code,oi.OWN_NAME from o left join jbo.com.tenwa.entity.comm.own.OWN_INFO oi on o.own_id = oi.OWN_NUMBER where o.money_type='01' and o.state_='0010' and o.acc_type='0010' and o.FbSdk='Y' and (o.account_type='out_account' or o.account_type='inAndOut_account') and oi.OWN_NAME='安鹏融资租赁(天津)有限公司'").getResultList(false); BizObject accountBo_tj = accountBoList_tj.get(0); */ String nowDate = new SimpleDateFormat("yyyyMMdd").format(new Date()); Calendar now = Calendar.getInstance(); now.add(Calendar.DAY_OF_MONTH, -2); String startDate = new SimpleDateFormat("yyyyMMdd").format(now.getTime()); // String LGNNAM = "安鹏经办"; // String LGNNAM = "银企直连测试用户113"; Configure config = Configure.getInstance(); String LGNNAM = config.getConfigure("LGNNAM"); String FUNNAM = "GetTransInfo"; int DATTYP = 2; SDKToCheckPayDate toCheckVO = new SDKToCheckPayDate(); SDKInfoVO checkInfo = new SDKInfoVO(); checkInfo.setDATTYP(DATTYP); checkInfo.setFUNNAM(FUNNAM); checkInfo.setLGNNAM(LGNNAM); toCheckVO.setINFO(checkInfo); List TsinfxList = new ArrayList(); SDKTsinfx tsinfx_sz = new SDKTsinfx(); tsinfx_sz.setBBKNBR(accountBo.getAttribute("branch_code").toString()); //tsinfx_sz.setC_BBKNBR(accountBo.getAttribute("acc_name").toString()); tsinfx_sz.setACCNBR(accountBo.getAttribute("acc_number").toString()); tsinfx_sz.setBGNDAT(startDate); tsinfx_sz.setENDDAT(nowDate); TsinfxList.add(tsinfx_sz); /*SDKTsinfx tsinfx_tj = new SDKTsinfx(); tsinfx_tj.setC_BBKNBR(accountBo_tj.getAttribute("acc_name").toString()); tsinfx_tj.setACCNBR(accountBo_tj.getAttribute("acc_number").toString()); tsinfx_tj.setBGNDAT(startDate); tsinfx_tj.setENDDAT(nowDate); TsinfxList.add(tsinfx_tj);*/ toCheckVO.setSDKTSINFX(tsinfx_sz); XStream xStream = new XMLStream(); xStream.alias("SDKTSINFX", SDKTsinfx.class); xStream.alias("CMBSDKPGK", SDKToCheckPayDate.class); String xmlStr = xStream.toXML(toCheckVO); xmlStr = xmlStr.replace("", "").replace("", "").replace("", ""); HttpRequest request = new HttpRequest(); String data = xmlStr; SDKCheckPayDateBackVO result = request.sendPayDateRequest(data); if(result==null) { System.out.println("请求出错!!!"); } if(result.getInfo().getSTATUS()==1) { for (BizObject lficdt : lficdtList) { List details = result.getDetails(); if(details!=null&&details.size()>0){ for (SDKCheckPayDateDetail detail : details) { if(lficdt.getAttribute("REQNBR").toString().equals(detail.getREQNBR())){ BizObjectManager lfitManage = JBOFactory.getBizObjectManager(LC_FUND_INCOME_TEMP.CLASS_NAME, tx); BizObject lfit = lfitManage.createQuery(" flowunid=:flowunid and contract_id=:contractid and pay_type='pay_type_out' ").setParameter("flowunid", lficdt.getAttribute("flowunid").toString()).setParameter("contractid", lficdt.getAttribute("contract_id").toString()).getSingleResult(true); if(lfit == null){ System.out.println(lficdt.getAttribute("REQNBR").toString()+"该流程实例没有找到对应的付款计划"); break; }else{ String format = detail.getETYDAT(); String date = format.substring(0, 4)+"/"+format.substring(4,6)+"/"+format.substring(6, 8); lfit.setAttributeValue("FACT_DATE", date); lfitManage.saveObject(lfit); lficdt.setAttributeValue("isPaymentDate", "01"); lficdt.setAttributeValue("PaymentDate",date); lficdtMange.saveObject(lficdt); break; } } } } } } /*TsinfxList.clear(); SDKTsinfx tsinfx_tj = new SDKTsinfx(); tsinfx_tj.setBBKNBR(accountBo_tj.getAttribute("branch_code").toString()); //tsinfx_sz.setC_BBKNBR(accountBo.getAttribute("acc_name").toString()); tsinfx_tj.setACCNBR(accountBo_tj.getAttribute("acc_number").toString()); tsinfx_tj.setBGNDAT(startDate); tsinfx_tj.setENDDAT(nowDate); TsinfxList.add(tsinfx_tj); toCheckVO.setSDKTSINFX(tsinfx_tj); xStream = new XMLStream(); xStream.alias("SDKTSINFX", SDKTsinfx.class); xStream.alias("CMBSDKPGK", SDKToCheckPayDate.class); xmlStr = xStream.toXML(toCheckVO); xmlStr = xmlStr.replace("", "").replace("", "").replace("", ""); request = new HttpRequest(); data = xmlStr; result = request.sendPayDateRequest(data); if(result==null) { System.out.println("请求出错!!!"); } if(result.getInfo().getSTATUS()==1) { for (BizObject lficdt : lficdtList) { List details = result.getDetails(); if(details!=null&&details.size()>0){ for (SDKCheckPayDateDetail detail : details) { if(lficdt.getAttribute("REQNBR").toString().equals(detail.getREQNBR())){ BizObjectManager lfitManage = JBOFactory.getBizObjectManager(LC_FUND_INCOME_TEMP.CLASS_NAME, tx); BizObject lfit = lfitManage.createQuery(" flowunid=:flowunid AND contract_id=:contractid and pay_type='pay_type_out' ").setParameter("flowunid", lficdt.getAttribute("flowunid").toString()).setParameter("contractid", lficdt.getAttribute("contract_id").toString()).getSingleResult(true); if(lfit == null){ System.out.println(lficdt.getAttribute("REQNBR").toString()+"该流程实例没有找到对应的付款计划"); break; }else{ String format = detail.getETYDAT(); String date = format.substring(0, 4)+"/"+format.substring(4,6)+"/"+format.substring(6, 8); lfit.setAttributeValue("FACT_DATE", date); lfitManage.saveObject(lfit); lficdt.setAttributeValue("isPaymentDate", "01"); lficdt.setAttributeValue("PaymentDate", date); lficdtMange.saveObject(lficdt); break; } } } } } }*/ } }catch(Exception e){ e.printStackTrace(); } } }