Merge branch 'develop' of http://git2.tenwa.com.cn/ApzlDev/apzl_leasing.git into zhangjun
This commit is contained in:
commit
628264bce3
@ -24,8 +24,8 @@
|
||||
{"true","All","Button","修改","查看/修改详情","viewAndEdit()","","","","btn_icon_edit"},
|
||||
{"true","","Button","详情","查看/修改详情","view()","","","","btn_icon_detail"},
|
||||
{"true","All","Button","废弃","废弃","invalid()","","","","btn_icon_delete"},
|
||||
{"true","All","Button","引用为","引用为","quote()","","","","btn_icon_quote"},
|
||||
{"true","All","Button","分配归属人","分配归属人","allocation()","","","","btn_icon_distribute"}
|
||||
{"true","All","Button","引用为","引用为","quote()","","","","btn_icon_quote"}
|
||||
// {"true","All","Button","分配归属人","分配归属人","allocation()","","","","btn_icon_distribute"}
|
||||
};
|
||||
%><%@include file="/Frame/resources/include/ui/include_list.jspf"%>
|
||||
<script type="text/javascript">
|
||||
|
||||
@ -29,8 +29,8 @@
|
||||
{"true","","Button","修改","查看/修改详情","viewAndEdit()","","","","btn_icon_edit"},
|
||||
{"true","","Button","详情","查看/修改详情","view()","","","","btn_icon_detail"},
|
||||
{"true","","Button","废弃","废弃","invalid()","","","","btn_icon_delete"},
|
||||
{"true","","Button","引用为","引用为","quote()","","","","btn_icon_quote"},
|
||||
{"true","","Button","分配归属人","分配归属人","allocation()","","","","btn_icon_distribute"},
|
||||
{"true","","Button","引用为","引用为","quote()","","","","btn_icon_quote"}
|
||||
// {"true","","Button","分配归属人","分配归属人","allocation()","","","","btn_icon_distribute"},
|
||||
|
||||
};
|
||||
%><%@include file="/Frame/resources/include/ui/include_list.jspf"%>
|
||||
|
||||
@ -23,8 +23,8 @@
|
||||
{"true","All","Button","修改","查看/修改详情","viewAndEdit()","","","","btn_icon_edit"},
|
||||
{"true","","Button","详情","查看/修改详情","view()","","","","btn_icon_detail"},
|
||||
{"true","All","Button","废弃","废弃","invalid()","","","","btn_icon_delete"},
|
||||
{"true","All","Button","引用为","引用为","quote()","","","","btn_icon_quote"},
|
||||
{"true","All","Button","分配归属人","分配归属人","allocation()","","","","btn_icon_distribute"}
|
||||
{"true","All","Button","引用为","引用为","quote()","","","","btn_icon_quote"}
|
||||
// {"true","All","Button","分配归属人","分配归属人","allocation()","","","","btn_icon_distribute"}
|
||||
};
|
||||
%><%@include file="/Frame/resources/include/ui/include_list.jspf"%>
|
||||
<script type="text/javascript">
|
||||
|
||||
@ -23,8 +23,8 @@
|
||||
{"true","All","Button","修改","查看/修改详情","viewAndEdit()","","","","btn_icon_edit"},
|
||||
{"true","","Button","详情","查看/修改详情","view()","","","","btn_icon_detail"},
|
||||
{"true","All","Button","废弃","废弃","invalid()","","","","btn_icon_delete"},
|
||||
{"true","All","Button","引用为","引用为","quote()","","","","btn_icon_quote"},
|
||||
{"true","All","Button","分配归属人","分配归属人","allocation()","","","","btn_icon_distribute"}
|
||||
{"true","All","Button","引用为","引用为","quote()","","","","btn_icon_quote"}
|
||||
// {"true","All","Button","分配归属人","分配归属人","allocation()","","","","btn_icon_distribute"}
|
||||
};
|
||||
%><%@include file="/Frame/resources/include/ui/include_list.jspf"%>
|
||||
<script type="text/javascript">
|
||||
|
||||
@ -121,7 +121,8 @@
|
||||
function saveRecord(){
|
||||
<%-- var sFlowUnid = "<%=sFlowUnid%>";
|
||||
setItemValue(0,getRow(),"FlowUnid",sFlowUnid);//³õʼ»¯Á÷³Ì±àºÅ --%>
|
||||
as_save("myiframe0","");
|
||||
//as_save("myiframe0","");
|
||||
as_save(0,"goBack()");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -101,12 +101,12 @@ if((null!=RightType&&RightType.equals("ReadOnly"))||(null!=ishistory&&ishistory.
|
||||
}else{
|
||||
sButtons=new String[][]{
|
||||
//0、是否展示 1、 权限控制 2、 展示类型 3、按钮显示名称 4、按钮解释文字 5、按钮触发事件代码 6、 7、 8、 9、图标,CSS层叠样式 10、风格
|
||||
{"true","","Button","新增","新增租赁物信息","newRecord()","","","","btn_icon_add",""},
|
||||
//{"true","","Button","新增","新增租赁物信息","newRecord()","","","","btn_icon_add",""},
|
||||
{"true","","Button","修改","修改租赁物信息","viewAndEdit()","","","","btn_icon_edit"},
|
||||
{"true","","Button","删除","删除租赁物信息","deleteRecord()","","","","btn_icon_delete",""},
|
||||
{"true","","Button","导入Excel","导入租赁物信息Excel","inExcel()","","","","btn_icon_import",""},
|
||||
{"true","","Button","导出Excel","导出租赁物信息Excel","exportPage('"+sWebRootPath+"',0,'excel','"+dwTemp.getArgsValue()+"')","","","","btn_icon_export",""},
|
||||
{"true","","Button","下载模板","下载租赁物信息模板","downLoad()","","","","btn_icon_down",""}
|
||||
//{"true","","Button","删除","删除租赁物信息","deleteRecord()","","","","btn_icon_delete",""},
|
||||
//{"true","","Button","导入Excel","导入租赁物信息Excel","inExcel()","","","","btn_icon_import",""},
|
||||
//{"true","","Button","导出Excel","导出租赁物信息Excel","exportPage('"+sWebRootPath+"',0,'excel','"+dwTemp.getArgsValue()+"')","","","","btn_icon_export",""},
|
||||
//{"true","","Button","下载模板","下载租赁物信息模板","downLoad()","","","","btn_icon_down",""}
|
||||
};
|
||||
}
|
||||
%>
|
||||
|
||||
@ -120,12 +120,14 @@
|
||||
if(plate_number!=null&&plate_number!=""){
|
||||
var sResult = RunJavaMethodTrans("com.tenwa.lease.flow.project.businessapply.BusinessApproveManager","saveAreaCode","flowunid="+sFlowUnid+",plate_number="+plate_number);
|
||||
if(sResult=="SUCCESS"){
|
||||
as_save("myiframe0","");
|
||||
//as_save("myiframe0","");
|
||||
as_save(0,"goBack()");
|
||||
}else{
|
||||
alert("请填写正确的车牌号码!");
|
||||
}
|
||||
}else{
|
||||
as_save("myiframe0","");
|
||||
//as_save("myiframe0","");
|
||||
as_save(0,"goBack()");
|
||||
}
|
||||
}
|
||||
|
||||
@ -237,12 +239,12 @@
|
||||
|
||||
function checkFrameNumber(){
|
||||
var vin = getItemValue(0,getRow(0),"FRAME_NUMBER");
|
||||
if (!getCheckCode(vin)){
|
||||
setErrorTips("FRAME_NUMBER","车架号格式有误!");
|
||||
return false;
|
||||
}else{
|
||||
setErrorTips("FRAME_NUMBER","");
|
||||
}
|
||||
// if (!getCheckCode(vin)){
|
||||
// setErrorTips("FRAME_NUMBER","车架号格式有误!");
|
||||
// return false;
|
||||
// }else{
|
||||
// setErrorTips("FRAME_NUMBER","");
|
||||
// }
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -329,6 +329,7 @@
|
||||
|
||||
/*~[Describe=返回列表页面;InputParam=无;OutPutParam=无;]~*/
|
||||
function goBack(){
|
||||
debugger;
|
||||
//要跳转的url
|
||||
var url="/Tenwa/Lease/Flow/Comm/LBGuaranteeUnit_Car/LBGuaranteeUnitList.jsp";
|
||||
//要传的参数
|
||||
|
||||
@ -92,7 +92,7 @@
|
||||
var versionid = getItemValue(0,getRow(),"versionid");
|
||||
var modelid = getItemValue(0,getRow(),"modelid");
|
||||
var certid = getItemValue(0,getRow(),"certid");
|
||||
|
||||
var businessType = "ĆűłľŇľÎń";
|
||||
|
||||
if(carAttributes==""){
|
||||
alert("ÇëÑ¡Ôñ³µÁ¾ÊôÐÔ");
|
||||
@ -138,7 +138,7 @@
|
||||
}
|
||||
|
||||
var sParams = "ApplyType=<%=sApplyType%>,CurUserID=<%=CurUser.getUserID()%>";
|
||||
sParams =sParams+",ProductId="+productid+",ProductName="+productname+",CustomerType="+customerType+",carAttributes="+carAttributes+",leasehold="+leasehold+",carSystem="+carSystem+",custname="+custname+",certtype="+certtype+",certid="+certid+",productModel="+productModel+",carSeries="+carSeries+",versionid="+versionid+",modelid="+modelid;
|
||||
sParams =sParams+",ProductId="+productid+",ProductName="+productname+",CustomerType="+customerType+",carAttributes="+carAttributes+",leasehold="+leasehold+",carSystem="+carSystem+",custname="+custname+",certtype="+certtype+",certid="+certid+",productModel="+productModel+",carSeries="+carSeries+",versionid="+versionid+",modelid="+modelid+",businessType="+businessType;
|
||||
var sReturnInfo = RunJavaMethodTrans("com.tenwa.lease.flow.project.projectapproval.BusinessApprovalStartAction","initFLow",sParams);
|
||||
if(typeof(sReturnInfo)=="undefined" || sReturnInfo=="" || sReturnInfo=="_CANCEL_" )
|
||||
{
|
||||
@ -146,7 +146,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
parent.AsDialog.ClosePage(sReturnInfo+"@"+customerType+"@"+carAttributes+"@"+leasehold+"@"+carSystem+"@"+custname+"@"+certtype+"@"+certid+"@"+productModel+"@"+carSeries+"@"+versionid+"@"+modelid);
|
||||
parent.AsDialog.ClosePage(sReturnInfo+"@"+customerType+"@"+carAttributes+"@"+leasehold+"@"+carSystem+"@"+custname+"@"+certtype+"@"+certid+"@"+productModel+"@"+carSeries+"@"+versionid+"@"+modelid+"@"+businessType);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BIN
WebContent/WEB-INF/lib/lombok.jar
Normal file
BIN
WebContent/WEB-INF/lib/lombok.jar
Normal file
Binary file not shown.
11
src_cmb/com/tenwa/sdk/VO/SDKCheckCallBackVO.java
Normal file
11
src_cmb/com/tenwa/sdk/VO/SDKCheckCallBackVO.java
Normal file
@ -0,0 +1,11 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKCheckCallBackVO {
|
||||
private SDKCheckCallInfoVO info ;
|
||||
private List<SDKCheckCallDetail> details ;
|
||||
}
|
||||
53
src_cmb/com/tenwa/sdk/VO/SDKCheckCallDetail.java
Normal file
53
src_cmb/com/tenwa/sdk/VO/SDKCheckCallDetail.java
Normal file
@ -0,0 +1,53 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKCheckCallDetail {
|
||||
private String BUSCOD;// 业务代码 C(6) 附录A.4 否
|
||||
private String BUSMOD;// 业务模式 C(5) 否
|
||||
private String DBTBBK;// 付方开户地区代码 C(2) 附录A.1 否
|
||||
private String DBTACC;// 付方帐号 C(35) 否 企业用于付款的转出帐号,该帐号的币种类型与币种字段相符。
|
||||
private String DBTNAM;// 付方帐户名 C(200) 否 企业用于付款的转出帐号的户名
|
||||
private String DBTBNK;// 付方开户行 Z(62) 否 企业用于付款的转出帐号的开户行名称,如:招商银行北京分行。
|
||||
private String DBTADR;// 付方行地址 Z(62) 可 企业用于付款的转出帐号的开户行地址
|
||||
private String CRTBBK;// 收方开户地区代码 C(2) 附录A.1 可
|
||||
private String CRTACC;// 收方帐号 C(35) 否 收款企业的转入帐号,该帐号的币种类型与币种字段相符。
|
||||
private String CRTNAM;// 收方帐户名 Z(200) 否 收款方企业的转入帐号的帐户名称。
|
||||
private String RCVBRD;// 收方大额行号 C(12) 二代支付新增
|
||||
private String CRTBNK;// 收方开户行 Z(62) 可 收方帐号的开户行名称,如:招商银行北京分行。
|
||||
private String CRTADR;// 收方行地址 Z(62) 可 收方帐号的开户行地址。
|
||||
private String GRPBBK;// 母公司开户地区代码 C(2) 附录A.1 可
|
||||
private String GRPACC;// 母公司帐号 C(35) 可 企业所属母公司的帐号。只对集团支付有效。
|
||||
private String GRPNAM;// 母公司帐户名 Z(62) 可 企业所属母公司帐号的帐户名称。只对集团支付有效。
|
||||
private String CCYNBR;// 币种代码 N(2) 附录A.3 否
|
||||
private String TRSAMT;// 交易金额 M 否 该笔业务的付款金额。
|
||||
private String EPTDAT;// 期望日 D 可 企业银行客户端经办时指定的期望日期。
|
||||
private String EPTTIM;// 期望时间 T 可 企业银行客户端经办时指定的期望时间。只有小时数有效。
|
||||
private String BNKFLG;// 系统内外标志 C(1) “Y”表示系统内, “N”表示系统外 可 表示该笔业务是否为招行系统内的支付结算业务。
|
||||
private String REGFLG;// 同城异地标志 C(1) “Y”表示同城业务; “N”表示异地业务 可 表示该笔业务是否为同城业务。
|
||||
private String STLCHN;// 结算方式代码 C(1) N-普通;F-快速 可
|
||||
private String NUSAGE;// 用途 Z(28) 可
|
||||
private String NTFCH1;// 收方电子邮件 C(36) 可 收款方的电子邮件地址,用于邮件通知。
|
||||
private String NTFCH2;// 收方移动电话 C(16) 可 收款方的移动电话,用于短信通知。
|
||||
private String OPRDAT;// 经办日期 D 可 经办该笔业务的日期。
|
||||
private String YURREF;// 业务参考号 C(30) 否 用于标识该笔业务编号,企业银行编号+业务类型+业务参考号必须唯一。
|
||||
private String REQNBR;// 流程实例号 C(10) 可
|
||||
private String BUSNAR;// 业务摘要 Z(196) 可 用于企业付款时填写说明或者备注。
|
||||
private String REQSTS;// 业务请求状态代码 C(3) 附录A.5 否
|
||||
private String RTNFLG;// 业务处理结果代码 C(1) 附录A.6 可
|
||||
private String OPRALS;// 操作别名 Z(28) 可 待处理的操作名称。
|
||||
private String RTNNAR;// 结果摘要 Z(88) 可 支付结算业务处理的结果描述,如失败原因、退票原因等
|
||||
private String RTNDAT;// 退票日期 D 可
|
||||
private String ATHFLG;// 是否有附件信息 C(1) “Y”表示有附件,“N”表示无附件 可
|
||||
private String LGNNAM;// 经办用户登录名 Z(30) 可
|
||||
private String USRNAM;// 经办用户姓名 Z(30) 可
|
||||
private String TRSTYP;// 业务种类 C(6) 可 二代支付新增
|
||||
private String FEETYP;// 收费方式 C(1) N = 不收费 Y = 收费 可
|
||||
private String RCVTYP;// 收方公私标志 C(1) A=对公 P=个人 X=信用卡 可
|
||||
private String BUSSTS;// 汇款业务状态 C(1) A =待提出 C=已撤销 D =已删除 P =已提出 R=已退票 W=待处理(待确认) 可
|
||||
private String TRSBRN;// 受理机构 C(6) 可
|
||||
private String TRNBRN;// 转汇机构 C(6) 可
|
||||
private String RSV30Z;// 保留字段 C(30) 可 虚拟户支付时前十位为虚拟户编号
|
||||
|
||||
}
|
||||
29
src_cmb/com/tenwa/sdk/VO/SDKCheckCallInfoVO.java
Normal file
29
src_cmb/com/tenwa/sdk/VO/SDKCheckCallInfoVO.java
Normal file
@ -0,0 +1,29 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKCheckCallInfoVO {
|
||||
private String FUNNAM;
|
||||
private String DATTYP;
|
||||
private String RETCOD;
|
||||
private String ERRMSG;
|
||||
private int STATUS;
|
||||
private String XML;
|
||||
|
||||
public SDKCheckCallInfoVO() {
|
||||
|
||||
}
|
||||
|
||||
public SDKCheckCallInfoVO(int STATUS,String ERRMSG) {
|
||||
this.STATUS = STATUS;
|
||||
this.ERRMSG = ERRMSG;
|
||||
}
|
||||
public SDKCheckCallInfoVO(String XML) {
|
||||
this.STATUS = 1;
|
||||
this.XML = XML;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
10
src_cmb/com/tenwa/sdk/VO/SDKCheckInfoVO.java
Normal file
10
src_cmb/com/tenwa/sdk/VO/SDKCheckInfoVO.java
Normal file
@ -0,0 +1,10 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKCheckInfoVO {
|
||||
private String FUNNAM ;
|
||||
private int DATTYP ;
|
||||
private String LGNNAM ;
|
||||
}
|
||||
220
src_cmb/com/tenwa/sdk/VO/SDKDcPayReqxVO.java
Normal file
220
src_cmb/com/tenwa/sdk/VO/SDKDcPayReqxVO.java
Normal file
@ -0,0 +1,220 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKDcPayReqxVO {
|
||||
/*
|
||||
* URL[https://u.ebank.cmbchina.com/CmbBank_GenShell/UI/Help/DCBank2/API.aspx?03ZFJS/08DCPAYREQ]
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* 名称[业务参考号]
|
||||
* 类型[C(30)]
|
||||
* 取值[]
|
||||
* 可空[否]
|
||||
* 备注[用于标识该笔业务的编号,企业银行编号+业务类型+业务参考号必须唯一。企业可以自定义业务参考号,也可使用银行缺省值(单笔支付),批量支付须由企业提供。 直联必须用企业提供]
|
||||
*/
|
||||
private String YURREF ;
|
||||
/*
|
||||
* 名称[期望日]
|
||||
* 类型[D]
|
||||
* 取值[]
|
||||
* ### 可空[可]
|
||||
* 备注[默认为当前日期]
|
||||
*/
|
||||
private String EPTDAT ;
|
||||
/*
|
||||
* 名称[期望时间]
|
||||
* 类型[T]
|
||||
* 取值[]
|
||||
* ### 可空[可]
|
||||
* 备注[默认为‘000000’]
|
||||
*/
|
||||
/*
|
||||
* 名称[付方帐号]
|
||||
* 类型[N(35)]
|
||||
* 取值[]
|
||||
* 可空[否]
|
||||
* 备注[企业用于付款的转出帐号,该帐号的币种类型必须与币种字段相符。]
|
||||
*/
|
||||
private String DBTACC ;
|
||||
/*
|
||||
* 名称[付方开户地区代码]
|
||||
* 类型[C(2)]
|
||||
* 取值[附录A.1]
|
||||
* 可空[否]
|
||||
* 备注[无]
|
||||
*/
|
||||
private String DBTBBK ;
|
||||
/*
|
||||
* 名称[交易金额]
|
||||
* 类型[M]
|
||||
* 取值[]
|
||||
* 可空[否]
|
||||
* 备注[该笔业务的付款金额。]
|
||||
*/
|
||||
private String TRSAMT ;
|
||||
/*
|
||||
* 名称[币种代码]
|
||||
* 类型[C(2)]
|
||||
* 取值[附录A.3]
|
||||
* 可空[否]
|
||||
* 备注[币种暂时只支持10-人民币]
|
||||
*/
|
||||
private String CCYNBR ;
|
||||
/*
|
||||
* 名称[结算方式代码]
|
||||
* 类型[C(1)]
|
||||
* 取值[N:普通 F:快速]
|
||||
* 可空[否]
|
||||
* 备注[只对跨行交易有效;同行都是实时到账。]
|
||||
*/
|
||||
private String STLCHN ;
|
||||
/*
|
||||
* 名称[用途]
|
||||
* 类型[Z(62)]
|
||||
* 取值[]
|
||||
* ### 可空[否]
|
||||
* 备注[对应对账单中的摘要NARTXT]
|
||||
*/
|
||||
private String NUSAGE ;
|
||||
/*
|
||||
* 名称[业务摘要]
|
||||
* 类型[Z(200)]
|
||||
* 取值[]
|
||||
* ### 可空[可]
|
||||
* 备注[用于企业付款时填写说明或者备注。]
|
||||
*/
|
||||
private String BUSNAR ;
|
||||
/*
|
||||
* 名称[收方帐号]
|
||||
* 类型[N(35)]
|
||||
* 取值[]
|
||||
* 可空[否]
|
||||
* 备注[收款企业的转入帐号,该帐号的币种类型必须与币种字段相符。]
|
||||
*/
|
||||
private String CRTACC ;
|
||||
/*
|
||||
* 名称[收方帐户名]
|
||||
* 类型[Z(62)]
|
||||
* 取值[]
|
||||
* ### 可空[可]
|
||||
* 备注[收款方企业的转入帐号的帐户名称。 收方帐户名与收方长户名不能同时为空]
|
||||
*/
|
||||
private String CRTNAM ;
|
||||
/*
|
||||
* 名称[收方长户名]
|
||||
* 类型[Z(200)]
|
||||
* 取值[]
|
||||
* ### 可空[可]
|
||||
* 备注[收款方企业的转入帐号的帐户名称。 收方帐户名与收方长户名不能同时为空]
|
||||
*/
|
||||
private String LRVEAN ;
|
||||
/*
|
||||
* 名称[收方行号]
|
||||
* 类型[C(30)]
|
||||
* 取值[]
|
||||
* ### 可空[可]
|
||||
* 备注[自动支付收方联行号]
|
||||
*/
|
||||
private String BRDNBR ;
|
||||
/*
|
||||
* 名称[系统内外标志]
|
||||
* 类型[]
|
||||
* 取值[Y:招行;N:非招行]
|
||||
* 可空[否]
|
||||
* 备注[无]
|
||||
*/
|
||||
private String BNKFLG ;
|
||||
/*
|
||||
* 名称[收方开户行]
|
||||
* 类型[Z(62)]
|
||||
* 取值[]
|
||||
* ### 可空[可]
|
||||
* 备注[无]
|
||||
*/
|
||||
private String CRTBNK ;
|
||||
/*
|
||||
* 名称[城市代码]
|
||||
* 类型[C(4)]
|
||||
* 取值[附录A.18]
|
||||
* ### 可空[可]
|
||||
* 备注[行内支付填写,如果为空跟据收方省份和收方城市自动获取代码]
|
||||
*/
|
||||
private String CTYCOD ;
|
||||
/*
|
||||
* 名称[收方省份]
|
||||
* 类型[Z(18)]
|
||||
* 取值[附录A.18]
|
||||
* 可空[否]
|
||||
* 备注[支持省简写,如河南,河北,西藏,新疆,内蒙古,广西,宁夏,青海]
|
||||
*/
|
||||
private String CRTPVC ;
|
||||
/*
|
||||
* 名称[收方城市]
|
||||
* 类型[Z(22)]
|
||||
* 取值[附录A.18]
|
||||
* 可空[否]
|
||||
* 备注[支持市简写,如郑州,石家庄,拉萨,呼和浩特,南宁,银川,西宁]
|
||||
*/
|
||||
private String CRTCTY ;
|
||||
/*
|
||||
* 名称[收方县/区]
|
||||
* 类型[Z(22)]
|
||||
* 取值[]
|
||||
* ### 可空[可]
|
||||
* 备注[收方帐号开户行所在的县或区,格式为:XX县/区,可为空。如:宝安区。]
|
||||
*/
|
||||
private String CRTDTR ;
|
||||
/*
|
||||
* 名称[收方电子邮件]
|
||||
* 类型[C(36)]
|
||||
* 取值[]
|
||||
* ### 可空[可]
|
||||
* 备注[收款方的电子邮件地址,用于交易 成功后邮件通知。]
|
||||
*/
|
||||
private String NTFCH1 ;
|
||||
/*
|
||||
* 名称[收方移动电话]
|
||||
* 类型[C(16)]
|
||||
* 取值[]
|
||||
* ### 可空[可]
|
||||
* 备注[收款方的移动电话,用于交易 成功后短信通知]
|
||||
*/
|
||||
private String NTFCH2 ;
|
||||
/*
|
||||
* 名称[收方编号]
|
||||
* 类型[C(20)]
|
||||
* 取值[]
|
||||
* ### 可空[可]
|
||||
* 备注[用于标识收款方的编号。非受限收方模式下可重复]
|
||||
*/
|
||||
private String CRTSQN ;
|
||||
/*
|
||||
* 名称[业务种类]
|
||||
* 类型[C(6)]
|
||||
* 取值[100001=普通汇兑 101001=慈善捐款 101002 =其他]
|
||||
* ### 可空[可]
|
||||
* 备注[默认100001]
|
||||
*/
|
||||
private String TRSTYP ;
|
||||
/*
|
||||
* 名称[行内收方账号户名校验]
|
||||
* 类型[C(1)]
|
||||
* 取值[1:校验 空或者其他值:不校验]
|
||||
* ### 可空[可]
|
||||
* 备注[如果为1,行内收方账号与户名不相符则支付经办失败]
|
||||
*/
|
||||
private String RCVCHK ;
|
||||
/*
|
||||
* 名称[保留字段]
|
||||
* 类型[C(27)]
|
||||
* 取值[]
|
||||
* ### 可空[可]
|
||||
* 备注[虚拟户支付时,前10位填虚拟户编号;集团支付不支持虚拟户支付]
|
||||
*/
|
||||
private String RSVFLD ;
|
||||
|
||||
}
|
||||
33
src_cmb/com/tenwa/sdk/VO/SDKDcopdPayXVO.java
Normal file
33
src_cmb/com/tenwa/sdk/VO/SDKDcopdPayXVO.java
Normal file
@ -0,0 +1,33 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKDcopdPayXVO {
|
||||
private String YURREF; //业务参考号 C(30) 否 用于标识该笔业务的编号,企业银行编号+业务类型+业务参考号必须唯一。企业可以自定义业务参考号,也可使用银行缺省值(单笔支付),批量支付须由企业提供。 直联必须用企业提供
|
||||
private String EPTDAT; //期望日 D 默认为当前日期 可
|
||||
private String EPTTIM; //期望时间 T 默认为‘000000’ 可
|
||||
private String DBTACC; //付方帐号 N(35) 否 企业用于付款的转出帐号,该帐号的币种类型必须与币种字段相符。
|
||||
private String DBTBBK; //付方开户地区代码 C(2) 附录A.1 否 付方帐号的开户行所在地区,如北京、上海、深圳等。 付方开户地区和付方开户地区代码不能同时为空,同时有值时DBTBBK有效。
|
||||
private float TRSAMT; //交易金额 M 否 该笔业务的付款金额。
|
||||
private String CCYNBR; //币种代码 C(2) 附录A.3 否 币种代码和币种名称不能同时为空同时有值时CCYNBR有效。。币种暂时只支持10(人民币)
|
||||
private String STLCHN; //结算方式代码 C(1) N:普通 F:快速 否 只对跨行交易有效
|
||||
private String NUSAGE; //用途 Z(62) 否 对应对账单中的摘要NARTXT
|
||||
private String BUSNAR; //业务摘要 Z(200) 可 用于企业付款时填写说明或者备注。
|
||||
private String CRTACC; //收方帐号 N(35) 否 收款企业的转入帐号,该帐号的币种类型必须与币种字段相符。
|
||||
private String CRTNAM; //收方帐户名 Z(62) 可 收款方企业的转入帐号的帐户名称。 收方帐户名与收方长户名不能同时为空
|
||||
private String LRVEAN; //收方长户名 Z(200) 可
|
||||
private String BRDNBR; //收方行号 C(30) 可 人行自动支付收方联行号
|
||||
private String BNKFLG; //系统内外标志 Y:招行;N:非招行; 否
|
||||
private String CRTBNK; //收方开户行 Z(62) 跨行支付(BNKFLG=N)必填 可
|
||||
private String CTYCOD; //城市代码 C(4) 附录A.18 CRTFLG不为Y时行内支付必填。 可 行内支付填写,为空则不支持收方识别功能。
|
||||
private String CRTADR; //收方行地址 Z(62) 跨行支付(BNKFLG=N)必填;CRTFLG不为Y时行内支付必填。 可 例如:广东省深圳市南山区
|
||||
private String CRTFLG; //收方信息不检查标志 C(1) Y: 行内支付不检查城市代码和收方行地址 默认为Y。 可
|
||||
private String NTFCH1; //收方电子邮件 C(36) 可 收款方的电子邮件地址,用于交易 成功后邮件通知。
|
||||
private String NTFCH2; //收方移动电话 C(16) 可 收款方的移动电话,用于交易 成功后短信通知。
|
||||
private String CRTSQN; //收方编号 C(20) 可 用于标识收款方的编号。非受限收方模式下可重复。
|
||||
private String TRSTYP; //业务种类 C(6) 100001=普通汇兑 101001=慈善捐款 101002 =其他 默认100001
|
||||
private String RCVCHK; //行内收方账号户名校验 C(1) 1:校验 空或者其他值:不校验 可 如果为1,行内收方账号与户名不相符则支付经办失败。
|
||||
private String RSV28Z; //保留字段 C(27) 可 虚拟户支付时,前10位填虚拟户编号;集团支付不支持虚拟户支付。
|
||||
|
||||
}
|
||||
37
src_cmb/com/tenwa/sdk/VO/SDKInfoVO.java
Normal file
37
src_cmb/com/tenwa/sdk/VO/SDKInfoVO.java
Normal file
@ -0,0 +1,37 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKInfoVO {
|
||||
/*
|
||||
* URL[https://u.ebank.cmbchina.com/CmbBank_GenShell/UI/Help/DCBank2/API.aspx?03ZFJS/08DCPAYREQ]
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* 名称[函数名]
|
||||
* 类型[C(1, 20)]
|
||||
* 取值[DCPAYREQ]
|
||||
* 可空[否]
|
||||
* 备注[无]
|
||||
*/
|
||||
private String FUNNAM ;
|
||||
/*
|
||||
* 名称[数据格式]
|
||||
* 类型[N(1)]
|
||||
* 取值[2:xml格式三]
|
||||
* 可空[否]
|
||||
* 备注[无]
|
||||
*/
|
||||
private int DATTYP ;
|
||||
/*
|
||||
* 名称[登陆用户名]
|
||||
* 类型[Z(1,20)]
|
||||
* 取值[]
|
||||
* 可空[可]
|
||||
* 备注[前置机模式必填]
|
||||
*/
|
||||
private String LGNNAM ;
|
||||
|
||||
}
|
||||
8
src_cmb/com/tenwa/sdk/VO/SDKNtstLinFxVo.java
Normal file
8
src_cmb/com/tenwa/sdk/VO/SDKNtstLinFxVo.java
Normal file
@ -0,0 +1,8 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKNtstLinFxVo {
|
||||
private String REQNBR ;
|
||||
}
|
||||
11
src_cmb/com/tenwa/sdk/VO/SDKPayCallBackVO.java
Normal file
11
src_cmb/com/tenwa/sdk/VO/SDKPayCallBackVO.java
Normal file
@ -0,0 +1,11 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKPayCallBackVO {
|
||||
private SDKPayCallInfoVO info ;
|
||||
private List<SDKPayCallDetail> details ;
|
||||
}
|
||||
17
src_cmb/com/tenwa/sdk/VO/SDKPayCallDetail.java
Normal file
17
src_cmb/com/tenwa/sdk/VO/SDKPayCallDetail.java
Normal file
@ -0,0 +1,17 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKPayCallDetail {
|
||||
private String SQRNBR;
|
||||
private String YURREF;
|
||||
private String REQNBR;
|
||||
private String REQSTS;
|
||||
private String RTNFLG;
|
||||
private String OPRSQN;
|
||||
private String OPRALS;
|
||||
private String ERRCOD;
|
||||
private String ERRTXT;
|
||||
|
||||
}
|
||||
29
src_cmb/com/tenwa/sdk/VO/SDKPayCallInfoVO.java
Normal file
29
src_cmb/com/tenwa/sdk/VO/SDKPayCallInfoVO.java
Normal file
@ -0,0 +1,29 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKPayCallInfoVO {
|
||||
private String FUNNAM;
|
||||
private String DATTYP;
|
||||
private String RETCOD;
|
||||
private String ERRMSG;
|
||||
private int STATUS;
|
||||
private String XML;
|
||||
|
||||
public SDKPayCallInfoVO() {
|
||||
|
||||
}
|
||||
|
||||
public SDKPayCallInfoVO(int STATUS,String ERRMSG) {
|
||||
this.STATUS = STATUS;
|
||||
this.ERRMSG = ERRMSG;
|
||||
}
|
||||
public SDKPayCallInfoVO(String XML) {
|
||||
this.STATUS = 1;
|
||||
this.XML = XML;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
37
src_cmb/com/tenwa/sdk/VO/SDKPayRqxVO.java
Normal file
37
src_cmb/com/tenwa/sdk/VO/SDKPayRqxVO.java
Normal file
@ -0,0 +1,37 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKPayRqxVO {
|
||||
/*
|
||||
* URL[https://u.ebank.cmbchina.com/CmbBank_GenShell/UI/Help/DCBank2/API.aspx?03ZFJS/08DCPAYREQ]
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* 名称[业务类别]
|
||||
* 类型[C(6)]
|
||||
* 取值[N02030:支付 N02040:集团支付]
|
||||
* 可空[否]
|
||||
* 备注[无]
|
||||
*/
|
||||
private String BUSCOD ;
|
||||
/*
|
||||
* 名称[业务模式编号]
|
||||
* 类型[C(5)]
|
||||
* 取值[]
|
||||
* 可空[否]
|
||||
* 备注[业务模式编号和业务模式名称不能同时为空;业务模式编号和业务模式名称同时有值时业务模式编号有效;可经办的业务模式,可通过查询可经办的业务模式信息(ListMode)获得,也可以在通过前置机程序查询获得。]
|
||||
*/
|
||||
private String BUSMOD ;
|
||||
/*
|
||||
* 名称[业务模式名称]
|
||||
* 类型[]
|
||||
* 取值[]
|
||||
* 可空[可]
|
||||
* 备注[业务模式编号和业务模式名称不能同时为空;业务模式编号和业务模式名称同时有值时业务模式编号有效;可经办的业务模式,可通过查询可经办的业务模式信息(ListMode)获得,也可以在通过前置机程序查询获得。]
|
||||
*/
|
||||
private String MODALS ;
|
||||
|
||||
}
|
||||
11
src_cmb/com/tenwa/sdk/VO/SDKToCheckVO.java
Normal file
11
src_cmb/com/tenwa/sdk/VO/SDKToCheckVO.java
Normal file
@ -0,0 +1,11 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKToCheckVO {
|
||||
private SDKCheckInfoVO INFO ;
|
||||
private List<SDKNtstLinFxVo> ntstLinFxList ;
|
||||
}
|
||||
16
src_cmb/com/tenwa/sdk/VO/SDKToPayVO.java
Normal file
16
src_cmb/com/tenwa/sdk/VO/SDKToPayVO.java
Normal file
@ -0,0 +1,16 @@
|
||||
package com.tenwa.sdk.VO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SDKToPayVO {
|
||||
private SDKInfoVO INFO ;
|
||||
private SDKPayRqxVO SDKPAYRQX ;
|
||||
private List<SDKDcPayReqxVO> dcPayReqxList ;
|
||||
private SDKDcPayReqxVO DCPAYREQX ;
|
||||
private SDKDcopdPayXVO DCOPDPAYX ;
|
||||
private List<SDKDcopdPayXVO> dcopdPayXList ;
|
||||
|
||||
}
|
||||
701
src_cmb/com/tenwa/sdk/controller/PayController.java
Normal file
701
src_cmb/com/tenwa/sdk/controller/PayController.java
Normal file
@ -0,0 +1,701 @@
|
||||
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.SDKCheckCallBackVO;
|
||||
import com.tenwa.sdk.VO.SDKCheckCallDetail;
|
||||
import com.tenwa.sdk.VO.SDKCheckInfoVO;
|
||||
import com.tenwa.sdk.VO.SDKDcPayReqxVO;
|
||||
import com.tenwa.sdk.VO.SDKInfoVO;
|
||||
import com.tenwa.sdk.VO.SDKNtstLinFxVo;
|
||||
import com.tenwa.sdk.VO.SDKPayCallBackVO;
|
||||
import com.tenwa.sdk.VO.SDKPayCallDetail;
|
||||
import com.tenwa.sdk.VO.SDKPayRqxVO;
|
||||
import com.tenwa.sdk.VO.SDKToCheckVO;
|
||||
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.entity.comm.own.OWN_INFO;
|
||||
import jbo.com.tenwa.lease.comm.LC_FUND_INCOME_CALLBACK_DETAIL;
|
||||
import jbo.com.tenwa.lease.comm.LC_FUND_INCOME_CALLBACK_INFO;
|
||||
import jbo.com.tenwa.lease.comm.LC_FUND_INCOME_CALLBACK_LOG;
|
||||
import jbo.com.tenwa.lease.comm.LC_FUND_INCOME_PAY_DETAIL;
|
||||
import jbo.com.tenwa.lease.comm.LC_FUND_INCOME_PAY_INFO;
|
||||
import jbo.com.tenwa.lease.comm.LC_FUND_INCOME_PAY_LOG;
|
||||
import jbo.sys.CODE_LIBRARY;
|
||||
import net.sf.json.JSONObject;
|
||||
|
||||
public class PayController extends BaseFlowStartAction {
|
||||
private String ids; //获取选择的fund_income_id 值 例如('a,b,c,d,e....')
|
||||
private String FLOWUNID ; //流程号
|
||||
private String bank_id ; //本方银行账户ID
|
||||
|
||||
public String getFLOWUNID() {
|
||||
return FLOWUNID;
|
||||
}
|
||||
|
||||
public void setFLOWUNID(String fLOWUNID) {
|
||||
FLOWUNID = fLOWUNID;
|
||||
}
|
||||
|
||||
public String getIds() {
|
||||
return ids;
|
||||
}
|
||||
|
||||
public void setIds(String ids) {
|
||||
this.ids = ids;
|
||||
}
|
||||
|
||||
|
||||
public String getBank_id() {
|
||||
return bank_id;
|
||||
}
|
||||
|
||||
public void setBank_id(String bank_id) {
|
||||
this.bank_id = bank_id;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 开发文档URL[https://u.ebank.cmbchina.com/CmbBank_GenShell/UI/Help/DCBank2/API.aspx?03ZFJS/09NTSTLINF]
|
||||
* 具体参数说明 点击VO类进行查看
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public String to_check(JBOTransaction tx) throws Exception {
|
||||
Map<String,String> map = new HashMap<String,String>();
|
||||
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);
|
||||
BizObjectManager infoManager = JBOFactory.getBizObjectManager(OWN_INFO.CLASS_NAME);
|
||||
BizObject accountBo = accountManager.createQuery("select * from o where o.id=:id").setParameter("id", bank_id).getSingleResult(false);
|
||||
if(accountBo==null) {
|
||||
map.put("code", "1") ;
|
||||
map.put("msg", "本方账户不存在,请检查") ;
|
||||
JSONObject jsonObj = JSONObject.fromObject(map);
|
||||
return jsonObj.toString();
|
||||
}
|
||||
BizObject infoBo = infoManager.createQuery("select * from o where o.own_number=:own_number").setParameter("own_number", accountBo.getAttribute("own_id").toString()).getSingleResult(false);
|
||||
if(infoBo==null) {
|
||||
map.put("code", "1") ;
|
||||
map.put("msg", "账户信息不存在,请检查") ;
|
||||
JSONObject jsonObj = JSONObject.fromObject(map);
|
||||
return jsonObj.toString();
|
||||
}
|
||||
String LGNNAM = infoBo.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 check_list_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_TEMP.CLASS_NAME);
|
||||
String sql = "select * from o where ( BANK_REQNBR is not null and BANK_REQNBR<>'' ) and FLOWUNID=:FLOWUNID ";
|
||||
BizObjectQuery check_list_boo = check_list_bom.createQuery(sql);
|
||||
check_list_boo.setParameter("FLOWUNID", FLOWUNID) ;
|
||||
List<BizObject> check_list_bo = check_list_boo.getResultList(false);
|
||||
if(check_list_bo!=null && check_list_bo.size()>0) {
|
||||
List<SDKNtstLinFxVo> ntstLinFxList = new ArrayList<SDKNtstLinFxVo>();
|
||||
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("<ntstLinFxList>", "").replace("</ntstLinFxList>", "").replace("<ntstLinFxList/>", "");
|
||||
// System.out.println(xmlStr);
|
||||
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<SDKCheckCallDetail> callback_list = result.getDetails();
|
||||
if(callback_list!=null && callback_list.size()>0) {
|
||||
BizObjectManager callback_detail_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_DETAIL.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());
|
||||
callback_detail_bo.setAttributeValue("INPUTUSERID","admin");
|
||||
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();
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 开发文档URL[https://u.ebank.cmbchina.com/CmbBank_GenShell/UI/Help/DCBank2/API.aspx]
|
||||
* 具体参数说明 点击VO类进行查看
|
||||
*/
|
||||
@SuppressWarnings({ "unused", "unchecked" })
|
||||
public synchronized String to_pay(JBOTransaction tx) throws Exception {
|
||||
Map<String,String> map = new HashMap<String,String>();
|
||||
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<String> income_ids = java.util.Arrays.asList(ids.split("@"));
|
||||
if(income_ids==null || income_ids.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);
|
||||
BizObjectManager infoManager = JBOFactory.getBizObjectManager(OWN_INFO.CLASS_NAME);
|
||||
BizObject accountBo = accountManager.createQuery("select * from o where o.id=:id").setParameter("id", bank_id).getSingleResult(false);
|
||||
if(accountBo==null) {
|
||||
map.put("code", "1") ;
|
||||
map.put("msg", "本方账户不存在,请检查") ;
|
||||
JSONObject jsonObj = JSONObject.fromObject(map);
|
||||
return jsonObj.toString();
|
||||
}
|
||||
BizObject infoBo = infoManager.createQuery("select * from o where o.own_number=:own_number").setParameter("own_number", accountBo.getAttribute("own_id").toString()).getSingleResult(false);
|
||||
if(infoBo==null) {
|
||||
map.put("code", "1") ;
|
||||
map.put("msg", "账户信息不存在,请检查") ;
|
||||
JSONObject jsonObj = JSONObject.fromObject(map);
|
||||
return jsonObj.toString();
|
||||
}
|
||||
String LGNNAM = infoBo.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<BizObject> bank_code_list = code_library.createQuery("select codeno,itemno,itemname from o where codeno in ('bank_reqsts','bank_rtnflg','FeeType')").getResultList(false);
|
||||
Map<String,String> bank_reqsts = new HashMap<String,String>();
|
||||
Map<String,String> bank_rtnflg = new HashMap<String,String>();
|
||||
Map<String,String> fee_type = new HashMap<String,String>();
|
||||
|
||||
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<String> bank_reqsts_list = Arrays.asList(bank_reqsts_array);
|
||||
List<String> bank_rtnflg_list = Arrays.asList(bank_rtnflg_array);
|
||||
/*
|
||||
* 获取常用代码并将codeno存为主键 方便下面代码调用 结束
|
||||
*/
|
||||
SDKToPayVO sDKToPayVO = new SDKToPayVO();
|
||||
SDKInfoVO sDKInfoVO = new SDKInfoVO();
|
||||
SDKPayRqxVO sDKPayRqxVO = new SDKPayRqxVO();
|
||||
List<SDKDcPayReqxVO> sDKDcPayReqxVOList = new ArrayList<SDKDcPayReqxVO>();
|
||||
|
||||
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.CLASS_NAME);
|
||||
BizObject pay_info_bo = pay_info_bom.newObject();
|
||||
/*
|
||||
* PAY_ID 为整个付款发起、回调、查询结果 的关联的ID
|
||||
*/
|
||||
String PAY_ID = UUID.randomUUID().toString().replaceAll("-", "") ;
|
||||
|
||||
pay_info_bo.setAttributeValue("ID", PAY_ID);
|
||||
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);
|
||||
|
||||
BizObjectManager pay_log_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_PAY_LOG.CLASS_NAME);
|
||||
BizObject pay_log_bo = pay_log_bom.newObject();
|
||||
pay_log_bo.setAttributeValue("ID", UUID.randomUUID().toString().replaceAll("-", ""));
|
||||
pay_log_bo.setAttributeValue("PAY_ID", PAY_ID);
|
||||
pay_log_bo.setAttributeValue("FLOWUNID", FLOWUNID);
|
||||
this.initTabeUserInfo(pay_log_bo);
|
||||
|
||||
List<BizObject> 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 = "";
|
||||
int index = 1 ;
|
||||
if (income_ids != null && income_ids.size() > 0) {
|
||||
if(income_ids.size() >=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.CLASS_NAME);
|
||||
BizObject pay_detail_bo = null;
|
||||
|
||||
BizObjectManager call_back_detail_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_DETAIL.CLASS_NAME);
|
||||
BizObject call_back_detail_bo = null ;
|
||||
tx.join(call_back_detail_bom);
|
||||
|
||||
pay_detail_list = new ArrayList<BizObject>();
|
||||
for (String income_id : income_ids) {
|
||||
String date = df.format(new Date());
|
||||
pay_detail = new SDKDcPayReqxVO();
|
||||
infoOne = bankBo.createQuery("select o.PROJECT_ID,o.FEE_TYPE,o.PAY_TYPE,o.BANK_SQRNBR,o.BANK_PAY_ID,o.BANK_REQNBR,o.FACT_MONEY,o.memo,o.CONTRACT_ID,o.PAYMENT_NUMBER,o.PLAN_LIST,FLOWUNID,contract_info.CONTRACT_NO,distributor.acc_number,distributor.bank_name,distributor.account,distributor.CRTPVC,distributor.CRTCTY from o left join jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO contract_info on o.CONTRACT_ID = contract_info.id left join jbo.app.tenwa.customer.DISTRIBUTOR_ACCOUNT distributor on contract_info.distributor_id = distributor.id and distributor.is_main='Y' where o.id=:id and o.PAY_TYPE = 'pay_type_out' ").setParameter("id", income_id).getSingleResult(false);
|
||||
if(infoOne==null) {
|
||||
map.put("code", "1") ;
|
||||
map.put("msg", "第["+index+"]笔数据不存在,请检查") ;
|
||||
JSONObject jsonObj = JSONObject.fromObject(map);
|
||||
return jsonObj.toString();
|
||||
}
|
||||
|
||||
String PROJECT_ID = infoOne.getAttribute("PROJECT_ID").toString();
|
||||
String CONTRACT_ID = infoOne.getAttribute("CONTRACT_ID").toString();
|
||||
String PAYMENT_NUMBER = infoOne.getAttribute("PAYMENT_NUMBER").toString();
|
||||
String PLAN_LIST = infoOne.getAttribute("PLAN_LIST").toString();
|
||||
String FLOWUNID = this.FLOWUNID ;
|
||||
String FEE_TYPE = infoOne.getAttribute("FEE_TYPE").toString();
|
||||
String PAY_TYPE = infoOne.getAttribute("PAY_TYPE").toString();
|
||||
String CONTRACT_NO = infoOne.getAttribute("CONTRACT_NO").toString();
|
||||
String CRTACC = infoOne.getAttribute("acc_number").toString();
|
||||
String BANK_NAME = infoOne.getAttribute("bank_name").toString();
|
||||
String CRTNAM = infoOne.getAttribute("account").toString();
|
||||
String CRTPVC = infoOne.getAttribute("CRTPVC").toString();
|
||||
String CRTCTY = infoOne.getAttribute("CRTCTY").toString();
|
||||
String NUSAGE = infoOne.getAttribute("memo").toString();
|
||||
String BANK_YURREF = infoOne.getAttribute("BANK_YURREF").toString();
|
||||
String BANK_SQRNBR = infoOne.getAttribute("BANK_SQRNBR").toString();
|
||||
String BANK_PAY_ID = infoOne.getAttribute("BANK_PAY_ID").toString();
|
||||
String BANK_REQNBR = infoOne.getAttribute("BANK_REQNBR").toString();
|
||||
/*
|
||||
* 检查 当前付款信息 是否存在 开始
|
||||
*/
|
||||
if(BANK_PAY_ID!=null && BANK_PAY_ID!="" && !"".equals(BANK_PAY_ID)) {
|
||||
String temp_sql = "select * from o where CONTRACT_ID=:CONTRACT_ID and PAYMENT_NUMBER=:PAYMENT_NUMBER and PLAN_LIST=:PLAN_LIST and FLOWUNID=:FLOWUNID and PAY_TYPE=:PAY_TYPE and FEE_TYPE =:FEE_TYPE " ;
|
||||
if(BANK_YURREF!=null && BANK_YURREF!="" && !"".equals(BANK_YURREF))
|
||||
temp_sql = temp_sql + " and YURREF=:BANK_YURREF";
|
||||
if(BANK_SQRNBR!=null && BANK_SQRNBR!="" && !"".equals(BANK_SQRNBR))
|
||||
temp_sql = temp_sql + " and SQRNBR=:BANK_SQRNBR";
|
||||
if(BANK_PAY_ID!=null && BANK_PAY_ID!="" && !"".equals(BANK_PAY_ID))
|
||||
temp_sql = temp_sql + " and PAY_ID=:BANK_PAY_ID";
|
||||
if(BANK_REQNBR!=null && BANK_REQNBR!="" && !"".equals(BANK_REQNBR))
|
||||
temp_sql = temp_sql + " and REQNBR=:BANK_REQNBR";
|
||||
|
||||
BizObjectQuery call_back_detail_boo= call_back_detail_bom.createQuery(temp_sql);
|
||||
call_back_detail_boo.setParameter("CONTRACT_ID",CONTRACT_ID) ;
|
||||
call_back_detail_boo.setParameter("PAYMENT_NUMBER",PAYMENT_NUMBER) ;
|
||||
call_back_detail_boo.setParameter("PLAN_LIST",PLAN_LIST) ;
|
||||
call_back_detail_boo.setParameter("FLOWUNID",FLOWUNID) ;
|
||||
call_back_detail_boo.setParameter("PAY_TYPE",PAY_TYPE) ;
|
||||
call_back_detail_boo.setParameter("FEE_TYPE",FEE_TYPE) ;
|
||||
|
||||
if(BANK_YURREF!=null && BANK_YURREF!="" && !"".equals(BANK_YURREF))
|
||||
call_back_detail_boo.setParameter("BANK_YURREF",BANK_YURREF) ;
|
||||
if(BANK_SQRNBR!=null && BANK_SQRNBR!="" && !"".equals(BANK_SQRNBR))
|
||||
call_back_detail_boo.setParameter("BANK_SQRNBR",BANK_SQRNBR) ;
|
||||
if(BANK_PAY_ID!=null && BANK_PAY_ID!="" && !"".equals(BANK_PAY_ID))
|
||||
call_back_detail_boo.setParameter("BANK_PAY_ID",BANK_PAY_ID) ;
|
||||
if(BANK_REQNBR!=null && BANK_REQNBR!="" && !"".equals(BANK_REQNBR))
|
||||
call_back_detail_boo.setParameter("BANK_REQNBR",BANK_REQNBR) ;
|
||||
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";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 检查 当前付款信息 是否存在 结束
|
||||
*/
|
||||
BigDecimal FACT_MONEY = new BigDecimal( infoOne.getAttribute("FACT_MONEY").toString());
|
||||
int check=FACT_MONEY.compareTo(BigDecimal.ZERO);
|
||||
|
||||
if( CONTRACT_NO==null || "".equals( CONTRACT_NO )
|
||||
|| CRTACC==null || "".equals( CRTACC )
|
||||
|| BANK_NAME==null || "".equals( BANK_NAME )
|
||||
|| PAY_TYPE==null || "".equals( PAY_TYPE )
|
||||
|| FEE_TYPE==null || "".equals( FEE_TYPE )
|
||||
|| CRTNAM==null || "".equals( CRTNAM )
|
||||
|| CRTPVC==null || "".equals( CRTPVC )
|
||||
|| CRTCTY==null || "".equals( CRTCTY )
|
||||
|| CRTPVC==null || "".equals( CRTPVC )
|
||||
|| check==-1
|
||||
|| CRTPVC==null || "".equals( CRTPVC )
|
||||
){
|
||||
error_msg_tips = error_msg_tips+ "第["+index+"]笔相关数据不存在,请检查\n" ;
|
||||
}
|
||||
String TRSAMT = FACT_MONEY.toPlainString();
|
||||
|
||||
String YURREF = index + date+UUID.randomUUID().toString().replaceAll("-", "").substring(0, 10) ;
|
||||
String BNKFLG = checkCMB(BANK_NAME);
|
||||
NUSAGE = fee_type.get(FEE_TYPE);
|
||||
String BUSNAR = "[项目编号:"+PROJECT_ID+"][合同号:"+CONTRACT_ID+"][计划期次:"+PLAN_LIST+"][投放编号:"+PAYMENT_NUMBER+"][费用类型:"+NUSAGE+"]";
|
||||
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("PAY_ID", PAY_ID);
|
||||
pay_detail_bo.setAttributeValue("CONTRACT_ID", CONTRACT_ID);
|
||||
pay_detail_bo.setAttributeValue("PAYMENT_NUMBER", PAYMENT_NUMBER);
|
||||
pay_detail_bo.setAttributeValue("PLAN_LIST", PLAN_LIST);
|
||||
pay_detail_bo.setAttributeValue("FLOWUNID", FLOWUNID);
|
||||
pay_detail_bo.setAttributeValue("PAY_TYPE", PAY_TYPE);
|
||||
pay_detail_bo.setAttributeValue("FEE_TYPE", FEE_TYPE);
|
||||
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("<dcPayReqxList>", "").replace("</dcPayReqxList>", "").replace("<dcPayReqxList/>", "");
|
||||
pay_log_bo.setAttributeValue("XML",xmlStr);
|
||||
/*
|
||||
* 发起数据入库 开始
|
||||
*/
|
||||
tx.join(pay_info_bom);
|
||||
tx.join(pay_log_bom);
|
||||
|
||||
pay_info_bom.saveObject(pay_info_bo);
|
||||
pay_log_bom.saveObject(pay_log_bo);
|
||||
|
||||
|
||||
|
||||
if(pay_detail_bom!=null) {
|
||||
BizObjectManager income_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_TEMP.CLASS_NAME);
|
||||
BizObject income_bo = null ;
|
||||
|
||||
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("select * from o where CONTRACT_ID=:CONTRACT_ID and PAYMENT_NUMBER=:PAYMENT_NUMBER and PLAN_LIST=:PLAN_LIST and FLOWUNID=:FLOWUNID and PAY_TYPE=:PAY_TYPE and FEE_TYPE=:FEE_TYPE ");
|
||||
income_boo.setParameter("CONTRACT_ID",pay_detail_one.getAttribute("CONTRACT_ID").toString()) ;
|
||||
income_boo.setParameter("PAYMENT_NUMBER",pay_detail_one.getAttribute("PAYMENT_NUMBER").toString()) ;
|
||||
income_boo.setParameter("PLAN_LIST",pay_detail_one.getAttribute("PLAN_LIST").toString()) ;
|
||||
income_boo.setParameter("FLOWUNID",pay_detail_one.getAttribute("FLOWUNID").toString()) ;
|
||||
income_boo.setParameter("PAY_TYPE",pay_detail_one.getAttribute("PAY_TYPE").toString()) ;
|
||||
income_boo.setParameter("FEE_TYPE",pay_detail_one.getAttribute("FEE_TYPE").toString()) ;
|
||||
income_bo = income_boo.getSingleResult(true) ;
|
||||
income_bo.setAttributeValue("BANK_PAY_ID",pay_detail_one.getAttribute("PAY_ID").toString());
|
||||
income_bo.setAttributeValue("BANK_YURREF",pay_detail_one.getAttribute("YURREF").toString());
|
||||
income_bo.setAttributeValue("BANK_ID",bank_id);
|
||||
this.initTabeUserInfo(income_bo);
|
||||
income_bom.saveObject(income_bo);
|
||||
pay_detail_bom.saveObject(pay_detail_one);
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 发起数据入库 结束
|
||||
*/
|
||||
|
||||
try {
|
||||
// System.out.println(xmlStr); //控制台打印请求的XML数据
|
||||
//HttpRequest request = new HttpRequest("http://192.168.1.110: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();
|
||||
}
|
||||
BizObjectManager callback_info_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_INFO.CLASS_NAME) ;
|
||||
BizObjectManager callback_detail_bom = null;
|
||||
BizObjectManager callback_log_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_LOG.CLASS_NAME) ;
|
||||
|
||||
BizObject callback_info_bo = callback_info_bom.newObject();
|
||||
BizObject callback_detail_bo = null;
|
||||
BizObject callback_log_bo = callback_log_bom.newObject();
|
||||
|
||||
tx.join(callback_info_bom);
|
||||
callback_info_bo.setAttributeValue("ID", UUID.randomUUID().toString().replaceAll("-", ""));
|
||||
callback_info_bo.setAttributeValue("PAY_ID",PAY_ID);
|
||||
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);
|
||||
|
||||
tx.join(callback_log_bom);
|
||||
callback_log_bo.setAttributeValue("ID", UUID.randomUUID().toString().replaceAll("-", ""));
|
||||
callback_log_bo.setAttributeValue("PAY_ID",PAY_ID);
|
||||
callback_log_bo.setAttributeValue("FLOWUNID",FLOWUNID);
|
||||
callback_log_bo.setAttributeValue("XML",result.getInfo().getXML());
|
||||
this.initTabeUserInfo(callback_log_bo);
|
||||
callback_log_bom.saveObject(callback_log_bo);
|
||||
|
||||
|
||||
if(result.getInfo().getSTATUS()==1) {
|
||||
if("0".equals( result.getInfo().getRETCOD() )) {
|
||||
|
||||
|
||||
|
||||
|
||||
List<SDKPayCallDetail> details = result.getDetails() ;
|
||||
String error_info = "";
|
||||
if(details!=null && details.size()>0) {
|
||||
callback_detail_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_DETAIL.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("PAY_ID",PAY_ID);
|
||||
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);
|
||||
if(pay_detail_list!=null && pay_detail_list.size()>0) {
|
||||
BizObjectManager income_bom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_TEMP.CLASS_NAME);
|
||||
BizObject income_bo = null ;
|
||||
tx.join(income_bom);
|
||||
BizObjectQuery income_boo= income_bom.createQuery("select * from o where CONTRACT_ID=:CONTRACT_ID and PAYMENT_NUMBER=:PAYMENT_NUMBER and PLAN_LIST=:PLAN_LIST and FLOWUNID=:FLOWUNID and PAY_TYPE=:PAY_TYPE and FEE_TYPE=:FEE_TYPE ");
|
||||
for (BizObject pay_detail_one : pay_detail_list) {
|
||||
if(DETAIL_YURREF.equals( pay_detail_one.getAttribute("YURREF").toString() )) {
|
||||
|
||||
income_boo.setParameter("CONTRACT_ID",pay_detail_one.getAttribute("CONTRACT_ID").toString()) ;
|
||||
income_boo.setParameter("PAYMENT_NUMBER",pay_detail_one.getAttribute("PAYMENT_NUMBER").toString()) ;
|
||||
income_boo.setParameter("PLAN_LIST",pay_detail_one.getAttribute("PLAN_LIST").toString()) ;
|
||||
income_boo.setParameter("FLOWUNID",pay_detail_one.getAttribute("FLOWUNID").toString()) ;
|
||||
income_boo.setParameter("PAY_TYPE",pay_detail_one.getAttribute("PAY_TYPE").toString()) ;
|
||||
income_boo.setParameter("FEE_TYPE",pay_detail_one.getAttribute("FEE_TYPE").toString()) ;
|
||||
income_bo = income_boo.getSingleResult(true) ;
|
||||
income_bo.setAttributeValue("BANK_SQRNBR",detail.getSQRNBR());
|
||||
income_bo.setAttributeValue("BANK_REQNBR",detail.getREQNBR());
|
||||
this.initTabeUserInfo(income_bo);
|
||||
income_bom.saveObject(income_bo);
|
||||
|
||||
callback_detail_bo.setAttributeValue("CONTRACT_ID",pay_detail_one.getAttribute("CONTRACT_ID").toString());
|
||||
callback_detail_bo.setAttributeValue("PAYMENT_NUMBER",pay_detail_one.getAttribute("PAYMENT_NUMBER").toString());
|
||||
callback_detail_bo.setAttributeValue("PLAN_LIST",pay_detail_one.getAttribute("PLAN_LIST").toString());
|
||||
callback_detail_bo.setAttributeValue("FLOWUNID",pay_detail_one.getAttribute("FLOWUNID").toString());
|
||||
callback_detail_bo.setAttributeValue("PAY_TYPE",pay_detail_one.getAttribute("PAY_TYPE").toString());
|
||||
callback_detail_bo.setAttributeValue("FEE_TYPE",pay_detail_one.getAttribute("FEE_TYPE").toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
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";
|
||||
}
|
||||
}
|
||||
}
|
||||
333
src_cmb/com/tenwa/sdk/utils/HttpRequest.java
Normal file
333
src_cmb/com/tenwa/sdk/utils/HttpRequest.java
Normal file
@ -0,0 +1,333 @@
|
||||
package com.tenwa.sdk.utils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.ProtocolException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Vector;
|
||||
|
||||
import com.tenwa.sdk.VO.SDKCheckCallBackVO;
|
||||
import com.tenwa.sdk.VO.SDKCheckCallDetail;
|
||||
import com.tenwa.sdk.VO.SDKCheckCallInfoVO;
|
||||
import com.tenwa.sdk.VO.SDKPayCallBackVO;
|
||||
import com.tenwa.sdk.VO.SDKPayCallDetail;
|
||||
import com.tenwa.sdk.VO.SDKPayCallInfoVO;
|
||||
|
||||
public class HttpRequest {
|
||||
|
||||
private String ipAddr = "http://192.168.7.85:65188"; // 测试地址。。。
|
||||
private int timeout = 30 * 1000;
|
||||
public String getIpAddr() {
|
||||
return ipAddr;
|
||||
}
|
||||
|
||||
public void setIpAddr(String ipAddr) {
|
||||
this.ipAddr = ipAddr;
|
||||
}
|
||||
|
||||
public int getTimeout() {
|
||||
return timeout;
|
||||
}
|
||||
|
||||
public void setTimeout(int timeout) {
|
||||
this.timeout = timeout;
|
||||
}
|
||||
|
||||
public HttpRequest(String ipAddr) {
|
||||
this.ipAddr = ipAddr;
|
||||
}
|
||||
|
||||
public HttpRequest() {
|
||||
}
|
||||
|
||||
public SDKPayCallBackVO sendPayRequest(String data) {
|
||||
SDKPayCallBackVO callBack = new SDKPayCallBackVO();
|
||||
SDKPayCallInfoVO info = new SDKPayCallInfoVO();
|
||||
String result = "";
|
||||
try {
|
||||
URL url = new URL(this.ipAddr);
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setConnectTimeout(this.timeout);
|
||||
connection.setReadTimeout(this.timeout);
|
||||
connection.setDoOutput(true);
|
||||
connection.setDoInput(true);
|
||||
connection.setUseCaches(false);
|
||||
connection.setInstanceFollowRedirects(true);
|
||||
connection.setRequestMethod("POST");
|
||||
connection.setRequestProperty("Accept", "application/xml");
|
||||
connection.setRequestProperty("Content-Type", "application/xml");
|
||||
connection.connect();
|
||||
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "GBK");
|
||||
out.append(data);
|
||||
out.flush();
|
||||
out.close();
|
||||
|
||||
int code = connection.getResponseCode();
|
||||
InputStream is = null;
|
||||
if (code == 200) {
|
||||
is = connection.getInputStream();
|
||||
} else {
|
||||
is = connection.getErrorStream();
|
||||
}
|
||||
|
||||
int length = (int) connection.getContentLength();
|
||||
if (length != -1) {
|
||||
byte[] datas = new byte[length];
|
||||
byte[] temp = new byte[512];
|
||||
int readLen = 0;
|
||||
int destPos = 0;
|
||||
while ((readLen = is.read(temp)) > 0) {
|
||||
System.arraycopy(temp, 0, datas, destPos, readLen);
|
||||
destPos += readLen;
|
||||
}
|
||||
result = new String(datas, "GBK");
|
||||
}
|
||||
is.close();
|
||||
// System.out.println("----");
|
||||
// System.out.println(result);
|
||||
// System.out.println("----");
|
||||
} catch (MalformedURLException e) {
|
||||
info.setSTATUS(-1);
|
||||
info.setERRMSG("URL协议、格式或者路径错误");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
info.setSTATUS(-1);
|
||||
info.setERRMSG("字符编码有问题");
|
||||
} catch (ProtocolException e) {
|
||||
info.setSTATUS(-1);
|
||||
info.setERRMSG("协议异常");
|
||||
} catch (IOException e) {
|
||||
info.setSTATUS(-1);
|
||||
info.setERRMSG("响应超时");
|
||||
}
|
||||
|
||||
if (info.getSTATUS() != -1) {
|
||||
info.setSTATUS(1);
|
||||
info.setXML(result);
|
||||
}
|
||||
callBack.setInfo(info);
|
||||
return toPayObj(callBack);
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
private SDKPayCallBackVO toPayObj(SDKPayCallBackVO vo) {
|
||||
if (vo.getInfo().getSTATUS() != -1) {
|
||||
SDKPayCallInfoVO info = vo.getInfo();
|
||||
String result = vo.getInfo().getXML();
|
||||
if (result != null && result.length() > 0) {
|
||||
XmlPacket pktRsp = XmlPacket.valueOf(result);
|
||||
if (pktRsp != null) {
|
||||
String sRetCod = pktRsp.getRETCOD();
|
||||
String sFunnam = pktRsp.getFUNNAM();
|
||||
String sDattpy = pktRsp.getDATTYP();
|
||||
String sErrmsg = pktRsp.getERRMSG();
|
||||
|
||||
info.setRETCOD(sRetCod);
|
||||
info.setFUNNAM(sFunnam);
|
||||
info.setDATTYP(sDattpy);
|
||||
Vector<Map> vec = null ;
|
||||
if (sRetCod.equals("0")) {
|
||||
vec = pktRsp.getProperty("NTQPAYRQZ");
|
||||
if(vec!=null && vec.size()>0) {
|
||||
List<SDKPayCallDetail> details = new ArrayList<SDKPayCallDetail>();
|
||||
|
||||
for (Map propPayResult : vec) {
|
||||
SDKPayCallDetail detail_one = new SDKPayCallDetail();
|
||||
String REQSTS = (String) propPayResult.get("REQSTS");
|
||||
String RTNFLG = (String) propPayResult.get("RTNFLG");
|
||||
String SQRNBR = (String) propPayResult.get("SQRNBR");
|
||||
String YURREF = (String) propPayResult.get("YURREF");
|
||||
String REQNBR = (String) propPayResult.get("REQNBR");
|
||||
String OPRSQN = (String) propPayResult.get("OPRSQN");
|
||||
String OPRALS = (String) propPayResult.get("OPRALS");
|
||||
String ERRCOD = (String) propPayResult.get("ERRCOD");
|
||||
String ERRTXT = (String) propPayResult.get("ERRTXT");
|
||||
|
||||
detail_one.setERRCOD(ERRCOD);
|
||||
detail_one.setERRTXT(ERRTXT);
|
||||
detail_one.setOPRALS(OPRALS);
|
||||
detail_one.setOPRSQN(OPRSQN);
|
||||
detail_one.setREQNBR(REQNBR);
|
||||
detail_one.setREQSTS(REQSTS);
|
||||
detail_one.setRTNFLG(RTNFLG);
|
||||
detail_one.setSQRNBR(SQRNBR);
|
||||
detail_one.setYURREF(YURREF);
|
||||
|
||||
if (REQSTS.equals("FIN") && RTNFLG.equals("F")) {
|
||||
detail_one.setERRTXT("支付失败:" + ERRTXT);
|
||||
} else {
|
||||
detail_one.setERRTXT("支付已被银行受理(支付状态:" + REQSTS + ")");
|
||||
}
|
||||
details.add(detail_one);
|
||||
}
|
||||
vo.setDetails(details);
|
||||
}
|
||||
} else if (sRetCod.equals("-9")) {
|
||||
info.setERRMSG("支付未知异常,请查询支付结果确认支付状态,错误信息:" + sErrmsg);
|
||||
} else {
|
||||
info.setERRMSG("支付失败:" + sErrmsg);
|
||||
}
|
||||
} else {
|
||||
info.setERRMSG("响应报文解析失败");
|
||||
}
|
||||
}
|
||||
vo.setInfo(info);
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
public SDKCheckCallBackVO sendCheckRequest(String data) {
|
||||
SDKCheckCallBackVO callBack = new SDKCheckCallBackVO();
|
||||
SDKCheckCallInfoVO info = new SDKCheckCallInfoVO();
|
||||
String result = "";
|
||||
try {
|
||||
URL url = new URL(this.ipAddr);
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setConnectTimeout(this.timeout);
|
||||
connection.setReadTimeout(this.timeout);
|
||||
connection.setDoOutput(true);
|
||||
connection.setDoInput(true);
|
||||
connection.setUseCaches(false);
|
||||
connection.setInstanceFollowRedirects(true);
|
||||
connection.setRequestMethod("POST");
|
||||
connection.setRequestProperty("Accept", "application/xml");
|
||||
connection.setRequestProperty("Content-Type", "application/xml");
|
||||
connection.connect();
|
||||
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "GBK");
|
||||
out.append(data);
|
||||
out.flush();
|
||||
out.close();
|
||||
|
||||
int code = connection.getResponseCode();
|
||||
InputStream is = null;
|
||||
if (code == 200) {
|
||||
is = connection.getInputStream();
|
||||
} else {
|
||||
is = connection.getErrorStream();
|
||||
}
|
||||
|
||||
int length = (int) connection.getContentLength();
|
||||
if (length != -1) {
|
||||
byte[] datas = new byte[length];
|
||||
byte[] temp = new byte[512];
|
||||
int readLen = 0;
|
||||
int destPos = 0;
|
||||
while ((readLen = is.read(temp)) > 0) {
|
||||
System.arraycopy(temp, 0, datas, destPos, readLen);
|
||||
destPos += readLen;
|
||||
}
|
||||
result = new String(datas, "GBK");
|
||||
}
|
||||
is.close();
|
||||
System.out.println("----");
|
||||
System.out.println(result);
|
||||
System.out.println("----");
|
||||
} catch (MalformedURLException e) {
|
||||
info.setSTATUS(-1);
|
||||
info.setERRMSG("URL协议、格式或者路径错误");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
info.setSTATUS(-1);
|
||||
info.setERRMSG("字符编码有问题");
|
||||
} catch (ProtocolException e) {
|
||||
info.setSTATUS(-1);
|
||||
info.setERRMSG("协议异常");
|
||||
} catch (IOException e) {
|
||||
info.setSTATUS(-1);
|
||||
info.setERRMSG("响应超时");
|
||||
}
|
||||
|
||||
if (info.getSTATUS() != -1) {
|
||||
info.setSTATUS(1);
|
||||
info.setXML(result);
|
||||
}
|
||||
callBack.setInfo(info);
|
||||
return toCheckObj(callBack);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
private SDKCheckCallBackVO toCheckObj(SDKCheckCallBackVO vo) {
|
||||
if (vo.getInfo().getSTATUS() != -1) {
|
||||
SDKCheckCallInfoVO info = vo.getInfo();
|
||||
String result = vo.getInfo().getXML();
|
||||
if (result != null && result.length() > 0) {
|
||||
XmlPacket pktRsp = XmlPacket.valueOf(result);
|
||||
if (pktRsp != null) {
|
||||
String sRetCod = pktRsp.getRETCOD();
|
||||
String sFunnam = pktRsp.getFUNNAM();
|
||||
String sDattpy = pktRsp.getDATTYP();
|
||||
String sErrmsg = pktRsp.getERRMSG();
|
||||
|
||||
info.setRETCOD(sRetCod);
|
||||
info.setFUNNAM(sFunnam);
|
||||
info.setDATTYP(sDattpy);
|
||||
Vector<Map> vec = null ;
|
||||
if (sRetCod.equals("0")) {
|
||||
vec = pktRsp.getProperty("NTQPAYQYZ");
|
||||
if(vec!=null && vec.size()>0) {
|
||||
List<SDKCheckCallDetail> details = new ArrayList<SDKCheckCallDetail>();
|
||||
|
||||
for (Map propPayResult : vec) {
|
||||
SDKCheckCallDetail detail_one = new SDKCheckCallDetail();
|
||||
String BUSCOD = (String) propPayResult.get("BUSCOD");
|
||||
String BUSMOD = (String) propPayResult.get("BUSMOD");
|
||||
String DBTBBK = (String) propPayResult.get("DBTBBK");
|
||||
String DBTACC = (String) propPayResult.get("DBTACC");
|
||||
String DBTNAM = (String) propPayResult.get("DBTNAM");
|
||||
String DBTBNK = (String) propPayResult.get("DBTBNK");
|
||||
String CRTACC = (String) propPayResult.get("CRTACC");
|
||||
String CRTNAM = (String) propPayResult.get("CRTNAM");
|
||||
String CCYNBR = (String) propPayResult.get("CCYNBR");
|
||||
String TRSAMT = (String) propPayResult.get("TRSAMT");
|
||||
String YURREF = (String) propPayResult.get("YURREF");
|
||||
String REQNBR = (String) propPayResult.get("REQNBR");
|
||||
String REQSTS = (String) propPayResult.get("REQSTS");
|
||||
String RTNFLG = (String) propPayResult.get("RTNFLG");
|
||||
String RTNNAR = (String) propPayResult.get("RTNNAR");
|
||||
|
||||
detail_one.setBUSCOD(BUSCOD);
|
||||
detail_one.setBUSMOD(BUSMOD);
|
||||
detail_one.setDBTBBK(DBTBBK);
|
||||
detail_one.setDBTACC(DBTACC);
|
||||
detail_one.setDBTNAM(DBTNAM);
|
||||
detail_one.setDBTBNK(DBTBNK);
|
||||
detail_one.setCRTACC(CRTACC);
|
||||
detail_one.setCRTNAM(CRTNAM);
|
||||
detail_one.setCCYNBR(CCYNBR);
|
||||
detail_one.setTRSAMT(TRSAMT);
|
||||
detail_one.setYURREF(YURREF);
|
||||
detail_one.setREQNBR(REQNBR);
|
||||
detail_one.setYURREF(YURREF);
|
||||
detail_one.setREQSTS(REQSTS);
|
||||
detail_one.setRTNFLG(RTNFLG);
|
||||
detail_one.setRTNNAR(RTNNAR);
|
||||
|
||||
details.add(detail_one);
|
||||
}
|
||||
vo.setDetails(details);
|
||||
}
|
||||
} else if (sRetCod.equals("-9")) {
|
||||
info.setERRMSG("支付未知异常,请查询支付结果确认支付状态,错误信息:" + sErrmsg);
|
||||
} else {
|
||||
info.setERRMSG("支付失败:" + sErrmsg);
|
||||
}
|
||||
} else {
|
||||
info.setERRMSG("响应报文解析失败");
|
||||
}
|
||||
}
|
||||
vo.setInfo(info);
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
83
src_cmb/com/tenwa/sdk/utils/SaxHandler.java
Normal file
83
src_cmb/com/tenwa/sdk/utils/SaxHandler.java
Normal file
@ -0,0 +1,83 @@
|
||||
package com.tenwa.sdk.utils;
|
||||
|
||||
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.xml.sax.Attributes;
|
||||
import org.xml.sax.SAXException;
|
||||
import org.xml.sax.helpers.DefaultHandler;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* ÕÐÐÐXML±¨ÎĽâÎöÀà
|
||||
*
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public class SaxHandler extends DefaultHandler {
|
||||
int layer=0;
|
||||
String curSectionName;
|
||||
String curKey;
|
||||
String curValue;
|
||||
XmlPacket pktData;
|
||||
Map mpRecord;
|
||||
|
||||
public SaxHandler(XmlPacket data){
|
||||
curSectionName = "";
|
||||
curKey = "";
|
||||
curValue = "";
|
||||
pktData = data;
|
||||
mpRecord = new Properties();
|
||||
}
|
||||
|
||||
public void startElement(String uri, String localName, String qName,
|
||||
Attributes attributes) throws SAXException {
|
||||
layer++;
|
||||
if(layer==2){
|
||||
curSectionName = qName;
|
||||
}else if(layer==3){
|
||||
curKey = qName;
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void endElement(String uri, String localName, String qName)
|
||||
throws SAXException {
|
||||
if(layer==2){
|
||||
pktData.putProperty(curSectionName, mpRecord);
|
||||
mpRecord = new Properties();
|
||||
}else if(layer==3){
|
||||
mpRecord.put(curKey, curValue);
|
||||
if(curSectionName.equals("INFO")){
|
||||
if(curKey.equals("FUNNAM")){
|
||||
pktData.setFUNNAM(curValue);
|
||||
}else if(curKey.equals("LGNNAM")){
|
||||
pktData.setLGNNAM(curValue);
|
||||
}else if(curKey.equals("RETCOD")){
|
||||
pktData.setRETCOD(curValue);
|
||||
}else if(curKey.equals("ERRMSG")){
|
||||
pktData.setERRMSG(curValue);
|
||||
}else if(curKey.equals("DATTYP")){
|
||||
pktData.setDATTYP(curValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
curValue = "";
|
||||
layer--;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unlikely-arg-type")
|
||||
public void characters(char[] ch, int start, int length)
|
||||
throws SAXException {
|
||||
if(layer==3){
|
||||
String value = new String(ch, start, length);
|
||||
if(ch.equals("\n")){
|
||||
curValue += "\r\n";
|
||||
}else{
|
||||
curValue += value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
57
src_cmb/com/tenwa/sdk/utils/XMLStream.java
Normal file
57
src_cmb/com/tenwa/sdk/utils/XMLStream.java
Normal file
@ -0,0 +1,57 @@
|
||||
package com.tenwa.sdk.utils;
|
||||
|
||||
|
||||
import java.io.OutputStream;
|
||||
import java.io.Writer;
|
||||
|
||||
import com.thoughtworks.xstream.XStream;
|
||||
|
||||
public class XMLStream extends XStream {
|
||||
|
||||
// XML的声明
|
||||
public String getDeclaration() {
|
||||
return "<?xml version=\"1.0\" encoding=\"GBK\"?>\n";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toXML(Object obj, OutputStream output) {
|
||||
try {
|
||||
String dec = this.getDeclaration();
|
||||
byte[] bytesOfDec = dec.getBytes("UTF-8");
|
||||
output.write(bytesOfDec);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("error", e);
|
||||
}
|
||||
super.toXML(obj, output);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toXML(Object obj, Writer writer) {
|
||||
try {
|
||||
writer.write(getDeclaration());
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("error", e);
|
||||
}
|
||||
super.toXML(obj, writer);
|
||||
}
|
||||
// @Override
|
||||
// protected MapperWrapper wrapMapper(MapperWrapper next) {
|
||||
// return new MapperWrapper(next) {
|
||||
// @Override
|
||||
// public boolean shouldSerializeMember(@SuppressWarnings("rawtypes") Class definedIn, String fieldName) {
|
||||
// // 不能识别的节点,掠过。
|
||||
// if (definedIn == Object.class) {
|
||||
// return false;
|
||||
// }
|
||||
// // 节点名称为fileName的掠过
|
||||
// if (fieldName.equals("dcPayReqxList")) {
|
||||
// return false;
|
||||
// }
|
||||
// return super.shouldSerializeMember(definedIn, fieldName);
|
||||
// }
|
||||
// };
|
||||
// }
|
||||
|
||||
|
||||
|
||||
}
|
||||
107
src_cmb/com/tenwa/sdk/utils/XmlPacket.java
Normal file
107
src_cmb/com/tenwa/sdk/utils/XmlPacket.java
Normal file
@ -0,0 +1,107 @@
|
||||
package com.tenwa.sdk.utils;
|
||||
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.Vector;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.parsers.SAXParser;
|
||||
import javax.xml.parsers.SAXParserFactory;
|
||||
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import lombok.Data;
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Data
|
||||
public class XmlPacket{
|
||||
protected String RETCOD;
|
||||
protected String ERRMSG;
|
||||
protected String FUNNAM;
|
||||
protected String LGNNAM;
|
||||
protected String DATTYP;
|
||||
protected Map data; //<String,Vector>
|
||||
|
||||
public XmlPacket(){
|
||||
data = new Properties();
|
||||
}
|
||||
|
||||
public boolean isError(){
|
||||
if(RETCOD.equals("0")){
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@SuppressWarnings("unchecked")
|
||||
public void putProperty(String sSectionName, Map mpData){
|
||||
if(data.containsKey(sSectionName)){
|
||||
Vector vt = (Vector)data.get(sSectionName);
|
||||
vt.add(mpData);
|
||||
}else{
|
||||
Vector vt = new Vector();
|
||||
vt.add(mpData);
|
||||
data.put(sSectionName, vt);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 取得指定接口的数据记录
|
||||
* @param sSectionName
|
||||
* @param index 索引,从0开始
|
||||
* @return Map<String,String>
|
||||
*/
|
||||
public Map getProperty(String sSectionName, int index){
|
||||
if(data.containsKey(sSectionName)){
|
||||
return (Map)((Vector)data.get(sSectionName)).get(index);
|
||||
}else{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public Vector getProperty(String sSectionName){
|
||||
if(data.containsKey(sSectionName)){
|
||||
return ((Vector)data.get(sSectionName));
|
||||
}else{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 取得制定接口数据记录数
|
||||
* @param sSectionName
|
||||
* @return
|
||||
*/
|
||||
|
||||
public int getSectionSize(String sSectionName){
|
||||
if(data.containsKey(sSectionName)){
|
||||
Vector sec = (Vector)data.get(sSectionName);
|
||||
return sec.size();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
/**
|
||||
* 解析xml字符串,并转换为报文对象
|
||||
* @param message
|
||||
*/
|
||||
public static XmlPacket valueOf(String message) {
|
||||
SAXParserFactory saxfac = SAXParserFactory.newInstance();
|
||||
try {
|
||||
SAXParser saxparser = saxfac.newSAXParser();
|
||||
ByteArrayInputStream is = new ByteArrayInputStream(message.getBytes("GBK"));
|
||||
XmlPacket xmlPkt= new XmlPacket();
|
||||
saxparser.parse(is, new SaxHandler(xmlPkt));
|
||||
is.close();
|
||||
return xmlPkt;
|
||||
} catch (ParserConfigurationException e) {
|
||||
e.printStackTrace();
|
||||
} catch (SAXException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -120,7 +120,7 @@ public class SerialNumberUtil {
|
||||
}
|
||||
|
||||
public static synchronized String getProjectSerialNumber1(String orgId,JBOTransaction tx) throws Exception{
|
||||
return SerialNumberUtil.getSerialNumber("P{year}{maxOrderNumber}",7,null, "ÏîÄ¿±àºÅ"+orgId, null, tx);
|
||||
return SerialNumberUtil.getSerialNumber("A{year}{maxOrderNumber}",7,null, "ÏîÄ¿±àºÅ"+orgId, null, tx);
|
||||
}
|
||||
|
||||
public static synchronized String getProjectSerialNumber2(JBOTransaction tx) throws Exception{
|
||||
|
||||
@ -30,7 +30,6 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
|
||||
BizObjectManager bmLULT = JBOFactory.getBizObjectManager(LB_UNION_LESSEE_TEMP.CLASS_NAME,Sqlca);
|
||||
BizObjectManager bmLPA = JBOFactory.getBizObjectManager(lpapplication.CLASS_NAME,Sqlca);
|
||||
BizObjectManager bmLECT = JBOFactory.getBizObjectManager(LB_EQUIPMENT_CAR_TEMP.CLASS_NAME,Sqlca);
|
||||
BizObjectManager bmLPIT = JBOFactory.getBizObjectManager(LB_PROJECT_INFO_TEMP.CLASS_NAME,Sqlca);
|
||||
BizObjectManager bmLCIT = JBOFactory.getBizObjectManager(LB_CONTRACT_INFO_TEMP.CLASS_NAME,Sqlca);
|
||||
|
||||
Sqlca.join(bm);
|
||||
@ -41,7 +40,6 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
|
||||
BizObject boLULT = bmLULT.newObject();
|
||||
BizObject bmLP = bmLPA.newObject();
|
||||
BizObject bmLEC = bmLECT.newObject();
|
||||
BizObject bmLPI = bmLPIT.newObject();
|
||||
BizObject bmLCI = bmLCIT.newObject();
|
||||
|
||||
|
||||
@ -50,10 +48,6 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
|
||||
bmLCI.setAttributeValue("FLOWUNID", this.getAttribute("FlowUnid"));
|
||||
bmLCI.setAttributeValue("VERSIONID", this.getAttribute("versionid"));
|
||||
|
||||
bmLPI.setAttributeValue("FLOWUNID", this.getAttribute("FlowUnid"));
|
||||
bmLPI.setAttributeValue("VERSIONID", this.getAttribute("versionid"));
|
||||
|
||||
|
||||
boCRT.setAttributeValue("flowunid", this.getAttribute("FlowUnid"));
|
||||
boCRT.setAttributeValue("customerid", customerid);
|
||||
boCRT.setAttributeValue("InputOrgID", asUser.getOrgID());
|
||||
@ -92,6 +86,11 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
|
||||
bo.setAttributeValue("project_name",this.getAttribute("ProjectNo"));
|
||||
bo.setAttributeValue("project_manage",this.getAttribute("CurUserID"));
|
||||
bo.setAttributeValue("project_dept",asUser.getOrgID());
|
||||
String versionid = this.getAttribute("versionid").toString();
|
||||
String bustype = this.getAttribute("businessType").toString();
|
||||
|
||||
bo.setAttributeValue("VERSIONID", this.getAttribute("versionid"));
|
||||
bo.setAttributeValue("BUSINESSTYPE", this.getAttribute("businessType"));
|
||||
bo.setAttributeValue("leas_form", this.getAttribute("leasehold"));//默认回租
|
||||
bo.setAttributeValue("PRODUCT_ID",this.getAttribute("ProductId"));//业务品种编号
|
||||
bo.setAttributeValue("PRODUCT_NAME",this.getAttribute("ProductName"));//业务品种名称
|
||||
@ -106,7 +105,6 @@ public class LBProjectIntoTempInitCarBusiness extends BaseBussiness {
|
||||
bmLULT.saveObject(boLULT);
|
||||
bmLPA.saveObject(bmLP);
|
||||
bmLECT.saveObject(bmLEC);
|
||||
bmLPIT.saveObject(bmLPI);
|
||||
bmLCIT.saveObject(bmLCI);
|
||||
|
||||
String sMessage="true";
|
||||
|
||||
@ -44,6 +44,7 @@ public class BusinessApprovalStartAction extends BaseFlowStartAction{
|
||||
private String carSeries;
|
||||
private String versionid;
|
||||
private String modelid;
|
||||
private String businessType;
|
||||
|
||||
@Override
|
||||
public void customOperation(JBOTransaction tx,BizObject flowBussiness) throws Exception {
|
||||
@ -64,9 +65,20 @@ public class BusinessApprovalStartAction extends BaseFlowStartAction{
|
||||
this.FlowParam.put("carSeries", getCarSeries());
|
||||
this.FlowParam.put("versionid", getVersionid());
|
||||
this.FlowParam.put("modelid", getModelid());
|
||||
this.FlowParam.put("businessType", getBusinessType());
|
||||
}
|
||||
|
||||
|
||||
public String getBusinessType() {
|
||||
return businessType;
|
||||
}
|
||||
|
||||
|
||||
public void setBusinessType(String businessType) {
|
||||
this.businessType = businessType;
|
||||
}
|
||||
|
||||
|
||||
public String getModelid() {
|
||||
return modelid;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user