Răsfoiți Sursa

处理订单承保更新驾意险保单号

hxl13994548489 2 ani în urmă
părinte
comite
4637da87ee

+ 174 - 71
src/main/java/com/ydtech/modules/order/service/impl/PingAnOrderApiServiceImpl.java

@@ -671,6 +671,7 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
                 //查询核保状态
                 String bizApplyNo = submitApplyResponse.getBizApplyNo()==null?"":submitApplyResponse.getBizApplyNo();
                 String forceApplyNo = submitApplyResponse.getForceApplyNo()==null?"":submitApplyResponse.getForceApplyNo();
+                String accidentApplyNo = submitApplyResponse.getAccidentApplyNo() == null ? "" : submitApplyResponse.getAccidentApplyNo();
                 List<String> list = new ArrayList<String>();
                 if (StringUtils.isNotBlank(bizApplyNo)) {
                     list.add(bizApplyNo);
@@ -678,6 +679,9 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
                 if (StringUtils.isNotBlank(forceApplyNo)) {
                     list.add(forceApplyNo);
                 }
+                if (StringUtils.isNotBlank(accidentApplyNo)) {
+                    list.add(accidentApplyNo);
+                }
                 pinganApiLog.setId(null);
                 DocumentStatusListRequest documentStatusListRequest = new DocumentStatusListRequest(list, parameters);
                 DocumentStatusListResponse documentStatusListResponse = null;
@@ -691,23 +695,35 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
                     if (documentList != null && documentList.size() > 0) {
                         Boolean jqflag = false;
                         Boolean sqflag = false;
+                        Boolean fcflag = false;
                         //B2 为 未缴费
                         for (DocumentStatusListResponse.DocumentDTO dto : documentList) {
-                            if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && bizApplyNo.equals(dto.getApplyNo()==null?"":dto.getApplyNo())) {
+                            if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && StringUtils.isNotBlank(bizApplyNo) && bizApplyNo.equals(dto.getApplyNo()==null?"":dto.getApplyNo())) {
                                 sqflag = true;
                             }
-                            if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && forceApplyNo.equals(dto.getApplyNo()==null?"":dto.getApplyNo())) {
+                            if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && StringUtils.isNotBlank(forceApplyNo) && forceApplyNo.equals(dto.getApplyNo()==null?"":dto.getApplyNo())) {
                                 jqflag = true;
                             }
+                            if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && StringUtils.isNotBlank(accidentApplyNo) && accidentApplyNo.equals(dto.getApplyNo()==null?"":dto.getApplyNo())) {
+                                fcflag = true;
+                            }
                         }
-                        if ("单交".equals(insAreaCompany.getProduct()) && jqflag) {
+                        if (jqflag) {
                             insAreaCompany.setJqapplyno(forceApplyNo);
-                        } else if (("交三".equals(insAreaCompany.getProduct()) || "交商".equals(insAreaCompany.getProduct())) && jqflag && sqflag) {
-                            insAreaCompany.setJqpolicyno(forceApplyNo);
-                            insAreaCompany.setSyapplyno(bizApplyNo);
-                        } else if (("单商".equals(insAreaCompany.getProduct()) || "单三".equals(insAreaCompany.getProduct())) && sqflag) {
+                        }
+                        if(sqflag){
                             insAreaCompany.setSyapplyno(bizApplyNo);
                         }
+                        if(fcflag){
+                            List<Map<String,String>> jyList =new ArrayList<Map<String,String>>();
+                            Map<String,String> map =new HashMap<String,String>();
+                            //投保单号
+                            map.put("application",accidentApplyNo);
+                            map.put("policy","");
+                            jyList.add(map);
+                            JSONArray objects = JSON.parseArray(JSON.toJSONString(jyList));
+                            insAreaCompany.setCrossInsurance(objects);
+                        }
                         //说明核保成功,更新大订单和小订单的状态为1  更新为已核保待缴费
                         insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
                         insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
@@ -824,7 +840,7 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
             flag="true";
             fileName="_非车险保单";
         }else if(type==1){
-           //交强
+            //交强
             fileName="_交强险保单";
             fileBZName="-交强险标志";
         }else if(type==2){
@@ -1230,14 +1246,24 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
             PingAnConfigureParameters parameters = configureParametersComponents.toEntity(PingAnConfigureParameters.class,
                     ptlAgreementAttribution);
             ArrayList<String>  list =new ArrayList<>();
-            String  forceApplyNo = insAreaCompany.getJqapplyno();
-            String  bizApplyNo= insAreaCompany.getSyapplyno();
+            String bizApplyNo = insAreaCompany.getJqapplyno();
+            String forceApplyNo =insAreaCompany.getSyapplyno();
+            JSONArray crossInsurance = insAreaCompany.getCrossInsurance();
+            //非车投保单号
+            String accidentApplyNo = null;
+            if(crossInsurance!=null && crossInsurance.size() > 0) {
+                accidentApplyNo = crossInsurance.getJSONObject(0).getString("application");
+            }
             if (StringUtils.isNotBlank(bizApplyNo)) {
                 list.add(bizApplyNo);
             }
             if (StringUtils.isNotBlank(forceApplyNo)) {
                 list.add(forceApplyNo);
             }
+            if (StringUtils.isNotBlank(accidentApplyNo)) {
+                list.add(accidentApplyNo);
+            }
+            pinganApiLog.setId(null);
             DocumentStatusListRequest documentStatusListRequest = new DocumentStatusListRequest(list, parameters);
             DocumentStatusListResponse documentStatusListResponse = null;
             try {
@@ -1245,56 +1271,93 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
             } catch (Exception e) {
                 throw new SystemException(e.getMessage());
             }
-            if(documentStatusListResponse!=null && documentStatusListResponse.getDocumentList().size()>0){
+            if (documentStatusListResponse != null && "0".equals(documentStatusListResponse.getResultCode())) {
                 ArrayList<DocumentStatusListResponse.DocumentDTO> documentList = documentStatusListResponse.getDocumentList();
                 Boolean jqflag = false;
                 Boolean sqflag = false;
-                String jqpolicyno=null;
-                String sypolicyno=null;
+                Boolean fcflag = false;
                 String status="";
-                String noticeNo="";
-                //B5 为 承保
-                for (DocumentStatusListResponse.DocumentDTO dto : documentList) {
-                    status = dto.getStatus();
-                    noticeNo=dto.getNoticeNo();
-                    if ((bizApplyNo==null?"":bizApplyNo).equals(dto.getApplyNo()==null?"":dto.getApplyNo())) {
-                        jqpolicyno=dto.getPolicyNo();
-                        sqflag = true;
-                    }
-                    if ((forceApplyNo==null?"":forceApplyNo).equals(dto.getApplyNo()==null?"":dto.getApplyNo())) {
-                        sypolicyno=dto.getPolicyNo();
-                        jqflag = true;
+                String jqPlicyNo=null;
+                String syPlicyNo=null;
+                String jyPlicyNo=null;
+                if (documentList != null && documentList.size() > 0) {
+                    //B2 为 未缴费
+                    for (DocumentStatusListResponse.DocumentDTO dto : documentList) {
+                        status =dto.getStatus();
+                        if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && StringUtils.isNotBlank(bizApplyNo) && bizApplyNo.equals(dto.getApplyNo() == null ? "" : dto.getApplyNo())) {
+                            jqPlicyNo=dto.getPolicyNo();
+                            sqflag = true;
+                        }
+                        if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && StringUtils.isNotBlank(forceApplyNo) && forceApplyNo.equals(dto.getApplyNo() == null ? "" : dto.getApplyNo())) {
+                            jqflag = true;
+                            syPlicyNo=dto.getPolicyNo();
+                        }
+                        if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && StringUtils.isNotBlank(accidentApplyNo) && accidentApplyNo.equals(dto.getApplyNo() == null ? "" : dto.getApplyNo())) {
+                            fcflag = true;
+                            jyPlicyNo=dto.getPolicyNo();
+                        }
                     }
                 }
-                if ("单交".equals(insAreaCompany.getProduct()) && jqflag) {
-                    insAreaCompany.setJqpolicyno(jqpolicyno);
-                } else if (("交三".equals(insAreaCompany.getProduct()) || "交商".equals(insAreaCompany.getProduct())) && jqflag && sqflag) {
-                    insAreaCompany.setJqpolicyno(jqpolicyno);
-                    insAreaCompany.setSypolicyno(sypolicyno);
-                } else if (("单商".equals(insAreaCompany.getProduct()) || "单三".equals(insAreaCompany.getProduct())) && sqflag) {
-                    insAreaCompany.setSypolicyno(sypolicyno);
+                if (jqflag) {
+                    insAreaCompany.setJqapplyno(forceApplyNo);
+                    insAreaCompany.setJqpolicyno(jqPlicyNo);
                 }
-                String orderstatus = insAreaCompany.getOrderstatus();
-                if(OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(status)  && ("0".equals(orderstatus) || "1".equals(orderstatus))  ){
-                    //已核保待缴费
-                    insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
-                }else if(OrderStatusCodeEnum.ORDER_STATUS_CODE_B5.getCode().equals(status) && ("0".equals(orderstatus) || "1".equals(orderstatus) || "2".equals(orderstatus))  ){
-                    //说明核保成功,更新大订单和小订单的状态为3  更新为已承保
-                    if(StringUtils.isNotBlank(noticeNo)){
-                        insAreaCompany.setNoticeNo(noticeNo);
-                    }
+                if (sqflag) {
+                    insAreaCompany.setSyapplyno(bizApplyNo);
+                    insAreaCompany.setSypolicyno(syPlicyNo);
+                }
+                if (fcflag) {
+                    List<Map<String, String>> jyList = new ArrayList<Map<String, String>>();
+                    Map<String, String> map = new HashMap<String, String>();
+                    //投保单号
+                    map.put("application", accidentApplyNo);
+                    map.put("policy", jyPlicyNo);
+                    jyList.add(map);
+                    JSONArray objects = JSON.parseArray(JSON.toJSONString(jyList));
+                    insAreaCompany.setCrossInsurance(objects);
+                }
+                if(InsOrderStatusEnum.WAIT_PAY.getCode().equals(status) && ("0".equals(insAreaCompany.getOrderstatus()) || "1".equals(insAreaCompany.getOrderstatus()) )){
+                    //说明核保成功,更新大订单和小订单的状态为1  更新为已核保待缴费
+                    insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode() );
+                    insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+                }else if(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(status) && ("0".equals(insAreaCompany.getOrderstatus()) || "1".equals(insAreaCompany.getOrderstatus()) || "2".equals(insAreaCompany.getOrderstatus()))) {
+                    //承保
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
+                    insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
                 }
-
-                insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
-                return HttpResult.ok("更新状态成功");
-
             }
             return HttpResult.ok(documentStatusListResponse);
         } catch (Exception e) {
             return HttpResult.error(e.getMessage());
         }
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/9 17:33
+     *  @Description:  获取单证的集合
+     */
+    public List<String>  getDocmentList(InsAreaCompany insAreaCompany){
+        ArrayList<String>  list =new ArrayList<>();
+        String bizApplyNo = insAreaCompany.getJqapplyno();
+        String forceApplyNo =insAreaCompany.getSyapplyno();
+        JSONArray crossInsurance = insAreaCompany.getCrossInsurance();
+        //非车投保单号
+        String accidentApplyNo = null;
+        if(crossInsurance!=null && crossInsurance.size() > 0) {
+            accidentApplyNo = crossInsurance.getJSONObject(0).getString("application");
+        }
+        if (StringUtils.isNotBlank(bizApplyNo)) {
+            list.add(bizApplyNo);
+        }
+        if (StringUtils.isNotBlank(forceApplyNo)) {
+            list.add(forceApplyNo);
+        }
+        if (StringUtils.isNotBlank(accidentApplyNo)) {
+            list.add(accidentApplyNo);
+        }
+        return  list;
+    }
 
     /**
      * @Description 撤销单证  9.2
@@ -1372,10 +1435,10 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
             map.put("1",cyList);
             //if(xwList==null || xwList.size()==0){
             //    xwList=cyList;
-           // }
+            // }
             //if(zhList==null || zhList.size()==0){
             //    zhList=cyList;
-           // }
+            // }
             map.put("2",xwList);
             map.put("3",zhList);
         }
@@ -1791,15 +1854,24 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
             //查询单证状态
             PingAnConfigureParameters parameters = configureParametersComponents.toEntity(PingAnConfigureParameters.class,
                     ptlAgreementAttribution);
-            List<String> list = new ArrayList<>();
-            String bizApplyNo = insAreaCompany.getSyapplyno();
-            String forceApplyNo = insAreaCompany.getJqapplyno();
+            ArrayList<String>  list =new ArrayList<>();
+            String bizApplyNo = insAreaCompany.getJqapplyno();
+            String forceApplyNo =insAreaCompany.getSyapplyno();
+            JSONArray crossInsurance = insAreaCompany.getCrossInsurance();
+            //非车投保单号
+            String accidentApplyNo = null;
+            if(crossInsurance!=null && crossInsurance.size() > 0) {
+                accidentApplyNo = crossInsurance.getJSONObject(0).getString("application");
+            }
             if (StringUtils.isNotBlank(bizApplyNo)) {
                 list.add(bizApplyNo);
             }
             if (StringUtils.isNotBlank(forceApplyNo)) {
                 list.add(forceApplyNo);
             }
+            if (StringUtils.isNotBlank(accidentApplyNo)) {
+                list.add(accidentApplyNo);
+            }
             pinganApiLog.setId(null);
             DocumentStatusListRequest documentStatusListRequest = new DocumentStatusListRequest(list, parameters);
             DocumentStatusListResponse documentStatusListResponse = null;
@@ -1808,31 +1880,62 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
             } catch (Exception e) {
                 throw new SystemException(e.getMessage());
             }
-            if (documentStatusListResponse != null) {
-                if (documentStatusListResponse != null && "0".equals(documentStatusListResponse.getResultCode())) {
-                    ArrayList<DocumentStatusListResponse.DocumentDTO> documentList = documentStatusListResponse.getDocumentList();
-                    String status = "";
-                    String policyNo ="";
-                    if (documentList != null && documentList.size() > 0) {
-                        Boolean flag = false;
-                        for (DocumentStatusListResponse.DocumentDTO dto : documentList) {
-                            status = dto.getStatus();
-                            policyNo = dto.getPolicyNo();
-                            if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B5.getCode().equals(dto.getStatus())) {
-                                flag = false;
-                            }
+            if (documentStatusListResponse != null && "0".equals(documentStatusListResponse.getResultCode())) {
+                ArrayList<DocumentStatusListResponse.DocumentDTO> documentList = documentStatusListResponse.getDocumentList();
+                Boolean jqflag = false;
+                Boolean sqflag = false;
+                Boolean fcflag = false;
+                String status="";
+                String jqPlicyNo=null;
+                String syPlicyNo=null;
+                String jyPlicyNo=null;
+                if (documentList != null && documentList.size() > 0) {
+                    //B2 为 未缴费
+                    for (DocumentStatusListResponse.DocumentDTO dto : documentList) {
+                        status =dto.getStatus();
+                        if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && StringUtils.isNotBlank(bizApplyNo) && bizApplyNo.equals(dto.getApplyNo() == null ? "" : dto.getApplyNo())) {
+                            jqPlicyNo=dto.getPolicyNo();
+                            sqflag = true;
                         }
-                        insAreaCompany.setJqpolicyno(policyNo);
-                        //已承保更新承保状态
-                        if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B5.getCode().equals(status) && ("0".equals(insAreaCompany.getOrderstatus()) || "1".equals(insAreaCompany.getOrderstatus()) || "2".equals(insAreaCompany.getOrderstatus())) ) {
-                            insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
-                            insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
-
+                        if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && StringUtils.isNotBlank(forceApplyNo) && forceApplyNo.equals(dto.getApplyNo() == null ? "" : dto.getApplyNo())) {
+                            jqflag = true;
+                            syPlicyNo=dto.getPolicyNo();
+                        }
+                        if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B2.getCode().equals(dto.getStatus()) && StringUtils.isNotBlank(accidentApplyNo) && accidentApplyNo.equals(dto.getApplyNo() == null ? "" : dto.getApplyNo())) {
+                            fcflag = true;
+                            jyPlicyNo=dto.getPolicyNo();
                         }
-                        return HttpResult.ok("支付成功");
                     }
                 }
+                if (jqflag) {
+                    insAreaCompany.setJqapplyno(forceApplyNo);
+                    insAreaCompany.setJqpolicyno(jqPlicyNo);
+                }
+                if (sqflag) {
+                    insAreaCompany.setSyapplyno(bizApplyNo);
+                    insAreaCompany.setSypolicyno(syPlicyNo);
+                }
+                if (fcflag) {
+                    List<Map<String, String>> jyList = new ArrayList<Map<String, String>>();
+                    Map<String, String> map = new HashMap<String, String>();
+                    //投保单号
+                    map.put("application", accidentApplyNo);
+                    map.put("policy", jyPlicyNo);
+                    jyList.add(map);
+                    JSONArray objects = JSON.parseArray(JSON.toJSONString(jyList));
+                    insAreaCompany.setCrossInsurance(objects);
+                }
+                if(InsOrderStatusEnum.WAIT_PAY.getCode().equals(status) && ("0".equals(insAreaCompany.getOrderstatus()) || "1".equals(insAreaCompany.getOrderstatus()) )){
+                    //说明核保成功,更新大订单和小订单的状态为1  更新为已核保待缴费
+                    insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode() );
+                    insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+                }else if(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(status) && ("0".equals(insAreaCompany.getOrderstatus()) || "1".equals(insAreaCompany.getOrderstatus()) || "2".equals(insAreaCompany.getOrderstatus()))) {
+                    //承保
+                    insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
+                    insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+                }
             }
+            return HttpResult.error("支付成功");
         }else{
             PinganApiLog pinganApiLog = new PinganApiLog(null,null,null);
             pinganApiLog.setId(null);
@@ -1841,8 +1944,8 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
             pinganApiLog.setRequestParam(new Gson().toJson(payReturnRequest));
             pinganApiLog.setResponseBody(payReturnRequest.getResultMsg()+"-"+payReturnRequest.getErrorMsg());
             pinganApiLogService.save(pinganApiLog);
+            return HttpResult.error("支付失败");
         }
-        return HttpResult.error("支付失败");
     }
 
     /**