zoukankan      html  css  js  c++  java
  • 动态拼接手机号

      1 package com.sinosoft.lis.service.bl.query;
      2 
      3 import com.sinosoft.lis.db.LCAddressDB;
      4 import com.sinosoft.lis.db.LCAppntDB;
      5 import com.sinosoft.lis.db.LCContDB;
      6 import com.sinosoft.lis.db.LPEdorItemDB;
      7 import com.sinosoft.lis.pubfun.GlobalInput;
      8 import com.sinosoft.lis.pubfun.PubFun;
      9 import com.sinosoft.lis.schema.LCAddressSchema;
     10 import com.sinosoft.lis.schema.LCAppntSchema;
     11 import com.sinosoft.lis.schema.LCContSchema;
     12 import com.sinosoft.lis.service.bean.*;
     13 import com.sinosoft.lis.service.bl.PEdorApplyService;
     14 import com.sinosoft.lis.service.workflow.ProcessService;
     15 import com.sinosoft.lis.vschema.LPEdorItemSet;
     16 import com.sinosoft.utility.CErrors;
     17 import com.sinosoft.utility.ExeSQL;
     18 import com.sinosoft.utility.SQLwithBindVariables;
     19 import com.sinosoft.utility.SSRS;
     20 import com.sinosoft.utility.VData;
     21 import org.apache.log4j.Logger;
     22 import org.junit.Test;
     23 
     24 import java.util.ArrayList;
     25 import java.util.List;
     26 
     27 /**
     28  *   犹豫期退保保单明细信息查询
     29  * Created by MyPC on 2018/11/20.
     30  */
     31 public class PEdorWTDetailQueryService implements PEdorQueryInterface{
     32     private Logger mLogger = Logger.getLogger(PEdorZPDetailQueryService.class);
     33 
     34     /**
     35      * 错误信息
     36      */
     37     private CErrors mErrors = new CErrors();
     38 
     39     /**
     40      * 往后面传输数据的容器
     41      */
     42     private VData mInputData = new VData();
     43 
     44     private GlobalInput mGlobalInput = new GlobalInput();
     45 
     46     /**
     47      * 请求参数
     48      */
     49     private PEdorRequestBean mPEdorRequestBean = new PEdorRequestBean();
     50 
     51     /**
     52      * 返回参数
     53      */
     54     private PEdorResponseBean mPEdorResponseBean = new PEdorResponseBean();
     55 
     56     //返回参数容器
     57     private VData mResult = new VData();
     58 
     59 
     60     @Override
     61     public boolean submitData(VData cInputData, String cOperter) {
     62         mInputData = (VData) cInputData.clone();
     63         if (!getInputData(mInputData, cOperter)) {
     64             return false;
     65         }
     66         // 进行业务处理
     67         if (!dealData()) {
     68             return false;
     69         }
     70         return true;
     71     }
     72 
     73     /**
     74      * @param cInputData
     75      * @param cOperate
     76      * @return
     77      * @desc 获取参数数据
     78      */
     79     private boolean getInputData(VData cInputData, String cOperate) {
     80 
     81         mGlobalInput = (GlobalInput) mInputData.getObjectByObjectName("GlobalInput", 0);
     82         mPEdorRequestBean = (PEdorRequestBean) mInputData.getObjectByObjectName("PEdorRequestBean", 0);
     83         mPEdorRequestBean.setEdorAppDate(PubFun.getCurrentDate());
     84         if (mGlobalInput == null || mPEdorRequestBean == null) {
     85             mErrors.addOneError("接收前台数据失败!");
     86             return false;
     87         }
     88 
     89         mPEdorRequestBean.setEdorAppDate(PubFun.getCurrentDate());
     90         mPEdorRequestBean.setEdorAppName("Test");
     91         mPEdorRequestBean.setAppntIDType("999");
     92         mPEdorRequestBean.setAppntName("Test");
     93         mPEdorRequestBean.setBankCode("000");
     94         mPEdorRequestBean.setBankAccNo("1131232132");
     95         mPEdorRequestBean.setAccName("Test");
     96         mPEdorRequestBean.setEdorAppIDType("999");
     97         mPEdorRequestBean.setEdorAppIDNO("0");
     98         mPEdorRequestBean.setPersonName("Test");
     99         mPEdorRequestBean.setPersonIDNO("0");
    100 
    101         return true;
    102     }
    103 
    104     /**
    105      * 数据操作业务处理
    106      *
    107      * @return: boolean
    108      */
    109     private boolean dealData() {
    110         String tSql = " select RiskCode,                                                                    "
    111                 +"       (select RiskName                                                              "
    112                 +"          from LMRisk                                                                "
    113                 +"         where LMRisk.RiskCode = c.RiskCode),                                        "
    114                 +"       InsuredName,CValiDate,EndDate,                                                                  "
    115                 +"       Amnt,Mult,                                                                         "
    116                 +"       nvl((select sum(p.prem)                                                       "
    117                 +"             from lcprem p                                                           "
    118                 +"            where paystartdate <= '?EdorAppDate?'                                    "
    119                 +"              and payenddate >= '?EdorAppDate?'                                      "
    120                 +"              and p.polno = c.polno                                                  "
    121                 +"              and p.payplantype in ('0')),0),                                        "
    122                 +"       nvl((select sum(p.prem)                                                       "
    123                 +"             from lcprem p                                                           "
    124                 +"            where paystartdate <= '?EdorAppDate?'                                    "
    125                 +"              and payenddate >= '?EdorAppDate?'                                      "
    126                 +"              and p.polno = c.polno                                                  "
    127                 +"              and p.payplantype in ('01', '03')),0),                                 "
    128                 +"       nvl((select sum(p.prem)                                                       "
    129                 +"             from lcprem p                                                           "
    130                 +"            where paystartdate <= '?EdorAppDate?'                                    "
    131                 +"              and payenddate >= '?EdorAppDate?'                                      "
    132                 +"              and p.polno = c.polno                                                  "
    133                 +"              and p.payplantype in ('02', '04')),0),                                 "
    134                 +"       polno,mainpolno,paytodate                                                                         "
    135                 +"  from LCPol c                                                                       "
    136                 +" where ContNo = '?ContNo?'                                                           "
    137                 +"   and ((appflag = '1' and                                                           "
    138                 +"       (select count(*)                                                              "
    139                 +"            from lccontstate s                                                       "
    140                 +"           where trim(statetype) in ('Terminate')                                    "
    141                 +"             and trim(state) = '1'                                                   "
    142                 +"             and trim(statereason) not in ('05', '06')                               "
    143                 +"             and ((startdate <= '?EdorAppDate?' and '?EdorAppDate?' <= enddate) or   "
    144                 +"                  (startdate <= '?EdorAppDate?' and enddate is null))                "
    145                 +"             and s.polno = c.polno) = 0) or                                          "
    146                 +"       (appflag = '4' and (select count(*)                                           "
    147                 +"            from lccontstate s                                                       "
    148                 +"           where trim(statetype) in ('Terminate')                                    "
    149                 +"             and trim(state) = '1'                                                   "
    150                 +"             and trim(statereason) in ('05', '06')                                   "
    151                 +"             and ((startdate <= '?EdorAppDate?' and '?EdorAppDate?' <= enddate) or   "
    152                 +"                  (startdate <= '?EdorAppDate?' and enddate is null))                "
    153                 +"             and s.polno = c.polno) > 0))                                            ";
    154         ExeSQL tExeSQL = new ExeSQL();
    155         SQLwithBindVariables tSQLwithBindVariables = new SQLwithBindVariables();
    156         tSQLwithBindVariables.sql(tSql);
    157         tSQLwithBindVariables.put("EdorAppDate",PubFun.getCurrentDate());
    158         tSQLwithBindVariables.put("ContNo",mPEdorRequestBean.getContNo());
    159         SSRS tSSRS = new SSRS();
    160         tSSRS = tExeSQL.execSQL(tSQLwithBindVariables);
    161         if(tSSRS == null || tSSRS.getMaxRow() < 1 ){
    162             mErrors.addOneError("该保单没有可操作的险种");
    163             return false;
    164         }
    165         PEdorWTBean tPEdorWTBean = new PEdorWTBean();
    166         List tAddRiskList = new ArrayList();
    167 
    168         List tMainRiskList = new ArrayList();
    169         for(int i = 1; i<= tSSRS.getMaxRow(); i++){
    170             String tRiskCode = tSSRS.GetText(i,1); //险种编码
    171             String tRiskName = tSSRS.GetText(i,2); //险种名称
    172             String tInsuredName = tSSRS.GetText(i,3); //被保人名称
    173             String tCValiDate = tSSRS.GetText(i,4); //险种生效日期
    174             String tEndDate = tSSRS.GetText(i,5); //险种终止日期
    175             String tAmnt = tSSRS.GetText(i,6);//保额
    176             String tMult = tSSRS.GetText(i,7);//份数
    177             String tPrem = tSSRS.GetText(i,8);//保费
    178             String tHeathPrem = tSSRS.GetText(i,9);//健康加费
    179             String tJobPrem = tSSRS.GetText(i,10);//职业加费
    180             String tPolNo = tSSRS.GetText(i,11);//险种编码
    181             String tMainPolNo = tSSRS.GetText(i,12);//主险编码
    182             String tPayToDate = tSSRS.GetText(i,13);//缴费对应日期
    183 
    184             if(tPolNo.equals(tMainPolNo)){
    185                 tPEdorWTBean.setMainRiskCode(tRiskCode);
    186                 tPEdorWTBean.setMainRiskName(tRiskName);
    187                 tPEdorWTBean.setInsuredName(tInsuredName);
    188                 tPEdorWTBean.setValidDate(tCValiDate);
    189                 tPEdorWTBean.setExpireDate(tEndDate);
    190                 tPEdorWTBean.setAmnt(tAmnt);
    191                 tPEdorWTBean.setMult(tMult);
    192                 tPEdorWTBean.setPrem(tPrem);
    193                 tPEdorWTBean.setHealthPrem(tHeathPrem);
    194                 tPEdorWTBean.setJobPrem(tJobPrem);
    195                 tPEdorWTBean.setPayDate(tPayToDate);
    196 
    197                 MainRisk tMainRisk = new MainRisk();
    198                 tMainRisk.setRiskCode(tRiskCode);
    199                 tMainRisk.setRiskName(tRiskName);
    200                 tMainRisk.setInsuredName(tInsuredName);
    201                 tMainRisk.setAmnt(tAmnt);
    202                 tMainRisk.setMult(tMult);
    203                 tMainRisk.setPrem(tPrem);
    204                 tMainRisk.setHealthPrem(tHeathPrem);
    205                 tMainRisk.setJobPrem(tJobPrem);
    206                 tMainRisk.setPayDate(tPayToDate);
    207                 tMainRiskList.add(tMainRisk);
    208 
    209             }else{
    210                 AddtRisk tAddRisk = new AddtRisk();
    211                 tAddRisk.setRiskCode(tRiskCode);
    212                 tAddRisk.setRiskName(tRiskName);
    213                 tAddRisk.setPrem(tPrem);
    214                 tAddRisk.setMult(tMult);
    215                 tAddRisk.setAmnt(tAmnt);
    216                 tAddRisk.setHealthPrem(tHeathPrem);
    217                 tAddRisk.setJobPrem(tJobPrem);
    218                 tAddRisk.setPayDate(tPayToDate);
    219                 tAddRiskList.add(tAddRisk);
    220             }
    221         }
    222         tPEdorWTBean.setAddtRisksList(tAddRiskList);
    223         
    224         tPEdorWTBean.setMainRisksList(tMainRiskList);
    225 
    226         //查询保单信息
    227         LCContDB tLCContDB = new LCContDB();
    228         tLCContDB.setContNo(mPEdorRequestBean.getContNo());
    229         if(!tLCContDB.getInfo()){
    230             mErrors.addOneError("该保单不存在!");
    231             return false;
    232         }
    233         LCContSchema tLCContSchema = tLCContDB.getSchema();
    234         tPEdorWTBean.setContNo(tLCContSchema.getContNo());
    235         tPEdorWTBean.setAppntName(tLCContSchema.getAppntName());
    236         //账户信息获取
    237         String lSqlString = "select b.bankcode, (Select trim(codename) from ldcode where trim(code) = b.bankcode and codetype='bank'),b.bankaccno, b.accname" +
    238                 "          from lccont a, ljtempfeeclass b" +
    239                 "         where 1=1 and ( b.otherno = a.prtno or b.otherno=a.contno) and a.contno = '?ContNo?'" +
    240                 "           and b.paymode in('04','14','15','16','17')" +
    241                 "           and b.TempFeeType in ('11')" +
    242                 "         order by b.enteraccdate desc, b.maketime desc ";
    243         ExeSQL lExeSQL = new ExeSQL();
    244         SQLwithBindVariables sqlbv1 = new SQLwithBindVariables();
    245         sqlbv1.sql(lSqlString);
    246         sqlbv1.put("ContNo",mPEdorRequestBean.getContNo());
    247         SSRS lSSRS = lExeSQL.execSQL(sqlbv1);
    248         tPEdorWTBean.setNewBankCode(lSSRS.GetText(1,1));//银行编码
    249         tPEdorWTBean.setNewBankAccNo(lSSRS.GetText(1,3));//银行账号
    250         tPEdorWTBean.setNewBankAccName(lSSRS.GetText(1,4));//户名
    251         tPEdorWTBean.setNewBankName(lSSRS.GetText(1,2));//开户行
    252 
    253 
    254         LCAppntDB tLCAppntDB = new LCAppntDB();
    255         tLCAppntDB.setContNo(tLCContSchema.getContNo());
    256         if(!tLCAppntDB.getInfo()){
    257             mErrors.addOneError("对不起,该单投保人信息缺失!!");
    258             return false;
    259         }
    260         LCAppntSchema tLCAppntSchema = tLCAppntDB.getSchema();
    261 
    262         LCAddressDB tLCAddressDB = new LCAddressDB();
    263         tLCAddressDB.setAddressNo(tLCAppntSchema.getAddressNo());
    264         tLCAddressDB.setCustomerNo(tLCAppntSchema.getAppntNo());
    265         if(!tLCAddressDB.getInfo()){
    266             mErrors.addOneError("对不起,该单投保人地址信息缺失!!");
    267             return false;
    268         }
    269 
    270         //2019-06-18电话修改  2019-06-21
    271         String phoneSql="   SELECT distinct phone FROM lcaddress a WHERE  a.customerno='?Customerno?' and a.phone is not null"
    272                 + "    union"
    273                 + "    SELECT  distinct mobile FROM lcaddress a WHERE a.customerno='?Customerno?' and a.mobile is not null"
    274                 + "    union"
    275                 + "    SELECT  distinct companyphone FROM lcaddress a WHERE  a.customerno='?Customerno?' and a.companyphone is not null";
    276         SQLwithBindVariables sqlbv2=new SQLwithBindVariables();
    277         sqlbv2.sql(phoneSql);
    278         sqlbv2.put("Customerno",tLCAppntSchema.getAppntNo());
    279         SSRS sSSRS = new ExeSQL().execSQL(sqlbv2);
    280         String tAppntMobile = "";
    281         if(sSSRS == null || sSSRS.getMaxRow()<= 0){
    282 
    283 
    284         }else{
    285             for(int i = 1; i<= sSSRS.getMaxRow(); i++) {
    286                 //进行手机号拼接
    287                 if(sSSRS.GetText(i, 1) != null && sSSRS.GetText(i, 1).matches("1\\d{10}")&&!"".equals(sSSRS.GetText(i,1))) {
    288                     if (i < sSSRS.getMaxRow()) {
    289                         tAppntMobile += sSSRS.GetText(i, 1) + ",";
    290 
    291                     } else {
    292 
    293                         tAppntMobile += sSSRS.GetText(i, 1);
    294                     }
    295                 }
    296 
    297             }
    298         }
    299         //    解决手机号尾部挂逗号的问题 2019-06-21
    300         if(!"".equals(tAppntMobile)){
    301             String last = tAppntMobile.substring(tAppntMobile.length()-1, tAppntMobile.length());
    302 
    303             if(",".equals(last)){
    304                 tAppntMobile= tAppntMobile.substring(0, tAppntMobile.length()-1);
    305 
    306             }
    307         }
    308 
    309 
    310         tPEdorWTBean.setMobilePhone(tAppntMobile);
    311         tPEdorWTBean.setEdorType("WT");
    312 
    313         //保全试算
    314         PEdorApplyService tPEdorApplyService = new PEdorApplyService();
    315         if (!tPEdorApplyService.edorTest(mPEdorRequestBean)) {
    316             mErrors.addOneError(tPEdorApplyService.getErrors().getFirstError());
    317             PEdorResponseBean tPEdorResponseBean = (PEdorResponseBean) tPEdorApplyService.getResult().getObjectByObjectName("PEdorResponseBean", 0);
    318             String tEdorAcceptNo = tPEdorResponseBean.getEdoracceptNo();
    319             mPEdorResponseBean.setEdoracceptNo(tEdorAcceptNo);
    320             return false;
    321         }
    322         PEdorResponseBean tPEdorResponseBean = (PEdorResponseBean) tPEdorApplyService.getResult().getObjectByObjectName("PEdorResponseBean", 0);
    323         String tEdorAcceptNo = tPEdorResponseBean.getEdoracceptNo();
    324         mPEdorResponseBean.setEdoracceptNo(tEdorAcceptNo);
    325 
    326         tPEdorWTBean.setContNo(mPEdorRequestBean.getContNo());
    327         String tSQL = "select (select RiskName from LMRisk b where b.RiskCode = a.RiskCode),a.cvalidate,a.enddate from lcpol a where a.mainpolno = a.polno  and a.contno='?Contno?'";
    328         tSQLwithBindVariables = new SQLwithBindVariables();
    329         tSQLwithBindVariables.sql(tSQL);
    330         tSQLwithBindVariables.put("Contno", mPEdorRequestBean.getContNo());
    331 
    332         SSRS ttSSRS = new ExeSQL().execSQL(tSQLwithBindVariables);
    333         if (ttSSRS == null || ttSSRS.MaxRow == 0) {
    334             mErrors.addOneError("没有查询到主险信息!");
    335             return false;
    336         }
    337 
    338         //银保通
    339         tPEdorWTBean.setMainRiskName(ttSSRS.GetText(1, 1));
    340         tPEdorWTBean.setYBTRiskName(ttSSRS.GetText(1, 1));
    341         tPEdorWTBean.setValidDate(ttSSRS.GetText(1, 2));
    342         tPEdorWTBean.setExpireDate(ttSSRS.GetText(1, 3));
    343         tPEdorWTBean.setOccurBala(tPEdorResponseBean.getGetMoney());
    344         tPEdorWTBean.setSXMoney(tPEdorResponseBean.getSXFee());
    345 
    346 
    347         List tWTList = new ArrayList();
    348         tWTList.add(tPEdorWTBean);
    349         mPEdorResponseBean.setPEdorWTList(tWTList);
    350 
    351         ProcessService tProcessService = new ProcessService();
    352         if(!tProcessService.edorCancel(tEdorAcceptNo)){
    353             return false;
    354         }
    355 
    356         return true;
    357     }
    358 
    359     @Override
    360     public CErrors getErrors() {
    361         return mErrors;
    362     }
    363 
    364     @Override
    365     public VData getResult() {
    366         mResult.clear();
    367         mResult.add(mPEdorResponseBean);
    368         return mResult;
    369     }
    370 
    371     @Test
    372     public void aaaa(){
    373 //        mPEdorRequestBean.setContNo("201937170412000261");
    374 //        dealData();
    375 
    376 //        String  str1="12345@qq.com";
    377 //        //查询@在字符串中出现的位置
    378 //        int  index=str1.indexOf("@");   //下标从0开始
    379 //        System.out.println("注意String字符串的下表是从0开始的");
    380 //        System.out.println("@在字符串中出现的位置:"+index);
    381 //        //查询q在字符串中最后一次出现的位置
    382 //        int  index2=str1.lastIndexOf("q");
    383 //        System.out.println("q在字符串中最后一次出现的位置:"+index2);
    384 //        //获取@之后的所有字符串   subString(int  beginIndex) 包含beginIndex
    385 //        System.out.println("获取@之后的所有字符串:"+str1.substring(index+1));
    386 //        /*
    387 //         * 查询  qq
    388 //         * subString(int  beginIndex,int  endIndex)
    389 //         * 01.找到点的位置
    390 //         * 02.不包含 endIndex
    391 //         */
    392 //        int  index3=str1.indexOf(".");
    393 //        String result = str1.substring(index+1, index3);
    394 //        System.out.println("result====>"+result);
    395 
    396         //去除空格
    397 //        String  str1=" abc def ";
    398 //        System.out.println("空格计算长度:"+str1.length());
    399 //        //去除字符串两边的空格
    400 //        str1=str1.trim();
    401 //        System.out.println("去除空格之后内容:"+str1);
    402 //        System.out.println("去除空格之后:"+str1.length());//中间的空格去除不了
    403 //        String  str1="abcdef";
    404 //        //把a替换成6
    405 //        str1 = str1.replace("a", "6");
    406 //        System.out.println(str1);
    407 //        //是否以6开始
    408 //        System.out.println("是否以6开始:"+str1.startsWith("6"));
    409 //        System.out.println("是否以a结尾:"+str1.endsWith("a"));
    410 
    411 
    412 //        String  str1="abcdef";
    413 //        //截取一个字符  返回值是char
    414 //        char a =str1.charAt(3);//下标是从0开始的
    415 //        System.out.println(a);
    416 //        String  str1="abcdef";
    417 //        //将字符存储在字节数组中
    418 //        byte[] bytes = str1.getBytes();
    419 //        for (byte b : bytes) {
    420 //            System.out.println((char)b);
    421 
    422 //            String  str1="abc";
    423 //            String  str2="def";
    424 //            //之前的字符串相加
    425 //            System.out.println(str1+str2);
    426 //            //现在concat(String  str)
    427 //            System.out.println(str1.concat(str2));
    428 
    429 //        String  str1="abc";
    430 //        //是否包含某个指定的字符
    431 //        System.out.println("是否包含a这个字符:"+str1.contains("a"));
    432 
    433 
    434         //01.定义变量
    435         String   name="xiaohei";
    436         //02.定义操作字符串的次数
    437         int  count=2000000;
    438         //03.设置开始时间
    439         long beginTime=System.currentTimeMillis();
    440         for (int i = 0; i <count/100; i++) {
    441             name+="haha";
    442         }
    443         //03.设置结束时间
    444         long endTime=System.currentTimeMillis();
    445         System.out.println("String的执行时间:"+(endTime-beginTime));
    446         System.out.println("****************************");
    447         name="xiaohei";
    448         //04.使用StringBuffer
    449         StringBuffer buffer=new StringBuffer(name);
    450         beginTime=System.currentTimeMillis();
    451         for (int i = 0; i <count; i++) {
    452             buffer=buffer.append("haha");
    453         }
    454         endTime=System.currentTimeMillis();
    455         System.out.println("StringBuffer的执行时间:"+(endTime-beginTime));
    456         System.out.println("****************************");
    457         name="xiaohei";
    458         //05.使用StringBuilder
    459         StringBuilder builder=new StringBuilder(name);
    460         beginTime=System.currentTimeMillis();
    461         for (int i = 0; i <count; i++) {
    462             builder=builder.append("haha");
    463         }
    464         endTime=System.currentTimeMillis();
    465         System.out.println("StringBuilder的执行时间:"+(endTime-beginTime));
    466 
    467     }
    468 }
  • 相关阅读:
    使用java的wsimport.exe生成wsdl的客户端代码【转】
    css 动画【转】
    如何让javascript base64加密后不含+/=
    UEditor js动态创建和textarea中渲染【原】
    在js或jquery中动态添加js脚本【转】
    利用spring的MultipartFile实现文件上传【原】
    hibernate状态转换关系图【原】
    ssh框架里拦截器的权限验证基本思路【转】
    JAVA中三种URL连接方法
    程序出错问题总结
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/11639941.html
Copyright © 2011-2022 走看看