Explorar o código

Merge branch 'refs/heads/master-20240326' into test

wks %!s(int64=2) %!d(string=hai) anos
pai
achega
fcea701184

+ 2 - 2
src/main/java/com/ydtech/modules/ins/model/yc/audit/Audit.java

@@ -273,8 +273,8 @@ public class Audit {
         //<taxATion>
         //<taxATion>
         TaxATion taxATion = new TaxATion();
         TaxATion taxATion = new TaxATion();
         taxATion.setCTaxType("338001");
         taxATion.setCTaxType("338001");
-        taxATion.setClntMark("1");
-//        taxATion.setClntMark("3");
+//        taxATion.setClntMark("1");
+        taxATion.setClntMark("3");
         taxATion.setTaxpayerComid(applyInfo.getIdentifyNumber());
         taxATion.setTaxpayerComid(applyInfo.getIdentifyNumber());
         taxATion.setTaxName(applyInfo.getName());
         taxATion.setTaxName(applyInfo.getName());
         taxATion.setClntAddress(applyInfo.getAddr());
         taxATion.setClntAddress(applyInfo.getAddr());

+ 5 - 5
src/main/java/com/ydtech/modules/order/components/zijin/ZijinRequestApiComponents.java

@@ -351,11 +351,11 @@ public class ZijinRequestApiComponents {
      * @param queryOrderDetailRequest 紫金财险 订单状态查询 入参实体
      * @param queryOrderDetailRequest 紫金财险 订单状态查询 入参实体
      * @return 出参实体
      * @return 出参实体
      */
      */
-    public QueryOrderStateResponse queryOrderDetail(QueryOrderDetailRequest queryOrderDetailRequest, HttpHeaders httpHeaders) {
-        return request(zijinApiConfigurationProperties.getOrderDetailUrl(), RequestUrl.QUERY_ORDER_DETAIL.getDesc(),
-                queryOrderDetailRequest, QueryOrderStateResponse.class, httpHeaders);
-    }
-
+//    public QueryOrderStateResponse queryOrderDetail(QueryOrderDetailRequest queryOrderDetailRequest, HttpHeaders httpHeaders) {
+//        return request(zijinApiConfigurationProperties.getOrderDetailUrl(), RequestUrl.QUERY_ORDER_DETAIL.getDesc(),
+//                queryOrderDetailRequest, QueryOrderStateResponse.class, httpHeaders);
+//    }
+//
 
 
     /**
     /**
      * 未缴费保单撤单
      * 未缴费保单撤单

+ 30 - 0
src/main/java/com/ydtech/modules/order/entity/api/zijin/constants/enums/UnderWriteFlagEnum.java

@@ -0,0 +1,30 @@
+package com.ydtech.modules.order.entity.api.zijin.constants.enums;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.Getter;
+
+
+/**
+ * @version
+ * @description: 核保状态代码
+ * @author: wenks
+ * @date: 2024/5/22 15:10
+ **/
+@AllArgsConstructor
+@Getter
+public enum UnderWriteFlagEnum {
+
+    U_0("0","未提交"),
+    U_1("1","已生效"),
+    U_2("2","待修改"),
+    U_4("4","待缴费"),
+    U_7("7","待复核"),
+    U_9("9","待核保");
+
+    private final String code;
+
+    private final String desc;
+
+}

+ 226 - 0
src/main/java/com/ydtech/modules/order/entity/api/zijin/response/QueryOrderDetailResponse.java

@@ -80,8 +80,234 @@ public class QueryOrderDetailResponse extends BaseResponse implements Serializab
         @JsonProperty("orderPolicyList")
         @JsonProperty("orderPolicyList")
         private List<OrderPolicyListDTO> orderPolicyList;
         private List<OrderPolicyListDTO> orderPolicyList;
 
 
+        @JsonProperty("baseInfo")
+        private BaseInfoDTO baseInfo;
+
     }
     }
 
 
+    @NoArgsConstructor
+    @Data
+    public static class BaseInfoDTO implements Serializable {
+
+        private static final long serialVersionUID = -4278242250316276923L;
+
+        @JsonProperty("policyNo")
+        private String policyNo;
+        @JsonProperty("proposalNo")
+        private String proposalNo;
+        @JsonProperty("policyNoCI")
+        private String policyNoCI;
+        @JsonProperty("proposalNoCI")
+        private String proposalNoCI;
+        @JsonProperty("underWriteFlag")
+        private String underWriteFlag;
+        @JsonProperty("underWriteFlagCI")
+        private String underWriteFlagCI;
+        @JsonProperty("underWriteMessageCI")
+        private String underWriteMessageCI;
+        @JsonProperty("underWriteMessage")
+        private String underWriteMessage;
+        @JsonProperty("ciApplicationStatus")
+        private String ciApplicationStatus;
+        @JsonProperty("applicationStatus")
+        private Object applicationStatus;
+        @JsonProperty("startDate")
+        private String startDate;
+        @JsonProperty("startHour")
+        private String startHour;
+        @JsonProperty("startMinute")
+        private String startMinute;
+        @JsonProperty("endDate")
+        private String endDate;
+        @JsonProperty("endHour")
+        private String endHour;
+        @JsonProperty("endMinute")
+        private String endMinute;
+        @JsonProperty("startDateCI")
+        private String startDateCI;
+        @JsonProperty("startHourCI")
+        private String startHourCI;
+        @JsonProperty("startMinuteCI")
+        private String startMinuteCI;
+        @JsonProperty("endDateCI")
+        private String endDateCI;
+        @JsonProperty("endHourCI")
+        private String endHourCI;
+        @JsonProperty("endMinuteCI")
+        private String endMinuteCI;
+        @JsonProperty("inputDate")
+        private String inputDate;
+        @JsonProperty("pnpDate")
+        private String pnpDate;
+        @JsonProperty("relationPolicyFlag")
+        private String relationPolicyFlag;
+        @JsonProperty("isInstantFlag")
+        private Object isInstantFlag;
+        @JsonProperty("autoTransRenewFlag")
+        private Object autoTransRenewFlag;
+        @JsonProperty("sumPremium")
+        private Object sumPremium;
+        @JsonProperty("sumPremiumCI")
+        private Object sumPremiumCI;
+        @JsonProperty("policyType")
+        private Object policyType;
+        @JsonProperty("invoiceType")
+        private Object invoiceType;
+        @JsonProperty("policyTypeCI")
+        private Object policyTypeCI;
+        @JsonProperty("invoiceTypeCI")
+        private Object invoiceTypeCI;
+        @JsonProperty("applicationType")
+        private Object applicationType;
+        @JsonProperty("calculateFlag")
+        private String calculateFlag;
+        @JsonProperty("sumAmount")
+        private Object sumAmount;
+        @JsonProperty("argueSolution")
+        private Object argueSolution;
+        @JsonProperty("arbitBoardName")
+        private Object arbitBoardName;
+        @JsonProperty("needKindCodes")
+        private Object needKindCodes;
+        @JsonProperty("answer")
+        private Object answer;
+        @JsonProperty("demandNo")
+        private String demandNo;
+        @JsonProperty("demandNoCI")
+        private Object demandNoCI;
+        @JsonProperty("answerCI")
+        private Object answerCI;
+        @JsonProperty("provinceCode")
+        private Object provinceCode;
+        @JsonProperty("provinceName")
+        private Object provinceName;
+        @JsonProperty("cityCode")
+        private Object cityCode;
+        @JsonProperty("cityName")
+        private Object cityName;
+        @JsonProperty("networkCode")
+        private Object networkCode;
+        @JsonProperty("networkName")
+        private Object networkName;
+        @JsonProperty("saveCustomerFlag")
+        private Object saveCustomerFlag;
+        @JsonProperty("introduceCode")
+        private Object introduceCode;
+        @JsonProperty("introduceName")
+        private Object introduceName;
+        @JsonProperty("introduceAgreementNo")
+        private Object introduceAgreementNo;
+        @JsonProperty("channelCode")
+        private Object channelCode;
+        @JsonProperty("channelName")
+        private Object channelName;
+        @JsonProperty("localCharge")
+        private Object localCharge;
+        @JsonProperty("floatCoefficient")
+        private Object floatCoefficient;
+        @JsonProperty("operationName")
+        private Object operationName;
+        @JsonProperty("operationGrade")
+        private Object operationGrade;
+        @JsonProperty("hospitalName")
+        private Object hospitalName;
+        @JsonProperty("outpatientNumber")
+        private Object outpatientNumber;
+        @JsonProperty("pbSourceType")
+        private Object pbSourceType;
+        @JsonProperty("anaesthesiaProject")
+        private Object anaesthesiaProject;
+        @JsonProperty("sumQuantity")
+        private Object sumQuantity;
+        @JsonProperty("isMajorOperation")
+        private Object isMajorOperation;
+        @JsonProperty("shareId")
+        private Object shareId;
+        @JsonProperty("insurancePeriod")
+        private Object insurancePeriod;
+        @JsonProperty("salesPerson")
+        private Object salesPerson;
+        @JsonProperty("professionalNum")
+        private Object professionalNum;
+        @JsonProperty("comCode")
+        private Object comCode;
+        @JsonProperty("handler1Code")
+        private Object handler1Code;
+        @JsonProperty("businessNature")
+        private Object businessNature;
+        @JsonProperty("agentCode")
+        private Object agentCode;
+        @JsonProperty("agreementNo")
+        private Object agreementNo;
+        @JsonProperty("discount")
+        private Object discount;
+        @JsonProperty("operatorCode")
+        private Object operatorCode;
+        @JsonProperty("othFlag")
+        private Object othFlag;
+        @JsonProperty("replationInfo")
+        private Object replationInfo;
+        @JsonProperty("exhibitAgencyAgreementNo")
+        private Object exhibitAgencyAgreementNo;
+        @JsonProperty("isDjq")
+        private String isDjq;
+        @JsonProperty("lcRate")
+        private Object lcRate;
+        @JsonProperty("forceDownModify")
+        private Object forceDownModify;
+        @JsonProperty("choosePremium")
+        private Object choosePremium;
+        @JsonProperty("split")
+        private Object split;
+        @JsonProperty("mixFlag")
+        private Object mixFlag;
+        @JsonProperty("xbFlag")
+        private Object xbFlag;
+        @JsonProperty("xbFlagCI")
+        private Object xbFlagCI;
+        @JsonProperty("machineCode")
+        private Object machineCode;
+        @JsonProperty("mergeFlag")
+        private Object mergeFlag;
+        @JsonProperty("goalInsuredFlag")
+        private Object goalInsuredFlag;
+        @JsonProperty("lender")
+        private Object lender;
+        @JsonProperty("renewalInfoDto")
+        private Object renewalInfoDto;
+        @JsonProperty("oldPolicyNo")
+        private Object oldPolicyNo;
+        @JsonProperty("uwRel")
+        private Object uwRel;
+        @JsonProperty("additionSumPremium")
+        private Double additionSumPremium;
+        @JsonProperty("visaCode")
+        private Object visaCode;
+        @JsonProperty("locTypeCode")
+        private Object locTypeCode;
+        @JsonProperty("projectId")
+        private Object projectId;
+        @JsonProperty("productGroupNo")
+        private Object productGroupNo;
+        @JsonProperty("quotationNo")
+        private String quotationNo;
+        @JsonProperty("installPayFlag")
+        private Object installPayFlag;
+        @JsonProperty("installPayYears")
+        private Object installPayYears;
+        @JsonProperty("productFlag")
+        private Object productFlag;
+        @JsonProperty("productId")
+        private Object productId;
+        @JsonProperty("merchandiseId")
+        private Object merchandiseId;
+        @JsonProperty("merchandiseCode")
+        private Object merchandiseCode;
+        @JsonProperty("noCarAttachmentFileDtoList")
+        private Object noCarAttachmentFileDtoList;
+    }
+
+
     @NoArgsConstructor
     @NoArgsConstructor
     @Data
     @Data
     public static class OrderPolicyListDTO implements Serializable {
     public static class OrderPolicyListDTO implements Serializable {

+ 34 - 30
src/main/java/com/ydtech/modules/order/service/impl/ZijinOrderApiServiceImpl.java

@@ -18,10 +18,7 @@ import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving;
 import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.TaxArrears;
 import com.ydtech.modules.order.entity.TaxArrears;
-import com.ydtech.modules.order.entity.api.zijin.constants.enums.BusType;
-import com.ydtech.modules.order.entity.api.zijin.constants.enums.OrderStatusEnum;
-import com.ydtech.modules.order.entity.api.zijin.constants.enums.ResultEnum;
-import com.ydtech.modules.order.entity.api.zijin.constants.enums.RiskCodeEnum;
+import com.ydtech.modules.order.entity.api.zijin.constants.enums.*;
 import com.ydtech.modules.order.entity.api.zijin.request.*;
 import com.ydtech.modules.order.entity.api.zijin.request.*;
 import com.ydtech.modules.order.entity.api.zijin.response.*;
 import com.ydtech.modules.order.entity.api.zijin.response.*;
 import com.ydtech.modules.order.entity.config.ZjConfigureParameters;
 import com.ydtech.modules.order.entity.config.ZjConfigureParameters;
@@ -225,24 +222,20 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
 
 
         } catch (SystemException systemException) {
         } catch (SystemException systemException) {
             // 下发修改
             // 下发修改
-            QueryOrderDetailRequest queryOrderDetailRequest = new QueryOrderDetailRequest(insAreaCompany.getInsOrderNo());
-            QueryOrderStateResponse queryOrderStateResponse = zijinRequestApiComponents.queryOrderDetail(queryOrderDetailRequest,
-                    httpHeaders);
-            String uwFlag = queryOrderStateResponse.getUwFlag();
-            if (OrderStatusEnum.O_3.getCode().equals(uwFlag)) {
-                insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
-                String uwMsg = queryOrderStateResponse.getUwMsg();
-                if (StringUtils.isEmpty(uwMsg)) {
-                    uwMsg = systemException.getMessage();
-                }
-
-                // 人工核保
-                if (uwFlag.contains(OrderStatusEnum.O_1000.getName())) {
-                    insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
-                }
+            OrderNoRequest orderNoRequest = new OrderNoRequest(insAreaCompany.getId());
+            QueryOrderDetailResponse queryOrderDetailResponse = zijinRequestApiComponents.getOrderDetail(orderNoRequest, httpHeaders);
+            QueryOrderDetailResponse.ResultObjDTO resultObj = queryOrderDetailResponse.getResultObj();
+            String uwMsg = systemException.getMessage();
 
 
+            if (OrderStatusEnum.O_3.getCode().equals(resultObj.getOrderStatus())) {
+                insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
                 insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
                 insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
                 return HttpResult.error(OrderStatusEnum.O_3.getName() + ":" + uwMsg);
                 return HttpResult.error(OrderStatusEnum.O_3.getName() + ":" + uwMsg);
+                // 人工核保
+            } else if (OrderStatusEnum.O_1.getCode().equals(resultObj.getOrderStatus())) {
+                insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
+                insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+                return HttpResult.error("人工核保" + ":" + uwMsg);
             }
             }
 
 
             throw new SystemException(systemException.getMessage());
             throw new SystemException(systemException.getMessage());
@@ -425,18 +418,22 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
                 ptlAgreementAttribution);
                 ptlAgreementAttribution);
         HttpHeaders httpHeaders = zijinRequestApiComponents.getHttpHeaders(insAreaCompany.getAgreementId());
         HttpHeaders httpHeaders = zijinRequestApiComponents.getHttpHeaders(insAreaCompany.getAgreementId());
         // 2 请求查看订单状态
         // 2 请求查看订单状态
-        QueryOrderDetailRequest queryOrderDetailRequest = new QueryOrderDetailRequest(insAreaCompany.getInsOrderNo());
-        QueryOrderStateResponse response = zijinRequestApiComponents.queryOrderDetail(queryOrderDetailRequest,
-                httpHeaders);
+
+
+        OrderNoRequest orderNoRequest = new OrderNoRequest(insAreaCompany.getId());
+        QueryOrderDetailResponse queryOrderDetailResponse = zijinRequestApiComponents.getOrderDetail(orderNoRequest, httpHeaders);
+
         // 3. 订单生效以后修改状态
         // 3. 订单生效以后修改状态
-        String uwFlag = response.getUwFlag();
+        QueryOrderDetailResponse.ResultObjDTO resultObj = queryOrderDetailResponse.getResultObj();
+
+        if (OrderStatusEnum.O_2.getCode().equals(resultObj.getOrderStatus())) {
+            QueryOrderDetailResponse.BaseInfoDTO baseInfo = queryOrderDetailResponse.getResultObj().getBaseInfo();
 
 
-        if (OrderStatusEnum.O_2.getCode().equals(uwFlag)) {
-            insAreaCompany.setJqpolicyno(response.getTciProposalNo());
-            insAreaCompany.setSypolicyno(response.getVciProposalNo());
+            insAreaCompany.setJqpolicyno(baseInfo.getPolicyNoCI());
+            insAreaCompany.setSypolicyno(baseInfo.getPolicyNo());
             // 2.2 投保单号
             // 2.2 投保单号
-            insAreaCompany.setJqapplyno(response.getTciPolicyNo());
-            insAreaCompany.setSyapplyno(response.getVciPolicyNo());
+            insAreaCompany.setJqapplyno(baseInfo.getProposalNoCI());
+            insAreaCompany.setSyapplyno(baseInfo.getProposalNo());
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
             // 3. 聚合支付服务
             // 3. 聚合支付服务
             BigDecimal multiply = insAreaCompany.getSumpremium().multiply(new BigDecimal(100));
             BigDecimal multiply = insAreaCompany.getSumpremium().multiply(new BigDecimal(100));
@@ -447,10 +444,17 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
             insAreaCompany.setPaymentLink(zbfAggregatePayResponse.getPayUrl());
             insAreaCompany.setPaymentLink(zbfAggregatePayResponse.getPayUrl());
             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
             return HttpResult.ok("核保成功");
             return HttpResult.ok("核保成功");
-        } else if (OrderStatusEnum.O_3.getCode().equals(uwFlag)) {
+        } else if (OrderStatusEnum.O_3.getCode().equals(resultObj.getOrderStatus())) {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
-            return HttpResult.error(OrderStatusEnum.O_3.getName() + ":" + response.getUwMsg());
+
+            List<QueryOrderDetailResponse.OrderPolicyListDTO> orderPolicyListDTOS = resultObj.getOrderPolicyList()
+                    .stream()
+                    .filter(x -> UnderWriteFlagEnum.U_2.getCode().equals(x.getUnderWriteFlag()))
+                    .collect(Collectors.toList());
+            QueryOrderDetailResponse.OrderPolicyListDTO orderPolicyListDTO = orderPolicyListDTOS.get(0);
+
+            return HttpResult.error(OrderStatusEnum.O_3.getName() + ":" + orderPolicyListDTO.getUnderWriteMessage());
         }
         }
 
 
         return HttpResult.ok("核保状态未修改");
         return HttpResult.ok("核保状态未修改");