📄 rateprotocolalterweb.java
字号:
return re;
}
/**
* 判断某服务档案是否允许办理变更业务(对判断条件进行合并)
* @param so_type_id String
* @param serv_type_id String
* @param area_id String
* @param serv_id String
* @param citycode string
* @return String
*/
public String WebCheckSoAlter(String so_type_id, String serv_type_id,
String area_id, String serv_id,
String citycode) {
/*判断某服务档案是否允许办理变更业务(对判断条件进行合并)*/
String info = "";
try {
FormBody fb = BssInter1.callWebCheckSoAlter("00001115",
so_type_id,
serv_type_id,
area_id,
serv_id,
citycode);
String isPass = (String) fb.get("TEMP_STS_WORDS1");
if (isPass.equals("0"))
info = (String) fb.get("ERROR_INFO");
else
info = "1";
} catch (Exception ex) {
FileLogger.getLogger().warn("WebCheckSoAlter出错!", ex);
}
return info;
}
/**
* 调度,判断收费后,再发起调度。
* @param prodOrderId String
* @return String
*/
public String EndFeeAnd(String prodOrderId){
String re = "-1";
TF_BSSFlowRecord tf_BSSFlowRecord = TF_BSSFlowRecord.getBSSFlowRecord(new
DacClient(), Long.parseLong(prodOrderId));
String citycode = tf_BSSFlowRecord.getRecordIDS(BssParameter.CITYCODE);
/*查看资费。是否要打入话费*/
DataTable dt = WebQryApplFee(prodOrderId);
if(dt==null || dt.getRows().getCount()<0)dt=WebDispApplFee(prodOrderId);
String FEE_TYPEiFEE_TYPE_ID ="";
if(dt != null && dt.getRows().getCount()>=1){
try {
//查不到费用信息(或包月),停止操作!
for (int i = 0; i < dt.getRows().getCount(); i++) {
DataRow dr = dt.getRow(i);
//可能有多条信息,则组成串
FEE_TYPEiFEE_TYPE_ID += dr.getString("FEE_TYPEiFEE_TYPE_ID") + "【★】";
}
//判断是否可打入话费。
String outre = "";
String inre = "";
DataTable fee_dt = WebSayFee(FEE_TYPEiFEE_TYPE_ID, citycode);
String DISCT_TYPEiDISCT_TYPE_ID = tf_BSSFlowRecord.getRecordIDS(
BssParameter.DISCTTYPE);
String SOiSO_ID = tf_BSSFlowRecord.getRecordIDS(BssParameter.SOISO_ID);
String SOiSO_SEQ = tf_BSSFlowRecord.getRecordIDS(BssParameter.SOISO_SEQ);
String STAND_FEEiSTAND_FEE_ID = ""; // 标准费用编码SO_CHARGEiSTAND_FEE_ID
String SO_CHARGEiACCT_COLL = ""; // 应收金额
String SO_CHARGEiPAY_METHOD_ID = "R"; //付款方式R 打入话费
for (int i = 0; i < fee_dt.getRows().getCount(); i++) {
DataRow dr = fee_dt.getRow(i);
inre += "0";
outre += dr.getString("SO_DISCT_PROTOCOLiSEQ");
SOiSO_SEQ += SOiSO_SEQ + "【★】";
STAND_FEEiSTAND_FEE_ID += dr.getString("SO_DISCT_PROTOCOLiSEQ") + "【★】";
SO_CHARGEiACCT_COLL += dr.getString("SO_CHARGEiACCT_COLL") + "【★】";
SO_CHARGEiPAY_METHOD_ID += SO_CHARGEiPAY_METHOD_ID + "【★】";
}
//如果全部为0则可以打放话费,下面就是插入费用信息。
if (!"".equals(outre) && inre.equals(outre)) {
//插入费用
DataTable appfee_dt = WebApplFee(DISCT_TYPEiDISCT_TYPE_ID,
SOiSO_ID, SOiSO_SEQ,
STAND_FEEiSTAND_FEE_ID,
SO_CHARGEiACCT_COLL,
SO_CHARGEiPAY_METHOD_ID,
citycode);
if (appfee_dt != null) {
/*当有资费信息时发起调试。*/
String dd = WebDealNewOrd(prodOrderId);
/*如果不成功则撤单*/
if(!"1".equals(dd)){
WebCancelSo( prodOrderId);
return "119";
}else{
/*******************说明调度成功*********************/
return "110";
}
} else {
WebCancelSo(prodOrderId); //不成功,撤单
//说明插入费用不成功
return "111";
}
} else {
WebCancelSo(prodOrderId); //不成功,撤单
//不能打入电话扣费。
return "112";
}
} catch (Exception ex) {
/*有资费信息,但受理失败*/
return re = "00";
}
}else{
/*如果查不到资费信息则直接调度。。*/
try {
String dd = WebDealNewOrd(prodOrderId);
//如果不成功则撤单
if(!"1".equals(dd))WebCancelSo( prodOrderId);
re = dd;
} catch (Exception ex) {
return re = "0";
}
}
return re;
}
/**
* 调用WebQryApplFee 查出费用
* 多行输出参数
SOiSO_NBR 申请单号
SO_CHARGEiSO_CHARGE_ID 申请费用编码
SO_CHARGEiSO_ID 申请流水号
SO_CHARGEiSO_SEQ 申请序号
SO_CHARGEiPROD_SEQ 受理产品序号
PRODiPROD_ID 产品编码
PRODiPROD_NAME 产品名称
STAND_FEEiSTAND_FEE_ID 标准费用编码
STAND_FEEiSTAND_FEE_NAME 标准费用名称
FEE_TYPEiFEE_TYPE_ID 费用类型编码
FEE_TYPEiFEE_TYPE_NAME 费用类型名称
DISCT_TYPEiDISCT_TYPE_ID 优惠类型编码
DISCT_TYPEiDISCT_TYPE_NAME 优惠类型名称
SO_CHARGEiDISCT_COUNT 优惠额度
SO_CHARGEiACCT_COLL 应收金额
SO_CHARGEiACCT_RECE 实收金额
SO_CHARGEiIS_DIVIDED 是否分期
SO_CHARGEiSTATE 状态
SP_STATUSiSTS_WORDS是否分期中文SO_CHARGEiDECREASE_REASON减收原因SO_CHARGEiINVOICE_NBR 发票号
* @return String
*/
public DataTable WebQryApplFee(String prodOrderId){
TF_BSSFlowRecord tf_BSSFlowRecord = TF_BSSFlowRecord.getBSSFlowRecord(new
DacClient(), Long.parseLong(prodOrderId));
//取出优惠类型
String SOiSO_ID = tf_BSSFlowRecord.getRecordIDS(BssParameter.SOISO_ID);
String SOiSO_SEQ = tf_BSSFlowRecord.getRecordIDS(BssParameter.SOISO_SEQ);
String citycode = tf_BSSFlowRecord.getRecordIDS(BssParameter.CITYCODE);
DataTable dt = null;
try {
dt = BssInter7.callWebQryApplFee(SOiSO_ID,SOiSO_SEQ, citycode);
if(dt != null && dt.getRows().getCount()>=1){
tf_BSSFlowRecord.setRecordFrom(dt,
BssParameter.APPLFEE_TABLE);
tf_BSSFlowRecord.save();
}
//APPLFEE_TABLE
} catch (Exception ex) {
dt = null;
FileLogger.getLogger().warn("WebQryApplFee出错!", ex);
}
return dt;
}
/**
* 查出费用,如果无记录则调用WebDispApplFee查出申请的费用
* 多行输出参数
SOiSO_NBR 申请单号 String
SO_CHARGEiSO_ID 申请编码 String
SO_CHARGEiSO_SEQ 申请序号 String
SO_CHARGEiPROD_SEQ 产品序号 String
PRODiPROD_ID 产品编码 String
PRODiPROD_NAME 产品名称 String
STAND_FEEiSTAND_FEE_ID 标准费编码 String
STAND_FEEiSTAND_FEE_NAME 标准费名称 String
FEE_TYPEiFEE_TYPE_ID 费用类型 String
FEE_TYPEiFEE_TYPE_NAME 费用类型名称 String
DISCT_TYPEiDISCT_TYPE_ID 优惠类型编码 String
DISCT_TYPEiDISCT_TYPE_NAME 优惠类型名称 String
DISCT_FEE_ITEMiDISCT_COUNT 优惠额度 String
SO_CHARGEiACCT_COLL 应收金额 String
SO_CHARGEiACCT_RECE 实收金额 String
* @return String
*/
public DataTable WebDispApplFee(String prodOrderId) {
TF_BSSFlowRecord tf_BSSFlowRecord = TF_BSSFlowRecord.getBSSFlowRecord(new
DacClient(), Long.parseLong(prodOrderId));
//取出优惠类型
String DISCT_TYPEiDISCT_TYPE_ID = tf_BSSFlowRecord.getRecordIDS(BssParameter.DISCTTYPE);
String SOiSO_ID = tf_BSSFlowRecord.getRecordIDS(BssParameter.SOISO_ID);
String SOiSO_SEQ = tf_BSSFlowRecord.getRecordIDS(BssParameter.SOISO_SEQ);
String citycode = tf_BSSFlowRecord.getRecordIDS(BssParameter.CITYCODE);
DataTable dt = null;
try {
dt = BssInter1.callWebDispApplFee(DISCT_TYPEiDISCT_TYPE_ID,
SOiSO_ID,
SOiSO_SEQ,
citycode);
if(dt != null && dt.getRows().getCount()>=1){
tf_BSSFlowRecord.setRecordFrom(dt,
BssParameter.APPLFEE_TABLE);
tf_BSSFlowRecord.save();
}
} catch (Exception ex) {
dt = null;
FileLogger.getLogger().warn("WebDispApplFee出错!", ex);
}
return dt;
}
/**
* 如果费用类别不允许打入话费WebSayFee,则不能进行继续办理
*
* 必须输入参数组(可多条)
FEE_TYPEiFEE_TYPE_ID 费用类型编码
*
* 多行输出参数
SO_DISCT_PROTOCOLiSEQ 0:允许 1:不能允许
* @return String
*/
public DataTable WebSayFee(String FEE_TYPEiFEE_TYPE_ID, String citycode) {
DataTable dt = null;
try {
dt = BssInter1.callWebSayFee(FEE_TYPEiFEE_TYPE_ID,
citycode);
} catch (Exception ex) {
FileLogger.getLogger().warn("WebSayFee出错!", ex);
}
return dt;
}
/**
* 调用WebApplFee插入费用信息
* 必须输入参数组
DISCT_TYPEiDISCT_TYPE_ID 优惠类型
SOiSO_ID 申请流水号
(以下记录可传入多条)
SOiSO_SEQ 申请序号
SO_CHARGEiSTAND_FEE_ID 标准费编码(与实收金额一一对应)
SO_CHARGEiACCT_COLL 实收金额(与标准费编码一一对应)
SO_CHARGEiPAY_METHOD_ID 付款方式编码(打入话费:R)
多行输出参数
SO_CHARGEiSO_CHARGE_ID 申请费用编码
SO_CHARGEiSO_ID 申请流水号
SO_CHARGEiSO_SEQ 申请序号
SO_CHARGEiPROD_SEQ 产品序号
SO_CHARGEiSTAND_FEE_ID 标准费编码
* @return String
*/
public DataTable WebApplFee(String DISCT_TYPEiDISCT_TYPE_ID,
String SOiSO_ID, String SOiSO_SEQ,
String SO_CHARGEiSTAND_FEE_ID,
String SO_CHARGEiACCT_COLL,
String SO_CHARGEiPAY_METHOD_ID,
String citycode) {
DataTable dt = null;
try {
dt = BssInter1.callWebApplFee(DISCT_TYPEiDISCT_TYPE_ID,
SOiSO_ID, SOiSO_SEQ,
SO_CHARGEiSTAND_FEE_ID,
SO_CHARGEiACCT_COLL,
SO_CHARGEiPAY_METHOD_ID,
citycode);
} catch (Exception ex) {
FileLogger.getLogger().warn("WebApplFee出错!", ex);
}
return dt;
}
/**
* 最后WebDealNewOrd发起调度
* 必须输入参数组
SOiSO_ID 申请流水号 String 必填
SOiSO_SEQ 申请序列号 String 必填
SOiSO_NBR 申请单号 String 必填
SOiAPPL_DATE 申请日期 String 必填
SOiAREA_ID 申请地区 String 必填
SOiSO_TYPE_ID 申请类型 String 必填
SOiSERV_TYPE_ID 服务类型 String 必填
*/
public String WebDealNewOrd(String prodOrderId) {
TF_BSSFlowRecord tf_BSSFlowRecord = TF_BSSFlowRecord.getBSSFlowRecord(new
DacClient(), Long.parseLong(prodOrderId));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -