This commit is contained in:
liuz 2018-06-19 20:19:54 +08:00
commit 628264bce3
32 changed files with 1850 additions and 33 deletions

View File

@ -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">

View File

@ -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"%>

View File

@ -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">

View File

@ -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">

View File

@ -121,7 +121,8 @@
function saveRecord(){
<%-- var sFlowUnid = "<%=sFlowUnid%>";
setItemValue(0,getRow(),"FlowUnid",sFlowUnid);//³õʼ»¯Á÷³Ì±àºÅ --%>
as_save("myiframe0","");
//as_save("myiframe0","");
as_save(0,"goBack()");
}

View File

@ -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",""}
};
}
%>

View File

@ -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;
}

View File

@ -329,6 +329,7 @@
/*~[Describe=返回列表页面;InputParam=无;OutPutParam=无;]~*/
function goBack(){
debugger;
//要跳转的url
var url="/Tenwa/Lease/Flow/Comm/LBGuaranteeUnit_Car/LBGuaranteeUnitList.jsp";
//要传的参数

View File

@ -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);
}
}

Binary file not shown.

View 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 ;
}

View 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) 虚拟户支付时前十位为虚拟户编号
}

View 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;
}
}

View 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 ;
}

View 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]
*/
/*
* 名称[业务参考号]
* 类型[C30]
* 取值[]
* 可空[]
* 备注[用于标识该笔业务的编号企业银行编号+业务类型+业务参考号必须唯一企业可以自定义业务参考号也可使用银行缺省值单笔支付批量支付须由企业提供 直联必须用企业提供]
*/
private String YURREF ;
/*
* 名称[期望日]
* 类型[D]
* 取值[]
* ### 可空[]
* 备注[默认为当前日期]
*/
private String EPTDAT ;
/*
* 名称[期望时间]
* 类型[T]
* 取值[]
* ### 可空[]
* 备注[默认为000000]
*/
/*
* 名称[付方帐号]
* 类型[N35]
* 取值[]
* 可空[]
* 备注[企业用于付款的转出帐号该帐号的币种类型必须与币种字段相符]
*/
private String DBTACC ;
/*
* 名称[付方开户地区代码]
* 类型[C2]
* 取值[附录A.1]
* 可空[]
* 备注[]
*/
private String DBTBBK ;
/*
* 名称[交易金额]
* 类型[M]
* 取值[]
* 可空[]
* 备注[该笔业务的付款金额]
*/
private String TRSAMT ;
/*
* 名称[币种代码]
* 类型[C(2)]
* 取值[附录A.3]
* 可空[]
* 备注[币种暂时只支持10-人民币]
*/
private String CCYNBR ;
/*
* 名称[结算方式代码]
* 类型[C(1)]
* 取值[N普通 F快速]
* 可空[]
* 备注[只对跨行交易有效同行都是实时到账]
*/
private String STLCHN ;
/*
* 名称[用途]
* 类型[Z62]
* 取值[]
* ### 可空[]
* 备注[对应对账单中的摘要NARTXT]
*/
private String NUSAGE ;
/*
* 名称[业务摘要]
* 类型[Z200]
* 取值[]
* ### 可空[]
* 备注[用于企业付款时填写说明或者备注]
*/
private String BUSNAR ;
/*
* 名称[收方帐号]
* 类型[N35]
* 取值[]
* 可空[]
* 备注[收款企业的转入帐号该帐号的币种类型必须与币种字段相符]
*/
private String CRTACC ;
/*
* 名称[收方帐户名]
* 类型[Z62]
* 取值[]
* ### 可空[]
* 备注[收款方企业的转入帐号的帐户名称 收方帐户名与收方长户名不能同时为空]
*/
private String CRTNAM ;
/*
* 名称[收方长户名]
* 类型[Z(200)]
* 取值[]
* ### 可空[]
* 备注[收款方企业的转入帐号的帐户名称 收方帐户名与收方长户名不能同时为空]
*/
private String LRVEAN ;
/*
* 名称[收方行号]
* 类型[C(30)]
* 取值[]
* ### 可空[]
* 备注[自动支付收方联行号]
*/
private String BRDNBR ;
/*
* 名称[系统内外标志]
* 类型[]
* 取值[Y招行N非招行]
* 可空[]
* 备注[]
*/
private String BNKFLG ;
/*
* 名称[收方开户行]
* 类型[Z62]
* 取值[]
* ### 可空[]
* 备注[]
*/
private String CRTBNK ;
/*
* 名称[城市代码]
* 类型[C(4)]
* 取值[附录A.18]
* ### 可空[]
* 备注[行内支付填写如果为空跟据收方省份和收方城市自动获取代码]
*/
private String CTYCOD ;
/*
* 名称[收方省份]
* 类型[Z18]
* 取值[附录A.18]
* 可空[]
* 备注[支持省简写如河南河北西藏新疆内蒙古广西宁夏青海]
*/
private String CRTPVC ;
/*
* 名称[收方城市]
* 类型[Z22]
* 取值[附录A.18]
* 可空[]
* 备注[支持市简写如郑州石家庄拉萨呼和浩特南宁银川西宁]
*/
private String CRTCTY ;
/*
* 名称[收方县/]
* 类型[Z22]
* 取值[]
* ### 可空[]
* 备注[收方帐号开户行所在的县或区格式为XX县/可为空宝安区]
*/
private String CRTDTR ;
/*
* 名称[收方电子邮件]
* 类型[C36]
* 取值[]
* ### 可空[]
* 备注[收款方的电子邮件地址用于交易 成功后邮件通知]
*/
private String NTFCH1 ;
/*
* 名称[收方移动电话]
* 类型[C16]
* 取值[]
* ### 可空[]
* 备注[收款方的移动电话用于交易 成功后短信通知]
*/
private String NTFCH2 ;
/*
* 名称[收方编号]
* 类型[C20]
* 取值[]
* ### 可空[]
* 备注[用于标识收款方的编号非受限收方模式下可重复]
*/
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 ;
}

View File

@ -0,0 +1,33 @@
package com.tenwa.sdk.VO;
import lombok.Data;
@Data
public class SDKDcopdPayXVO {
private String YURREF; //业务参考号 C30 用于标识该笔业务的编号企业银行编号+业务类型+业务参考号必须唯一企业可以自定义业务参考号也可使用银行缺省值单笔支付批量支付须由企业提供 直联必须用企业提供
private String EPTDAT; //期望日 D 默认为当前日期
private String EPTTIM; //期望时间 T 默认为000000
private String DBTACC; //付方帐号 N35 企业用于付款的转出帐号该帐号的币种类型必须与币种字段相符
private String DBTBBK; //付方开户地区代码 C2 附录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; //用途 Z62 对应对账单中的摘要NARTXT
private String BUSNAR; //业务摘要 Z200 用于企业付款时填写说明或者备注
private String CRTACC; //收方帐号 N35 收款企业的转入帐号该帐号的币种类型必须与币种字段相符
private String CRTNAM; //收方帐户名 Z62 收款方企业的转入帐号的帐户名称 收方帐户名与收方长户名不能同时为空
private String LRVEAN; //收方长户名 Z(200)
private String BRDNBR; //收方行号 C(30) 人行自动支付收方联行号
private String BNKFLG; //系统内外标志 Y招行N非招行
private String CRTBNK; //收方开户行 Z62 跨行支付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; //收方电子邮件 C36 收款方的电子邮件地址用于交易 成功后邮件通知
private String NTFCH2; //收方移动电话 C16 收款方的移动电话用于交易 成功后短信通知
private String CRTSQN; //收方编号 C20 用于标识收款方的编号非受限收方模式下可重复
private String TRSTYP; //业务种类 C(6) 100001=普通汇兑 101001=慈善捐款 101002 =其他 默认100001
private String RCVCHK; //行内收方账号户名校验 C(1) 1校验 空或者其他值不校验 如果为1行内收方账号与户名不相符则支付经办失败
private String RSV28Z; //保留字段 C(27) 虚拟户支付时前10位填虚拟户编号集团支付不支持虚拟户支付
}

View 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)]
* 取值[2xml格式三]
* 可空[]
* 备注[]
*/
private int DATTYP ;
/*
* 名称[登陆用户名]
* 类型[Z(1,20)]
* 取值[]
* 可空[]
* 备注[前置机模式必填]
*/
private String LGNNAM ;
}

View File

@ -0,0 +1,8 @@
package com.tenwa.sdk.VO;
import lombok.Data;
@Data
public class SDKNtstLinFxVo {
private String REQNBR ;
}

View 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 ;
}

View 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;
}

View 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;
}
}

View 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 ;
}

View 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 ;
}

View 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 ;
}

View 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";
}
}
}

View 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;
}
}

View 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;
}
}
}
}

View 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);
// }
// };
// }
}

View 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;
}
}

View File

@ -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{

View File

@ -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";

View File

@ -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;
}