Преглед на файлове

Merge remote-tracking branch 'origin/dev_jzg_lipf_v20260622'

jiakai преди 1 месец
родител
ревизия
b68bdae561
променени са 15 файла, в които са добавени 258 реда и са изтрити 13 реда
  1. 3 0
      commons/src/main/java/com/jzg/commons/entity/finance/vo/BatchModifyVo.java
  2. 12 1
      commons/src/main/java/com/jzg/commons/util/OrderComponents.java
  3. 14 0
      platform/src/main/java/com/jzg/controller/EsmInsCompanyController.java
  4. 9 0
      platform/src/main/java/com/jzg/service/EsmInsCompanyService.java
  5. 33 0
      platform/src/main/java/com/jzg/service/impl/EsmInsCompanyServiceImpl.java
  6. 2 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/OrderOperationLogAspect.java
  7. 1 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java
  8. 13 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsOrdersController.java
  9. 9 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersService.java
  10. 53 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java
  11. 2 2
      tenant/organization/src/main/java/com/jzg/organization/aop/OrderOperationLogAspect.java
  12. 9 0
      tenant/organization/src/main/java/com/jzg/organization/client/EsmInsCompanyClient.java
  13. 12 0
      tenant/organization/src/main/java/com/jzg/organization/client/InsOrdersClient.java
  14. 80 7
      tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java
  15. 6 0
      tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/BatchModifyVo.java

@@ -60,6 +60,9 @@ public class BatchModifyVo {
     @Schema(description = "修改标识 1-手续费 2-跟单费 3-驾意险 4-所有都改")
     private String updateFlag;
 
+    @Schema(description = "公司id")
+    private List<String> companyIds;
+
     /**
      * 所有的比例都转换为百分比,除以100.
      */

+ 12 - 1
commons/src/main/java/com/jzg/commons/util/OrderComponts.java → commons/src/main/java/com/jzg/commons/util/OrderComponents.java

@@ -4,7 +4,7 @@ package com.jzg.commons.util;
 import java.util.HashMap;
 import java.util.Map;
 
-public class OrderComponts {
+public class OrderComponents {
 
     public static Map<String, String> fillKeyNameMap(){
 
@@ -52,9 +52,20 @@ public class OrderComponts {
         nameMap.put("insFeeOrders.jqCommissionPremium","交强险手续费费用");
         nameMap.put("insFeeOrders.syCommissionPremium","商业险手续费费用");
         nameMap.put("insFeeOrders.jyCommissionPremium","驾意险手续费费用");
+
+        nameMap.put("costRatio.jyAdditionalRatio","驾意险加投比例");
+        nameMap.put("costRatio.syAdditionalRatio","商业险加投比例");
+        nameMap.put("costRatio.jqAdditionalRatio","交强险加投比例");
+        nameMap.put("insFeeOrders.syAdditionalPremium","商业险加投费费费用");
+        nameMap.put("insFeeOrders.jyAdditionalPremium","驾意险加投费费费用");
+        nameMap.put("insFeeOrders.jqAdditionalPremium","交强险加投费费费用");
+
         nameMap.put("insFeeOrders.signTime","签单时间");
         nameMap.put("order.dockingPerson","对接人姓名");
         nameMap.put("order.dockingPersonPhone","对接人手机号");
+
+
+
         return nameMap;
     }
 

+ 14 - 0
platform/src/main/java/com/jzg/controller/EsmInsCompanyController.java

@@ -497,4 +497,18 @@ public class EsmInsCompanyController extends BaseController {
         log.info("查询保险公司关联的所有子公司和总公司: companyId=[{}], companyIds=[{}],companyIds.size=[{}]", companyId, JSONUtil.toJsonStr(companyIds), CollUtil.size(companyIds));
         return HttpResult.ok(companyIds);
     }
+
+    /**
+     * 查询保险公司的所有子公司(含子子公司)以及保险公司本身
+     *
+     * @author lipf
+     * @date 2026/7/31 9:44
+     */
+    @GetMapping("/queryOwnAndSubCompandyIds")
+    HttpResult<List<String>> queryOwnAndSubCompandyIds(@RequestParam("companyId") String companyId){
+        List<String> companyIds = esmInsCompanyService.queryOwnAndSubCompandyIds(companyId);
+        companyIds = companyIds.stream().distinct().toList();
+        log.info("查询保险公司关联的所有子公司: companyId=[{}], companyIds=[{}],companyIds.size=[{}]", companyId, JSONUtil.toJsonStr(companyIds), CollUtil.size(companyIds));
+        return HttpResult.ok(companyIds);
+    }
 }

+ 9 - 0
platform/src/main/java/com/jzg/service/EsmInsCompanyService.java

@@ -171,6 +171,15 @@ public interface EsmInsCompanyService extends IService<EsmInsCompany> {
      * @date 2026年7月31日09:29:26
      */
     List<String> queryRelatedCompanyIds(String companyId);
+
+    /**
+     * 查询保险公司及其子保险公司
+     *
+     * @param companyId 公司id(可能是总公司,也可能是支公司)
+     * @author lipf
+     * @date 2026/8/5 9:45
+     */
+    List<String> queryOwnAndSubCompandyIds(String companyId);
 }
 
 

+ 33 - 0
platform/src/main/java/com/jzg/service/impl/EsmInsCompanyServiceImpl.java

@@ -495,6 +495,39 @@ public class EsmInsCompanyServiceImpl extends ServiceImpl<EsmInsCompanyMapper, E
         companyIds.add(esmInsCompany.getParentId());
         return companyIds;
     }
+
+    /**
+     * 查询保险公司及其子保险公司
+     *
+     * @param companyId 公司id(可能是总公司,也可能是支公司)
+     * @author lipf
+     * @date 2026/8/5 9:45
+     */
+    @Override
+    public List<String> queryOwnAndSubCompandyIds(String companyId) {
+        log.info("查询保险公司及其子保险公司(不断递归)companyId=[{}]",companyId);
+        List<String> companyIds = new  ArrayList<>();
+        companyIds.add(companyId);
+        LambdaQueryWrapper<EsmInsCompany> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(EsmInsCompany::getParentId, companyId);
+        List<EsmInsCompany> esmInsCompanies = baseMapper.selectList(queryWrapper);
+        List<EsmInsCompany> childCompany = new ArrayList<>();
+        for (EsmInsCompany esmInsCompany : esmInsCompanies) {
+            companyIds.add(esmInsCompany.getId());
+            LambdaQueryWrapper<EsmInsCompany> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(EsmInsCompany::getParentId, esmInsCompany.getId());
+            childCompany = baseMapper.selectList(wrapper);
+            childCompany.stream().map(EsmInsCompany::getId).forEach(companyIds::add);
+        }
+        for (EsmInsCompany esmInsCompany : childCompany) {
+            companyIds.add(esmInsCompany.getId());
+            LambdaQueryWrapper<EsmInsCompany> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(EsmInsCompany::getParentId, esmInsCompany.getId());
+            List<EsmInsCompany> subChildCompany = baseMapper.selectList(wrapper);
+            subChildCompany.stream().map(EsmInsCompany::getId).forEach(companyIds::add);
+        }
+        return companyIds;
+    }
 }
 
 

+ 2 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/OrderOperationLogAspect.java

@@ -18,7 +18,7 @@ import com.jzg.commons.entity.vo.AdjustAllRefundVo;
 import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
 import com.jzg.commons.entity.vo.QuestionOrder;
 import com.jzg.commons.util.JsonDiffUtil;
-import com.jzg.commons.util.OrderComponts;
+import com.jzg.commons.util.OrderComponents;
 import com.jzg.quotation.commons.constant.SpElMapping;
 import com.jzg.quotation.commons.utils.SpElFieldExtractor;
 import com.jzg.quotation.summary.aop.aspect.OrderOperationLog;
@@ -279,7 +279,7 @@ public class OrderOperationLogAspect {
         if(CollUtil.isNotEmpty(diffMap)){
             List<String> oldItems = new ArrayList<>();
             List<String> newItems = new ArrayList<>();
-            Map<String,String> keyMap = OrderComponts.fillKeyNameMap();
+            Map<String,String> keyMap = OrderComponents.fillKeyNameMap();
             diffMap.forEach((path, values) ->{
                         System.out.println("路径: " + path + " -> 值1: " + values.get(0) + " | 值2: " + values.get(1));
                         oldItems.add(keyMap.getOrDefault(path,path)  + ": " + values.get(0));

+ 1 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java

@@ -490,7 +490,7 @@ public class QuoteVerificationAspect {
         }
 
         // 去税保费金额
-        BigDecimal taxablePremium = premium.divide(taxFactor,5,RoundingMode.HALF_EVEN);
+        BigDecimal taxablePremium = premium.divide(taxFactor,6,RoundingMode.HALF_EVEN);
 
         // 计算应付金额(保费 * 出口比例,保留2位小数)
         BigDecimal payable = premium.multiply(exportPercent.setScale(5, RoundingMode.DOWN)).setScale(2,RoundingMode.DOWN);

+ 13 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsOrdersController.java

@@ -257,6 +257,19 @@ public class InsOrdersController extends BaseController {
         return insOrdersService.updateOrdersBatch(batchModifyVo);
     }
 
+    /**
+     * 批量修改ins_orders和ins_order_adjust的保司信息
+     *
+     * @param batchModifyVo 批量修改参数,包含orderNos和companyIds
+     * @author lipf
+     * @date 2026/8/5
+     */
+    @PostMapping("/updateCompanyBatch")
+    @Operation(summary = "批量修改订单和批改表的保司信息")
+    public HttpResult<String> updateCompanyBatch(@RequestBody BatchModifyVo batchModifyVo){
+        return insOrdersService.updateCompanyBatch(batchModifyVo);
+    }
+
     @GetMapping("/comparePrice")
     @Operation(summary = "比价")
     public HttpResult comparePrice(String quoteNo){

+ 9 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersService.java

@@ -288,6 +288,15 @@ public interface InsOrdersService extends IService<InsOrders> {
      */
     HttpResult<String> updateOrdersBatch(BatchModifyVo batchModifyVo);
 
+    /**
+     * 批量修改ins_orders和ins_order_adjust的保司信息
+     *
+     * @param batchModifyVo 批量修改参数,包含orderNos和companyIds
+     * @author lipf
+     * @date 2026/8/5
+     */
+    HttpResult<String> updateCompanyBatch(BatchModifyVo batchModifyVo);
+
     /**
      * 获取订单关联协议的税率
      *

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

@@ -111,6 +111,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
     private final InsOrdersMapper insOrdersMapper;
 
+    private final InsOrderAdjustMapper insOrderAdjustMapper;
+
     private final OrgClient orgClient;
 
     private final PlatformClient platformClient;
@@ -2381,6 +2383,57 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         return HttpResult.ok(msg);
     }
 
+    /**
+     * 批量修改ins_orders和ins_order_adjust的保司信息
+     * <p>
+     * 1. 根据companyIds获取新的保司ID,并通过EsmInsCompanyClient查询保司名称
+     * 2. 根据orderNos批量修改ins_orders表的companyId和companyName
+     * 3. 根据orderNos批量修改ins_order_adjust表的companyId和companyName
+     * </p>
+     *
+     * @param batchModifyVo 批量修改参数,包含orderNos和companyIds
+     * @author lipf
+     * @date 2026/8/5
+     */
+    @Override
+    public HttpResult<String> updateCompanyBatch(BatchModifyVo batchModifyVo) {
+        log.info("批量修改订单和批改表的保司信息: batchModifyVo=[{}]", JSONUtil.toJsonStr(batchModifyVo));
+        List<String> orderNos = batchModifyVo.getOrderNos();
+        if (CollUtil.isEmpty(orderNos)) {
+            return HttpResult.error("批量修改保司信息时,请指定订单编号");
+        }
+        List<String> companyIds = batchModifyVo.getCompanyIds();
+        if (CollUtil.isEmpty(companyIds)) {
+            return HttpResult.error("批量修改保司信息时,请指定保司ID");
+        }
+
+        // 获取新的保司ID
+        String companyId = CollUtil.getFirst(companyIds);
+        // 通过保司ID查询保司名称
+        String companyName = "";
+        HttpResult<EsmInsCompany> companyResult = esmInsCompanyClient.findById(companyId);
+        if (companyResult != null && companyResult.isSuccess() && companyResult.getData() != null) {
+            companyName = companyResult.getData().getName();
+        }
+
+        // 修改ins_orders表的保司信息
+        int orderCount = baseMapper.update(null, new LambdaUpdateWrapper<InsOrders>()
+                .set(InsOrders::getCompanyId, companyId)
+                .set(InsOrders::getCompanyName, companyName)
+                .in(InsOrders::getId, orderNos));
+        log.info("修改ins_orders保司信息完成,影响行数: {}", orderCount);
+
+        // 修改ins_order_adjust表的保司信息
+        int adjustCount = insOrderAdjustMapper.update(null, new LambdaUpdateWrapper<InsOrderAdjust>()
+                .set(InsOrderAdjust::getCompanyId, companyId)
+                .set(InsOrderAdjust::getCompanyName, companyName)
+                .in(InsOrderAdjust::getOrderNo, orderNos));
+        log.info("修改ins_order_adjust保司信息完成,影响行数: {}", adjustCount);
+
+        String msg = String.format("成功修改%d条订单和%d条批改记录的保司信息", orderCount, adjustCount);
+        return HttpResult.ok(msg);
+    }
+
     /**
      * 结合原有的费用比例,计算更新后的费用比例
      *

+ 2 - 2
tenant/organization/src/main/java/com/jzg/organization/aop/OrderOperationLogAspect.java

@@ -11,7 +11,7 @@ import com.jzg.commons.entity.orders.po.InsOrdersTrack;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
 import com.jzg.commons.entity.vo.QuestionOrder;
 import com.jzg.commons.util.JsonDiffUtil;
-import com.jzg.commons.util.OrderComponts;
+import com.jzg.commons.util.OrderComponents;
 import com.jzg.organization.client.InsOrdersClient;
 import com.jzg.quotation.summary.aop.aspect.OrderOperationLog;
 import org.aspectj.lang.ProceedingJoinPoint;
@@ -160,7 +160,7 @@ public class OrderOperationLogAspect {
             if(CollUtil.isNotEmpty(diffMap)){
                 List<String> oldItems = new ArrayList<>();
                 List<String> newItems = new ArrayList<>();
-                Map<String,String> keyMap = OrderComponts.fillKeyNameMap();
+                Map<String,String> keyMap = OrderComponents.fillKeyNameMap();
                 diffMap.forEach((path, values) ->{
                             System.out.println("路径: " + path + " -> 值1: " + values.get(0) + " | 值2: " + values.get(1));
                             oldItems.add(keyMap.getOrDefault(path,path)  + ": " + values.get(0));

+ 9 - 0
tenant/organization/src/main/java/com/jzg/organization/client/EsmInsCompanyClient.java

@@ -86,4 +86,13 @@ public interface EsmInsCompanyClient {
      */
     @GetMapping("/esmInsCompany/queryRelatedCompanyIds")
     HttpResult<List<String>> queryRelatedCompanyIds(@RequestParam("companyId") String companyId);
+
+    /**
+     * 查询保险公司的所有子公司(含子子公司)以及保险公司本身
+     *
+     * @author lipf
+     * @date 2026/7/31 9:44
+     */
+    @GetMapping("/esmInsCompany/queryOwnAndSubCompandyIds")
+    HttpResult<List<String>> queryOwnAndSubCompandyIds(@RequestParam("companyId") String companyId);
 }

+ 12 - 0
tenant/organization/src/main/java/com/jzg/organization/client/InsOrdersClient.java

@@ -1,6 +1,7 @@
 package com.jzg.organization.client;
 
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.finance.vo.BatchModifyVo;
 import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersCarInfo;
 import com.jzg.commons.entity.orders.po.InsOrdersTrack;
@@ -72,4 +73,15 @@ public interface InsOrdersClient {
     @GetMapping("/feeAudit/auditInfo")
     @Operation(summary = "订单审核详情")
     HttpResult<QuoteEchoVo> auditInfo(@RequestParam("orderNo")  String orderNo);
+
+    /**
+     * 根据订单号批量修改ins_orders和ins_order_adjust的保司信息
+     *
+     * @param batchModifyVo 批量修改参数,包含orderNos和companyIds
+     * @author jk
+     * @date 2026/8/5
+     */
+    @PostMapping("/supplementOrder/updateCompanyBatch")
+    @Operation(summary = "批量修改订单和批改表的保司信息")
+    HttpResult<String> updateCompanyBatch(@RequestBody BatchModifyVo batchModifyVo);
 }

+ 80 - 7
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -15,6 +15,7 @@ import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.constants.InvoiceTypeEnum;
@@ -157,6 +158,8 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
     private static final String PT_INVOICING_COMMISSION_LOCK = "PT_INVOICING_COMMISSION_LOCK:";
     // 平台非车险结算锁
     private static final String PT_INVOICING_OTHER_LOCK = "PT_INVOICING_OTHER_LOCK:";
+    @Autowired
+    private InsPlyIncomeMapper insPlyIncomeMapper;
 
 
     /**
@@ -1050,6 +1053,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
      * 优化:嵌套anyMatch改为HashMapID映射匹配,O(n²) -> O(n)
      */
     private List<InsPlyIncomeDto>  filterIncomeByInvoiceAndSettleCondition(List<InsPlyIncomeDto> incomeList, SettlementReportQueryVo queryVo) {
+        log.info("对查询条件进行转义:queryVo=[{}]", JSONUtil.toJsonStr(queryVo));
         String status = queryVo.getStatus();
         String invoiceStartTime = queryVo.getInvoiceStartTime();
         String invoiceEndTime = queryVo.getInvoiceEndTime();
@@ -3852,6 +3856,69 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         log.info("batchModifyVo=[{}]", JSONUtil.toJsonStr(batchModifyVo));
         HttpResult<String> updateOrdersRes = insFeeOrdersClient.updateOrdersBatch(batchModifyVo);
         log.info("更新车险订单的结果:updateOrdersRes=[{}]", JSONUtil.toJsonStr(updateOrdersRes));
+
+        // 如果companyIds不为空,则执行保司信息修改逻辑
+        // 涉及表:ins_ply_income(未对账的才改)、ins_orders、ins_order_adjust
+        if (CollUtil.isNotEmpty(batchModifyVo.getCompanyIds())) {
+            List<String> companyIds = batchModifyVo.getCompanyIds();
+            // 获取新的保司ID(companyIds第一个元素)和合作保险公司ID(companyIds第二个元素,若不存在则使用保司ID)
+            String newCompanyId = CollUtil.getFirst(companyIds);
+            String newPartnerCompanyId = CollUtil.size(companyIds) > 1 ? CollUtil.getLast(companyIds) : newCompanyId;
+
+            // 1. 修改ins_ply_income表(仅修改未对账的数据)
+            // 调用setDisableFlagForOtherReceivable设置disableFlag:1-已对账(已开票),0-未对账(未开票)
+            String systemCode = baseController.getSystemCode();
+            this.setDisableFlagForOtherReceivable(incomeList, systemCode);
+
+            // 收集disableFlag=0(未对账/未开票)的应收订单ID,已对账的数据跳过不修改
+            List<String> updateIncomeIds = incomeList.stream()
+                    .map(InsPlyIncome::getId)
+                    .collect(Collectors.toList());
+            List<InsPlyIncome> insPlyIncomeList = incomeList.stream()
+                    .filter(income -> "0".equals(income.getDisableFlag()))
+                    .collect(Collectors.toList());
+
+            if (CollUtil.isNotEmpty(insPlyIncomeList)) {
+                // ins_ply_income根据incomeIds修改companyId和partnerCompanyId
+                // 注意:companyName为@TableField(exist=false)非数据库字段,不需要更新
+                for (InsPlyIncome insPlyIncome : insPlyIncomeList) {
+                    LocalDateTime signingTime = insPlyIncome.getSigningTime();
+                    if (signingTime == null || insPlyIncome.getCompanyId() == null
+                            || insPlyIncome.getPartnerCompanyId() == null){
+                        log.warn("当前投保收入数据字段为空,跳过更新:{}",insPlyIncome);
+                        continue;
+                    }
+
+                    LambdaUpdateWrapper<InsFeeFollowOrderReconciliation> updateWrapper = Wrappers.lambdaUpdate();
+                    updateWrapper
+                            .eq(InsFeeFollowOrderReconciliation::getSystemCode, systemCode)
+                            .eq(InsFeeFollowOrderReconciliation::getYear, signingTime.getYear())
+                            .eq(InsFeeFollowOrderReconciliation::getMonth, signingTime.getMonthValue())
+                            .eq(InsFeeFollowOrderReconciliation::getCompanyId, insPlyIncome.getCompanyId())
+                            .eq(InsFeeFollowOrderReconciliation::getPartnerCompanyId, insPlyIncome.getPartnerCompanyId())
+                            .set(InsFeeFollowOrderReconciliation::getCompanyId, newCompanyId)
+                            .set(InsFeeFollowOrderReconciliation::getPartnerCompanyId, newPartnerCompanyId);
+                    int rows = insFeeFollowOrderReconciliationMapper.update(null, updateWrapper);
+                    log.info("本次更新对账记录条数:{}",rows);
+                }
+
+            } else {
+                log.info("没有未对账的应收订单需要修改保司信息");
+            }
+
+            // 修改ins_ply_income表
+            LambdaUpdateWrapper<InsPlyIncome> incomeUpdateWrapper = new LambdaUpdateWrapper<>();
+            incomeUpdateWrapper.set(InsPlyIncome::getCompanyId, newCompanyId)
+                    .set(InsPlyIncome::getPartnerCompanyId, newPartnerCompanyId)
+                    .in(InsPlyIncome::getId, updateIncomeIds);
+            baseMapper.update(null, incomeUpdateWrapper);
+            log.info("修改ins_ply_income保司信息完成,未对账数据条数: {}", updateIncomeIds.size());
+
+            // 2. 修改ins_orders和ins_order_adjust表(通过feignClient调用quotation-summary服务)
+            HttpResult<String> updateCompanyRes = insOrdersClient.updateCompanyBatch(batchModifyVo);
+            log.info("修改ins_orders和ins_order_adjust保司信息的结果:updateCompanyRes=[{}]", JSONUtil.toJsonStr(updateCompanyRes));
+        }
+
         return true;
     }
 
@@ -4562,6 +4629,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                 vo.setReconciliationAmount(insFeeFollowOrderReconciliation.getReconciliationAmount());
                 vo.setFalselyIncreasedDifference(insFeeFollowOrderReconciliation.getFalselyIncreasedDifference());
                 vo.setFalselyIncreasedReason(insFeeFollowOrderReconciliation.getFalselyIncreasedReason());
+                vo.setUninvoiced(insFeeFollowOrderReconciliation.getReconciliationAmount());
             }else{
                 // 数据库无记录,使用默认值或DTO里的值
                 vo.setReconciliationAmount(null);
@@ -4708,6 +4776,8 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         Page<InsPlyIncome> page = baseMapper.getReceivablePage(receivableQueryVo.getPage(), receivableQueryVo);
         List<InsPlyIncome> records = page.getRecords();
         records = this.fillOtherInfo(records,null);
+        // 过滤业务来源
+        records = records.stream().filter(income -> StrUtil.isBlank(receivableQueryVo.getTypeAttr()) || receivableQueryVo.getTypeAttr().equals(income.getTypeAttr())).collect(Collectors.toList());
         page.setRecords(records);
         return page;
     }
@@ -5593,6 +5663,12 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         log.info("保险公司结算报表查询-区分租户并且按照日期进行过滤:systemCode=[{}],queryVo=[{}]", systemCode, JSONUtil.toJsonStr(queryVo));
         // 1. 先将有数据的保险公司进行汇总
         // 累计应收金额, 应收手续费(手续费)
+        if(StrUtil.isNotEmpty(queryVo.getCompanyId())){
+            HttpResult<List<String>> subCompanyIdRes = esmInsCompanyClient.queryOwnAndSubCompandyIds(queryVo.getCompanyId());
+            queryVo.setCompanyIdList(subCompanyIdRes.getData());
+        }
+
+
         List<CompanySuperviseSettlementReportDto> allCompaniesIncomeDatas = baseMapper.queryCumulativeAccountsReceivable(systemCode, queryVo);
 
 //        allCompaniesIncomeDatas = allCompaniesIncomeDatas.stream().filter(action->{
@@ -5662,11 +5738,10 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             return HttpResult.ok(msg, Collections.emptyList());
         }
         // add by lipf, 前端保险公司的查询条件未生效,进行bug修复
-        // TODO 这里需要都支持
-        if(StrUtil.isNotEmpty(queryVo.getCompanyId())){
-            allCompaniesIncomeDatas = allCompaniesIncomeDatas.stream()
-                    .filter(action-> queryVo.getCompanyId().equals(action.getPartnerCompanyId())).toList();
-        }
+//        if(StrUtil.isNotEmpty(queryVo.getCompanyId())){
+//            allCompaniesIncomeDatas = allCompaniesIncomeDatas.stream()
+//                    .filter(action-> queryVo.getCompanyId().equals(action.getPartnerCompanyId())).toList();
+//        }
         // 2. 汇总后,计算得到已开票,未开票,已结算,未结算的数据
         allCompaniesIncomeDatas = this.calStatisAmount(allCompaniesIncomeDatas, queryVo, systemCode);
         // 保留已开票的数据
@@ -5748,8 +5823,6 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         // 已开票(跟单费)
 
         List<String> invoiceTypes = List.of("1","3");
-
-
         if("10".equals(queryVo.getAccountsReceivable())){
             invoiceTypes = List.of("1");
         }else if("20".equals(queryVo.getAccountsReceivable())){

+ 6 - 0
tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

@@ -1992,6 +1992,12 @@
             <if test="vo.agreementType != null and vo.agreementType != ''">
                 AND ipi.agreement_type = #{vo.agreementType}
             </if>
+            <if test="vo.companyIdList != null and vo.companyIdList.size() > 0">
+                AND ipi.partner_company_id in
+                <foreach collection="vo.companyIdList" open="(" separator="," item="companyId" close=")">
+                    #{companyId}
+                </foreach>
+            </if>
             <if test="vo.status != null">
                 <if test="vo.status == 1">
                     AND ipi.settlement_time IS NOT NULL