Pārlūkot izejas kodu

恒邦爬虫添加重复投保处理、非车险处理

Qchen 9 mēneši atpakaļ
vecāks
revīzija
25c7a66dd8
17 mainītis faili ar 156 papildinājumiem un 28 dzēšanām
  1. 14 6
      authentication/src/main/java/com/jzg/config/JzgAuthenticationProvider.java
  2. 3 0
      authentication/src/main/java/com/jzg/entity/RedisToken.java
  3. 3 0
      authentication/src/main/java/com/jzg/entity/vo/SysUserJzgVo.java
  4. 2 0
      authentication/src/main/java/com/jzg/handler/JzgAuthenticationSuccessHandler.java
  5. 9 0
      authentication/src/main/java/com/jzg/mapper/SysAreaMapper.java
  6. 2 1
      authentication/src/main/resources/mapper/SysUserMapper.xml
  7. 3 1
      commons/src/main/java/com/jzg/commons/entity/dto/InsOrdersParam.java
  8. 0 1
      tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/service/impl/BoHaiApiRequestImpl.java
  9. 2 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/OrgClient.java
  10. 24 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/component/HengBangCrawlerRequestComponent.java
  11. 1 0
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/constant/enums/RequestUrl.java
  12. 3 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerCalculationRequest.java
  13. 57 13
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/Impl/HengBangCrawlerRequestImpl.java
  14. 0 1
      tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/utils/HengBangAESUtil.java
  15. 16 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeOrdersServiceImpl.java
  16. 14 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java
  17. 3 0
      tenant/insurance/quotation-summary/src/main/resources/mapper/InsOrdersMapper.xml

+ 14 - 6
authentication/src/main/java/com/jzg/config/JzgAuthenticationProvider.java

@@ -9,10 +9,7 @@ import com.alipay.api.response.AlipaySystemOauthTokenResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.jzg.commons.constants.RedisKeyConstants;
 import com.jzg.commons.constants.SystemConstants;
-import com.jzg.commons.entity.po.SysRoleDataScope;
-import com.jzg.commons.entity.po.SysRoleDataScopeLink;
-import com.jzg.commons.entity.po.SysSystem;
-import com.jzg.commons.entity.po.SysUserJzgApp;
+import com.jzg.commons.entity.po.*;
 import com.jzg.commons.entity.vo.SysRoleDataScopeVo;
 import com.jzg.commons.util.MinioUtils;
 import com.jzg.commons.util.StringUtils;
@@ -20,6 +17,7 @@ import com.jzg.entity.SysRolePerms;
 import com.jzg.entity.SysUser;
 import com.jzg.entity.vo.SysUserJzgVo;
 import com.jzg.commons.exception.SystemException;
+import com.jzg.mapper.SysAreaMapper;
 import com.jzg.mapper.SysRoleDataScopeLinkMapper;
 import com.jzg.mapper.SysRoleDataScopeMapper;
 import com.jzg.mapper.SysUserJzgAppMapper;
@@ -30,8 +28,8 @@ import com.jzg.commons.util.PasswordUtils;
 import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.mp.api.WxMpService;
-import org.apache.juli.logging.Log;
 import org.redisson.api.RedissonClient;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.AuthenticationProvider;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.Authentication;
@@ -66,6 +64,9 @@ public class JzgAuthenticationProvider implements AuthenticationProvider {
 
     private Map<String, WxMpService> wxMpService;
 
+    @Autowired
+    private SysAreaMapper sysAreaMapper;
+
     public JzgAuthenticationProvider(UserDetailsService userDetailsService, SysUserService sysUserService, SysUserRoleService sysUserRoleService,
                                      RedissonClient redissonClient, SysRoleDataScopeMapper sysRoleDataScopeMapper, SysRoleDataScopeLinkMapper sysRoleDataScopeLinkMapper,
                                      SysSystemService sysSystemService, SysUserJzgAppMapper sysUserJzgAppMapper,Map<String, WxMpService> wxMpService) {
@@ -138,7 +139,7 @@ public class JzgAuthenticationProvider implements AuthenticationProvider {
         }
 
         // 授权登录
-        String name = "",workNumber = "",headSculpture = "";
+        String name = "",workNumber = "",headSculpture = "",province = "";
         if(StringUtils.isNotBlank(type)){
             String openId = null;
             String aliPayId = null;
@@ -236,6 +237,7 @@ public class JzgAuthenticationProvider implements AuthenticationProvider {
                 SysUserJzgVo jzgUserInfo = sysUserService.getJzgUserInfo(byId.getId(),system);
                 name = jzgUserInfo.getName();
                 workNumber = jzgUserInfo.getWorkNumber();
+                province = jzgUserInfo.getProvince();
             }else{
                 name = byId.getUsername();
             }
@@ -315,6 +317,12 @@ public class JzgAuthenticationProvider implements AuthenticationProvider {
         detailMap.put("username",byId.getUsername());
         detailMap.put("headSculpture",jzgUserInfo.getHeadSculpture());
         detailMap.put("isFirst",isFirst);
+        if (!province.equals("")) {
+            SysArea sysArea = sysAreaMapper.selectOne(new LambdaQueryWrapper<SysArea>().eq(SysArea::getAreaCode, province));
+            detailMap.put("province",sysArea.getAreaCname());
+        } else {
+            detailMap.put("province","");
+        }
         details = detailMap;
 
         Object finalDetails = details;

+ 3 - 0
authentication/src/main/java/com/jzg/entity/RedisToken.java

@@ -39,4 +39,7 @@ public class RedisToken {
 
     @Schema(description = "工号")
     private String workNumber;
+
+    @Schema(description = "省份")
+    private String province;
 }

+ 3 - 0
authentication/src/main/java/com/jzg/entity/vo/SysUserJzgVo.java

@@ -29,4 +29,7 @@ public class SysUserJzgVo {
 
     @Schema(description = "头像")
     private String headSculpture;
+
+    @Schema(description = "省份")
+    private String province;
 }

+ 2 - 0
authentication/src/main/java/com/jzg/handler/JzgAuthenticationSuccessHandler.java

@@ -40,6 +40,7 @@ public class JzgAuthenticationSuccessHandler implements AuthenticationSuccessHan
         String workNumber = ((HashMap<String, String>) authentication.getDetails()).get("workNumber");
         String name = ((HashMap<String, String>) authentication.getDetails()).get("name");
         String headSculpture = ((HashMap<String, String>) authentication.getDetails()).get("headSculpture");
+        String province = ((HashMap<String, String>) authentication.getDetails()).get("province");
         boolean isFirst = ((HashMap<String, Boolean>) authentication.getDetails()).get("isFirst");
         RedisToken redisToken = new RedisToken();
         Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
@@ -60,6 +61,7 @@ public class JzgAuthenticationSuccessHandler implements AuthenticationSuccessHan
         redisToken.setDeptId(deptId);
         redisToken.setDataScope(dataScopeVo);
         redisToken.setHeadSculpture(headSculpture);
+        redisToken.setProvince(province);
         String token = tokenService.generateToken(username);
         // 生成 JWT Token
         tokenService.saveToken(username,token,JSONObject.toJSONString(redisToken));

+ 9 - 0
authentication/src/main/java/com/jzg/mapper/SysAreaMapper.java

@@ -0,0 +1,9 @@
+package com.jzg.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.po.SysArea;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysAreaMapper extends BaseMapper<SysArea> {
+}

+ 2 - 1
authentication/src/main/resources/mapper/SysUserMapper.xml

@@ -14,7 +14,8 @@
             suji.dept_id,
             suji.NAME,
             suji.work_number,
-            suf.file_name AS head_sculpture
+            suf.file_name AS head_sculpture,
+            suji.province
         FROM
             sys_user su
                 LEFT JOIN sys_user_jzg_info suji ON su.id = suji.user_id

+ 3 - 1
commons/src/main/java/com/jzg/commons/entity/dto/InsOrdersParam.java

@@ -5,7 +5,6 @@ import com.jzg.commons.core.base.PageRequest;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
-import java.util.List;
 
 @Data
 @Schema(description = "订单录入分页列表查询参数")
@@ -26,6 +25,9 @@ public class InsOrdersParam extends PageRequest {
     @Schema(description = "保险公司")
     private String companyName;
 
+    @Schema(description = "保险公司id")
+    private String companyId;
+
     @Schema(description = "业务员")
     private String salesman;
 

+ 0 - 1
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/api/service/impl/BoHaiApiRequestImpl.java

@@ -28,7 +28,6 @@ import com.jzg.commons.entity.quote.vo.base.OrderBase;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
 import com.jzg.quotation.commons.utils.DateUtil;
 import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.HashMap;
 import java.util.List;

+ 2 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/OrgClient.java

@@ -36,7 +36,8 @@ public interface OrgClient {
                                                          @RequestHeader("system_code")String systemCode);
     @GetMapping(value = "/agreement/getByAgreementId")
     public PtlAgreement getByAgreementId(@RequestParam String agreementId,
-                                         @RequestHeader("Authorization") String authToken);
+                                         @RequestHeader("Authorization") String authToken,
+                                         @RequestHeader("system_code")String systemCode);
 
     @GetMapping(value = "/messageTemplate/templateGet")
     public HttpResult<SysMessageTemplate> templateGet(@RequestParam MessageCodeEnum messageCodeEnum,

+ 24 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/component/HengBangCrawlerRequestComponent.java

@@ -1,5 +1,6 @@
 package com.jzg.quotation.hengbang.crawler.component;
 
+import cn.hutool.core.convert.Convert;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.annotation.JsonInclude;
@@ -17,11 +18,12 @@ import com.jzg.quotation.hengbang.crawler.entity.request.*;
 import com.jzg.quotation.hengbang.crawler.entity.response.*;
 import com.jzg.quotation.hengbang.crawler.properties.HengBangCrawlerProperties;
 import com.jzg.quotation.hengbang.crawler.utils.HengBangAESUtil;
-import jakarta.annotation.Resource;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
 import org.redisson.api.RMap;
 import org.redisson.api.RedissonClient;
+import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.*;
 import org.springframework.stereotype.Component;
 import org.springframework.util.LinkedMultiValueMap;
@@ -34,6 +36,7 @@ import javax.crypto.spec.IvParameterSpec;
 import javax.crypto.spec.SecretKeySpec;
 import java.time.Duration;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @description: 恒邦财险
@@ -453,5 +456,25 @@ public class HengBangCrawlerRequestComponent {
                 .concat(plyappno), null, HbCrawlerPayUrlResponse.class, headers).getBody();
     }
 
+    /**
+     * 获取核心非车列表
+     *
+     * @param plyappno
+     * @param headers
+     * @return
+     */
+    public List<Map<String, Object>> lastAccident(String plyappno, HttpHeaders headers) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("plyappno", plyappno);
+        List<Object> response = requestComponent.get(RequestUrl.LAST_ACCIDENT.getRequestUrl(hbCrawlerProperties.getBaseUrl()),
+                map,
+                "",
+                new ParameterizedTypeReference<>(){},
+                headers);
+        return CollectionUtils.emptyIfNull(response)
+                .stream()
+                .map(e -> Convert.toMap(String.class, Object.class, e))
+                .collect(Collectors.toList());
+    }
 
 }

+ 1 - 0
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/constant/enums/RequestUrl.java

@@ -38,6 +38,7 @@ public enum RequestUrl implements CrawlerRequestUrlStandard {
     GET_POLICY("/interflow/api/policy-archive-list", "获取保单信息"),
     DOWNLOAD_POLICY("/interflow/api/sftp/v3/download/policy/", "下载保单"),
 
+    LAST_ACCIDENT("new-insure/api/carinsurenew/lastAccident", "非车列表")
     ;
 
     private final String url;

+ 3 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/entity/request/HbCrawlerCalculationRequest.java

@@ -121,7 +121,7 @@ public class HbCrawlerCalculationRequest extends HbBaseRequest{
     private List<String> ecarChargingPosts;
     private List<String> carInsureDevices;
     private String effectfLag;
-    private List<String> accidentInsuranceList;
+    private List<Object> accidentInsuranceList;
     private List<EpersonliabilityDTO> epersonliabilityList;
     private String begintimeBi;
     private String begintimeCi;
@@ -134,6 +134,8 @@ public class HbCrawlerCalculationRequest extends HbBaseRequest{
     private String taxonomyCode;
     private String epolicyFlag;
     private String accidentEpolicyFlag;
+    private String begintimeAccident;
+    private String endtimeAccident;
 
     @Data
     public static class EpersonliabilityDTO implements Serializable {

+ 57 - 13
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/Impl/HengBangCrawlerRequestImpl.java

@@ -2,7 +2,11 @@ package com.jzg.quotation.hengbang.crawler.service.Impl;
 
 import cn.hutool.core.collection.CollUtil;
 //import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.map.MapUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.crypto.digest.DigestUtil;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.jzg.commons.constants.ProductsType;
@@ -35,11 +39,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.http.HttpHeaders;
 
 
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -110,12 +110,22 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
         String plyappno = hbCrawlerRequestComponent.quoteImmediately(quoteimmediatelyRequest, headers);
         // 5.1 报价第二步,提交报价数据,返回是否重复投保,脱保等提示信息,用于页面展示
         HbCrawlerCalculationRequest calculationRequest = new HbCrawlerCalculationRequest(quoteVo, plyappno);
+        // 非车信息匹配核心
+        matchingAccident(quoteVo, headers, plyappno, calculationRequest);
         String calculationResult = hbCrawlerRequestComponent.getCalculationResult(calculationRequest, headers);
         HbCrawlerProposalResponse proposalResponse = null;
         // 脱保情况 重新赋值核心建议起保时间 二次报价
         if(calculationResult.contains("脱保")){
             calculationRequest.setOutofwarrantytype("N");
             calculationResult = hbCrawlerRequestComponent.getCalculationResult(calculationRequest, headers);
+        // 重复投保 重新赋值核心建议起保时间 二次报价
+        } else if(calculationResult.contains("重复投保")){
+            String time = extractDuplicateEndTime(calculationResult);
+            if (time != null) {
+                calculationRequest.setBegintimeCi(time);
+                calculationRequest.setBegintimeBi(time);
+            }
+            calculationResult = hbCrawlerRequestComponent.getCalculationResult(calculationRequest, headers);
         }
         if(calculationResult.equals("成功")){
             // 5.2 报价第三步,获取报价数据
@@ -127,19 +137,53 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
         }
         return HbCrawlerQuoteResultVoBuild.build(quoteVo, proposalResponse, calculationResult);
     }
-    private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-    private static final Pattern START_TIME_PATTERN = Pattern.compile("起保起期设置为:(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2})[.。!;;]?");
 
     /**
-     * 提取系统自动分配的起保时间(从提示文本中)
-     * @param calculationResult 系统提示文本
-     * @return 提取到的时间字符串(如:2025-12-02 11:46:00),未提取到返回 null
+     * 注释
+     * @param quoteVo
+     * @param headers
+     * @param plyappno
+     * @param calculationRequest
+     */
+    private void matchingAccident(final QuoteVo quoteVo, final HttpHeaders headers,
+                           final String plyappno, final HbCrawlerCalculationRequest calculationRequest) {
+        if (quoteVo.getAccidentalDrivings() == null) {
+            return;
+        }
+        final List<Map<String, Object>> accidentalDrivingList = hbCrawlerRequestComponent.lastAccident(plyappno, headers);
+        // 根据核心返回非车列表 去匹配前端的非车code
+        final Map<String, Object> contentMap = MapUtil.newHashMap();
+        accidentalDrivingList.forEach(e -> {
+            if (ObjectUtil.isNotNull(e.get("programcode"))) {
+                contentMap.put(Convert.toStr(e.get("programcode")).trim(), e);
+            }
+        });
+
+        List<Object> accidnentList = new ArrayList<>();
+        quoteVo.getAccidentalDrivings().stream()
+                .filter(e -> StrUtil.isNotEmpty(e.getProductCode()))
+                .filter(e -> ObjectUtil.isNull(contentMap.get(e.getProductCode().trim())))
+                .forEach(accidnentList::add);
+        calculationRequest.setAccidentInsuranceList(accidnentList);
+    }
+
+    // 重复投保提取时间
+    private static final Pattern DUPLICATE_END_TIME_PATTERN = Pattern.compile("终保日期 (\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2})");
+    /**
+     * 提取系统自动分配的起保时间
+     * @param calculationResult 核心提示
+     * @return 提取到的时间字符串,未提取到返回 null
      */
-    private String extractSystemAssignedTime(String calculationResult) {
-        Matcher matcher = START_TIME_PATTERN.matcher(calculationResult);
-        return matcher.find() ? matcher.group(1) : null;
+    private String extractDuplicateEndTime(String calculationResult) {
+        Matcher matcher = DUPLICATE_END_TIME_PATTERN.matcher(calculationResult);
+        if (matcher.find()) {
+            String shortEndTime = matcher.group(1); // 提取到 2025-12-14 16:00
+            return shortEndTime + ":00"; // 补全秒数为 2025-12-14 16:00:00
+        }
+        return null;
     }
 
+
     /**
      * 提交核保 子订单
      * @param underwritingVo

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/utils/HengBangAESUtil.java


+ 16 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeOrdersServiceImpl.java

@@ -14,7 +14,10 @@ import com.jzg.quotation.summary.service.InsFeeOrdersService;
 import com.jzg.quotation.summary.service.InsOrdersCostsService;
 import com.jzg.quotation.summary.service.InsOrdersService;
 import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletRequest;
 import org.springframework.stereotype.Service;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 
 import java.lang.reflect.Method;
 import java.math.BigDecimal;
@@ -44,6 +47,16 @@ public class InsFeeOrdersServiceImpl extends ServiceImpl<InsFeeOrdersMapper, Ins
     @Resource
     private InsFeeOrdersMapper insFeeOrdersMapper;
 
+
+    private String getSystemCode() {
+        //如果是APP登录的话 则传递SystemCode的头部字段
+        if (baseController.getUserSystemCode().equals("APP")) {
+            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+            return request.getHeader("system_code");
+        }
+        return baseController.getUserSystemCode();
+    }
+
     @Override
     public InsFeeOrders calcCosts(PtlAgreementCostRatioVo ptlAgreementCostRatioVo) throws ReflectiveOperationException {
         // 常量定义 保留小数5位
@@ -55,8 +68,10 @@ public class InsFeeOrdersServiceImpl extends ServiceImpl<InsFeeOrdersMapper, Ins
         InsOrders insOrders = insOrdersService.getById(ptlAgreementCostRatioVo.getOrderNo());
         // 获取订单费用信息
         InsOrdersCosts insOrdersCosts = insOrdersCostsService.getById(insOrders.getId());
+
+        String systemCode = getSystemCode();
         // 获取协议信息
-        PtlAgreement ptlAgreement = orgClient.getByAgreementId(insOrders.getAgreementId(), baseController.getToken());
+        PtlAgreement ptlAgreement = orgClient.getByAgreementId(insOrders.getAgreementId(), baseController.getToken(),systemCode);
         // 获取费用信息
         InsFeeOrders insFeeOrders = insFeeOrdersMapper.selectById(insOrders.getId());
         // 保费

+ 14 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -46,6 +46,7 @@ import com.jzg.quotation.summary.consumer.template.OrderMessageTemplate;
 import com.jzg.quotation.summary.mapper.*;
 import com.jzg.quotation.summary.service.*;
 import com.jzg.quotation.summary.state.listener.OrderStateListener;
+import jakarta.servlet.http.HttpServletRequest;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import org.apache.commons.beanutils.BeanUtils;
@@ -54,6 +55,8 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 
 import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
@@ -1049,16 +1052,26 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         // 费用信息
         InsFeeOrders insFeeOrders = insFeeOrdersMapper.selectOne(new LambdaQueryWrapper<InsFeeOrders>()
                 .eq(InsFeeOrders::getOrderNo, ordersNo));
+        String systemCode = getSystemCode();
         // 比例信息
         if (insFeeOrders != null) {
             resultVo.setInsFeeOrders(new InsFeeOrdersVo(insFeeOrders));
             List<PtlAgreementCostTypeVo> ptlAgreementCostTypeList = orgClient.queryByCostId(insFeeOrders.getCostId());
-            PtlAgreement ptlAgreement = orgClient.getByAgreementId(insOrdersVo.getInsOrders().getAgreementId(),baseController.getToken());
+            PtlAgreement ptlAgreement = orgClient.getByAgreementId(insOrdersVo.getInsOrders().getAgreementId(),baseController.getToken(),systemCode);
             resultVo.setCostRatio(new PtlAgreementCostRatioVo(ptlAgreementCostTypeList,ptlAgreement));
         }
         return resultVo;
     }
 
+    private String getSystemCode() {
+        //如果是APP登录的话 则传递SystemCode的头部字段
+        if (baseController.getUserSystemCode().equals("APP")) {
+            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+            return request.getHeader("system_code");
+        }
+        return baseController.getUserSystemCode();
+    }
+
     @Override
     /**
      * 获取历史报价信息

+ 3 - 0
tenant/insurance/quotation-summary/src/main/resources/mapper/InsOrdersMapper.xml

@@ -585,6 +585,9 @@
         <if test="insOrdersParam.salesman!= null">
             AND io.real_quote_user_id = #{insOrdersParam.salesman}
         </if>
+        <if test="insOrdersParam.companyId != null and insOrdersParam.companyId != ''">
+            AND io.company_id = #{insOrdersParam.companyId}
+        </if>
         <if test="insOrdersParam.startDate != null and insOrdersParam.startDate != ''and insOrdersParam.endDate != null and insOrdersParam.endDate != ''">
             AND io.create_time BETWEEN #{insOrdersParam.startDate} and #{insOrdersParam.endDate}
         </if>

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels