commitfactory.java
来自「电信的网厅的整站代码」· Java 代码 · 共 480 行
JAVA
480 行
package com.doone.fj1w.fjmgr.order.newphone;
import java.io.IOException;
import java.text.DateFormat;
import java.util.Hashtable;
//import java.util.Iterator;
//import java.util.Map;
import com.doone.iossp.FormBody;
import com.doone.data.DataTable;
import com.doone.util.FileLogger;
import com.doone.fj1w.fjmgr.order.*;
import com.doone.fj1w.fj1w.order.Tf_ProdOrder;
import com.doone.fj1w.fjmgr.order.Bss_infoEntity.*;
/**
* <strong> 最后的流程提次 </strong>
*
* @author forest
*
*/
public class CommitFactory {
private FileLogger _logger = new FileLogger();
// 客户档案
private BssReferCustBean _brC = null;
// 工作流程引晴
private FlowsEngie _flowEngie = null;
// 工单构造器
private Hashtable _ht = null;
// 返回工单结果
private String[] _result = null;
// 服务性质码
private String SO_BUSINESSiPROD_ID = "";
public CommitFactory(BssReferCustBean _brC,FlowsEngie _flowEngie){
this._brC = _brC;
this._flowEngie = _flowEngie;
initFlows();
}
/**
* <code>
* 主要工作流程
* </code>
*
*/
private void initFlows(){
try{
// 获取申请流水号
String[] _orderNbr = null;
try{
_orderNbr = this._flowEngie.getRecordIDS(ExtraBssParameter.NP_ORDERNBR_PT).split("#-#");
}catch(RuntimeException rtx){
throw rtx;
}
this._brC.setSOISO_ID(_orderNbr[0]);
this._brC.setSOiSO_NBR(_orderNbr[1]);
// 提取格式
this._ht = getNewPhoneMF();
// 生成工单
constractOrder();
// 提交工单
FormBody _fb = BssInter7.callWebReferSo(_ht,_brC.getCITYCODE());
_result = new String[4];
_result[0] = _fb.getString("SOiSO_ID");// 申请流水号
_result[1] = _fb.getString("SOiSO_SEQ");// 申请序列号
_result[2] = _fb.getString("SOiSO_NBR");// 申请单号
_result[3] = _fb.getString("SOiAPPL_DATE");// 申请日期
}catch(IOException iox){
_logger.warn(iox.getMessage(),iox);
throw new RuntimeException(iox.getMessage());
}
catch(RuntimeException rux){
_logger.warn(rux.getMessage(),rux);
throw new RuntimeException(rux.getMessage());
}
}
/**
* <code>
* 返回工单处理结果
* </code>
*
* @return
*/
public String[] getResult(){
return this._result;
}
/**
* <code>构造一张工单</code>
*
* @param _po
* @param _ht
* @throws RuntimeException
*
* @see DateFormat#format(java.util.Date)
* @see Tf_ProdOrder#
* @see Hashtable#put(java.lang.Object, java.lang.Object)
* @see PublicMessBean
* @see PaymentMeasureBean
* @see ServicePropertyBean
* @see RemoteControlBean
* @see BssAddressBean
*/
private void constractOrder() throws RuntimeException {
DateFormat formatter = DateFormat.getDateTimeInstance();
Tf_ProdOrder _po = _flowEngie.getTf_prodOrder();
// 提交申请信息流水号
_ht.put("SOiSO_ID",this._brC.getSOISO_ID());
_ht.put("SOiSO_NBR",this._brC.getSOiSO_NBR());
// 客户档案信息
getCustMess(_po, formatter);
// 预占的号码
getSelectNbr();
// 取共公信息中的处理级别等
getPublicMess();
// 付费信息
getChargeMess();
// 选择service类型信息
getServiceMess();
// 程控信息
getRemoteMess();
// 地址接入信息
getAddressMess();
// 接入终端设备信息
getTermiProdMess();
// 提交申请产品(可多条)–服务性质–程控信息-终端设备也要往此处填 A X R
getProdiMess();
// Iterator _iterator = _ht.entrySet().iterator();
// while(_iterator.hasNext()){
// Map.Entry _entry = (Map.Entry)_iterator.next();
// System.out.println(_entry.getKey()+" = "+_entry.getValue());
// }
//
// System.out.println("----------------------------");
}
/**
* <code>
* 提交申请产品(可多条)–服务性质–程控信息-终端设备也要往此处填 A X R
* </code>
*
* @throws RuntimeException
*/
private void getProdiMess()throws RuntimeException{
/** 默认为服务性质编码 */
String SO_PRODiPROD_ID = this.getSO_BUSINESSiPROD_ID();
String SO_PRODiPROD_NUM = "1";// 固话默认为1
String SO_PRODiACTION_TYPE = "1";// 固话默认为1
if(_ht.get("SO_NWKiPROD_ID") != null ){
/** 程控信息 */
SO_PRODiPROD_ID += "【★】" + ((String)_ht.get("SO_NWKiPROD_ID")).trim();
SO_PRODiPROD_NUM += "【★】" + ((String)_ht.get("SO_NWKiPROD_NUM")).trim();
SO_PRODiACTION_TYPE += "【★】"+((String)_ht.get("SO_NWKiACTION_TYPE")).trim();
}
_ht.put("SO_PRODiPROD_ID",SO_PRODiPROD_ID);
_ht.put("SO_PRODiPROD_NUM",SO_PRODiPROD_NUM);
_ht.put("SO_PRODiACTION_TYPE",SO_PRODiACTION_TYPE);
}
/**
* <code>客户base信息</code>
*
* @param _po
* @param formatter
*/
private void getCustMess(Tf_ProdOrder _po, DateFormat formatter) {
// 客户base信息
_ht.put("SOiAREA_ID",this._brC.getCUSTiAREA_ID());
_ht.put("SOiSERV_AREA_ID",this._brC.getCUSTiAREA_ID());
_ht.put("SOiCUST_ID",this._brC.getCUSTiCUST_ID());
_ht.put("SOiSUBS_CODE","");// this._brC.getCUSTiCUST_CODE()
_ht.put("SOiACCEPT_DATE",formatter.format(_po.getAccepttime()));
_ht.put("CORR_INFOiCONTACT_TYPE",_brC.getCORP_CONTACTiCONTACT_TYPE());
_ht.put("CORR_INFOiCONTACT_NAME",_brC.getCORP_CONTACTiNAME());
_ht.put("CORR_INFOiCONTACT_TEL",_brC.getCORP_CONTACTiCONTACT_TEL());
_ht.put("CORR_INFOiCERT_TYPE",_brC.getCUSTiCERT_TYPE());
_ht.put("CORR_INFOiCERT_NBR",_brC.getCUSTiCERT_NBR());
}
/**
* <code>
* 预占的号码
* <code>
* @throws RuntimeException
*/
private void getSelectNbr()throws RuntimeException{
if(_flowEngie.getRecordFrom(ExtraBssParameter.NP_ABOUTTELE_TBL) != null){
SelectNbrBean _selctNbr = new SelectNbrBean();
_selctNbr.parseDataTable(_flowEngie.getRecordFrom(ExtraBssParameter.NP_ABOUTTELE_TBL));
_ht.put("SO_ACC_NBRiACC_NBR",_selctNbr.getSERV_NBRiSERV_NBR_NAME());//
}
}
/**
* <code>
* 接入终端设备信息
* </code>
*/
private void getTermiProdMess() {
if(false && _flowEngie.getRecordFrom(BssParameter.SELECT_DEVICE_TABLE)!= null){
LinkTerminalBean _linkTermi = new LinkTerminalBean();
_linkTermi.parseDataTable(_flowEngie.getRecordFrom(ExtraBssParameter.SELECT_DEVICE_TABLE));
_ht.put("SO_ACC_TERMiPROD_ID",_linkTermi.getSERV_ACC_TERMiPROD_ID());
_ht.put("SO_ACC_TERMiTERM_TYPE","");
_ht.put("SO_ACC_TERMiPROPERTY",_linkTermi.getSERV_ACC_TERMiPROPERTY());
_ht.put("SO_ACC_TERMiMTN_GRADE",_linkTermi.getSERV_ACC_TERMiMTN_GRADE());
_ht.put("SO_ACC_TERMiPROD_COUNT",_linkTermi.getSERV_ACC_TERMiPROD_COUNT());
_ht.put("SO_ACC_TERMiAPPL_DATE","");
_ht.put("SO_ACC_TERMiMATURE_DATE","");
_ht.put("SO_ACC_TERMiPROTOCOL_ID",_linkTermi.getSERV_ACC_TERMiPROTOCOL_ID());
_ht.put("SO_ACC_TERMiSERIAL_NBR","");
_ht.put("SO_ACC_TERMiMODEL_NO","");
_ht.put("SO_ACC_TERMiINSTALL",_linkTermi.getSERV_ACC_TERMiINSTALL());
_ht.put("SO_ACC_TERMiIS_CERTIF_CHECK","");
_ht.put("SO_ACC_TERMiCERTIFICATION","");
_ht.put("SO_ACC_TERMiMAX_SPEED","");
_ht.put("SO_ACC_TERMiEQPT_IP","");
_ht.put("SO_ACC_TERMiACTION_TYPE","A");
}
}
/**
* <code>
* 地址接入信息
* </code>
*
* @throws RuntimeException
*/
private void getAddressMess() throws RuntimeException {
if(this._flowEngie.getRecordFrom(ExtraBssParameter.NP_AddRESS_TBL) != null){
BssAddressBean _bab = new BssAddressBean();
_bab.parseDataTable(_flowEngie.getRecordFrom(ExtraBssParameter.NP_AddRESS_TBL));
_ht.put("SO_ACCESSiACCESS_ID",_bab.getSO_ACCESSiACCESS_ID());
_ht.put("SO_ACCESSiACC_NODE_ID",_bab.getSO_ACCESSiACC_NODE_ID());
_ht.put("SO_ACCESSiEXCH_ID",_bab.getSO_ACCESSiEXCH_ID());
_ht.put("SO_ACCESSiADDR_ID",_bab.getSO_ACCESSiADDR_ID());
_ht.put("SO_ACCESSiREF_TEL_NBR",_bab.getSO_ACCESSiREF_TEL_NBR());
_ht.put("SO_ACCESSiREF_ADDR_ID","");// _bab.getSO_ACCESSiREF_ADDR_ID()
_ht.put("SO_ACCESSiACTION_TYPE",_bab.getSO_ACCESSiACTION_TYPE());
_ht.put("SO_ACC_NBRiEXCH_ID",_bab.getSO_ACCESSiEXCH_ID());
// 局向必传编码
_ht.put("SO_ACC_NBRiEXCH_ID",_bab.getSO_ACCESSiEXCH_ID());
}
}
/**
* <code>
* 程控信息
* </code>
*
* @throws RuntimeException
*/
private void getRemoteMess()throws RuntimeException {
if(this._flowEngie.getRecordIDS(ExtraBssParameter.NP_REMOTE_LENGTH_PT) != null){
int length = 0;
try{
length = Integer.parseInt((String)
_flowEngie.getRecordIDS(ExtraBssParameter.NP_REMOTE_LENGTH_PT));
}catch(Exception ex){
length = 0;
}
String ACC_NBR = "";
String PROD_NUM = "";
String PROD_ID = "";
String PROD_PWD = "";
String ACTION_TYPE = "";
for(int i= 0; i < length ; i++ ){
// 获取一条列表数据
if(_flowEngie.getRecordFrom(ExtraBssParameter.NP_REMOTE_TBL+i)!= null){
RemoteControlBean _rcBean = new RemoteControlBean();
try{
_rcBean.parseDataTable(_flowEngie.getRecordFrom(ExtraBssParameter.NP_REMOTE_TBL+i));
}catch(Exception ex){
continue;
}
ACC_NBR += _rcBean.getSO_NWKiACC_NBR() + "【★】";
PROD_NUM += _rcBean.getSO_NWKiPROD_NUM() + "【★】";
PROD_ID += _rcBean.getSO_NWKiPROD_ID() + "【★】";
PROD_PWD += _rcBean.getSO_NWKiPROD_PWD() + "【★】";
ACTION_TYPE += _rcBean.getSO_NWKiACTION_TYPE() + "【★】";
}
}
_ht.put("SO_NWKiACC_NBR",ACC_NBR);
_ht.put("SO_NWKiPROD_NUM",PROD_NUM);
_ht.put("SO_NWKiPROD_ID",PROD_ID);
_ht.put("SO_NWKiPROD_PWD",PROD_PWD);
_ht.put("SO_NWKiACTION_TYPE",ACTION_TYPE);
}
}
/**
* <code>
* 选择service类型信息
* </code>
*
* @throws RuntimeException
*/
private void getServiceMess() throws RuntimeException {
if(this._flowEngie.getRecordFrom(ExtraBssParameter.NP_SERVICE_TBL) != null){
ServicePropertyBean _serviPB = new ServicePropertyBean();
_serviPB.parseDataTable(_flowEngie.getRecordFrom(ExtraBssParameter.NP_SERVICE_TBL));
this.setSO_BUSINESSiPROD_ID(_serviPB.getSO_BUSINESSiPROD_ID());
_ht.put("SO_BUSINESSiSECRE_GRADE_ID",_serviPB.getSO_BUSINESSiSECRE_GRADE_ID());
_ht.put("SO_BUSINESSiLIMIT_DATE",_serviPB.getSO_BUSINESSiLIMIT_DATE());
_ht.put("SO_BUSINESSiBESP_DATE",_serviPB.getSO_BUSINESSiBESP_DATE());
_ht.put("SO_BUSINESSiPROD_ID",this.getSO_BUSINESSiPROD_ID());
_ht.put("CORP_CUSTiCUST_ID",_serviPB.getCORP_CUSTiCUST_ID());
_ht.put("SO_BUSINESSiACTION_TYPE",_serviPB.getSO_BUSINESSiACTION_TYPE());
// 主产品(服务性质编码)
_ht.put("PROD_RELAiPROD_ID",this.getSO_BUSINESSiPROD_ID());
_ht.put("PROD_RELAiPROD_ID2",this.getSO_BUSINESSiPROD_ID());
}
}
/**
* <code>
* 付费信息
* </code>
*
* @throws RuntimeException
*/
private void getChargeMess() throws RuntimeException {
if(this._flowEngie.getRecordFrom(ExtraBssParameter.NP_SOLVE_TBL) != null){
PaymentMeasureBean _payMentM = new PaymentMeasureBean();
_payMentM.parseDataTable(_flowEngie.getRecordFrom(ExtraBssParameter.NP_SOLVE_TBL));
_ht.put("SO_SERV_ACCTiACCT_ITEM_TYPE_ID",_payMentM.getSO_SERV_ACCTiACCT_ITEM_TYPE_ID());
_ht.put("SO_SERV_ACCTiACCT_ID",_payMentM.getSO_SERV_ACCTiACCT_ID());
_ht.put("SO_SERV_ACCTiBILLING_TYPE_ID",_payMentM.getSO_SERV_ACCTiBILLING_TYPE_ID());
_ht.put("SERV_ACCTiPAY_RATING",_payMentM.getSERV_ACCTiPAY_RATING());
_ht.put("SO_SERV_ACCTiACTION_TYPE",_payMentM.getSO_SERV_ACCTiACTION_TYPE());
_ht.put("SERV_NBRiAREA_ID",(String)_ht.get("SOiSERV_AREA_ID"));
}
}
/**
* <code>
* 取共公信息中的处理级别等
* </code>
*
* @throws RuntimeException
*/
private void getPublicMess() throws RuntimeException {
if(this._flowEngie.getRecordFrom(ExtraBssParameter.NP_PUBLIER_TBL) != null){
PublicMessBean _pmb = new PublicMessBean();
_pmb.parseDataTable(_flowEngie.getRecordFrom(ExtraBssParameter.NP_PUBLIER_TBL));
_ht.put("SOiPRIORITY",_pmb.getPRIORITY());// 处理级别
_ht.put("SO_ACC_NBRiMAINTAIN_LEVEL",_pmb.getMAINTAIN_LEVEL());// 维护级别
_ht.put("SO_ACC_NBRiINSTALL_LEVEL",_pmb.getINSTALL_LEVEL());// 安装级别
}
}
/**
* <code> 取申请流水号</code>
*
* @throws RuntimeException
*/
public static String[] getOrderNbr(String area_id,String citycode)throws RuntimeException{
try{
DataTable _dt = BssInter6.callWebGetSoIDNbr(area_id,citycode);
if(_dt == null) throw new NullPointerException("取申请流水号失败。");
String SOISO_ID = _dt.getRow(0).getString("SOISO_ID");
String SOiSO_NBR = _dt.getRow(0).getString("SOiSO_NBR");
return new String[]{SOISO_ID,SOiSO_NBR};
}catch(IOException iox){
throw new RuntimeException(iox.getMessage());
}
}
/**
* <code>
* 取一个固话新装默认的格式
* </code>
*
* @return
*/
private static Hashtable getNewPhoneMF(){
Hashtable _ht = new Hashtable();
// --新装
_ht.put("SOiSO_TYPE_ID","1");
_ht.put("SOiSERV_TYPE_ID","1");
// --优惠类型 装机免材料费优惠[也含普通]
_ht.put("SOiDISCT_TYPE_ID","QE000450");
// --发展员工ID
_ht.put("SOiSTAFF_ID","");
// --处理级别—普通 加急 特急
_ht.put("SOiPRIORITY","");
// --受理来源--
_ht.put("SOiACCEPT_TYPE","");
_ht.put("SOiACCEPT_DATE","");
_ht.put("SOiSTATE","N");
_ht.put("SOiSERV_SO_NBR","");
_ht.put("SOiSERV_SO_SEQ","");
_ht.put("SOiSERV_SO_ID","");
// --用户唯一识别码,新装宽带和程控变更时需要填写
_ht.put("SOiSERV_ID","");
_ht.put("SOiANN_ACT_TYPE","C");
_ht.put("FLAG1","");
_ht.put("STAFF_ID","QZ02900");
_ht.put("SOiPRI_SERV_ID","");
// --查询空闲号 预占先查询业务号段(前台选号)?
_ht.put("SO_ACC_NBRiNBR_SEQ","1");
_ht.put("SO_ACC_NBRiSEQ","1");
_ht.put("SO_ACC_NBRiACC_NBR","");
// --前台选号
_ht.put("SO_ACC_NBRiIS_CHOSEN","Y");
_ht.put("SO_ACC_NBRiACC_NBR_AB","");
// --114是否保密
_ht.put("SO_ACC_NBRiIS_SECRET","Y");
_ht.put("SERV_ACCESSiACCESS_ID","");
_ht.put("SO_ACC_NBRiACTION_TYPE","A");
_ht.put("TEMP_STS_WORDS2","");
_ht.put("SERV_NBRiSERV_NBR_ID","");
// //--提交协议信息
// _ht.put("SO_PROTOCOL_INFOiPROTOCOL_ID","");
// _ht.put("SO_PROTOCOL_INFOiFLAG","");
// _ht.put("SO_PROTOCOL_INFOiLASTED","");
// _ht.put("SO_PROTOCOL_INFOiBEGIN_DATE","");
// _ht.put("SO_PROTOCOL_INFOiEND_DATE","");
// _ht.put("SO_PROTOCOL_INFOiSEQ","");
// _ht.put("SO_PROTOCOL_INFOiACTION_TYPE","");
// //--提交优惠协议
// _ht.put("SO_DISCT_PROTOCOLiSEQ","");
// _ht.put("SO_DISCT_PROTOCOLiPRO_MODEL_NODE","");
// _ht.put("SO_DISCT_PROTOCOLiACTION_TYPE","");
return _ht;
}
public String getSO_BUSINESSiPROD_ID() {
return SO_BUSINESSiPROD_ID;
}
private void setSO_BUSINESSiPROD_ID(String siPROD_ID) {
SO_BUSINESSiPROD_ID = siPROD_ID;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?