⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rateprotocolalterweb.java

📁 电信的网厅的整站代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        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 + -