Переглянути джерело

Merge remote-tracking branch 'origin/master'

Qchen 2 місяців тому
батько
коміт
296527af44

+ 4 - 0
commons/src/main/java/com/jzg/commons/entity/dto/GenerateQrcodeParam.java

@@ -16,5 +16,9 @@ public class GenerateQrcodeParam {
      */
     private String query;
 
+    private String phone;
+
+    private String number;
+
 
 }

+ 3 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerCreateOrderRequest.java

@@ -44,6 +44,9 @@ public class GuoRenCrawlerCreateOrderRequest implements Serializable {
     @JsonProperty("requestTime")
     private String requestTime;
 
+    @JsonProperty("orderCode")
+    private String orderCode;
+
     public GuoRenCrawlerCreateOrderRequest(QuoteVo quoteVo,
                                            GuoRenCrawlerCalculationPremiumRequest calculationPremiumRequest,
                                            List<GuoRenCrawlerQueryQuotationData.LiabDTO> queryLiabList) {

+ 11 - 6
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/request/GuoRenCrawlerProposalNoSaveRequest.java

@@ -4,9 +4,9 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.quotation.guoren.crawler.entity.dto.GuoRenBcDTO;
 import com.jzg.quotation.guoren.crawler.entity.response.GuoRenCrawlerCalculationPremiumData;
-import org.springframework.util.StringUtils;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.springframework.util.StringUtils;
 
 import java.io.Serial;
 import java.io.Serializable;
@@ -32,19 +32,25 @@ public class GuoRenCrawlerProposalNoSaveRequest implements Serializable {
     @JsonProperty("ci")
     private GuoRenCrawlerCalculationPremiumData.CiDTO ci;
 
+    @JsonProperty("order")
+    private String order;
+
+
     public GuoRenCrawlerProposalNoSaveRequest(QuoteVo quoteVo, GuoRenCrawlerCalculationPremiumData guoRenCrawlerCalculationPremiumData, GuoRenCrawlerCalculationPremiumRequest calculationPremiumRequest, GuoRenCrawlerCreateOrderRequest createOrderRequest) {
         GuoRenCrawlerCalculationPremiumData.CiDTO ciDto = guoRenCrawlerCalculationPremiumData.getCi();
         ciDto.setPrptengageList(calculationPremiumRequest.getCi().getPrptengageList());
         GuoRenCrawlerCalculationPremiumData.BiDTO biDto = guoRenCrawlerCalculationPremiumData.getBi();
         biDto.setPrptengageList(calculationPremiumRequest.getBi().getPrptengageList());
+        this.bc = calculationPremiumRequest.getBc();
+        this.bc.getPrpTmain().setCaptcha("");
+        this.bc.getPrpTmain().setEProposalFlag("1");
         if (createOrderRequest != null) {
             List<GuoRenCrawlerCreateOrderRequest.OrderMainDTO> orderMainList = new ArrayList<>();
             orderMainList.add(createOrderRequest.getData().getOrderList().get(0).getOrderMain());
             calculationPremiumRequest.getBc().setOrderMainList(orderMainList);
+            this.order = createOrderRequest.getOrderCode();
+            this.bc.getPrpTmain().setOrderNo(createOrderRequest.getOrderCode());
         }
-        this.bc = calculationPremiumRequest.getBc();
-        this.bc.getPrpTmain().setCaptcha("");
-        this.bc.getPrpTmain().setEProposalFlag("1");
         this.basePartVo = calculationPremiumRequest.getBasePartVo();
         guoRenCrawlerCalculationPremiumData.getCi().getCiInsureDemand().setTonCount(quoteVo.getCarInfoVo().getTonCount());
         guoRenCrawlerCalculationPremiumData.getCi().getCiInsureDemand().setSeatCount(quoteVo.getCarInfoVo().getSeatCount());
@@ -106,8 +112,7 @@ public class GuoRenCrawlerProposalNoSaveRequest implements Serializable {
             }
             // 传播demandNo到ciCarShipTaxQGDemandSchema
             if (this.ci != null && this.ci.getCiCarShipTaxQGDemandSchema() != null) {
-                String effectiveDemandNo = StringUtils.hasText(ciDemandNo) ? ciDemandNo
-                        : (this.ci.getCiInsureDemand() != null ? this.ci.getCiInsureDemand().getDemandNo() : null);
+                String effectiveDemandNo = StringUtils.hasText(ciDemandNo) ? ciDemandNo : (this.ci.getCiInsureDemand() != null ? this.ci.getCiInsureDemand().getDemandNo() : null);
                 if (StringUtils.hasText(effectiveDemandNo)) {
                     this.ci.getCiCarShipTaxQGDemandSchema().setDemandNo(effectiveDemandNo);
                 }

+ 1 - 1
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerQuoteProcessServiceImpl.java

@@ -111,7 +111,7 @@ public class GuoRenCrawlerQuoteProcessServiceImpl implements GuoRenCrawlerQuoteP
     public HttpHeaders getHeaders(String username) {
         HttpHeaders headers = new HttpHeaders();
         String token = guoRenCrawlerCacheComponent.getToken(username);
-//        String token = "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJXMzAwMDM5OSIsInVzZXJJZCI6IjQ5NjE4MSIsIm5hbWUiOiLmnY7mmKXmooUiLCJleHAiOjE3ODEyNDU1NDJ9.YsfJuQ58NaPa-7aUrYjh0SdvRkxhsiejP648H39j6h1PztC0b5Rdb8GOi5oGkVew_CI-T5j0VeaYfSFF-DrqrT_LReqtbl-iM0_OeN8acFLNcXbhfv80mRz1HqPZrUXrwngS-8Q6eF42gOJVxAX_nSFNdJpX5977A3_KJdmVbxs";
+//        String token = "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJXMzAwMDM5OSIsInVzZXJJZCI6IjQ5NjE4MSIsIm5hbWUiOiLmnY7mmKXmooUiLCJleHAiOjE3ODM2NzExMTZ9.M9ATzYxnqCtuqRmrChaHOoM0u67ULQK253xZFdZlPZIYqvloAEcU-FFXf0znSxoMD1xOqIbMgAvNlsHdNV33AQFndbvuA3A9t8wz5ys0ny-JZ7ik_mMW75RfkwwhB1pBWCGi4WcsVUqwXdGu_8if_Q-6X4aDq-kC2R1DK57FLd4";
         if (!StringUtils.hasText(token)) {
             throw new TokenExpireException("500", "国任财险账号登录过期,请重新登录");
         }

+ 28 - 26
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/service/impl/GuoRenCrawlerRequestImpl.java

@@ -139,32 +139,6 @@ public class GuoRenCrawlerRequestImpl implements GuoRenCrawlerRequest {
                 crawlerCalculationPremiumRequest.getBi().getPrpTmain().setOrderFlag("N");
             }
         }
-        // 驾意险(非车险)处理:查询 → 校验 → 投保
-        String niPolicyNumber = null;
-        GuoRenCrawlerCreateOrderRequest createOrderRequest = null;
-        if (CollUtil.isNotEmpty(quoteVo.getAccidentalDrivings())) {
-            // 驾意险查询:获取liabList用于订单创建
-            GuoRenCrawlerQueryQuotationRequest queryQuotationRequest = new GuoRenCrawlerQueryQuotationRequest(quoteVo,  crawlerCalculationPremiumRequest.getBc().getPrpTitemCar());
-            GuoRenCrawlerBaseResponse<GuoRenCrawlerQueryQuotationData> queryResponse = guoRenCrawlerRequestComponent.queryQuotation(queryQuotationRequest, headers);
-            List<GuoRenCrawlerQueryQuotationData.LiabDTO> queryLiabList = null;
-            if ("0000".equals(queryResponse.getCode()) && queryResponse.getData() != null) {
-                queryLiabList = queryResponse.getData().getLiabList();
-            }
-            createOrderRequest = new GuoRenCrawlerCreateOrderRequest(quoteVo, crawlerCalculationPremiumRequest, queryLiabList);
-            // 第一步:驾意险校验
-            GuoRenCrawlerBaseResponse<GuoRenCrawlerCreateOrderCheckData> checkResponse = guoRenCrawlerRequestComponent.createOrderCheck(createOrderRequest, headers);
-            if (!checkResponse.getCode().equals("0000")) {
-                throw new SystemException("驾意险订单校验失败:" + checkResponse.getMessage());
-            }
-            // 第二步:驾意险投保
-            GuoRenCrawlerBaseResponse<GuoRenCrawlerCreateOrderDataData> dataResponse = guoRenCrawlerRequestComponent.createOrderData(createOrderRequest, headers);
-            if (!dataResponse.getCode().equals("0000")) {
-                throw new SystemException("驾意险投保失败:" + dataResponse.getMessage());
-            }
-            if (dataResponse.getData() != null) {
-                niPolicyNumber = dataResponse.getData().getOrderCode();
-            }
-        }
 
         GuoRenCrawlerBaseResponse<GuoRenCrawlerCalculationPremiumData> calculationPremium = guoRenCrawlerRequestComponent.calculationPremium(crawlerCalculationPremiumRequest, headers);
         // 处理重复投保
@@ -219,6 +193,34 @@ public class GuoRenCrawlerRequestImpl implements GuoRenCrawlerRequest {
         } else if (calculationPremium.getResultCode() == 1) {
             return GuoRenCrawlerQuoteResultsVoBuild.buildFailQuoteResultsVo(quoteVo, calculationPremium);
         }
+        // 驾意险(非车险)处理:查询 → 校验 → 投保
+        String niPolicyNumber = null;
+        GuoRenCrawlerCreateOrderRequest createOrderRequest = null;
+        if (CollUtil.isNotEmpty(quoteVo.getAccidentalDrivings())) {
+            // 驾意险查询:获取liabList用于订单创建
+            GuoRenCrawlerQueryQuotationRequest queryQuotationRequest = new GuoRenCrawlerQueryQuotationRequest(quoteVo,  crawlerCalculationPremiumRequest.getBc().getPrpTitemCar());
+            GuoRenCrawlerBaseResponse<GuoRenCrawlerQueryQuotationData> queryResponse = guoRenCrawlerRequestComponent.queryQuotation(queryQuotationRequest, headers);
+            List<GuoRenCrawlerQueryQuotationData.LiabDTO> queryLiabList = null;
+            if ("0000".equals(queryResponse.getCode()) && queryResponse.getData() != null) {
+                queryLiabList = queryResponse.getData().getLiabList();
+            }
+            createOrderRequest = new GuoRenCrawlerCreateOrderRequest(quoteVo, crawlerCalculationPremiumRequest, queryLiabList);
+            // 第一步:驾意险校验
+            GuoRenCrawlerBaseResponse<GuoRenCrawlerCreateOrderCheckData> checkResponse = guoRenCrawlerRequestComponent.createOrderCheck(createOrderRequest, headers);
+            if (!checkResponse.getCode().equals("0000")) {
+                throw new SystemException("驾意险订单校验失败:" + checkResponse.getMessage());
+            }
+            // 第二步:驾意险投保
+            GuoRenCrawlerBaseResponse<GuoRenCrawlerCreateOrderDataData> dataResponse = guoRenCrawlerRequestComponent.createOrderData(createOrderRequest, headers);
+            if (!dataResponse.getCode().equals("0000")) {
+                throw new SystemException("驾意险投保失败:" + dataResponse.getMessage());
+            }
+            if (dataResponse.getData() != null) {
+                niPolicyNumber = dataResponse.getData().getOrderCode();
+                createOrderRequest.setOrderCode(niPolicyNumber);
+            }
+        }
+
 
         // 投保验证码处理
         GuoRenCrawlerCalculationPremiumData calculationPremiumData = guoRenCrawlerQuoteProcessService.insuranceVerificationCodeProcessing(crawlerCalculationPremiumRequest, calculationPremium.getData(), headers);

+ 3 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java

@@ -947,6 +947,7 @@ public class UnifyOrderManager {
         if (orderStatusResultVo.getOrderStatus() == InsOrderStatusEnum.UNDERWRITED) {
             doSomethingAfterUnderwited(insOrders);
         }
+
         return HttpResult.ok("状态刷新成功");
     }
 
@@ -1086,6 +1087,8 @@ public class UnifyOrderManager {
                         insOrders.getRealQuoteUserId(), CLIENT_ID, baseController.getUserSystemCode());
                 GenerateQrcodeParam qparam = new GenerateQrcodeParam();
                 qparam.setActivityId(activity.getId());
+                qparam.setPhone(quoteUserId);
+                qparam.setNumber(rule.getUwLotteryNum());
                 qparam.setQuery("i="+activity.getId()+"&t=1&n="+rule.getUwLotteryNum());
                 Result<String> stringResult = localLivingClient.generateQrcode(qparam);
                 if(stringResult.isSuccess() && !stringResult.getResult().isEmpty()){

+ 5 - 2
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlSchemeServiceImpl.java

@@ -515,8 +515,11 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
             if ("XDCX".equals(company.getCode())) {
                 CustomerInfoVo ownerInfo = schemeRuleFilterVo.getOwnerInfo();
                 CustomerInfoVo applyInfo = schemeRuleFilterVo.getApplyInfo();
-                if (ObjectUtil.isNotNull(ownerInfo) && ObjectUtil.isNotNull(applyInfo)
-                        && !StrUtil.equals(ownerInfo.getIdentifyNumber(), applyInfo.getIdentifyNumber())) {
+                String ownerIdentifyNumber = ObjectUtil.isNotNull(ownerInfo) ? StrUtil.trim(ownerInfo.getIdentifyNumber()) : null;
+                String applyIdentifyNumber = ObjectUtil.isNotNull(applyInfo) ? StrUtil.trim(applyInfo.getIdentifyNumber()) : null;
+                log.info("国任车主约定判断 - 车主身份证号:[{}], 投保人身份证号:[{}]", ownerIdentifyNumber, applyIdentifyNumber);
+                if (StrUtil.isNotBlank(ownerIdentifyNumber) && StrUtil.isNotBlank(applyIdentifyNumber)
+                        && !StrUtil.equals(ownerIdentifyNumber, applyIdentifyNumber)) {
                     CompanyClauseVo clauseVo = new CompanyClauseVo();
                     clauseVo.setCompanyId(company.getId());
                     clauseVo.setClauseCode("T0028");

+ 15 - 0
tenant/organization/src/main/resources/mapper/SysUserJzgInfoMapper.xml

@@ -190,6 +190,13 @@
                 or  suji.work_number = #{sysUserInfoListVo.salesman}
                 or  su.id = #{sysUserInfoListVo.salesman})
             </if>
+            <if test="sysUserInfoListVo.name != null and sysUserInfoListVo.name != ''">
+                AND (
+                suji.name LIKE CONCAT('%',#{sysUserInfoListVo.name},'%')
+                OR su.username LIKE CONCAT('%',#{sysUserInfoListVo.name},'%')
+                OR su.mobile LIKE CONCAT('%',#{sysUserInfoListVo.name},'%')
+                )
+            </if>
         </where>
         order by suji.create_time desc
     </select>
@@ -273,6 +280,14 @@
                     and sujis.type_attr != 2 AND sujis.type_attr != 3
                 </if>
             </if>
+
+            <if test="sysUserInfoListVo.name != null and sysUserInfoListVo.name != ''">
+                AND (
+                suji.name LIKE CONCAT('%',#{sysUserInfoListVo.name},'%')
+                OR su.username LIKE CONCAT('%',#{sysUserInfoListVo.name},'%')
+                OR su.mobile LIKE CONCAT('%',#{sysUserInfoListVo.name},'%')
+                )
+            </if>
         </where>
         group by suji.id, soul.organization_id, so.name
         order by suji.create_time desc