diff --git a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml index 8ac7fef14..dd088a6d8 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml @@ -1351,6 +1351,8 @@ + + @@ -1412,6 +1414,8 @@ + + diff --git a/WebContent/WEB-INF/etc/jbo/jbo_lease.xml b/WebContent/WEB-INF/etc/jbo/jbo_lease.xml index d7742ceb3..46a9416a7 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_lease.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_lease.xml @@ -3648,6 +3648,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src_cmb/com/tenwa/sdk/controller/CmbToCallbackController.java b/src_cmb/com/tenwa/sdk/controller/CmbToCallbackController.java new file mode 100644 index 000000000..90e101a42 --- /dev/null +++ b/src_cmb/com/tenwa/sdk/controller/CmbToCallbackController.java @@ -0,0 +1,158 @@ +package com.tenwa.sdk.controller; + +import java.util.ArrayList; +import java.util.HashMap; +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.BizObjectQuery; +import com.amarsoft.are.jbo.JBOFactory; +import com.amarsoft.are.jbo.JBOTransaction; +import com.tenwa.flow.action.comm.BaseFlowStartAction; +import com.tenwa.sdk.VO.SDKCheckCallBackVO; +import com.tenwa.sdk.VO.SDKCheckCallDetail; +import com.tenwa.sdk.VO.SDKCheckInfoVO; +import com.tenwa.sdk.VO.SDKNtstLinFxVo; +import com.tenwa.sdk.VO.SDKToCheckVO; +import com.tenwa.sdk.utils.HttpRequest; +import com.tenwa.sdk.utils.XMLStream; +import com.thoughtworks.xstream.XStream; + +import jbo.com.tenwa.entity.comm.own.OWN_ACCOUNT; +import jbo.com.tenwa.lease.comm.LC_FUND_INCOME_CALLBACK_DETAIL_TEMP; +import net.sf.json.JSONObject; + +public class CmbToCallbackController extends BaseFlowStartAction { + private String FLOWUNID ; //̺ + + public String getFLOWUNID() { + return FLOWUNID; + } + + public void setFLOWUNID(String fLOWUNID) { + FLOWUNID = fLOWUNID; + } + + @SuppressWarnings("unchecked") + public String action(JBOTransaction tx) throws Exception { + Map map = new HashMap(); + map.put("code", "0") ; + map.put("msg", "") ; + if(FLOWUNID==null || "".equals(FLOWUNID)) { + map.put("code", "1") ; + map.put("msg", "̱ŲΪ,") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + /* + * ſ˻ȡ######ʼ + */ + 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 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 acc_type='0010' and account_type='out_account' ").getResultList(false); + if( accountBoList==null ) { + map.put("code", "1") ; + map.put("msg", "˻,") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + if( accountBoList!=null && accountBoList.size()>1 ) { + map.put("code", "1") ; + map.put("msg", "õſ˻ж,") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + BizObject accountBo = accountBoList.get(0); + /* + * ſ˻ȡ###### + */ + + String LGNNAM = accountBo.getAttribute("OWN_NAME").toString(); + String FUNNAM = "NTSTLINF"; + int DATTYP = 2; + + SDKToCheckVO toCheckVO = new SDKToCheckVO(); + SDKCheckInfoVO checkInfo = new SDKCheckInfoVO(); + checkInfo.setDATTYP(DATTYP); + checkInfo.setFUNNAM(FUNNAM); + checkInfo.setLGNNAM(LGNNAM); + toCheckVO.setINFO(checkInfo); + + BizObjectManager call_back_list_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_DETAIL_TEMP.CLASS_NAME); + String sql = "select * from o where ( REQNBR is not null and REQNBR<>'' ) and FLOWUNID=:FLOWUNID "; + BizObjectQuery check_list_boo = call_back_list_bom.createQuery(sql); + check_list_boo.setParameter("FLOWUNID", FLOWUNID) ; + List check_list_bo = check_list_boo.getResultList(false); + if(check_list_bo!=null && check_list_bo.size()>0) { + List ntstLinFxList = new ArrayList(); + SDKNtstLinFxVo ntstLinFxOne = null ; + for(BizObject check_list_one : check_list_bo) { + ntstLinFxOne = new SDKNtstLinFxVo(); + String ONE_REQNBR = check_list_one.getAttribute("BANK_REQNBR").toString(); + ntstLinFxOne.setREQNBR(ONE_REQNBR); + ntstLinFxList.add(ntstLinFxOne); + } + toCheckVO.setNtstLinFxList(ntstLinFxList); + XStream xStream = new XMLStream(); + + xStream.alias("NTSTLINFX", SDKNtstLinFxVo.class); + xStream.alias("CMBSDKPGK", SDKToCheckVO.class); + + String xmlStr = xStream.toXML(toCheckVO); + xmlStr = xmlStr.replace("", "").replace("", "").replace("", ""); + + HttpRequest request = new HttpRequest(); + String data = xmlStr; + SDKCheckCallBackVO result = request.sendCheckRequest(data); + if(result==null) { + map.put("code", "1") ; + map.put("msg", "") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + if(result.getInfo().getSTATUS()==1) { + + List callback_list = result.getDetails(); + if(callback_list!=null && callback_list.size()>0) { + BizObjectManager callback_detail_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_DETAIL_TEMP.CLASS_NAME) ; + tx.join(callback_detail_bom); + BizObjectQuery callback_detail_boo = callback_detail_bom.createQuery("select * from o where REQNBR=:REQNBR and YURREF=:YURREF and FLOWUNID=:FLOWUNID"); + BizObject callback_detail_bo = null ; + for(SDKCheckCallDetail callback_detail : callback_list) { + callback_detail_boo.setParameter("REQNBR",callback_detail.getREQNBR()) ; + callback_detail_boo.setParameter("YURREF",callback_detail.getYURREF()) ; + callback_detail_boo.setParameter("FLOWUNID",FLOWUNID) ; + callback_detail_bo = callback_detail_boo.getSingleResult(true); + + callback_detail_bo.setAttributeValue("REQSTS",callback_detail.getREQSTS()); + callback_detail_bo.setAttributeValue("RTNFLG",callback_detail.getRTNFLG()); + callback_detail_bo.setAttributeValue("RTNNAR",callback_detail.getRTNNAR()); + this.initTabeUserInfo(callback_detail_bo); + callback_detail_bom.saveObject(callback_detail_bo); + } + map.put("code", "0") ; + map.put("msg", "ѯˢ³ɹ") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + }else { + map.put("code", "1") ; + map.put("msg", "ûҵ,") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + }else { + map.put("code", "1") ; + map.put("msg", result.getInfo().getERRMSG()) ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + + }else { + map.put("code", "1") ; + map.put("msg", "֧뷢ɹ,") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + } +} diff --git a/src_cmb/com/tenwa/sdk/controller/CmbToPayController.java b/src_cmb/com/tenwa/sdk/controller/CmbToPayController.java new file mode 100644 index 000000000..000704630 --- /dev/null +++ b/src_cmb/com/tenwa/sdk/controller/CmbToPayController.java @@ -0,0 +1,511 @@ +package com.tenwa.sdk.controller; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; +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.BizObjectQuery; +import com.amarsoft.are.jbo.JBOFactory; +import com.amarsoft.are.jbo.JBOTransaction; +import com.tenwa.flow.action.comm.BaseFlowStartAction; +import com.tenwa.sdk.VO.SDKDcPayReqxVO; +import com.tenwa.sdk.VO.SDKInfoVO; +import com.tenwa.sdk.VO.SDKPayCallBackVO; +import com.tenwa.sdk.VO.SDKPayCallDetail; +import com.tenwa.sdk.VO.SDKPayRqxVO; +import com.tenwa.sdk.VO.SDKToPayVO; +import com.tenwa.sdk.utils.HttpRequest; +import com.tenwa.sdk.utils.XMLStream; +import com.thoughtworks.xstream.XStream; + +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 jbo.com.tenwa.lease.comm.LC_FUND_INCOME_CALLBACK_INFO_TEMP; +import jbo.com.tenwa.lease.comm.LC_FUND_INCOME_PAY_DETAIL_TEMP; +import jbo.com.tenwa.lease.comm.LC_FUND_INCOME_PAY_INFO_TEMP; +import jbo.sys.CODE_LIBRARY; +import net.sf.json.JSONObject; + +public class CmbToPayController extends BaseFlowStartAction { + private String distributor_ids; //ȡѡ ID + private String FLOWUNID ; //̺ + + public String getFLOWUNID() { + return FLOWUNID; + } + + public void setFLOWUNID(String fLOWUNID) { + FLOWUNID = fLOWUNID; + } + + public String getDistributor_ids() { + return distributor_ids; + } + + public void setDistributor_ids(String distributor_ids) { + this.distributor_ids = distributor_ids; + } + + @SuppressWarnings({ "unchecked", "unused" }) + public synchronized String action(JBOTransaction tx) throws Exception { + /* + * 巵ز + */ + Map map = new HashMap(); + map.put("code", "0") ; + map.put("msg", "") ; + + /* + * ######ʼ + */ + if(FLOWUNID==null || "".equals(FLOWUNID)) { + map.put("code", "1") ; + map.put("msg", "̱ŲΪ,") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + List distributor_id_list = java.util.Arrays.asList(distributor_ids.split("@")); + if(distributor_id_list==null || distributor_id_list.size()<=0) { + map.put("code", "1") ; + map.put("msg", "δѡ,") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + /* + * ######ʼ + */ + + /* + * ſ˻ȡ######ʼ + */ + 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 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 acc_type='0010' and account_type='out_account' ").getResultList(false); + if( accountBoList==null ) { + map.put("code", "1") ; + map.put("msg", "˻,") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + if( accountBoList!=null && accountBoList.size()>1 ) { + map.put("code", "1") ; + map.put("msg", "õſ˻ж,") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + BizObject accountBo = accountBoList.get(0); + /* + * ſ˻ȡ###### + */ + + + /* + * Ϣ######ʼ + */ + + + String LGNNAM = accountBo.getAttribute("OWN_NAME").toString(); + String FUNNAM = "DCPAYREQ"; + int DATTYP = 2; + String BUSMOD = "00001"; //Ĭϲ 밴ʵ޸ + String BUSCOD = "N02030"; //Ĭϲ 밴ʵ޸ + String DBTBBK = accountBo.getAttribute("branch_code").toString(); + String DBTACC = accountBo.getAttribute("acc_number").toString(); + String STLCHN = "F"; //Ĭϲ + String CCYNBR = "10"; //Ĭϲ + String TRSTYP = "100001"; //Ĭϲ + String RCVCHK = "1"; //Ĭϲ + /* + * Ϣ###### + */ + + + /* + * ȡô벢codenoΪ ######ʼ + */ + BizObjectManager code_library = JBOFactory.getBizObjectManager(CODE_LIBRARY.CLASS_NAME); + List bank_code_list = code_library.createQuery("select codeno,itemno,itemname from o where codeno in ('bank_reqsts','bank_rtnflg','FeeType')").getResultList(false); + Map bank_reqsts = new HashMap(); //ҵ״̬ + Map bank_rtnflg = new HashMap(); //ҵ + Map fee_type = new HashMap(); // + + for(BizObject code_bo:bank_code_list) { + String itemno = code_bo.getAttribute("itemno").toString(); + String itemname = code_bo.getAttribute("itemname").toString(); + String codeno = code_bo.getAttribute("codeno").toString(); + if("bank_reqsts".equals(codeno)) { + bank_reqsts.put(itemno, itemname); + }else if("bank_rtnflg".equals(codeno)) { + bank_rtnflg.put(itemno, itemname); + }else { + fee_type.put(itemno, itemname); + } + } + String[] bank_reqsts_array = {"AUT","NTE","WCF","BNK","FIN","ACK","APD","OPR"}; + String[] bank_rtnflg_array = {"S","F","B","R","D","C","M","V","U","T"}; + List bank_reqsts_list = Arrays.asList(bank_reqsts_array); + List bank_rtnflg_list = Arrays.asList(bank_rtnflg_array); + /* + * ȡô벢codenoΪ ###### + */ + + + /* + * + */ + SDKToPayVO sDKToPayVO = new SDKToPayVO(); + SDKInfoVO sDKInfoVO = new SDKInfoVO(); + SDKPayRqxVO sDKPayRqxVO = new SDKPayRqxVO(); + List sDKDcPayReqxVOList = new ArrayList(); + + sDKInfoVO.setLGNNAM(LGNNAM); + sDKInfoVO.setFUNNAM(FUNNAM); + sDKInfoVO.setDATTYP(DATTYP); + + sDKPayRqxVO.setBUSCOD(BUSCOD); + sDKPayRqxVO.setBUSMOD(BUSMOD); + + BizObjectManager pay_info_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_PAY_INFO_TEMP.CLASS_NAME); + BizObject pay_info_bo = pay_info_bom.newObject(); + + String CMB_PAY_NO = UUID.randomUUID().toString().replaceAll("-", "") ; // ˮ + pay_info_bo.setAttributeValue("ID", UUID.randomUUID().toString().replaceAll("-", "")); + pay_info_bo.setAttributeValue("FLOWUNID", FLOWUNID); + pay_info_bo.setAttributeValue("INFO_FUNNAM", FUNNAM); + pay_info_bo.setAttributeValue("INFO_DATTYP", DATTYP); + pay_info_bo.setAttributeValue("INFO_LGNNAM", LGNNAM); + pay_info_bo.setAttributeValue("SDKPAYRQX_BUSCOD", BUSCOD); + pay_info_bo.setAttributeValue("SDKPAYRQX_BUSMOD", BUSMOD); + this.initTabeUserInfo(pay_info_bo); + + + List pay_detail_list = null;// list + BizObjectManager bankBo = JBOFactory.getBizObjectManager(LC_FUND_INCOME_TEMP.CLASS_NAME); + BizObject infoOne = null ; + SDKDcPayReqxVO pay_detail = null ; + SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); + BizObjectManager pay_detail_bom = null ; + String error_msg_tips = ""; //Ϣ Ƿ + String error_null_tips = ""; //Ϣ ǷΪ + + + if(distributor_id_list.size() > 30){ //ĵ涨 벻ܳ30 + map.put("code", "1") ; + map.put("msg", "δܳ30,") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + + pay_detail_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_PAY_DETAIL_TEMP.CLASS_NAME); + BizObject pay_detail_bo = null; + + BizObjectManager call_back_detail_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_DETAIL_TEMP.CLASS_NAME); + BizObject call_back_detail_bo = null ; + + tx.join(call_back_detail_bom); + + pay_detail_list = new ArrayList(); + + String temp_str = UUID.randomUUID().toString().replaceAll("-", "").substring(0, 14) ; + String date = df.format(new Date()); + BigDecimal all_money = new BigDecimal("0"); + + List income_all_list = bankBo.createQuery("select o.CMB_PAY_NO,o.FACT_MONEY,o.FLOWUNID,contract_info.CONTRACT_NO,distributor.distributor_id,distributor.acc_number,distributor.open_bank,distributor.account,distributor.district,distributor.provinceInfo from o join jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO contract_info on o.CONTRACT_ID = contract_info.id join jbo.app.tenwa.customer.DISTRIBUTOR_ACCOUNT distributor on contract_info.distributor_id = distributor.distributor_id and distributor.is_main='Y' where FLOWUNID=:FLOWUNID and o.PAY_TYPE = 'pay_type_out' ").setParameter("FLOWUNID", FLOWUNID).getResultList(false); + if(income_all_list==null) { + map.put("code", "1") ; + map.put("msg", "ʽոݲ,") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + int index = 1 ; + for (String distributor_id : distributor_id_list) { + infoOne = null ; + BigDecimal distributor_all_money = new BigDecimal("0"); + for(BizObject income_one : income_all_list) { + String income_one_distributor_id = income_one.getAttribute("distributor_id").toString(); + if(distributor_id.equals(income_one_distributor_id)) { + BigDecimal income_one_fact_money = new BigDecimal(income_one.getAttribute("FACT_MONEY").toString()); + distributor_all_money = distributor_all_money.add(income_one_fact_money); + infoOne = income_one ; + } + } + all_money=all_money.add(distributor_all_money); + if(infoOne==null) { + map.put("code", "1") ; + map.put("msg", "["+index+"]ݲ,") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + + String FLOWUNID = this.FLOWUNID ; + String DISTRIBUTOR_ID = infoOne.getAttribute("distributor_id").toString(); + String CRTACC = infoOne.getAttribute("acc_number").toString(); + String BANK_NAME = infoOne.getAttribute("open_bank").toString(); + String CRTNAM = infoOne.getAttribute("account").toString(); + String CRTPVC = infoOne.getAttribute("provinceInfo").toString(); + String CRTCTY = infoOne.getAttribute("district").toString(); + String NUSAGE = infoOne.getAttribute("memo").toString(); + String CMB_PAY_NO_ONE = infoOne.getAttribute("CMB_PAY_NO").toString(); + + /* + * 鵱ǰϢǷ######ʼ + */ + if(CMB_PAY_NO_ONE!=null && CMB_PAY_NO_ONE!="" && !"".equals(CMB_PAY_NO_ONE)) { + String temp_sql = "select * from o where FLOWUNID=:FLOWUNID and CMB_PAY_NO=:CMB_PAY_NO_ONE " ; + BizObjectQuery call_back_detail_boo= call_back_detail_bom.createQuery(temp_sql); + call_back_detail_boo.setParameter("FLOWUNID",FLOWUNID) ; + call_back_detail_boo.setParameter("CMB_PAY_NO_ONE",CMB_PAY_NO_ONE) ; + call_back_detail_bo = call_back_detail_boo.getSingleResult(false) ; + if(call_back_detail_bo!=null) { + String CALL_BACK_DETAIL_REQSTS = call_back_detail_bo.getAttribute("REQSTS").toString(); + String CALL_BACK_DETAIL_RTNFLG = call_back_detail_bo.getAttribute("RTNFLG").toString(); + if(bank_reqsts_list.contains(CALL_BACK_DETAIL_REQSTS)) { + error_msg_tips = error_msg_tips + "["+index+"]ʸѴ[״̬:"+bank_reqsts.get(CALL_BACK_DETAIL_REQSTS)+"]" ; + if(CALL_BACK_DETAIL_RTNFLG!="" && CALL_BACK_DETAIL_RTNFLG!=null && !"".equals(CALL_BACK_DETAIL_RTNFLG)) { + error_msg_tips = error_msg_tips+"[:"+bank_rtnflg.get(CALL_BACK_DETAIL_RTNFLG)+"]"; + } + error_msg_tips = error_msg_tips+",\n"; + } + } + } + /* + * 鵱ǰϢǷ###### + */ + + int check=distributor_all_money.compareTo(BigDecimal.ZERO); + + if( DISTRIBUTOR_ID==null || "".equals( DISTRIBUTOR_ID ) + || CRTACC==null || "".equals( CRTACC ) + || BANK_NAME==null || "".equals( BANK_NAME ) + || CRTNAM==null || "".equals( CRTNAM ) + || CRTPVC==null || "".equals( CRTPVC ) + || CRTCTY==null || "".equals( CRTCTY ) + || CRTPVC==null || "".equals( CRTPVC ) + || check==-1 + || CRTPVC==null || "".equals( CRTPVC ) + ){ + error_null_tips = error_null_tips+ "["+index+"]ݲ,\n" ; + } + + if(CRTPVC!=null && !"".equals(CRTPVC)) { + if(CRTCTY.indexOf(CRTPVC)!=-1) { + CRTCTY = CRTCTY.substring(CRTPVC.length()); + } + } + if("6225885910000108".equals(CRTACC)) { + CRTPVC=""; + CRTCTY=""; + } + if("6225880230001175".equals(CRTACC)) { + CRTPVC=""; + CRTCTY=""; + } + + String YURREF_INDEX = index+"" ; + if(index<10) { + YURREF_INDEX = String.format("%02d", index); + } + + String TRSAMT = distributor_all_money.toPlainString(); + String YURREF = YURREF_INDEX + date+ temp_str; + String BNKFLG = checkCMB(BANK_NAME); + NUSAGE = "["+CRTACC+"]"; + String BUSNAR = "[ʵʸ][:"+CRTACC+"][֧:"+TRSAMT+"]"; + + pay_detail = new SDKDcPayReqxVO(); + pay_detail.setYURREF(YURREF); + pay_detail.setDBTACC(DBTACC); + pay_detail.setDBTBBK(DBTBBK); + pay_detail.setTRSAMT(TRSAMT); + pay_detail.setCCYNBR(CCYNBR); + pay_detail.setSTLCHN(STLCHN); + pay_detail.setNUSAGE(NUSAGE); + pay_detail.setBUSNAR(BUSNAR); + pay_detail.setCRTACC(CRTACC); + pay_detail.setCRTNAM(CRTNAM); + pay_detail.setBNKFLG(BNKFLG); + pay_detail.setTRSTYP(TRSTYP); + pay_detail.setRCVCHK(RCVCHK); + pay_detail.setCRTPVC(CRTPVC); + pay_detail.setCRTCTY(CRTCTY); + + sDKDcPayReqxVOList.add(pay_detail); + + pay_detail_bo = pay_detail_bom.newObject(); + + pay_detail_bo.setAttributeValue("ID", UUID.randomUUID().toString().replaceAll("-", "")); + pay_detail_bo.setAttributeValue("CMB_PAY_NO", CMB_PAY_NO); + pay_detail_bo.setAttributeValue("DISTRIBUTOR_ID", DISTRIBUTOR_ID); + pay_detail_bo.setAttributeValue("FLOWUNID", FLOWUNID); + pay_detail_bo.setAttributeValue("YURREF", YURREF); + pay_detail_bo.setAttributeValue("DBTACC", DBTACC); + pay_detail_bo.setAttributeValue("DBTBBK", DBTBBK); + pay_detail_bo.setAttributeValue("TRSAMT", TRSAMT); + pay_detail_bo.setAttributeValue("CCYNBR", CCYNBR); + pay_detail_bo.setAttributeValue("STLCHN", STLCHN); + pay_detail_bo.setAttributeValue("NUSAGE", NUSAGE); + pay_detail_bo.setAttributeValue("CRTACC", CRTACC); + pay_detail_bo.setAttributeValue("CRTNAM", CRTNAM); + pay_detail_bo.setAttributeValue("BNKFLG", BNKFLG); + pay_detail_bo.setAttributeValue("TRSTYP", TRSTYP); + pay_detail_bo.setAttributeValue("RCVCHK", RCVCHK); + pay_detail_bo.setAttributeValue("CRTPVC", CRTPVC); + pay_detail_bo.setAttributeValue("CRTCTY", CRTCTY); + this.initTabeUserInfo(pay_detail_bo); + pay_detail_list.add(pay_detail_bo); + ++index; + } + + + if(!"".equals(error_msg_tips)) { + map.put("code", "1") ; + map.put("msg", error_msg_tips) ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + + if(!"".equals(error_null_tips)) { + map.put("code", "1") ; + map.put("msg", error_null_tips) ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + + sDKToPayVO.setINFO(sDKInfoVO); + sDKToPayVO.setSDKPAYRQX(sDKPayRqxVO); + if(sDKDcPayReqxVOList!=null && sDKDcPayReqxVOList.size()>0) { + sDKToPayVO.setDcPayReqxList(sDKDcPayReqxVOList); + } + + XStream xStream = new XMLStream(); + xStream.alias("DCPAYREQX", SDKDcPayReqxVO.class); + xStream.alias("CMBSDKPGK", SDKToPayVO.class); + String xmlStr = xStream.toXML(sDKToPayVO); + xmlStr = xmlStr.replace("", "").replace("", "").replace("", ""); + try { + System.out.println(xmlStr); //̨ӡXML + HttpRequest request = new HttpRequest("http://192.168.7.85:65188"); + //HttpRequest request = new HttpRequest(); + String data = xmlStr; + SDKPayCallBackVO result = request.sendPayRequest(data); + if(result==null) { + map.put("code", "1") ; + map.put("msg", "") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + + + if(result.getInfo().getSTATUS()==1) { + if("0".equals( result.getInfo().getRETCOD() )) { + pay_info_bo.setAttributeValue("FACT_MONEY",all_money.toPlainString()); + tx.join(pay_info_bom);// ֧Ϣ + pay_info_bom.saveObject(pay_info_bo); + if(pay_detail_bom!=null) { + BizObjectManager income_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_TEMP.CLASS_NAME); + tx.join(pay_detail_bom); + tx.join(income_bom); + + if(pay_detail_list!=null && pay_detail_list.size()>0) + for (BizObject pay_detail_one : pay_detail_list) { + BizObjectQuery income_boo= income_bom.createQuery("update o join jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO lcf on o.contract_id = lcf.id set o.CMB_PAY_NO=:CMB_PAY_NO where o.PAY_TYPE = 'pay_type_out' and FLOWUNID=:FLOWUNID and lcf.distributor_id=:DISTRIBUTOR_ID"); + income_boo.setParameter("CMB_PAY_NO",CMB_PAY_NO) ; + income_boo.setParameter("FLOWUNID",pay_detail_one.getAttribute("FLOWUNID").toString()) ; + income_boo.setParameter("DISTRIBUTOR_ID",pay_detail_one.getAttribute("DISTRIBUTOR_ID").toString()) ; + income_boo.executeUpdate();//ʽո + pay_detail_bom.saveObject(pay_detail_one); //֧ + } + } + + BizObjectManager callback_info_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_INFO_TEMP.CLASS_NAME) ; + BizObjectManager callback_detail_bom = null; + + BizObject callback_info_bo = callback_info_bom.newObject(); + BizObject callback_detail_bo = null; + + tx.join(callback_info_bom); + callback_info_bo.setAttributeValue("ID", UUID.randomUUID().toString().replaceAll("-", "")); + callback_info_bo.setAttributeValue("CMB_PAY_NO",CMB_PAY_NO); + callback_info_bo.setAttributeValue("FLOWUNID",FLOWUNID); + callback_info_bo.setAttributeValue("INFO_FUNNAM",FUNNAM); + callback_info_bo.setAttributeValue("INFO_DATTYP",DATTYP); + callback_info_bo.setAttributeValue("INFO_RETCOD",result.getInfo().getRETCOD()); + callback_info_bo.setAttributeValue("INFO_ERRMSG",result.getInfo().getERRMSG()); + this.initTabeUserInfo(callback_info_bo); + callback_info_bom.saveObject(callback_info_bo); //֧صϢ + + List details = result.getDetails() ; + String error_info = ""; + if(details!=null && details.size()>0) { + callback_detail_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_DETAIL_TEMP.CLASS_NAME) ; + tx.join(callback_detail_bom); + int call_index = 1 ; + for (SDKPayCallDetail detail : details) { + if (detail.getREQSTS().equals("FIN") && detail.getRTNFLG().equals("F")) { + error_info= error_info+"\n"+ "["+call_index+"] "+detail.getERRTXT() ; + } + callback_detail_bo = callback_detail_bom.newObject(); + String DETAIL_YURREF = detail.getYURREF() ; + callback_detail_bo.setAttributeValue("ID", UUID.randomUUID().toString().replaceAll("-", "")); + callback_detail_bo.setAttributeValue("CMB_PAY_NO",CMB_PAY_NO); + callback_detail_bo.setAttributeValue("YURREF",DETAIL_YURREF); + callback_detail_bo.setAttributeValue("SQRNBR",detail.getSQRNBR()); + callback_detail_bo.setAttributeValue("REQNBR",detail.getREQNBR()); + callback_detail_bo.setAttributeValue("REQSTS",detail.getREQSTS()); + callback_detail_bo.setAttributeValue("RTNFLG",detail.getRTNFLG()); + callback_detail_bo.setAttributeValue("OPRSQN",detail.getOPRSQN()); + callback_detail_bo.setAttributeValue("OPRALS",detail.getOPRALS()); + callback_detail_bo.setAttributeValue("ERRCOD",detail.getERRCOD()); + callback_detail_bo.setAttributeValue("ERRTXT",detail.getERRTXT()); + this.initTabeUserInfo(callback_detail_bo); + callback_detail_bom.saveObject(callback_detail_bo);//֧ص + ++call_index; + } + } + if(error_info==""){ + map.put("code", "0") ; + map.put("msg", "ɹ,ĵȴ") ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + }else { + map.put("code", "2") ; + map.put("msg", "ַʧ,"+error_info) ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + }else { + map.put("code", "1") ; + map.put("msg", result.getInfo().getERRMSG()) ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + }else { + map.put("code", "1") ; + map.put("msg", result.getInfo().getERRMSG()) ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + } catch (Exception e) { + map.put("code", "1") ; + map.put("msg", e.getMessage()) ; + JSONObject jsonObj = JSONObject.fromObject(map); + return jsonObj.toString(); + } + } + + private String checkCMB(String str) { + if (str.indexOf("") != -1 || str.indexOf("") != -1) { + return "Y"; + } else { + return "N"; + } + } +}