package com.xkj.centerprocessor.controlcore;
import ibs_query_pkg.Ibs_querySoapBindingStub;
import java.rmi.RemoteException;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import com.xkj.centerprocessor.core.MessageObject;
import com.xkj.centerprocessor.core.PooledConnectionHandler;
import com.xkj.centerprocessor.frame.MainFrame;
import com.xkj.centerprocessor.tools.DateTime;
import com.xkj.centerprocessor.tools.ParseXml;
public class IbsQueryService {
private static Log log = LogFactory.getLog(PhoneCardService.class);
public long getServID(String areaCode, String AccNbr, int mdseType,
int queryType/* 这里默认为1.按计费号码 */) throws RemoteException {
/*
* 先找到输入号码的SERV_ID。调用IBS“综合查询”
* WebSerivce接口ibs_query?wsdl,除了QUERY_TYPE填写为1,其他入参一一对应;使用getNbr_Info_XML方法取得号码信息类(Nbr_Info);然后根据MDSE_TYPE不同,
* <1>、MDSE_TYPE为1,固话,先根据号码信息类的AREA_CODE、ACC_NBR来找,若只有一条记录,就取它的SERV_ID;若有多条记录,则看PROD_SPEC_ID为594000276的那一条;若仍有多条记录,按异常处理,并且写异常号码日志;
* <2>、MDSE_TYPE为2,小灵通,先根据号码信息类的AREA_CODE、ACC_NBR来找,若只有一条记录,就取它的SERV_ID;若有多条记录,则看PROD_SPEC_ID为594000248的那一条;若仍有多条记录,按异常处理,并且写异常号码日志;
* <3>、MDSE_TYPE为3,其他,先根据号码信息类的AREA_CODE、ACC_NBR来找,若只有一条记录,就取它的SERV_ID;若有多条记录,按异常处理,并且写异常号码日志;
* <4>、以上,如果查无记录,按异常处理,并且写异常号码日志;
*/
/*
* 局方接口:getNbr_Info_XML 入参: AREA_CODE 区号 STRING 区号,格式"0592" ACC_NBR 业务号码
* STRING 业务号码,纯数字号码,不含任何前后缀,如"88389783" MDSE_TYPE 产品类型 INT 1、固话 2、小灵通
* 3、其他 BILLING_CYCLE_START 起始帐期 STRING 格式"200801" BILLING_CYCLE_END
* 终止帐期 STRING 格式"200803" QUERY_TYPE 查询方式 INT 1、按计费号码 2、按费用号码(目前只支持公话吧)
* 3、按帐户 出参: SERV_ID 产品标识 LONG 每个产品对应的唯一标识 AREA_CODE 区号 STRING
* 产品所属地区,如"0592" ACC_NBR 业务号码 STRING 产品号码,不含任何前后缀 CUST_NAME 客户名称 STRING
* 该产品所属产权客户的名称 PROD_SPEC_ID 产品规格标识 LONG PROD_SPEC_NAME 产品规格名称 STRING
* SN_TAG_ID 超无分合帐标识 INT 数字返回:-1 = 找不到对应帐户、1 = 不是超级无绳、2 = 超无分帐、3 = 超无合帐
* 四种 SN_TAG_NAME 超无分合帐名称 STRING 中文返回:不是超级无绳、超无分帐、超无合帐 三种 MAIN_GROUP_ID
* 客户战略分群标识 INT 数字返回:1= 政企客户、2 = 个人客户、 3 = 家庭客户 三种 MAIN_GROUP_NAME
* 客户战略分群名称 STRING 中文返回:政企客户、个人客户及家庭客户 三种 PAY_TYPE_ID 付费类型标识 INT 数字返回:1 =
* 预付费、2 = 后付费两种 PAY_TYPE_NAME 付费类型名称 STRING 中文返回:预付费和后付费两种 <?xml
* version="1.0" encoding="GB2312"?><output><nbr_info><Serv_ID>2003403764</Serv_ID>
* <Area_Code>0592</Area_Code><Acc_Nbr>5031341</Acc_Nbr><Cust_Name>许建立</Cust_Name><Prod_Spec_ID>594000276</Prod_Spec_ID><Prod_Spec_Name>
* 普通电话</Prod_Spec_Name><Sn_Tag_ID>2</Sn_Tag_ID><Sn_Tag_Name>超无分帐</Sn_Tag_Name><Main_Group_ID>0</Main_Group_ID><Main_Group_Name>其他
* </Main_Group_Name><Pay_Type_ID>2</Pay_Type_ID><Pay_Type_Name>后付费</Pay_Type_Name></nbr_info><nbr_info>
* <Serv_ID>2003408701</Serv_ID><Area_Code>0592</Area_Code><Acc_Nbr>A240376</Acc_Nbr><Cust_Name>许建立
* </Cust_Name><Prod_Spec_ID>594000255</Prod_Spec_ID><Prod_Spec_Name>ADSL电话增装(动态IP)</Prod_Spec_Name><Sn_Tag_ID>1</Sn_Tag_ID><Sn_Tag_Name>不是超级无绳
* </Sn_Tag_Name><Main_Group_ID>0</Main_Group_ID><Main_Group_Name>其他</Main_Group_Name><Pay_Type_ID>2</Pay_Type_ID><Pay_Type_Name>后付费
* </Pay_Type_Name></nbr_info><nbr_info><Serv_ID>2005320500</Serv_ID><Area_Code>0592</Area_Code><Acc_Nbr>5031341</Acc_Nbr><Cust_Name>许建立
* </Cust_Name><Prod_Spec_ID>594000248</Prod_Spec_ID><Prod_Spec_Name>小灵通</Prod_Spec_Name><Sn_Tag_ID>2</Sn_Tag_ID><Sn_Tag_Name>超无分帐
* </Sn_Tag_Name><Main_Group_ID>0</Main_Group_ID><Main_Group_Name>其他</Main_Group_Name><Pay_Type_ID>2</Pay_Type_ID><Pay_Type_Name>后付费
* </Pay_Type_Name></nbr_info><nbr_info><Serv_ID>2007134860</Serv_ID><Area_Code>0592</Area_Code><Acc_Nbr>5920820095713</Acc_Nbr><Cust_Name>许建立-群客户
* </Cust_Name><Prod_Spec_ID>594001183</Prod_Spec_ID><Prod_Spec_Name>VPN群产品</Prod_Spec_Name><Sn_Tag_ID>1</Sn_Tag_ID><Sn_Tag_Name>不是超级无绳
* </Sn_Tag_Name><Main_Group_ID>0</Main_Group_ID><Main_Group_Name>其他</Main_Group_Name><Pay_Type_ID>1</Pay_Type_ID><Pay_Type_Name>预付费
* </Pay_Type_Name></nbr_info></output>
*/
boolean haveExcpetion = false;
String out = null;
String logstr = null;
ParseXml xml = new ParseXml();
Document doc = null;
ibs_query_pkg.Input in = new ibs_query_pkg.Input();
in.setArea_Code(areaCode);
in.setAcc_Nbr(AccNbr);
in.setMdse_Type(mdseType);
// 这里帐期任意填写
in.setBilling_Cycle_Start("200801");
in.setBilling_Cycle_End("200806");
in.setQuery_Type(queryType);
logstr = "输入:areaCode=[" + areaCode + "],AccNbr=[" + AccNbr
+ "],mdseType=[" + mdseType + "]" + "],queryType=[" + queryType
+ "]";
log.info(logstr);
try {
out = PooledConnectionHandler.getIbs_querySoapBindingStub()
.getNbr_Info_XML(in);
} catch (ibs_query_pkg.IBSException e) {
haveExcpetion = true;
MainFrame.getInstance().displayText(e.getErr_Code() + e.getErr_Msg());
logstr = "调用ibs_query_pkg.getNbr_Info_XML结果:异常,Err_Code="
+ e.getErr_Code() + ",Err_Msg=" + e.getErr_Msg();
log.error(logstr);
return -1;
}
if (!haveExcpetion) {
logstr = "调用ibs_query_pkg.getNbr_Info_XML结果:无异常" + out;
log.info(logstr);
doc = xml.parseText(out);
Element e = doc.getRootElement();
if (e.nodeCount() == 0) {
// 无记录,此时XML格式为:<?xml version="1.0"
// encoding="GB2312"?><output></output>
return -1; // 记录异常日志
} else {
List list = doc.selectNodes("//output/nbr_info");
String servId = null;
if (list.size() == 1) {// 如果Serv_ID仅有一条记录,就直接取出来返回;
Node n = (Node) list.get(0);
if (n.getNodeTypeName().equals("Element")) {
Element e1 = (Element) n;
servId = e1.elementTextTrim("Serv_ID");
if ((servId != null) && (servId.length() > 0))
return Long.parseLong(servId);
else
return -1; // 记录异常日志
}
} else {// 如果Serv_ID有多条记录
for (int i = 0; i < list.size(); i++) {
Node n = (Node) list.get(i);
if (n.getNodeTypeName().equals("Element")) {
Element e1 = (Element) n;
switch (mdseType) {
case 1:// 固话
{
if (e1.elementTextTrim("Prod_Spec_ID").equals(
"594000276"))
servId = e1.elementTextTrim("Serv_ID");
if ((servId != null) && (servId.length() > 0))
return Long.parseLong(servId);
else
return -1; // 记录异常日志
}
case 2:// 小灵通
{
if (e1.elementTextTrim("Prod_Spec_ID").equals(
"594000248"))
servId = e1.elementTextTrim("Serv_ID");
if ((servId != null) && (servId.length() > 0))
return Long.parseLong(servId);
else
return -1; // 记录异常日志
}
case 3:// 其它
return -1;
default:
break;
}
}
}
}
}
}
return -1;
}
/*
* #define XKJ_Recent_Account_type 2 本方接口: XKJ_Recent_Account_type 局方接口:
* 使用getBalance_Detail_XML方法获得余额明细类(Balance_Detail)、使用getBalance_Sour
没有合适的资源?快使用搜索试试~ 我知道了~
最近开发的一个 java socket项目
共118个文件
java:96个
jar:12个
scc:4个
需积分: 50 16 下载量 30 浏览量
2019-03-01
16:48:08
上传
评论 2
收藏 2.97MB RAR 举报
温馨提示
dianxin 10001中间接口!! 博文链接:https://zhouyq.iteye.com/blog/240939
资源推荐
资源详情
资源评论
收起资源包目录
最近开发的一个 java socket项目 (118个子文件)
新科技接口转换协议.doc 453KB
厦门10001号调用VIP系统积分兑换话费接口规范 v1.0.3.doc 64KB
webservice协议.doc 20KB
config.ini 187B
axis.jar 1.53MB
log4j-1.2.8.jar 344KB
dom4j-1.6.1.jar 307KB
commons-httpclient-3.0.1.jar 273KB
jaxen-1.1-beta-6.jar 239KB
wsdl4j-1.5.1.jar 124KB
commons-discovery-0.2.jar 70KB
commons-codec-1.3.jar 46KB
commons-logging-1.0.4.jar 37KB
axis-ant.jar 32KB
jaxrpc.jar 30KB
saaj.jar 19KB
IbsQueryService.java 114KB
Ibs_querySoapBindingStub.java 88KB
DateTime.java 42KB
Charge_info.java 35KB
Output_query.java 22KB
Sale_cardSoapBindingStub.java 16KB
Nbr_info.java 16KB
Manual_payoutSoapBindingStub.java 15KB
Local_resource.java 15KB
Bill_list.java 14KB
Balance_source.java 14KB
Ratable_resourceSoapBindingStub.java 13KB
Balance_detail.java 13KB
PooledConnectionHandler.java 12KB
Balance_payout.java 12KB
Input.java 11KB
YKTServerQuery.java 10KB
Phone_cardSoapBindingStub.java 10KB
Input.java 10KB
Output.java 9KB
Balance_info.java 9KB
Input.java 9KB
Serv_activeSoapBindingStub.java 9KB
Output.java 9KB
Real_charge.java 9KB
Real_owe.java 8KB
Input_query.java 8KB
Acct_info.java 8KB
Output.java 8KB
CustPricsQuery.java 7KB
Output.java 6KB
IntegralChangeChargeLocator.java 6KB
MultiWebServiceServer.java 6KB
Stop_reason.java 6KB
CustPricsQueryOutsideServiceLocator.java 6KB
IntegralChangeChargeHttpBindingStub.java 6KB
Input.java 5KB
Input.java 5KB
Ratable_resourceServiceLocator.java 5KB
CustPricsQueryOutsideSoapBindingStub.java 5KB
SaleCard.java 5KB
Manual_payoutServiceLocator.java 5KB
Serv_activeServiceLocator.java 5KB
Phone_cardServiceLocator.java 5KB
PrimitiveTypeManager.java 5KB
Ibs_queryServiceLocator.java 5KB
Sale_cardServiceLocator.java 5KB
Connection.java 5KB
IBSException.java 5KB
IBSException.java 5KB
IBSException.java 5KB
IBSException.java 5KB
IBSException.java 5KB
IBSException.java 5KB
Input.java 5KB
ParseXml.java 4KB
ChangeChargeScore.java 4KB
UrgeOwnUtil.java 4KB
PhoneCardService.java 4KB
Ibs_query.java 4KB
Test.java 4KB
UrgeOwnQuery.java 3KB
MainFrame.java 3KB
servActiveService.java 3KB
MultiThreadServer.java 3KB
MessageObject.java 2KB
SendMessageByClient.java 2KB
SystemConfig.java 2KB
MultiThreadClient.java 2KB
FileObjectOutputStream.java 2KB
Client2.java 2KB
ReadObject.java 1KB
Logger.java 1KB
Server.java 1KB
Server2.java 1KB
Client.java 1KB
FileObjectOutputStream222.java 1KB
Constants.java 1KB
CurrentTime.java 855B
IntegralChangeCharge.java 768B
WriteObject.java 731B
CustPricsQueryOutsideService.java 659B
Sale_card.java 654B
Ratable_resourceService.java 585B
共 118 条
- 1
- 2
资源评论
weixin_38669628
- 粉丝: 383
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功