Просмотр исходного кода

Merge remote-tracking branch 'origin/dev_jzg_lipf_v20260622'

jiakai 2 месяцев назад
Родитель
Сommit
d49fae7367
17 измененных файлов с 179 добавлено и 25 удалено
  1. 42 0
      commons/src/main/java/com/jzg/commons/constants/SettlementIdentificationEnum.java
  2. 3 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/InsFeeFollowOrderDto.java
  3. 3 0
      commons/src/main/java/com/jzg/commons/entity/finance/po/InsFeeFollowOrder.java
  4. 6 0
      commons/src/main/java/com/jzg/commons/entity/finance/vo/FollowCompanyFeeVO.java
  5. 3 0
      commons/src/main/java/com/jzg/commons/entity/finance/vo/InsFeeFollowOrderVo.java
  6. 9 1
      commons/src/main/java/com/jzg/commons/entity/orders/vo/FeeAuditVo.java
  7. 6 0
      commons/src/main/java/com/jzg/commons/entity/po/InsFeeOrders.java
  8. 5 0
      commons/src/main/java/com/jzg/commons/entity/vo/UserAccountStatisVo.java
  9. 5 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java
  10. 5 5
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeOrdersServiceImpl.java
  11. 2 1
      tenant/organization/src/main/java/com/jzg/organization/controller/ReceivableController.java
  12. 9 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysAmountAuditingMapper.java
  13. 65 11
      tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java
  14. 7 2
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserAccountServiceImpl.java
  15. 1 0
      tenant/organization/src/main/resources/mapper/InsFeeFollowOrderMapper.xml
  16. 4 3
      tenant/organization/src/main/resources/mapper/ReceivableMapper.xml
  17. 4 0
      tenant/organization/src/main/resources/mapper/SysAmountAuditingMapper.xml

+ 42 - 0
commons/src/main/java/com/jzg/commons/constants/SettlementIdentificationEnum.java

@@ -0,0 +1,42 @@
+package com.jzg.commons.constants;
+
+/**
+ * 费用类型枚举
+ */
+public enum SettlementIdentificationEnum {
+
+    /** 1、手续费 */
+    UNSETTLED("0", "未结算"),
+    /** 2、跟单费 */
+    SETTLED("1", "已结算");
+
+    // 编码(String类型)
+    private final String code;
+    // 名称(String类型)
+    private final String desc;
+
+    SettlementIdentificationEnum(String code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    /**
+     * 根据code获取枚举
+     */
+    public static SettlementIdentificationEnum getByCode(String code) {
+        for (SettlementIdentificationEnum value : values()) {
+            if (value.getCode().equals(code)) {
+                return value;
+            }
+        }
+        return null;
+    }
+}

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/InsFeeFollowOrderDto.java

@@ -45,6 +45,9 @@ public class InsFeeFollowOrderDto extends PageRequest {
     @Schema(description = "本次开票金额")
     private BigDecimal invoicedAmountTime;
 
+    @Schema(description = "是否结算完成 0:未结算 1:已结算")
+    private String settlementIdentification;
+
     @Schema(description = "系统编码")
     private String systemCode;
 }

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/finance/po/InsFeeFollowOrder.java

@@ -54,6 +54,9 @@ public class InsFeeFollowOrder extends BaseModel {
     @Schema(description = "虚增差额")
     private BigDecimal falselyIncreasedDifference;
 
+    @Schema(description = "是否结算完成 0:未结算 1:已结算")
+    private String settlementIdentification;
+
     @Schema(description = "虚增原因")
     private String falselyIncreasedReason;
 

+ 6 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/FollowCompanyFeeVO.java

@@ -74,4 +74,10 @@ public class FollowCompanyFeeVO {
      */
     private String invoiceType;
 
+    /**
+     * 是否结算完成 0:未结算 1:已结算
+     */
+    @Schema(description = "是否结算完成 0:未结算 1:已结算")
+    private String settlementIdentification;
+
 }

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

@@ -56,6 +56,9 @@ public class InsFeeFollowOrderVo implements Serializable {
     @Schema(description = "虚增原因")
     private String falselyIncreasedReason;
 
+    @Schema(description = "是否结算完成 0:未结算 1:已结算")
+    private String settlementIdentification;
+
     @Schema(description = "本次开票金额")
     private BigDecimal invoicedAmountTime;
 

+ 9 - 1
commons/src/main/java/com/jzg/commons/entity/orders/vo/FeeAuditVo.java

@@ -190,9 +190,17 @@ public class FeeAuditVo extends BaseModel {
     @Schema(description = "驾意险应付费用")
     private BigDecimal jyPayablePremium;
 
+    @ExcelIgnore
+    @Schema(description = "总应付费用(含分销)")
+    private BigDecimal totalPayablePremium;
+
+    /**
+     * 表示不含分销费用的金额
+     */
     @ExcelProperty("总应付费用")
     @Schema(description = "总应付费用")
-    private BigDecimal totalPayablePremium;
+    private BigDecimal totalExportPremium;
+
 
     @ExcelProperty("交强险手续费费用")
     @Schema(description = "交强险手续费费用")

+ 6 - 0
commons/src/main/java/com/jzg/commons/entity/po/InsFeeOrders.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jzg.commons.util.BigDecimalUtil;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -81,6 +82,11 @@ public class InsFeeOrders {
     @Schema(description = "总应付保费")
     private BigDecimal totalPayablePremium;
 
+    @Schema(description = "出口合计")
+    public BigDecimal getTotalExportPremium(){
+        return BigDecimalUtil.add(this.jqExportPremium, this.syExportPremium, this.jyExportPremium);
+    }
+
     @Schema(description = "交强险手续费费用")
     private BigDecimal jqCommissionPremium;
 

+ 5 - 0
commons/src/main/java/com/jzg/commons/entity/vo/UserAccountStatisVo.java

@@ -3,6 +3,8 @@ package com.jzg.commons.entity.vo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 @Schema(description = "应付统计表VO")
 @Data
 public class UserAccountStatisVo {
@@ -19,4 +21,7 @@ public class UserAccountStatisVo {
     @Schema(description = "未付总计")
     private Double notPaidSum;
 
+    @Schema(description = "支付中金额总计")
+    private BigDecimal payingAmountSum;
+
 }

+ 5 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java

@@ -517,7 +517,9 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                 userAccount.setSystemCode(systemCode);
             }
             BigDecimal sumAmountUnpaid = userAccount.getSumAmountUnpaid();
-            BigDecimal amount = feeOrders.getTotalPayablePremium();
+            // modify by lipf 2026年7月17日14:29:18 tatalPayablePremium() 是包含分销费用的,
+            //BigDecimal amount = feeOrders.getTotalPayablePremium();
+            BigDecimal amount = feeOrders.getTotalExportPremium();
             log.info("费用审核通过。 amount=[{}].feeOrders=[{}]",amount, JSONUtil.toJsonStr(feeOrders));
             userAccount.setSumAmount(BigDecimalUtil.add(amount,userAccount.getSumAmount()));
             userAccount.setSumAmountUnpaid(BigDecimalUtil.add(amount, sumAmountUnpaid));
@@ -528,7 +530,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
             exportChangeLog.setRelatedOrderId(param.getOrderNo());
             exportChangeLog.setUserId(userAccount.getUserId());
             exportChangeLog.setUserName(ywySysUser.getUsername());
-            exportChangeLog.setAmount(feeOrders.getTotalPayablePremium());
+            exportChangeLog.setAmount(amount);
             exportChangeLog.setOperType(1);
             exportChangeLog.setIsDelete(0);
             exportChangeLog.setRemark("保单费用");
@@ -1012,6 +1014,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
             feeAuditVo.setJyPayablePremium(feeAuditVo.getJyPayablePremium().setScale(2, RoundingMode.HALF_UP));
             feeAuditVo.setSyPayablePremium(feeAuditVo.getSyPayablePremium().setScale(2, RoundingMode.HALF_UP));
             feeAuditVo.setJqPayablePremium(feeAuditVo.getJqPayablePremium().setScale(2, RoundingMode.HALF_UP));
+            feeAuditVo.setTotalExportPremium(BigDecimalUtil.add(feeAuditVo.getJqExportPremium().setScale(2,RoundingMode.HALF_DOWN), feeAuditVo.getSyExportPremium().setScale(2,RoundingMode.HALF_DOWN), feeAuditVo.getJyExportPremium().setScale(2,RoundingMode.HALF_DOWN)));
         }
 
         // 调用动态导出

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

@@ -97,11 +97,11 @@ public class InsFeeOrdersServiceImpl extends ServiceImpl<InsFeeOrdersMapper, Ins
             log.error("根据订单号[{}]未找到费用审核记录",ptlAgreementCostRatioVo.getOrderNo());
             return HttpResult.error(msg);
         }
-        if("1".equals(Objects.toString(insFeeAudit.getAuditStatus(),"")) ){
-            String msg =String.format("订单号为[%s]的订单已经审核通过,无法进行费用调整", ptlAgreementCostRatioVo.getOrderNo());
-            log.error(msg);
-            return HttpResult.error(msg);
-        }
+//        if("1".equals(Objects.toString(insFeeAudit.getAuditStatus(),"")) ){
+//            String msg =String.format("订单号为[%s]的订单已经审核通过,无法进行费用调整", ptlAgreementCostRatioVo.getOrderNo());
+//            log.error(msg);
+//            return HttpResult.error(msg);
+//        }
         InsFeeOrders insFeeOrders = getInsFeeOrders(ptlAgreementCostRatioVo);
         log.info("调整后费用.参数[{}]真实结果是[{}]", JSONUtil.toJsonStr(ptlAgreementCostRatioVo), JSONUtil.toJsonStr(insFeeOrders));
         // 保存比例

+ 2 - 1
tenant/organization/src/main/java/com/jzg/organization/controller/ReceivableController.java

@@ -441,8 +441,9 @@ public class ReceivableController {
     }
 
     @PostMapping("/getPlatFormReceivableList")
-    @Operation(summary = "获取平台协议列表")
+    @Operation(summary = "获取平台应收列表")
     public HttpResult<InsPlyIncomeVO> getPlatFormReceivableList(@RequestBody ReceivableQueryVo receivableQueryVo){
+        log.info("获取平台应收列表:receivableQueryVo=[{}]", JSONUtil.toJsonStr(receivableQueryVo));
         if (StrUtil.isBlank(receivableQueryVo.getQueryType())){
             receivableQueryVo.setQueryType("1");
         }

+ 9 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysAmountAuditingMapper.java

@@ -7,6 +7,7 @@ import com.jzg.commons.entity.po.SysAmountAuditing;
 import com.jzg.commons.entity.vo.AmountAuditVo;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -59,6 +60,14 @@ public interface SysAmountAuditingMapper extends BaseMapper<SysAmountAuditing> {
      */
     List<SysAmountAuditing> queryPaymentByUserId(@Param("userId") String userId,
                                                  @Param("auditingStatus") Integer auditingStatus);
+
+    /**
+     * 查询指定租户下,所有支付中的金额汇总
+     *
+     * @author lipf
+     * @date 2026/7/17 10:24
+     */
+    BigDecimal queryPayingAmountSum();
 }
 
 

+ 65 - 11
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.constants.InvoiceTypeEnum;
 import com.jzg.commons.constants.ProductsType;
+import com.jzg.commons.constants.SettlementIdentificationEnum;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
@@ -864,12 +865,13 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             List<String> followIds = voList.stream().map(FollowCompanyFeeVO::getFollowId).distinct().toList();
             List<String> settlementIds = voList.stream().map(FollowCompanyFeeVO::getSettlementId).distinct().toList();
 
-            // 应收金额(取第一条)
-            InsFeeFollowOrder firstFollow = followOrderMap.get(followIds.get(0));
+            // 应收金额(取第任意一条就行了)
+            InsFeeFollowOrder firstFollow = followOrderMap.getOrDefault(followIds.get(0), new InsFeeFollowOrder());
             BigDecimal receivablePremium = Optional.ofNullable(firstFollow)
                     .map(InsFeeFollowOrder::getReceivablePremium)
                     .orElse(BigDecimal.ZERO);
-            // 对账金额
+
+            // 对账金额,如果ins_fee_follow_order表没有数据,则去ins_fee_follow_order_reconciliation表查询,最后返回空值
             BigDecimal reconciliationAmount = Optional.ofNullable(firstFollow)
                     .map(InsFeeFollowOrder::getReconciliationAmount)
                     .orElse(BigDecimal.ZERO);
@@ -893,7 +895,13 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                     .map(InsPlyIncomeInvoiceSettlement::getActualReceivedAmount)
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
             vo.setTotalSettlementAmount(totalSettlementAmount);
-            vo.setTotalUnSettlementAmount(totalInvoiced.subtract(totalSettlementAmount));
+            // 设置未结算总金额,获取所有ins_fee_follow_order数据,只有所以的都结算了,才能算已结算
+            List<InsFeeFollowOrder> insFeeFollowOrderList = followOrderMap.values().stream().filter(insFeeFollowOrder -> insFeeFollowOrder.getYear().toString().equals(year) && insFeeFollowOrder.getMonth().toString().equals(month) && insFeeFollowOrder.getPartnerCompanyId().equals(partnerCompanyId) && insFeeFollowOrder.getInvoiceType().equals(invoiceType)).toList();
+            if (insFeeFollowOrderList.size() == insFeeFollowOrderList.stream().filter(insFeeFollowOrder -> SettlementIdentificationEnum.SETTLED.getCode().equals(insFeeFollowOrder.getSettlementIdentification())).count()){
+                vo.setTotalUnSettlementAmount(BigDecimal.ZERO);
+            }else{
+                vo.setTotalUnSettlementAmount(totalInvoiced.subtract(totalSettlementAmount));
+            }
 
             aggResult.add(vo);
         }
@@ -1099,6 +1107,19 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                 newVo.setTotalUnInvoiced(BigDecimal.ZERO);
                 newVo.setTotalSettlementAmount(BigDecimal.ZERO);
                 newVo.setTotalUnSettlementAmount(BigDecimal.ZERO);
+
+                // 查询对账金额,如果有值就赋上值
+                LambdaQueryWrapper<InsFeeFollowOrderReconciliation> insFeeFollowOrderReconciliationLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                insFeeFollowOrderReconciliationLambdaQueryWrapper.eq(InsFeeFollowOrderReconciliation::getYear, signYear);
+                insFeeFollowOrderReconciliationLambdaQueryWrapper.eq(InsFeeFollowOrderReconciliation::getMonth, signMonth);
+                insFeeFollowOrderReconciliationLambdaQueryWrapper.eq(InsFeeFollowOrderReconciliation::getPartnerCompanyId, partnerCompanyId);
+                insFeeFollowOrderReconciliationLambdaQueryWrapper.eq(InsFeeFollowOrderReconciliation::getInvoiceType, invoiceType);
+                List<InsFeeFollowOrderReconciliation> insFeeFollowOrderReconciliations = insFeeFollowOrderReconciliationMapper.selectList(insFeeFollowOrderReconciliationLambdaQueryWrapper);
+                if (CollUtil.isNotEmpty(insFeeFollowOrderReconciliations)){
+                    InsFeeFollowOrderReconciliation insFeeFollowOrderReconciliation = CollUtil.getFirst(insFeeFollowOrderReconciliations);
+                    newVo.setTotalReconciliationAmount(insFeeFollowOrderReconciliation.getReconciliationAmount());
+                }
+
                 newVo.setCompanyName(getCompanyName(partnerCompanyId, companyMap));
                 resultList.add(newVo);
             }
@@ -1690,9 +1711,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             return false;
         }
         long result;
-        final String number = "1";
+        final String number = SettlementIdentificationEnum.SETTLED.getCode();
         result = switch (invoiceType) {
-            case number -> baseMapper.update(new LambdaUpdateWrapper<InsPlyIncome>()
+            case "1" -> baseMapper.update(new LambdaUpdateWrapper<InsPlyIncome>()
                     .in(InsPlyIncome::getId, incomeIds)
                     .set(InsPlyIncome::getSuperviseSettlement, number)
                     .set(InsPlyIncome::getSettlementTime,settlementTime)
@@ -1762,7 +1783,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                                                 String systemCode, String companyId) {
         log.info("更新结算状态: invoiceType=[{}], incomeIds=[{}], settlementTime=[{}], systemCode=[{}], companyId=[{}]",
                 invoiceType, JSONUtil.toJsonStr(incomeIds), settlementTime, systemCode, companyId);
-        final String number = "1";
+        final String number = SettlementIdentificationEnum.SETTLED.getCode();
         long result = 0;
         // 针对 invoiceType 为 2 或 4 的特殊逻辑:按签约年月、系统编码、公司ID进行批量更新
         if ("2".equals(invoiceType) || "4".equals(invoiceType)) {
@@ -2662,7 +2683,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             if (surplusPremium.compareTo(settlementVo.getActualReceivedAmount()) <= 0) {
                 log.info("序号为[{}]的发票已经结算完成",insPlyIncomeInvoice.getId());
                 // 更新发票状态
-                insPlyIncomeInvoice.setStatus("1");
+                insPlyIncomeInvoice.setStatus(SettlementIdentificationEnum.SETTLED.getCode());
                 insPlyIncomeInvoiceMapper.updateById(insPlyIncomeInvoice);
                 // 将所有订单进行标记
                 List<String> incomeIds = new ArrayList<>();
@@ -4424,11 +4445,14 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             if (surplusPremium.compareTo(settlementVo.getActualReceivedAmount()) <= 0) {
                 log.info("序号为[{}]的发票已经结算完成",insPlyIncomeInvoice.getId());
                 // 更新发票状态
-                insPlyIncomeInvoice.setStatus("1");
+                insPlyIncomeInvoice.setStatus(SettlementIdentificationEnum.SETTLED.getCode());
                 insPlyIncomeInvoiceMapper.updateById(insPlyIncomeInvoice);
                 // 判断是需要更新哪个字段
                 this.updateIncomeSettlementStatus(insPlyIncomeInvoice.getInvoiceType(), null, LocalDateTime.now(),
                         baseController.getSystemCode(), insPlyIncomeInvoice.getCompanyId());
+
+                // 更新 ins_fee_follow_order的结算状态
+                updateFollowSettlementIdentification(settlementVo.getInvoicingId());
             }else{
                 log.info("invoiceId=[{}], 还剩[{}]钱没有结算",settlementVo.getInvoicingId(), surplusPremium.subtract(settlementVo.getActualReceivedAmount()));
             }
@@ -6143,11 +6167,11 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         // 标记结算完成的时候,将未结算金额汇总 到最后一次结算的回款差额里面  lipf 2026年7月7日10:53:47
         BigDecimal settlementAmount =  insPlyIncomeInvoiceSettlements.stream().map(action-> BigDecimalUtil.add(action.getSettlementPaymentDifference(), action.getActualReceivedAmount()))
                 .reduce(BigDecimal.ZERO,BigDecimal::add);
-        BigDecimal subtract = BigDecimalUtil.subtract(insPlyIncomeInvoice.getReceivableSupervisePremium(), settlementAmount);
+        BigDecimal subtract = BigDecimalUtil.subtract(settlementAmount, insPlyIncomeInvoice.getReceivableSupervisePremium());
         if (CollUtil.isNotEmpty(insPlyIncomeInvoiceSettlements)){
             if(subtract.compareTo(BigDecimal.ZERO) != 0){
                 InsPlyIncomeInvoiceSettlement insPlyIncomeInvoiceSettlement = insPlyIncomeInvoiceSettlements.get(0);
-                insPlyIncomeInvoiceSettlement.setSettlementPaymentDifference(BigDecimalUtil.add(subtract,insPlyIncomeInvoiceSettlement.getSettlementPaymentDifference()));
+                insPlyIncomeInvoiceSettlement.setSettlementPaymentDifference(subtract);
                 insPlyIncomeInvoiceSettlement.setSettlementPaymentReason(settlementPaymentReason);
                 insPlyIncomeInvoiceSettlementMapper.updateById(insPlyIncomeInvoiceSettlement);
             }
@@ -6160,6 +6184,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             insPlyIncomeInvoiceSettlement.setSettlementPaymentReason(settlementPaymentReason);
             insPlyIncomeInvoiceSettlementMapper.insert(insPlyIncomeInvoiceSettlement);
         }
+        // 更新 ins_fee_follow_order的结算状态
+        updateFollowSettlementIdentification(invoiceId);
+
         return insPlyIncomeInvoiceMapper.update(null, new LambdaUpdateWrapper<InsPlyIncomeInvoice>()
                 .set(InsPlyIncomeInvoice::getStatus,"1")
                 .set(InsPlyIncomeInvoice::getUpdateBy,userName)
@@ -6167,6 +6194,33 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                 .eq(InsPlyIncomeInvoice::getId, invoiceId));
     }
 
+    /**
+     * 根据发票ID更新发票的结算完成标识
+     * <p>
+     * 该方法用于根据指定的发票ID更新发票的结算完成标识,包括以下处理逻辑:
+     * 1. 获取当前操作用户信息和租户代码
+     * 2. 查询指定发票ID的关联的应收订单列表
+     */
+    private void updateFollowSettlementIdentification(String invoiceId) {
+        // 更新 ins_fee_follow_order的结算状态
+        LambdaQueryWrapper<InsPlyFollowInvoiceLink> insPlyFollowInvoiceLinkLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        insPlyFollowInvoiceLinkLambdaQueryWrapper.eq(InsPlyFollowInvoiceLink::getInvoiceId, invoiceId);
+        List<InsPlyFollowInvoiceLink> insPlyFollowInvoiceLinks = insPlyFollowInvoiceLinkMapper.selectList(insPlyFollowInvoiceLinkLambdaQueryWrapper);
+        if (CollUtil.isNotEmpty(insPlyFollowInvoiceLinks)){
+            // 根据link表的follow_id查询follow表
+            LambdaQueryWrapper<InsFeeFollowOrder> insFeeFollowOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            insFeeFollowOrderLambdaQueryWrapper.in(InsFeeFollowOrder::getId, insPlyFollowInvoiceLinks.stream().map(InsPlyFollowInvoiceLink::getFollowId).toList());
+            List<InsFeeFollowOrder> insFeeFollowOrders = insFeeFollowOrderMapper.selectList(insFeeFollowOrderLambdaQueryWrapper);
+            if (CollUtil.isNotEmpty(insFeeFollowOrders)){
+                // 批量修改:是否结算完成
+                for (InsFeeFollowOrder insFeeFollowOrder : insFeeFollowOrders) {
+                    insFeeFollowOrder.setSettlementIdentification(SettlementIdentificationEnum.SETTLED.getCode());
+                }
+                insFeeFollowOrderMapper.updateById(insFeeFollowOrders);
+            }
+        }
+    }
+
     /**
      * yyyy-MM-dd 转当天起始 LocalDateTime
      */

+ 7 - 2
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserAccountServiceImpl.java

@@ -16,6 +16,7 @@ import com.jzg.commons.entity.vo.SysUserWalletVo;
 import com.jzg.commons.entity.vo.UserAccountStatisVo;
 import com.jzg.commons.util.BigDecimalUtil;
 import com.jzg.organization.client.QuoteClient;
+import com.jzg.organization.mapper.SysAmountAuditingMapper;
 import com.jzg.organization.mapper.SysUserAccountMapper;
 import com.jzg.organization.service.*;
 import org.slf4j.Logger;
@@ -59,7 +60,8 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
 
     @Autowired
     private SysDeptService sysDeptService;
-
+    @Autowired
+    private SysAmountAuditingMapper sysAmountAuditingMapper;
     @Autowired
     private QuoteClient quoteClient;
 
@@ -83,7 +85,10 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
     @Override
     public UserAccountStatisVo getPayableStatistics(SysUserAccountParam param) {
         log.info("查询财务统计信息: param=[{}]", JSONUtil.toJsonStr(param));
-        return this.baseMapper.getPayableStatistics(param);
+        UserAccountStatisVo payableStatistics = this.baseMapper.getPayableStatistics(param);
+        BigDecimal payingAmountSum = sysAmountAuditingMapper.queryPayingAmountSum();
+        payableStatistics.setPayingAmountSum(payingAmountSum== null? BigDecimal.ZERO:payingAmountSum);
+        return payableStatistics;
     }
 
     /**

+ 1 - 0
tenant/organization/src/main/resources/mapper/InsFeeFollowOrderMapper.xml

@@ -52,6 +52,7 @@
         ffo.year,
         ffo.month,
         ffo.invoice_type,
+        ffo.settlement_identification,
         inv.id AS invoiceId,
         sett.id AS settlementId
         FROM ins_fee_follow_order ffo

+ 4 - 3
tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

@@ -1488,8 +1488,8 @@
         ipii.update_by,
         eic.name as company_name,
         eic.name_simple as companyNameSimple,
-        sum( ipiis.actual_received_amount ) AS actual_received_amount,
-        GROUP_CONCAT(DISTINCT ipiis.settlement_payment_reason SEPARATOR ',') AS paymentReason,
+        ipii.payment_reason ,
+        sum(ipiis.actual_received_amount) AS actual_received_amount, GROUP_CONCAT(DISTINCT ipiis.settlement_payment_reason SEPARATOR ',') AS settlementPaymentReason,
         ipii.status
         FROM
         ins_ply_income_invoice ipii
@@ -1562,7 +1562,8 @@
         eic.name_simple as companyNameSimple,
         sum( ipiis.actual_received_amount ) AS actual_received_amount,
         ipii.status,
-        GROUP_CONCAT(DISTINCT ipiis.settlement_payment_reason SEPARATOR ',') as paymentReason,
+        ipii.payment_reason,
+        GROUP_CONCAT(DISTINCT ipiis.settlement_payment_reason SEPARATOR ',') as settlementPaymentReason,
         GROUP_CONCAT(DISTINCT iffo.year SEPARATOR ',') AS year,
         GROUP_CONCAT(DISTINCT iffo.month SEPARATOR ',') AS month,
         iffo.partner_company_id,

+ 4 - 0
tenant/organization/src/main/resources/mapper/SysAmountAuditingMapper.xml

@@ -259,4 +259,8 @@
             </if>
         </where>
     </select>
+    <!-- 查询指定租户下,所有支付中的金额汇总 lipf 2026年7月17日10:26:36 -->
+    <select id="queryPayingAmountSum" resultType="java.math.BigDecimal">
+        select sum(COALESCE(saa.amount, 0)) as payingAmountSum from sys_amount_auditing saa where saa.auditing_status = 0
+    </select>
 </mapper>