Преглед изворни кода

Merge branch 'refs/heads/test-underwriting-status' into test

wks пре 2 година
родитељ
комит
8cf51315df
22 измењених фајлова са 405 додато и 145 уклоњено
  1. 3 0
      src/main/java/com/ydtech/constants/enums/dict/InsOrderStatusEnum.java
  2. 8 11
      src/main/java/com/ydtech/modules/ins/utils/CompressUtil.java
  3. 34 0
      src/main/java/com/ydtech/modules/order/controller/InsOrdersUnderwriting.java
  4. 18 0
      src/main/java/com/ydtech/modules/order/dao/InsOrdersUnderwritingReasonMapper.java
  5. 4 0
      src/main/java/com/ydtech/modules/order/entity/api/bohai/response/StatusDocumentsResponse.java
  6. 1 1
      src/main/java/com/ydtech/modules/order/entity/api/dajia/response/ODR1010Response.java
  7. 98 0
      src/main/java/com/ydtech/modules/order/entity/po/InsOrdersUnderwritingReason.java
  8. 4 0
      src/main/java/com/ydtech/modules/order/entity/vo/OrderVo.java
  9. 21 0
      src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java
  10. 30 0
      src/main/java/com/ydtech/modules/order/service/InsOrdersUnderwritingReasonService.java
  11. 6 6
      src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java
  12. 49 92
      src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java
  13. 12 5
      src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java
  14. 16 17
      src/main/java/com/ydtech/modules/order/service/impl/HuaTaiOrderApiServiceImpl.java
  15. 12 0
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java
  16. 4 2
      src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java
  17. 7 2
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  18. 49 0
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersUnderwritingReasonServiceImpl.java
  19. 2 2
      src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java
  20. 3 2
      src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java
  21. 5 5
      src/main/java/com/ydtech/modules/order/service/impl/ZijinOrderApiServiceImpl.java
  22. 19 0
      src/main/resources/mapper/modules/order/InsOrdersUnderwritingReasonMapper.xml

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

@@ -51,5 +51,8 @@ public enum InsOrderStatusEnum implements IBaseEnum {
         return result;
     }
 
+    public static String[] getRefuseUnderwriting() {
+        return new String[]{WAIT_AUDIT.getCode(), TO_BACK.getCode()};
+    }
 
 }

+ 8 - 11
src/main/java/com/ydtech/modules/ins/utils/CompressUtil.java

@@ -108,14 +108,11 @@ public class CompressUtil {
     }
 
     /**
-     * @param source
-     *            原始文件路径
-     * @param dest
-     *            解压路径
-     * @param password
-     *            解压文件密码(可以为空)
+     * @param source   原始文件路径
+     * @param dest     解压路径
+     * @param password 解压文件密码(可以为空)
      */
-    public static void unZip(String source, String dest, String password,String fileName,String licensePlate) {
+    public static void unZip(String source, String dest, String password, String fileName, String licensePlate) {
         try {
             File zipFile = new File(source);
             // 首先创建ZipFile指向磁盘上的.zip文件
@@ -141,10 +138,10 @@ public class CompressUtil {
             File[] extractedFiles = new File[extractedFileList.size()];
             extractedFileList.toArray(extractedFiles);
             for (File f : extractedFileList) {
-                if(f.getName().contains("_bz6")){
-                    f.renameTo(new File(dest+licensePlate+"-交强险标志.pdf"));
-                }else{
-                    f.renameTo(new File(dest+fileName));
+                if (f.getName().contains("_bz")) {
+                    f.renameTo(new File(dest + fileName + "标志.pdf"));
+                } else {
+                    f.renameTo(new File(dest + fileName + "保单.pdf"));
                 }
                 System.out.println(f.getAbsolutePath() + "文件解压成功!");
             }

+ 34 - 0
src/main/java/com/ydtech/modules/order/controller/InsOrdersUnderwriting.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.order.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.order.entity.InsAreaCompany;
+import com.ydtech.modules.order.service.InsAreaCompanyService;
+import com.ydtech.modules.order.service.impl.InsOrdersUnderwritingReasonServiceImpl;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "核保数据")
+@RequestMapping("/insurance/underwriting")
+@RestController
+@RequiredArgsConstructor
+public class InsOrdersUnderwriting {
+
+    private final InsOrdersUnderwritingReasonServiceImpl insOrdersUnderwritingReasonService;
+
+    private final InsAreaCompanyService insAreaCompanyService;
+
+    @GetMapping("/cause/{subNoOrder}")
+    @ApiOperation("获取核保原因")
+    public HttpResult<String> cause(@PathVariable String subNoOrder) {
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subNoOrder);
+        String insOrdersUnderwritingReason = insOrdersUnderwritingReasonService.getInsOrdersUnderwritingReason(subNoOrder, insAreaCompany.getOrderstatus());
+        return HttpResult.ok(insOrdersUnderwritingReason);
+    }
+
+}

+ 18 - 0
src/main/java/com/ydtech/modules/order/dao/InsOrdersUnderwritingReasonMapper.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.order.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.order.entity.po.InsOrdersUnderwritingReason;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_underwriting_reason(核保不通过原因)】的数据库操作Mapper
+* @createDate 2024-09-04 09:36:38
+* @Entity generator.domain.InsOrdersUnderwritingReason
+*/
+public interface InsOrdersUnderwritingReasonMapper extends BaseMapper<InsOrdersUnderwritingReason> {
+
+}
+
+
+
+

+ 4 - 0
src/main/java/com/ydtech/modules/order/entity/api/bohai/response/StatusDocumentsResponse.java

@@ -44,6 +44,10 @@ public class StatusDocumentsResponse extends BoHaiBaseResponse {
 
             @JsonProperty("status")
             private String status;
+
+            @JsonProperty("auditOpinion")
+            private String auditOpinion;
+
         }
     }
 }

+ 1 - 1
src/main/java/com/ydtech/modules/order/entity/api/dajia/response/ODR1010Response.java

@@ -33,7 +33,7 @@ public class ODR1010Response extends DaJiaBaseResponse {
         @JsonProperty("jqAppStatus")
         private Object jqAppStatus;
         @JsonProperty("jqAppStatusMessage")
-        private Object jqAppStatusMessage;
+        private String jqAppStatusMessage;
         @JsonProperty("syProposalNo")
         private String syProposalNo;
         @JsonProperty("syAppStatus")

+ 98 - 0
src/main/java/com/ydtech/modules/order/entity/po/InsOrdersUnderwritingReason.java

@@ -0,0 +1,98 @@
+package com.ydtech.modules.order.entity.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 核保不通过原因
+ * @TableName ins_orders_underwriting_reason
+ */
+@TableName(value ="ins_orders_underwriting_reason")
+@Data
+public class InsOrdersUnderwritingReason implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 子订单号
+     */
+    @TableField(value = "sub_no_order")
+    private String subNoOrder;
+
+    /**
+     * 报价状态
+     */
+    @TableField(value = "order_status")
+    private String orderStatus;
+
+    /**
+     * 退回原因
+     */
+    @TableField(value = "reason")
+    private String reason;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        InsOrdersUnderwritingReason other = (InsOrdersUnderwritingReason) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getSubNoOrder() == null ? other.getSubNoOrder() == null : this.getSubNoOrder().equals(other.getSubNoOrder()))
+            && (this.getOrderStatus() == null ? other.getOrderStatus() == null : this.getOrderStatus().equals(other.getOrderStatus()))
+            && (this.getReason() == null ? other.getReason() == null : this.getReason().equals(other.getReason()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getSubNoOrder() == null) ? 0 : getSubNoOrder().hashCode());
+        result = prime * result + ((getOrderStatus() == null) ? 0 : getOrderStatus().hashCode());
+        result = prime * result + ((getReason() == null) ? 0 : getReason().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", subNoOrder=").append(subNoOrder);
+        sb.append(", orderStatus=").append(orderStatus);
+        sb.append(", reason=").append(reason);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 4 - 0
src/main/java/com/ydtech/modules/order/entity/vo/OrderVo.java

@@ -503,4 +503,8 @@ public class OrderVo implements Serializable {
 
     @ApiModelProperty(value = "机构来源(渠道、个代)")
     private String source;
+
+    @ApiModelProperty(value = "核保原因")
+    private String underwritingReason;
+
 }

+ 21 - 0
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java

@@ -12,6 +12,7 @@ import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -47,6 +48,17 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      */
     void updateCompanyAndOrders(InsAreaCompany insAreaCompany);
 
+    /**
+     * 修改子订单 并且修改订单状态
+     *
+     * @param insAreaCompany
+     */
+    @Transactional
+    default void updateCompanyAndOrdersMessage(InsAreaCompany insAreaCompany, String messages){
+        updateCompanyAndOrders(insAreaCompany);
+        saveInsOrdersUnderwritingReason(insAreaCompany.getId(), messages, insAreaCompany.getOrderstatus());
+    }
+
 
     /**
      * 修改子订单 并且修改订单状态 最新
@@ -190,4 +202,13 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      *  @Description:  通过用户id查询到导出的数据
      */
     Double getOrderPremiumByUserIds(List<String> ids);
+
+
+    /**
+     * 保存核保退回原因
+     * @param subNoOrder 子订单号
+     * @param message 退回原因
+     * @param orderStatus 订单状态
+     */
+    void saveInsOrdersUnderwritingReason(String subNoOrder, String message, String orderStatus);
 }

+ 30 - 0
src/main/java/com/ydtech/modules/order/service/InsOrdersUnderwritingReasonService.java

@@ -0,0 +1,30 @@
+package com.ydtech.modules.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.order.entity.po.InsOrdersUnderwritingReason;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_underwriting_reason(核保不通过原因)】的数据库操作Service
+* @createDate 2024-09-04 09:36:38
+*/
+public interface InsOrdersUnderwritingReasonService extends IService<InsOrdersUnderwritingReason> {
+
+    /**
+     * 保存核保退回原因
+     * @param subNoOrder 子订单号
+     * @param message 退回原因
+     * @param orderStatus 订单状态
+     */
+    void saveInsOrdersUnderwritingReason(String subNoOrder, String message, String orderStatus);
+
+
+    /**
+     * 获取最新的
+     * @param subNoOrder 订单号
+     * @param orderStatus 订单状态
+     * @return 核保退回原因
+     */
+    String getInsOrdersUnderwritingReason(String subNoOrder, String orderStatus);
+
+}

+ 6 - 6
src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java

@@ -28,10 +28,7 @@ import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.entity.vo.bohai.BoHaiQuoteAccidentVo;
 import com.ydtech.modules.order.entity.vo.bohai.ProductDetailsQueryVo;
 import com.ydtech.modules.order.entity.vo.bohai.ProductQueryVo;
-import com.ydtech.modules.order.service.BoHaiOrderApiService;
-import com.ydtech.modules.order.service.InsAreaCompanyService;
-import com.ydtech.modules.order.service.InsOrdersService;
-import com.ydtech.modules.order.service.InsTaskImagesService;
+import com.ydtech.modules.order.service.*;
 import com.ydtech.modules.order.utils.StringSubStringUtils;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
@@ -67,6 +64,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
 
     private final FileComponents fileComponents;
 
+    private final InsOrdersUnderwritingReasonService insOrdersUnderwritingReasonService;
+
     @Override
     public HttpResult<List<NonAutomotiveProductsResponse.DataDTO.ProductsDTO>> productQuery(ProductQueryVo productQueryVo) throws Exception {
         // 账号信息
@@ -378,8 +377,9 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         }
         String trafficResultMsg = data.getTrafficResultMsg();
         String businessResultMsg = data.getBusinessResultMsg();
-        insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
-        return HttpResult.error(trafficResultMsg + "/n" + businessResultMsg);
+        String message = trafficResultMsg + "/n" + businessResultMsg;
+        insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, message);
+        return HttpResult.error(message);
     }
 
     @Override

+ 49 - 92
src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java

@@ -142,14 +142,9 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
      * @return
      * @throws Exception
      */
-    private ODR1008Response confirmationVehicleCustomerInformation(String orderNo, String busiId, BaseQuoteInfoVo quoteInfoVo,
-                                                                   DaJiaConfigureParameters daJiaConfigureParameters,
-                                                                   ODR2009Response odr2009Request, PersonAreaVo policyHolderPersonArea,
-                                                                   PersonAreaVo insuredPersonArea, PersonAreaVo ownerPersonArea,
-                                                                   CoreModelsVo coreModelsVo) throws Exception {
-
-        ODR1008Request odr1008Request = new ODR1008Request(orderNo, busiId, quoteInfoVo, daJiaConfigureParameters, odr2009Request,
-                policyHolderPersonArea, insuredPersonArea, ownerPersonArea, coreModelsVo);
+    private ODR1008Response confirmationVehicleCustomerInformation(String orderNo, String busiId, BaseQuoteInfoVo quoteInfoVo, DaJiaConfigureParameters daJiaConfigureParameters, ODR2009Response odr2009Request, PersonAreaVo policyHolderPersonArea, PersonAreaVo insuredPersonArea, PersonAreaVo ownerPersonArea, CoreModelsVo coreModelsVo) throws Exception {
+
+        ODR1008Request odr1008Request = new ODR1008Request(orderNo, busiId, quoteInfoVo, daJiaConfigureParameters, odr2009Request, policyHolderPersonArea, insuredPersonArea, ownerPersonArea, coreModelsVo);
         ODR1008Response odr1008Response = daJiaRequestApiComponents.carOrCustomInfoConfirm(odr1008Request);
         if (odr1008Response.getStatus().equals(Message.M0000.getCode())) {
             //车辆与客户信息确认返回
@@ -175,20 +170,17 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(t.getAgreementId());
 
             //车主区划信息
-            PersonAreaVo ownerPersonArea = sysAreaService.queryByAddress(quoteInfoVo.getOwnerInfo().getAddr(),
-                    quoteInfoVo.getOwnerInfo().getIdentifyNumber());
+            PersonAreaVo ownerPersonArea = sysAreaService.queryByAddress(quoteInfoVo.getOwnerInfo().getAddr(), quoteInfoVo.getOwnerInfo().getIdentifyNumber());
 
             //投保人区划信息
-            PersonAreaVo policyHolderPersonArea = sysAreaService.queryByAddress(quoteInfoVo.getPolicyHolderInfo().getAddr(),
-                    quoteInfoVo.getPolicyHolderInfo().getIdentifyNumber());
+            PersonAreaVo policyHolderPersonArea = sysAreaService.queryByAddress(quoteInfoVo.getPolicyHolderInfo().getAddr(), quoteInfoVo.getPolicyHolderInfo().getIdentifyNumber());
             PersonAreaVo insuredPersonArea;
             //投保人等于被保人
             if (quoteInfoVo.getPolicyHolderInfo().getIdentifyNumber().equals(quoteInfoVo.getInsuredPersonInfo().getIdentifyNumber())) {
                 insuredPersonArea = policyHolderPersonArea;
             } else {
                 //被保人区划信息
-                insuredPersonArea = sysAreaService.queryByAddress(quoteInfoVo.getInsuredPersonInfo().getAddr(),
-                        quoteInfoVo.getInsuredPersonInfo().getIdentifyNumber());
+                insuredPersonArea = sysAreaService.queryByAddress(quoteInfoVo.getInsuredPersonInfo().getAddr(), quoteInfoVo.getInsuredPersonInfo().getIdentifyNumber());
             }
 
             // 1.获取业务订单号接口
@@ -206,8 +198,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             // 3.车辆与客户信息确认
             CoreModelsVo coreModelsVo = new CoreModelsVo();
 
-            ODR1008Response odr1008Response = confirmationVehicleCustomerInformation(orderNo, busiId, quoteInfoVo,
-                    daJiaConfigureParameters, odr2009Response, policyHolderPersonArea, insuredPersonArea, ownerPersonArea, coreModelsVo);
+            ODR1008Response odr1008Response = confirmationVehicleCustomerInformation(orderNo, busiId, quoteInfoVo, daJiaConfigureParameters, odr2009Response, policyHolderPersonArea, insuredPersonArea, ownerPersonArea, coreModelsVo);
             if (!odr1008Response.getStatus().equals(Message.M0000.getCode())) {
                 return HttpResult.error("车辆与客户信息确认接口失败");
             }
@@ -235,8 +226,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             List<InsAccidentalDrivingSubDajia> listByAccId = null;
             if (!Objects.isNull(accidentalDrivingVo) && !accidentalDrivingVo.isEmpty()) {
                 //驾意险
-                accidentalDriving = getAccidentalDrivingByCode(accidentalDrivingVo.getString("rideRiskCode"),
-                        accidentalDrivingVo.getInteger("quantity"));
+                accidentalDriving = getAccidentalDrivingByCode(accidentalDrivingVo.getString("rideRiskCode"), accidentalDrivingVo.getInteger("quantity"));
                 insAreaCompanyAccidentalDriving.setRideRiskCode(accidentalDrivingVo.getString("rideRiskCode"));
                 insAreaCompanyAccidentalDriving.setRideRiskName(accidentalDrivingVo.getString("rideRiskName"));
                 insAreaCompanyAccidentalDriving.setQuantity(accidentalDrivingVo.getInteger("quantity"));
@@ -244,8 +234,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                 listByAccId = insAccidentalDrivingSubDaJiaService.getListByAccId(accidentalDriving.getId());
             }
             //6.报价
-            ODR1009Response odr1009Response = quotation(orderNo, kindList, riskList, quoteInfoVo, odr1016Response, accidentalDriving,
-                    listByAccId, daJiaConfigureParameters, isEnergy);
+            ODR1009Response odr1009Response = quotation(orderNo, kindList, riskList, quoteInfoVo, odr1016Response, accidentalDriving, listByAccId, daJiaConfigureParameters, isEnergy);
 
             NVHLODR1001Response nvhlodr1001Response = null;
 
@@ -254,8 +243,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
                 if (!Objects.isNull(accidentalDrivingVo) && !accidentalDrivingVo.isEmpty()) {
                     //6.驾意险报价
-                    NVHLODR1001Request nvhlodr1001Request = new NVHLODR1001Request(daJiaConfigureParameters, odr1009Response, quoteInfoVo
-                            , accidentalDriving, accidentalDrivingVo.getString("quantity"), policyHolderPersonArea, insuredPersonArea);
+                    NVHLODR1001Request nvhlodr1001Request = new NVHLODR1001Request(daJiaConfigureParameters, odr1009Response, quoteInfoVo, accidentalDriving, accidentalDrivingVo.getString("quantity"), policyHolderPersonArea, insuredPersonArea);
                     nvhlodr1001Response = daJiaRequestApiComponents.accidentPremiumCalculation(nvhlodr1001Request);
                     if (!"2000".equals(nvhlodr1001Response.getStatus())) {
                         return HttpResult.error("驾意险报价失败");
@@ -267,8 +255,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
                 // 设置报价车型
                 quoteRespVo.setCoreModels(coreModelsVo);
-                HttpResult<QuoteRespVo> quoteRespVoHttpResult = responseOrder(odr1009Response, quoteRespVo, ptlAgreementAttribution,
-                        orderNo, quoteInfoVo, busiId, nvhlodr1001Response,insAreaCompanyAccidentalDriving);
+                HttpResult<QuoteRespVo> quoteRespVoHttpResult = responseOrder(odr1009Response, quoteRespVo, ptlAgreementAttribution, orderNo, quoteInfoVo, busiId, nvhlodr1001Response, insAreaCompanyAccidentalDriving);
                 return quoteRespVoHttpResult;
             } else {
                 if (Message.M0003.getCode().equals(odr1009Response.getStatus())) {
@@ -339,21 +326,14 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
      * @return
      * @throws Exception
      */
-    public ODR1009Response quotation(String orderNo, List<KindInfoVo> kindInfoVos, List<RiskInfoVo> riskInfoVos,
-                                     BaseQuoteInfoVo quoteInfoVo, ODR1016Response odr1016Response,
-                                     InsAccidentalDrivingDajia insAccidentalDrivingDajia,
-                                     List<InsAccidentalDrivingSubDajia> insAccidentalDrivingSubDajias,
-                                     DaJiaConfigureParameters daJiaConfigureParameters, boolean isEnergy) throws Exception {
-
-        ODR1009Request odr1009Request = new ODR1009Request(orderNo, kindInfoVos, riskInfoVos, quoteInfoVo, odr1016Response,
-                insAccidentalDrivingDajia, insAccidentalDrivingSubDajias, daJiaConfigureParameters, isEnergy);
+    public ODR1009Response quotation(String orderNo, List<KindInfoVo> kindInfoVos, List<RiskInfoVo> riskInfoVos, BaseQuoteInfoVo quoteInfoVo, ODR1016Response odr1016Response, InsAccidentalDrivingDajia insAccidentalDrivingDajia, List<InsAccidentalDrivingSubDajia> insAccidentalDrivingSubDajias, DaJiaConfigureParameters daJiaConfigureParameters, boolean isEnergy) throws Exception {
+
+        ODR1009Request odr1009Request = new ODR1009Request(orderNo, kindInfoVos, riskInfoVos, quoteInfoVo, odr1016Response, insAccidentalDrivingDajia, insAccidentalDrivingSubDajias, daJiaConfigureParameters, isEnergy);
         ODR1009Response odr1009Response = daJiaRequestApiComponents.newPremiumXnyCalculation(odr1009Request);
         if (odr1009Response.getStatus().equals(Message.M0002.getCode())) {
             //获取重复投保信息
-            String jqAppStatusMessage = odr1009Response.getResult().getJqAppStatusMessage() == null ? "" :
-                    odr1009Response.getResult().getJqAppStatusMessage().toString();
-            String syAppStatusMessage = odr1009Response.getResult().getReInsuredInfo() == null ? "" :
-                    odr1009Response.getResult().getReInsuredInfo();
+            String jqAppStatusMessage = odr1009Response.getResult().getJqAppStatusMessage() == null ? "" : odr1009Response.getResult().getJqAppStatusMessage().toString();
+            String syAppStatusMessage = odr1009Response.getResult().getReInsuredInfo() == null ? "" : odr1009Response.getResult().getReInsuredInfo();
             if (jqAppStatusMessage.contains("重复投保") || syAppStatusMessage.contains("重复投保")) {
                 //交强重复投保
                 for (RiskInfoVo riskInfoVo : riskInfoVos) {
@@ -371,18 +351,14 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                         riskInfoVo.setEndDate(duplicateDate.get(1));
                     }
                 }
-                return quotation(orderNo, kindInfoVos, riskInfoVos, quoteInfoVo, odr1016Response, insAccidentalDrivingDajia,
-                        insAccidentalDrivingSubDajias, daJiaConfigureParameters, isEnergy);
+                return quotation(orderNo, kindInfoVos, riskInfoVos, quoteInfoVo, odr1016Response, insAccidentalDrivingDajia, insAccidentalDrivingSubDajias, daJiaConfigureParameters, isEnergy);
             }
         }
         return odr1009Response;
     }
 
 
-    public HttpResult<QuoteRespVo> responseOrder(ODR1009Response odr1009Response, QuoteRespVo quoteRespVo,
-                                                 PtlAgreementAttribution ptlAgreementAttribution, String orderId,
-                                                 BaseQuoteInfoVo quoteInfoVo, String busiId, NVHLODR1001Response nvhlodr1001Response,
-                                                 InsAreaCompanyAccidentalDriving insAreaCompanyAccidentalDriving) {
+    public HttpResult<QuoteRespVo> responseOrder(ODR1009Response odr1009Response, QuoteRespVo quoteRespVo, PtlAgreementAttribution ptlAgreementAttribution, String orderId, BaseQuoteInfoVo quoteInfoVo, String busiId, NVHLODR1001Response nvhlodr1001Response, InsAreaCompanyAccidentalDriving insAreaCompanyAccidentalDriving) {
         // 保存订单信息
         InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
         // 协议id
@@ -407,14 +383,13 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
         if (!Objects.isNull(nvhlodr1001Response)) {
             insAreaCompany.setCrossInsurance(JSONArray.parseArray(JSON.toJSONString(nvhlodr1001Response.getPolicyInfos())));
         }
-        insAreaCompanyService.insertCompanyAndOrders(insAreaCompany,insAreaCompanyAccidentalDriving);
+        insAreaCompanyService.insertCompanyAndOrders(insAreaCompany, insAreaCompanyAccidentalDriving);
         quoteRespVo.setCompanyId(companyId);
         quoteRespVo.setOrderno(quoteInfoVo.getOrderNo());
         // 车船税
         ODR1009Response.ResultDTO.VehicleTaxationDTO carShipTax = odr1009Response.getResult().getVehicleTaxation();
         if (!Objects.isNull(carShipTax)) {
-            TaxArrears taxArrears = new TaxArrears("往年欠税", Double.parseDouble(carShipTax.getTaxableAmt()),
-                    Double.parseDouble(carShipTax.getTaxOverdueAmt()));
+            TaxArrears taxArrears = new TaxArrears("往年欠税", Double.parseDouble(carShipTax.getTaxableAmt()), Double.parseDouble(carShipTax.getTaxOverdueAmt()));
             List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
             insAreaCompany.setTaxArrears(JSON.parseArray(JSON.toJSONString(taxArrearsList)));
         }
@@ -454,8 +429,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
     }
 
 
-    public QuoteRespVo getQuoteRespVo(ODR1009Response odr1009Response, BaseQuoteInfoVo yaQuoteInfoVo,
-                                      NVHLODR1001Response nvhlodr1001Response) {
+    public QuoteRespVo getQuoteRespVo(ODR1009Response odr1009Response, BaseQuoteInfoVo yaQuoteInfoVo, NVHLODR1001Response nvhlodr1001Response) {
         double jqPremium = 0;
         double syPremium = 0;
         double sumPayTax = 0;
@@ -587,19 +561,16 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             configureParametersComponents.toEntity(daJiaConfigureParameters, insAreaCompany.getAgreementId());
 
             //1009返回数据
-            ODR1009Response.ResultDTO resultDTO = JSONObject.parseObject(JSON.toJSONString(insAreaCompany.getReptxt()),
-                    ODR1009Response.ResultDTO.class);
+            ODR1009Response.ResultDTO resultDTO = JSONObject.parseObject(JSON.toJSONString(insAreaCompany.getReptxt()), ODR1009Response.ResultDTO.class);
 
             //驾意险 返回数据
             List<NVHLODR1001Response.policyInfosDTO> policyInfosDTOS = null;
             if (!Objects.isNull(insAreaCompany.getCrossInsurance())) {
-                policyInfosDTOS = JSON.parseArray(JSON.toJSONString(insAreaCompany.getCrossInsurance()),
-                        NVHLODR1001Response.policyInfosDTO.class);
+                policyInfosDTOS = JSON.parseArray(JSON.toJSONString(insAreaCompany.getCrossInsurance()), NVHLODR1001Response.policyInfosDTO.class);
             }
 
             //核保构造request
-            ODR1010Request odr1010Request = new ODR1010Request(insAreaCompany.getInsOrderNo(), insAreaCompany.getReptxt().getString(
-                    "busiId"), daJiaConfigureParameters, resultDTO, insOrders);
+            ODR1010Request odr1010Request = new ODR1010Request(insAreaCompany.getInsOrderNo(), insAreaCompany.getReptxt().getString("busiId"), daJiaConfigureParameters, resultDTO, insOrders);
             ODR1010Response odr1010Response = daJiaRequestApiComponents.underwriting(odr1010Request);
             if (odr1010Response.getStatus().equals(Message.M0000.getCode())) {
                 if ("0".equals(odr1010Response.getResult().getJqAppStatus()) || "0".equals(odr1010Response.getResult().getSyAppStatus())) {
@@ -612,17 +583,17 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                 if ("1".equals(odr1010Response.getResult().getJqAppStatus()) || "1".equals(odr1010Response.getResult().getSyAppStatus())) {
                     //修改状态 转人工
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
-                    insAreaCompanyService.updateById(insAreaCompany);
-                    if ("1".equals(odr1010Response.getResult().getJqAppStatus())) {
-                        return HttpResult.error("自核转人工,原因:" + odr1010Response.getResult().getJqAppStatusMessage());
-                    } else {
-                        return HttpResult.error("自核转人工,原因:" + odr1010Response.getResult().getSyAppStatusMessage());
-                    }
+                    String message = "";
+                    String jqAppStatusMessage = odr1010Response.getResult().getJqAppStatusMessage();
+                    String syAppStatusMessage = odr1010Response.getResult().getSyAppStatusMessage();
+                    message = message + jqAppStatusMessage;
+                    message = message + syAppStatusMessage;
+                    insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, message);
+                    return HttpResult.error("自核转人工,原因:" + message);
                 }
                 //核保成功  获取支付二维码
                 //延迟3秒 等待生成
-                ODR1011Request odr1011Request = new ODR1011Request(insAreaCompany.getInsOrderNo(), daJiaConfigureParameters,
-                        policyInfosDTOS);
+                ODR1011Request odr1011Request = new ODR1011Request(insAreaCompany.getInsOrderNo(), daJiaConfigureParameters, policyInfosDTOS);
                 ODR1011Response payNo = null;
                 boolean flag = true;
                 Integer frequencyControl = 0;
@@ -671,8 +642,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
     public HttpResult<Object> submitImage(String companyId) {
         try {
             InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
-            List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insAreaCompany.getOrderno(),
-                    insAreaCompany.getId());
+            List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insAreaCompany.getOrderno(), insAreaCompany.getId());
             //获取公司配置信息
             DaJiaConfigureParameters daJiaConfigureParameters = new DaJiaConfigureParameters();
             configureParametersComponents.toEntity(daJiaConfigureParameters, insAreaCompany.getAgreementId());
@@ -695,9 +665,8 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
     //检测是否进入人工
     public boolean checkArtificial(List<ODR2010Response.ResultDTO> result) {
-        List<ODR2010Response.ResultDTO> artificialCollect =
-                result.stream().filter(x -> x.getNotifyType().equals("2002")).collect(Collectors.toList());
-        if (artificialCollect.size() > 0) {
+        List<ODR2010Response.ResultDTO> artificialCollect = result.stream().filter(x -> x.getNotifyType().equals("2002")).collect(Collectors.toList());
+        if (!artificialCollect.isEmpty()) {
             return true;
         }
         return false;
@@ -705,9 +674,8 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
     //检测是否核保退回
     public boolean checkBack(List<ODR2010Response.ResultDTO> result) {
-        List<ODR2010Response.ResultDTO> backCollect =
-                result.stream().filter(x -> x.getNotifyType().equals("2003") || x.getNotifyType().equals("2004")).collect(Collectors.toList());
-        if (backCollect.size() > 0) {
+        List<ODR2010Response.ResultDTO> backCollect = result.stream().filter(x -> x.getNotifyType().equals("2003") || x.getNotifyType().equals("2004")).collect(Collectors.toList());
+        if (!backCollect.isEmpty()) {
             return true;
         }
         return false;
@@ -715,9 +683,8 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
     //检测核保通过是否存在支付连接
     public boolean checkPayLink(List<ODR2010Response.ResultDTO> result, InsAreaCompany insAreaCompany) {
-        List<ODR2010Response.ResultDTO> traverseCollect =
-                result.stream().filter(x -> x.getNotifyType().equals("2005")).collect(Collectors.toList());
-        if (traverseCollect.size() > 0 && ("".equals(insAreaCompany.getPaymentLink()) || insAreaCompany.getPaymentLink() != null)) {
+        List<ODR2010Response.ResultDTO> traverseCollect = result.stream().filter(x -> x.getNotifyType().equals("2005")).collect(Collectors.toList());
+        if (!traverseCollect.isEmpty() && ("".equals(insAreaCompany.getPaymentLink()) || insAreaCompany.getPaymentLink() != null)) {
             return true;
         }
         return false;
@@ -725,8 +692,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
     //检测是否存在保单生成状态
     public boolean checkBdGen(List<ODR2010Response.ResultDTO> result) {
-        List<ODR2010Response.ResultDTO> collect =
-                result.stream().filter(x -> x.getNotifyType().equals("2009")).collect(Collectors.toList());
+        List<ODR2010Response.ResultDTO> collect = result.stream().filter(x -> x.getNotifyType().equals("2009")).collect(Collectors.toList());
         return !collect.isEmpty();
     }
 
@@ -761,11 +727,9 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                             //驾意险 返回数据
                             List<NVHLODR1001Response.policyInfosDTO> policyInfosDTOS = null;
                             if (!Objects.isNull(insAreaCompany.getCrossInsurance())) {
-                                policyInfosDTOS = JSON.parseArray(JSON.toJSONString(insAreaCompany.getCrossInsurance()),
-                                        NVHLODR1001Response.policyInfosDTO.class);
+                                policyInfosDTOS = JSON.parseArray(JSON.toJSONString(insAreaCompany.getCrossInsurance()), NVHLODR1001Response.policyInfosDTO.class);
                             }
-                            ODR1011Request odr1011Request = new ODR1011Request(insAreaCompany.getInsOrderNo(), daJiaConfigureParameters,
-                                    policyInfosDTOS);
+                            ODR1011Request odr1011Request = new ODR1011Request(insAreaCompany.getInsOrderNo(), daJiaConfigureParameters, policyInfosDTOS);
                             ODR1011Response payNo = daJiaRequestApiComponents.getPayNo(odr1011Request);
                             if (payNo.getStatus().equals(Message.M0000.getCode())) {
                                 //获取支付二维码成功  保存支付二维码
@@ -779,8 +743,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                 }
                 //是否存在保单生成
                 if (checkBdGen(result) && !"3".equals(insAreaCompany.getOrderstatus())) {
-                    List<ODR2010Response.ResultDTO> collect =
-                            result.stream().filter(x -> x.getNotifyType().equals("2009")).collect(Collectors.toList());
+                    List<ODR2010Response.ResultDTO> collect = result.stream().filter(x -> x.getNotifyType().equals("2009")).collect(Collectors.toList());
 
                     //如果交强和商业都不为空
                     if (insAreaCompany.getJqapplyno() != null && insAreaCompany.getSyapplyno() != null) {
@@ -864,15 +827,11 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             if (InsuranceRisk.ACCIDENT.getCode().equals(policyPrintVo.getRiskCode())) {
 
                 if (!Objects.isNull(insAreaCompany.getCrossInsurance())) {
-                    List<NVHLODR1001Response.policyInfosDTO> policyInfosDTOS =
-                            JSON.parseArray(JSON.toJSONString(insAreaCompany.getCrossInsurance()),
-                                    NVHLODR1001Response.policyInfosDTO.class);
-                    NVHLODR2007Request nvhlodr2007Request = new NVHLODR2007Request(policyInfosDTOS.get(0).getAppNo(),
-                            daJiaConfigureParameters);
+                    List<NVHLODR1001Response.policyInfosDTO> policyInfosDTOS = JSON.parseArray(JSON.toJSONString(insAreaCompany.getCrossInsurance()), NVHLODR1001Response.policyInfosDTO.class);
+                    NVHLODR2007Request nvhlodr2007Request = new NVHLODR2007Request(policyInfosDTOS.get(0).getAppNo(), daJiaConfigureParameters);
                     NVHLODR2007Response nvhlodr2007Response = daJiaRequestApiComponents.accidentPremiumWarranty(nvhlodr2007Request);
                     if ("2000".equals(nvhlodr2007Response.getStatus())) {
-                        url = gainCarInsPolicy(nvhlodr2007Response.getPolicyInfos().get(0).getCPdfUrl(),
-                                insOrders.getLicenseno() + templateName, insAreaCompany.getId());
+                        url = gainCarInsPolicy(nvhlodr2007Response.getPolicyInfos().get(0).getCPdfUrl(), insOrders.getLicenseno() + templateName, insAreaCompany.getId());
                     }
                 }
             } else {
@@ -939,8 +898,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
     @Override
     public HttpResult<Object> accidentalDrivingInfo(String accidentalId) {
-        List<InsAccidentalDrivingSubDajia> list =
-                insAccidentalDrivingSubDaJiaService.list(new LambdaQueryWrapper<InsAccidentalDrivingSubDajia>().eq(InsAccidentalDrivingSubDajia::getAccId, accidentalId));
+        List<InsAccidentalDrivingSubDajia> list = insAccidentalDrivingSubDaJiaService.list(new LambdaQueryWrapper<InsAccidentalDrivingSubDajia>().eq(InsAccidentalDrivingSubDajia::getAccId, accidentalId));
         return HttpResult.ok("获取驾意险详情成功", list);
     }
 
@@ -970,8 +928,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                 List<ODR2010Response.ResultDTO> result = odr2010Response.getResult();
                 //是否存在保单生成
                 if (checkBdGen(result) && !"3".equals(insAreaCompany.getOrderstatus())) {
-                    List<ODR2010Response.ResultDTO> collect =
-                            result.stream().filter(x -> x.getNotifyType().equals("2009")).collect(Collectors.toList());
+                    List<ODR2010Response.ResultDTO> collect = result.stream().filter(x -> x.getNotifyType().equals("2009")).collect(Collectors.toList());
                     for (int i = 0, length = collect.size(); i < length; i++) {
                         //交强或商业 的 保单号
                         if (collect.get(i).getProdNo().equals(CProdNo.JQ.getCode())) {
@@ -988,7 +945,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                         insAreaCompany.setPayDate(parse);
                     }
                     //设置支付时间
-                    if(insAreaCompany.getPayDate()==null){
+                    if (insAreaCompany.getPayDate() == null) {
                         insAreaCompany.setPayDate(LocalDateTime.now());
                     }
                     //更新订单状态

+ 12 - 5
src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java

@@ -292,9 +292,10 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         //核保状态 0初始值/1通过/2不通过/3 无需核保 9 待核保
         String statusJq = auditResp.getData().get(0).getUnderWriteFlagCI();
         String statusSy = auditResp.getData().get(0).getUnderWriteFlagBI();
-        if (StringUtils.isEmpty(statusJq) && StringUtils.isEmpty(statusSy))
-            return HttpResult.error("核保失败:" + auditResp.getData().get(0).getMessage());
-
+        String message = auditResp.getData().get(0).getMessage();
+        if (StringUtils.isEmpty(statusJq) && StringUtils.isEmpty(statusSy)){
+            return HttpResult.error("核保失败:" + message);
+        }
         //单交  核保状态 0初始值/1通过/2不通过/3 无需核保 9待核保
         if (StringUtils.isNotEmpty(statusJq) && StringUtils.isEmpty(statusSy)) {
             if (statusJq.equals("1") || statusJq.equals("3")) {
@@ -328,9 +329,15 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         }
 
         if (iac.getOrderstatus().equals(InsOrderStatusEnum.WAIT_AUDIT.getCode())) {
-            insAreaCompanyService.updateById(iac);
-            return HttpResult.error(auditResp.getData().get(0).getMessage());
+            insAreaCompanyService.updateCompanyAndOrdersMessage(iac, message);
+            return HttpResult.error(message);
         }
+
+        if (iac.getOrderstatus().equals(InsOrderStatusEnum.TO_BACK.getCode())) {
+            insAreaCompanyService.updateCompanyAndOrdersMessage(iac, message);
+            return HttpResult.error(message);
+        }
+
         InsUtils.buildOrderStatus(order, iac);
         if (iac.getOrderstatus().equals(InsOrderStatusEnum.WAIT_PAY.getCode())) {
             //获取签名地址

+ 16 - 17
src/main/java/com/ydtech/modules/order/service/impl/HuaTaiOrderApiServiceImpl.java

@@ -109,7 +109,7 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
         huaTaiModelsQueryRequest.setLoginCom(huaTaiConfigureParameters.getComCode());
         huaTaiModelsQueryRequest.setAgentCode(huaTaiConfigureParameters.getAgentCode());
         List<HuaTaiModelsQueryResponse.CarModelDto> carModelDtos = huaTaiRequestApiComponents.modelQuery(huaTaiModelsQueryRequest,
-                HuaTaiModelsQueryResponse.class , huaTaiConfigureParameters.getInsuredCode());
+                HuaTaiModelsQueryResponse.class, huaTaiConfigureParameters.getInsuredCode());
 
         List<HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto> fullCarDataDtos = new ArrayList<>();
         for (HuaTaiModelsQueryResponse.CarModelDto carModelDto : carModelDtos) {
@@ -268,14 +268,14 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
                 return HttpResult.ok("已转人工核保");
             } else {//当状态为核保不通过时,调整保单状态为报价中
                 insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
-                insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
                 String notion = jqNotion.toString() + syNotion + huaTaiSubmitCommon.getNotion();
+                insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, notion);
                 return HttpResult.error("核保不通过:" + notion);//需要处理放入核保原因
             }
         } else {
-            String notion = jqNotion.toString() + syNotion.toString();
+            String notion = jqNotion.toString() + syNotion;
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
-            insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+            insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, notion);
             return HttpResult.error(notion);
         }
     }
@@ -314,7 +314,7 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
             return HttpResult.ok("核保成功");
         } else {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
-            insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+            insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, "获取支付链接失败");
             return HttpResult.error("获取支付链接失败");
         }
     }
@@ -457,10 +457,10 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
                 for (HuaTaiInsurancePolicyPrintResponse.ElecDownLoadResultDto elecDownLoadResultDto : urlList) {
                     String url = elecDownLoadResultDto.getDownURL();
                     if (InsuranceRisk.TRAFFIC.getCode().equals(riskCode)) {
-                        crawlerPolicyPrintVo.setJqxPolicyUrl(gainCarInsPolicy(url, licensePlate + "-交强险保单.pdf", insAreaCompany.getId(), password));
-                        crawlerPolicyPrintVo.setJqxFlagUrl(gainCarInsPolicy(url, licensePlate + "-交强险标志.pdf", insAreaCompany.getId(), password));
+                        crawlerPolicyPrintVo.setJqxPolicyUrl(gainCarInsPolicy(url, licensePlate + "-交强险", insAreaCompany.getId(), password) + "保单.pdf");
+                        crawlerPolicyPrintVo.setJqxFlagUrl(gainCarInsPolicy(url, licensePlate + "-交强险", insAreaCompany.getId(), password) + "标志.pdf");
                     } else if (InsuranceRisk.BUSINESS.getCode().equals(riskCode)) {
-                        crawlerPolicyPrintVo.setSyxPolicyUrl(gainCarInsPolicy(url, licensePlate + "-商业险保单.pdf", insAreaCompany.getId(), password));
+                        crawlerPolicyPrintVo.setSyxPolicyUrl(gainCarInsPolicy(url, licensePlate + "-商业险", insAreaCompany.getId(), password) + "保单.pdf");
                     }
                     /**
                      * 先下载到本地,然后再解压到固定路径
@@ -739,14 +739,13 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
     }
 
     /**
-    * @Description  更新支付状态和支付时间
-    * @Author  xingming
-    * @Date   2024/3/28 16:49
-    * @Param
-    * @Return
-    * @Exception
-    *
-    */
+     * @Description 更新支付状态和支付时间
+     * @Author xingming
+     * @Date 2024/3/28 16:49
+     * @Param
+     * @Return
+     * @Exception
+     */
     @Override
     public void paymentEnquiryNew(String companyId) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getById(companyId);
@@ -784,7 +783,7 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
 
         if (jqExistFlag || syExistFlag) {
             //设置支付时间
-            if(insAreaCompany.getPayDate()==null){
+            if (insAreaCompany.getPayDate() == null) {
                 insAreaCompany.setPayDate(LocalDateTime.now());
             }
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());

+ 12 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -62,6 +62,9 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
 
     private final SysDeptService sysDeptService;
 
+    @Autowired
+    private InsOrdersUnderwritingReasonService insOrdersUnderwritingReasonService;
+
     @Autowired
     private InsAreaCompanyAccidentalDrivingService insAreaCompanyAccidentalDrivingService;
 
@@ -992,6 +995,15 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
         return baseMapper.getOrderPremiumByUserIds(ids);
     }
 
+    @Override
+    public void saveInsOrdersUnderwritingReason(String subNoOrder, String message, String orderStatus) {
+        if(!Arrays.asList(InsOrderStatusEnum.getRefuseUnderwriting()).contains(orderStatus)){
+            return;
+        }
+        insOrdersUnderwritingReasonService.saveInsOrdersUnderwritingReason(subNoOrder, message, orderStatus);
+    }
+
+
 }
 
 

+ 4 - 2
src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

@@ -198,7 +198,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         // 是否人工核保
         if (StringUtils.isNotEmpty(crawlerAuditResponse.getManual())) {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
-            insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+            String message = crawlerAuditResponse.getMessage();
+            insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, message);
             return HttpResult.error(crawlerAuditResponse.getMessage());
         }
         // 投保单号
@@ -462,7 +463,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
 
         if (crawlerAuditResponse.getCode() == CrawlerAuditStatus.CAS_500.getCode()) {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
-            insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+            String message = crawlerAuditResponse.getMessage();
+            insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, message);
             return HttpResult.error(crawlerAuditResponse.getMessage());
         } else if (crawlerAuditResponse.getCode() == CrawlerAuditStatus.CAS_200.getCode()) {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());

+ 7 - 2
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -129,6 +129,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
     private final InsOrdersTrackService insOrdersTrackService;
 
+    private final InsOrdersUnderwritingReasonService insOrdersUnderwritingReasonService;
 
     @Autowired
     private SysUserInfoService sysUserInfoService;
@@ -177,7 +178,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                                 PtlAgreementService ptlAgreementService,
                                 @Lazy FeeRuleSchemeServiceImpl feeRuleSchemeService,
                                 @Lazy InsFeeAuditService insFeeAuditService, InsOrdersTrackService insOrdersTrackService,
-                                InsFileMapper insFileMapper) {
+                                InsOrdersUnderwritingReasonService insOrdersUnderwritingReasonService) {
 
         this.orderComponents = orderComponents;
         this.sysUserService = sysUserService;
@@ -190,6 +191,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         this.feeRuleSchemeService = feeRuleSchemeService;
         this.insFeeAuditService = insFeeAuditService;
         this.insOrdersTrackService = insOrdersTrackService;
+        this.insOrdersUnderwritingReasonService = insOrdersUnderwritingReasonService;
     }
 
 
@@ -736,6 +738,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         } else {
             orderAndAreaCompany.setJqInsuranceType(new JSONArray());
         }
+
+        String insOrdersUnderwritingReason = insOrdersUnderwritingReasonService.getInsOrdersUnderwritingReason(orderAndAreaCompany.getCompanyId(), orderAndAreaCompany.getOrderstatus());
+        orderAndAreaCompany.setUnderwritingReason(insOrdersUnderwritingReason);
         return HttpResult.ok("success", orderAndAreaCompany);
     }
 
@@ -999,7 +1004,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                     agreeIds.add(sysUserLinkPtlAgreementDto.getPtlAgreement().getId());
                 }
             }
-        }else if (type == 4) {
+        } else if (type == 4) {
             agentUserIds = sysUserService.getTelemarketingPersonnelData();
         }
 

+ 49 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersUnderwritingReasonServiceImpl.java

@@ -0,0 +1,49 @@
+package com.ydtech.modules.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.order.dao.InsOrdersUnderwritingReasonMapper;
+import com.ydtech.modules.order.entity.po.InsOrdersUnderwritingReason;
+import com.ydtech.modules.order.service.InsOrdersUnderwritingReasonService;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import java.util.Date;
+
+/**
+ * @author Administrator
+ * @description 针对表【ins_orders_underwriting_reason(核保不通过原因)】的数据库操作Service实现
+ * @createDate 2024-09-04 09:36:38
+ */
+@Service
+public class InsOrdersUnderwritingReasonServiceImpl extends ServiceImpl<InsOrdersUnderwritingReasonMapper, InsOrdersUnderwritingReason>
+        implements InsOrdersUnderwritingReasonService {
+
+    @Override
+    public void saveInsOrdersUnderwritingReason(String subNoOrder, String message, String orderStatus) {
+        InsOrdersUnderwritingReason insOrdersUnderwritingReason = new InsOrdersUnderwritingReason();
+        insOrdersUnderwritingReason.setReason(message);
+        insOrdersUnderwritingReason.setOrderStatus(orderStatus);
+        insOrdersUnderwritingReason.setOrderStatus(orderStatus);
+        insOrdersUnderwritingReason.setCreateTime(new Date());
+        save(insOrdersUnderwritingReason);
+    }
+
+    @Override
+    public String getInsOrdersUnderwritingReason(String subNoOrder, String orderStatus) {
+        InsOrdersUnderwritingReason insOrdersUnderwritingReason = lambdaQuery().eq(InsOrdersUnderwritingReason::getOrderStatus, orderStatus)
+                .eq(InsOrdersUnderwritingReason::getSubNoOrder, subNoOrder)
+                .orderByDesc(InsOrdersUnderwritingReason::getCreateTime)
+                .last("limit 1")
+                .one();
+
+        if (ObjectUtils.isEmpty(insOrdersUnderwritingReason)) {
+            return "暂无信息";
+        }
+
+        return insOrdersUnderwritingReason.getReason();
+    }
+}
+
+
+
+

+ 2 - 2
src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java

@@ -737,7 +737,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
                 getPayUrlApi(iac);
             }
             log.info("车牌号:" + order.getLicenseno() + ",永诚核保未获取缴费地址,状态为:" + InsOrderStatusEnum.matchKey(iac.getOrderstatus()).getDesc());
-            insAreaCompanyService.updateCompanyAndOrders(iac);
+            insAreaCompanyService.updateCompanyAndOrdersMessage(iac, iac.getAuditopinion());
             return HttpResult.ok("核保操作成功");
 
         } catch (JsonProcessingException jsonProcessingException) {
@@ -883,7 +883,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
                 sss.append("变更前子订单状态:" + iac.getOrderstatus());
                 sss.append("变更后订单状态:" + order.getOrderstatus());
                 log.info("-----------订单状态变动----------:" + sss);
-                insAreaCompanyService.updateCompanyAndOrders(iac);
+                insAreaCompanyService.updateCompanyAndOrdersMessage(iac, iac.getAuditopinion());
 
             } else {
                 //失败原因

+ 3 - 2
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -239,7 +239,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         // 3. 人工核保
         if (SubmitStatus.S_3.getCode().equals(response.getSubmitStatus())) {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
-            insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+            String message = response.getSubmitNotion();
+            insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, message);
             return HttpResult.error(response.getSubmitNotion());
         }
         zhongmeiRequestApiComponents.validationResults(response);
@@ -323,7 +324,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
                 }
                 insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
             }
-            insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+            insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, insAreaCompany.getAuditopinion());
         } catch (Exception e) {
             log.debug("审核回调 {}", e.getMessage());
         }

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

@@ -232,12 +232,12 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
 
             if (OrderStatusEnum.O_3.getCode().equals(resultObj.getOrderStatus())) {
                 insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
-                insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+                insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, 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);
+                insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, uwMsg);
                 return HttpResult.error("人工核保" + ":" + uwMsg);
             }
 
@@ -447,15 +447,15 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
             return HttpResult.ok("核保成功");
         } else if (OrderStatusEnum.O_3.getCode().equals(resultObj.getOrderStatus())) {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
-            insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
 
             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());
+            String message = OrderStatusEnum.O_3.getName() + ":" + orderPolicyListDTO.getUnderWriteMessage();
+            insAreaCompanyService.updateCompanyAndOrdersMessage(insAreaCompany, message);
+            return HttpResult.error(message);
         }
 
         return HttpResult.ok("核保状态未修改");

+ 19 - 0
src/main/resources/mapper/modules/order/InsOrdersUnderwritingReasonMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.order.dao.InsOrdersUnderwritingReasonMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.order.entity.po.InsOrdersUnderwritingReason">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="subNoOrder" column="sub_no_order" jdbcType="VARCHAR"/>
+            <result property="orderStatus" column="order_status" jdbcType="VARCHAR"/>
+            <result property="reason" column="reason" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,sub_no_order,order_status,
+        reason,create_time
+    </sql>
+</mapper>