Parcourir la source

Merge remote-tracking branch 'origin/dev_jzg_lipf_v20260622' into dev_jzg_lipf_v20260622

lipf il y a 1 mois
Parent
commit
a49c76db60

+ 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.
      */

+ 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);
+    }
+
     /**
      * 结合原有的费用比例,计算更新后的费用比例
      *

+ 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);
 }

+ 42 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -157,6 +157,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;
 
 
     /**
@@ -3853,6 +3855,44 @@ 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()
+                    .filter(income -> "0".equals(income.getDisableFlag()))
+                    .map(InsPlyIncome::getId)
+                    .collect(Collectors.toList());
+
+            if (CollUtil.isNotEmpty(updateIncomeIds)) {
+                // ins_ply_income根据incomeIds修改companyId和partnerCompanyId
+                // 注意:companyName为@TableField(exist=false)非数据库字段,不需要更新
+                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());
+            } else {
+                log.info("没有未对账的应收订单需要修改保司信息");
+            }
+
+            // 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;
     }
 
@@ -4709,6 +4749,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;
     }