Ver Fonte

1. 修改永诚地区正则。
2. 修改永诚订单状态。

ligang134 há 2 anos atrás
pai
commit
66c1ed2676

+ 1 - 0
src/main/java/com/ydtech/constants/enums/dict/InsOrderStatusEnum.java

@@ -27,6 +27,7 @@ public enum InsOrderStatusEnum implements IBaseEnum {
     //人工核保退回状态,直至再次提交核保,状态修改为待核保
     TO_BACK("4", "核保退回", 6, 0),
 
+
     ;
 
 

+ 34 - 63
src/main/java/com/ydtech/modules/ins/service/impl/InsAlltrustApiServiceImpl.java

@@ -546,12 +546,8 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
     @Override
     @Transactional
     public HttpResult auditApi(String quoteOrderNo) {
-
-        ObjectMapper xmlMapper = this.gainXmlMapper();
-        String msg = "提交成功";
-        HttpResult h = HttpResult.ok(msg);
+        String logNo = String.format("(日志号:%s)",IPUtil.gainServerNo());
         try {
-
             //子订单
             InsAreaCompany iac = insAreaCompanyService.getById(quoteOrderNo);
             if (iac == null) {
@@ -562,11 +558,6 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
             // 获取协议配置信息
             YcConfigureParameters ycConfigureParameters = gainYcConfigParams(iac.getAgreementId());
 
-//            if (InsOrderStatus.S_5.getCode().equals(iac.getOrderstatus()) || InsOrderStatusEnum.TO_BACK.getCode().equals(iac.getOrderstatus())) {
-//                return HttpResult.ok(InsOrderStatus.matchKey(iac.getOrderstatus()).getDesc());
-//            }
-
-
             //车主
             CustomerInfoVo ownerInfo = JSONObject.parseObject(order.getOwnerinfo().toJSONString(), CustomerInfoVo.class);
             //被保人
@@ -578,52 +569,40 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
             //组装参数
             Audit m = Audit.buildAuditParam(ownerInfo, insureInfo, applyInfo, ycConfigureParameters, iac);
 
-
             //构造被保人地区
-            //处理地区 车主
             Map<String, String> insureMap = gainRegionCode(insureInfo.getAddr());
             m.getRequestLabel().getCondition().getCustomer().setCProvince(insureMap.get("provinceCode"));
             m.getRequestLabel().getCondition().getCustomer().setCCity(insureMap.get("cityCode"));
             m.getRequestLabel().getCondition().getCustomer().setCCounty(insureMap.get("areaCode"));
 
-//            InsAlltrustRegion insureInfoRegion = findRegion(insureInfo);
-//            if (null != insureInfoRegion) {
-//                m.getRequestLabel().getCondition().getCustomer().setCProvince(insureInfoRegion.getProvinceCode());
-//                m.getRequestLabel().getCondition().getCustomer().setCCity(insureInfoRegion.getCityCode());
-//                m.getRequestLabel().getCondition().getCustomer().setCCounty(insureInfoRegion.getArea());
-//            } else {
-//                throw new SystemException("永诚 - 被保人地区获取失败,请确认页面是否填写");
-//            }
-
-
-            log.debug("=========永诚API方式 - xml请求 - 核保开始======");
             //接口请求
-//            InsApiLog apiLog = httpPost(xmlMapper, m, YcBuildData.API_AUDIT);
             String responseData = httpPostResultLog(xmlMapper, m, YcBuildData.API_AUDIT, "永诚API方式 - 核保 - ");
-            log.debug("=========永诚API方式 - xml请求 - 核保结束!======");
-//            verifyRequest(apiLog, iac, InsQuoteFlow.Q_S_1);
-//            String responseData = apiLog.getResponseData();
 
             String cleanStr = YcBuildData.cleanResponseStr(responseData);
             AuditResponse rd = xmlMapper.readValue(cleanStr, AuditResponse.class);
 
             if (rd.getResponseHead().getReturnCode().equals("0000")) {
-//            if (rd.getResponseHead().getReturnCode().equals("E0000")) {
                 String statusJq = StringUtils.toString(rd.getStatusJq(), "");
                 String statusSy = StringUtils.toString(rd.getStatusSY(), "");
                 if (statusJq.equals("0") || statusSy.equals("0")) {
                     iac.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
                 } else if (statusJq.equals("3") || statusSy.equals("3")) {
                     iac.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
-                } else {
-                    iac.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
-                }
-                if (StringUtils.toInt(order.getOrderstatus()) < StringUtils.toInt(iac.getOrderstatus())) {
-                    order.setOrderstatus(iac.getOrderstatus());
+                    StringBuffer sb = new StringBuffer();
+                    if(null != rd.getSailResponseMessagedate()){
+                        sb.append(String.format("交强险提示信息:s%",rd.getSailResponseMessagedate().getCMessage()));
+                    }
+                    if(null != rd.getCiResponseMessagedate()){
+                        sb.append(String.format("   商业险提示信息:s%",rd.getCiResponseMessagedate().getCMessage()));
+                    }
+                    iac.setAuditopinion(sb.toString());
                 }
+
+                //构造订单状态
+                buildOrderStatus(order,iac);
+
             } else {
-                msg = rd.getResponseHead().getReturnMessage();
-                return HttpResult.error("核保失败" + msg);
+                return HttpResult.error(logNo + "核保失败" + rd.getResponseHead().getReturnMessage());
             }
 
             iac.setAuditid(order.getUserid());
@@ -641,20 +620,13 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
             if (InsOrderStatusEnum.WAIT_PAY.getCode().equals(InsOrderStatusEnum.matchKey(iac.getOrderstatus()).getCode())) {
                 //获取缴费地址
                 getPayUrlApi(iac);
-            } else {
-                h = HttpResult.error(msg + "状态:" + InsOrderStatusEnum.matchKey(iac.getOrderstatus()).getDesc());
             }
+            log.info(logNo +"车牌号:"+order.getLicenseno()+ ",永诚核保未获取缴费地址,状态为:" + InsOrderStatusEnum.matchKey(iac.getOrderstatus()).getDesc());
             insAreaCompanyService.updateById(iac);
             insOrdersService.updateByOrderStatus(order.getOrderno(), order.getOrderstatus());
 
-//            if (InsOrderStatusEnum.WAIT_PAY.getCode().equals(InsOrderStatus.matchKey(iac.getOrderstatus()).getCode())) {
-//                return HttpResult.ok(msg);
-//            } else {
-//                return HttpResult.error(msg + "状态:" + InsOrderStatus.matchKey(iac.getOrderstatus()).getDesc());
-//            }
+            return HttpResult.ok("核保操作成功");
 
-//            //插入轨迹表
-//            insTaskHistoryService.insertByOrderStatus(order);
 
         } catch (SystemException e) {
             return HttpResult.error(e.getMessage());
@@ -663,7 +635,6 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
             log.error("===永诚API方式--核保报错(订单号-{}):{}", quoteOrderNo, e.getMessage());
             return HttpResult.error("系统错误,请联系管理员");
         }
-        return h;
     }
 
 
@@ -798,10 +769,8 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
                     if (StringUtils.isNotEmpty(param.getCiPolicyNo())) iac.setJqpolicyno(param.getCiPolicyNo());
 
                     iac = buildCallBack(iac, param);
-
-                    if (StringUtils.toInt(order.getOrderstatus()) < StringUtils.toInt(iac.getOrderstatus())) {
-                        order.setOrderstatus(iac.getOrderstatus());
-                    }
+                    //构造订单状态
+                    buildOrderStatus(order,iac);
                     insAreaCompanyService.updateById(iac);
                     insOrdersService.updateByOrderStatus(order.getOrderno(), order.getOrderstatus());
 
@@ -1574,7 +1543,7 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         insAreaCompany.setTaxamount(BigDecimal.valueOf(jq_falg ? quoteRespVo.getTaxAmount() : 0));
         insAreaCompany.setSumpremium(BigDecimal.valueOf(quoteRespVo.getSumPermium()));
 //        insAreaCompany.setSumpremium(BigDecimal.valueOf(add(quoteRespVo.getSumPermium(), insOrder.getTaxamount())));
-        insAreaCompany.setOrderstatus(InsTaskHistoryEnum.WAITING_NUCLEAR_INSURANCE.getState() + "");
+        insAreaCompany.setOrderstatus(InsTaskHistoryEnum.IN_QUOTATION.getState() + "");
 
 
 
@@ -1614,19 +1583,6 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         return insAreaCompany;
 
 
-//        //插入轨迹表
-//        InsTaskHistory history = new InsTaskHistory();
-//        history.setId(String.valueOf(new Date().getTime()));
-//        history.setCompany(insOrder.getInscompany());
-//        history.setTaskid(insOrder.getOrderno());
-//        history.setOperatorid(insOrder.getUserid());
-//        history.setOperator(insOrder.getUsername());
-//        SimpleDateFormat sdfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//        history.setCreatetime(sdfm.format(new Date()));
-//        history.setOperator(insOrder.getUsername());
-//        history.setStatus("0");
-//        history.setRemark("报价中");
-//        insTaskHistoryService.insert(history);
 
     }
 
@@ -2061,4 +2017,19 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
     }
 
 
+    private void buildOrderStatus(InsOrders order,InsAreaCompany iac){
+
+        if (!order.getOrderstatus().equals(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode())) {
+            if (order.getOrderstatus().equals(InsOrderStatusEnum.WAIT_PAY.getCode()) && order.getOrderstatus().equals(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode())) {
+                order.setOrderstatus(iac.getOrderstatus());
+            } else if (order.getOrderstatus().equals(InsOrderStatusEnum.TO_BACK.getCode())) {
+                order.setOrderstatus(iac.getOrderstatus());
+            } else if (StringUtils.toInt(order.getOrderstatus()) < StringUtils.toInt(iac.getOrderstatus())) {
+                order.setOrderstatus(iac.getOrderstatus());
+            }
+        }
+    }
+
+
+
 }

+ 10 - 5
src/main/java/com/ydtech/utils/IDCardUtils.java

@@ -340,11 +340,11 @@ public class IDCardUtils {
      * @return
      */
     public static Map<String, String> addressResolution(String address) {
-        String regex = "(?<province>[^省]+自治区|.*?省|.*?行政区|.*?市|.*?蒙古)(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)(?<district>[^县]+县|.*?区|.+市|.*?旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<detail>.*)";
+        String regex = "(?<province>[^省]+自治区|.*?省|.*?行政区|.*?市|.*?蒙古)(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县|.*?区)(?<district>[^县]+县|.*?区|.+市|.*?旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<detail>.*)";
 
-        if(address.indexOf("重庆市") == 0){
-            regex = "(?<province>[^市].*?市)(?<city>[^县]+县|.*?区|.+市|.*?旗|.+海域|.+岛)(?<district>[^县]+县|.*?区|.+市|.*?旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<detail>.*)";
-        }
+//        if(address.indexOf("重庆市") == 0 || address.indexOf("上海市") == 0){
+//            regex = "(?<province>[^市].*?市)(?<city>[^县]+县|.*?区|.+市|.*?旗|.+海域|.+岛)(?<district>[^县]+县|.*?区|.+市|.*?旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<detail>.*)";
+//        }
         if(address.indexOf("新疆") == 0){
             regex = "(?<province>.*?新疆)(?<city>[^县]+县|.*?区|.+市|.*?旗|.+海域|.+岛)(?<district>[^县]+县|.*?区|.+市|.*?旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<detail>.*)";
         }
@@ -374,9 +374,14 @@ public class IDCardUtils {
     public static void main(String[] args) throws ParseException {
 
 
+        Map m = addressResolution("山西省忻州市忻府区合索乡沙洼村22-040");
+//        Map m = addressResolution("安徽省池州市贵池区长江中路39号采石队宿舍9号");
+//        Map m = addressResolution("山西省汾西县坪乡细坪村055号");
+//        Map m = addressResolution("山西省兴县魏家滩镇高家洼村091");
+//        Map m = addressResolution("河北省邯郸市临漳县孙陶镇兴王村兴西路富裕胡同4号");
 //        Map m = addressResolution("内蒙古锡林郭勒盟太仆寺旗红旗镇建中村张油坊营子3组48号");
 //        Map m = addressResolution("重庆市永川区朱沱镇大江住址路48号附59号");
-        Map m = addressResolution("新疆墨玉县喀拉喀什镇喀亚什村46号");
+//        Map m = addressResolution("上海市杨浦区长白三村67号28室");
 
         // String IDCardNum="210102820826411";
         // String IDCardNum="210102198208264114";