浏览代码

修改bug:
平台应收,平台应收订单显示的跟单比例有负数情况

jiakai 3 月之前
父节点
当前提交
c125851976

+ 6 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/ReceiverSettlementReportDto.java

@@ -3,6 +3,9 @@ package com.jzg.commons.entity.finance.dto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
+
 /**
  * @author quchen
  * @date 2025/9/16 10:32
@@ -52,4 +55,7 @@ public class ReceiverSettlementReportDto {
 
     @Schema(description = "已结算发票的发票号")
     private String invoiceIds;
+
+    @Schema(description = "回款差额")
+    private BigDecimal totalPaymentDifference;
 }

+ 38 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/InsPlyIncomeInvoiceSettlementVo.java

@@ -0,0 +1,38 @@
+package com.jzg.commons.entity.finance.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.jzg.commons.core.base.BaseModel;
+import com.jzg.commons.util.idgen.IdGenerate;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Schema(description = "财务应收开票结算表")
+public class InsPlyIncomeInvoiceSettlementVo extends BaseModel {
+    @Serial
+    private static final long serialVersionUID = -2019053289601744522L;
+
+    @Schema(description = "票据iD")
+    private String invoiceId;
+
+    @Schema(description = "实收金额")
+    private BigDecimal actualReceivedAmount;
+
+    @Schema(description = "收款日期")
+    private Date receivePaymentDate;
+
+    @Schema(description = "回款差额")
+    private BigDecimal settlementPaymentDifference;
+
+    @Schema(description = "回款原因")
+    private String settlementPaymentReason;
+
+
+}

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

@@ -25,6 +25,9 @@ public class SettlementQueryVo extends PageRequest {
     @Schema(description = "保险公司Id")
     private String companyId;
 
+    @Schema(description = "保险公司Id")
+    private String partnerCompanyId;
+
     @Schema(description = "应收项")
     private String invoiceRiskType;
 

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

@@ -1782,6 +1782,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         if(batchModifyVo.getJqSuperviseCostsProportion() != null && batchModifyVo.getJqOtherCostsProportion() == null){
             jqInletRatio = insFeeOrders.getJqInletRatio();
             jqCommissionRatio = batchModifyVo.getJqSuperviseCostsProportion();
+            if (jqCommissionRatio.compareTo(jqInletRatio) > 0){
+                jqCommissionRatio = jqInletRatio;
+            }
             jqFollowRatio = BigDecimalUtil.subtract(jqInletRatio,jqCommissionRatio);
         }else if(batchModifyVo.getJqSuperviseCostsProportion() == null && batchModifyVo.getJqOtherCostsProportion() != null){
              jqCommissionRatio = insFeeOrders.getJqCommissionRatio();
@@ -1807,6 +1810,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         if(batchModifyVo.getSySuperviseCostsProportion() != null && batchModifyVo.getSyOtherCostsProportion() == null){
             syInletRatio = insFeeOrders.getSyInletRatio();
             syCommissionRatio = batchModifyVo.getSySuperviseCostsProportion();
+            if (syCommissionRatio.compareTo(syInletRatio) > 0){
+                syCommissionRatio = syInletRatio;
+            }
             syFollowRatio = BigDecimalUtil.subtract(syInletRatio,syCommissionRatio);
         }else if(batchModifyVo.getSySuperviseCostsProportion() == null && null != batchModifyVo.getSyOtherCostsProportion()){
             syCommissionRatio = insFeeOrders.getSyCommissionRatio();
@@ -1832,6 +1838,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         if(batchModifyVo.getJySuperviseCostsProportion() != null && batchModifyVo.getJyOtherCostsProportion() == null){
             jyInletRatio = insFeeOrders.getJyInletRatio();
             jyCommissionRatio = batchModifyVo.getJySuperviseCostsProportion();
+            if (jyCommissionRatio.compareTo(jyInletRatio) > 0){
+                jyCommissionRatio = jyInletRatio;
+            }
             jyFollowRatio = BigDecimalUtil.subtract(jyInletRatio,jyCommissionRatio);
         }else if(batchModifyVo.getJySuperviseCostsProportion() == null && batchModifyVo.getJyOtherCostsProportion() != null){
             jyCommissionRatio = insFeeOrders.getJyCommissionRatio();

+ 1 - 1
tenant/organization/src/main/java/com/jzg/organization/mapper/ReceivableMapper.java

@@ -270,7 +270,7 @@ public interface ReceivableMapper extends BaseMapper<InsPlyIncome> {
      * @author lipf
      * @date 2026/6/22 15:47
      */
-    BigDecimal querySettledAmountByInvoiceIds(@Param("invoiceIdList") List<String> invoiceIdList);
+    InsPlyIncomeInvoiceSettlementVo querySettledAmountByInvoiceIds(@Param("invoiceIdList") List<String> invoiceIdList);
 
     List<FollowCompanyFeeVO> selectPlatformCompanySettlementReport(@Param("query") SettlementReportQueryVo settlementReportQueryVo);
 }

+ 13 - 3
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -2344,6 +2344,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         if(batchModifyVo.getJqSuperviseCostsProportion() != null && batchModifyVo.getJqOtherCostsProportion() == null){
             jqInletRatio = insFeeOrders .getJqInletRatio();
             jqCommissionRatio = batchModifyVo.getJqSuperviseCostsProportion();
+            if (jqCommissionRatio.compareTo(jqInletRatio) > 0){
+                jqCommissionRatio = jqInletRatio;
+            }
             jqFollowRatio = BigDecimalUtil.subtract(jqInletRatio,jqCommissionRatio);
         }else if(batchModifyVo.getJqSuperviseCostsProportion() == null && batchModifyVo.getJqOtherCostsProportion() != null){
             jqCommissionRatio = BigDecimalUtil.null2Zero(insPlyIncome.getJqSuperviseCostsProportion());
@@ -2369,6 +2372,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         if(batchModifyVo.getSySuperviseCostsProportion() != null && batchModifyVo.getSyOtherCostsProportion() == null){
             syInletRatio = insFeeOrders.getSyInletRatio();
             syCommissionRatio = batchModifyVo.getSySuperviseCostsProportion();
+            if (syCommissionRatio.compareTo(syInletRatio) > 0){
+                syCommissionRatio = syInletRatio;
+            }
             syFollowRatio = BigDecimalUtil.subtract(syInletRatio,syCommissionRatio);
         }else if(batchModifyVo.getSySuperviseCostsProportion() == null && null != batchModifyVo.getSyOtherCostsProportion()){
             syCommissionRatio = BigDecimalUtil.null2Zero(insPlyIncome.getSySuperviseCostsProportion());
@@ -2394,6 +2400,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         if(batchModifyVo.getJySuperviseCostsProportion() != null && batchModifyVo.getJyOtherCostsProportion() == null){
             jyInletRatio = insFeeOrders.getJyInletRatio();
             jyCommissionRatio = batchModifyVo.getJySuperviseCostsProportion();
+            if (jyCommissionRatio.compareTo(jyInletRatio) > 0){
+                jyCommissionRatio = jyInletRatio;
+            }
             jyFollowRatio = BigDecimalUtil.subtract(jyInletRatio,jyCommissionRatio);
         }else if(batchModifyVo.getJySuperviseCostsProportion() == null && batchModifyVo.getJyOtherCostsProportion() != null){
             jyCommissionRatio = BigDecimalUtil.null2Zero(insPlyIncome.getJySuperviseCostsProportion());
@@ -4115,9 +4124,10 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                     List<String> invoiceIdList = Arrays.asList(invoiceIds.split(","));
                     log.info("invoiceIdList.size=[{}]", CollUtil.size(invoiceIdList));
                     log.info("invoiceIdList=[{}]", JSONUtil.toJsonStr(invoiceIdList));
-                    BigDecimal amount = baseMapper.querySettledAmountByInvoiceIds(invoiceIdList);
-                    action.setSettledAmount(Objects.toString(amount,"0"));
-                    action.setUnSettledAmount(BigDecimalUtil.subtract(new BigDecimal(action.getTotalReceivable()),amount).toString());
+                    InsPlyIncomeInvoiceSettlementVo insPlyIncomeInvoiceSettlementVo = baseMapper.querySettledAmountByInvoiceIds(invoiceIdList);
+                    action.setSettledAmount(Objects.toString(insPlyIncomeInvoiceSettlementVo.getActualReceivedAmount(),"0"));
+                    action.setTotalPaymentDifference(insPlyIncomeInvoiceSettlementVo.getSettlementPaymentDifference());
+                    action.setUnSettledAmount(BigDecimalUtil.subtract(new BigDecimal(action.getTotalReceivable()),insPlyIncomeInvoiceSettlementVo.getActualReceivedAmount()).toString());
                 }else{
                     action.setSettledAmount("0");
                     action.setUnSettledAmount(BigDecimalUtil.subtract(new BigDecimal(action.getTotalReceivable()),BigDecimal.ZERO).toString());

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

@@ -48,10 +48,10 @@
     <select id="selectFollowCompanySettlementReport" resultType="com.jzg.commons.entity.finance.vo.FollowCompanyFeeVO">
         SELECT
         ffo.partner_company_id AS partnerCompanyId,
-        COALESCE(SUM(ffo.invoiced), 0.00) AS totalInvoiced,
-        COALESCE(SUM(ffo.uninvoiced), 0.00) AS totalUnInvoiced,
-        COALESCE(SUM(sett.actual_received_amount), 0.00) AS totalSettlementAmount,
-        COALESCE(SUM(ffo.reconciliation_amount), 0.00) AS totalReceivable
+        SUM(COALESCE(ffo.invoiced, 0.00)) AS totalInvoiced,
+        SUM(COALESCE(ffo.uninvoiced, 0.00)) AS totalUnInvoiced,
+        SUM(COALESCE(sett.actual_received_amount, 0.00)) AS totalSettlementAmount,
+        SUM(COALESCE(ffo.reconciliation_amount, 0.00)) AS totalReceivable
         FROM ins_fee_follow_order ffo
         -- 跟单订单关联发票中间表
         INNER JOIN ins_ply_follow_invoice_link link

+ 9 - 2
tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

@@ -755,6 +755,9 @@
             <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
                 AND ipii.company_id = #{settlementQueryVo.companyId}
             </if>
+            <if test="settlementQueryVo.partnerCompanyId != null and settlementQueryVo.partnerCompanyId != ''">
+                AND fo.partner_company_id = #{settlementQueryVo.partnerCompanyId}
+            </if>
             <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
                 AND ipii.invoice_party = #{settlementQueryVo.invoiceParty}
             </if>
@@ -1908,8 +1911,12 @@
         </where>
     </select>
     <!-- 查询发票结算的金额 2026年6月22日15:48:33 lipf  -->
-    <select id="querySettledAmountByInvoiceIds" resultType="java.math.BigDecimal">
-        select sum(ipiis.actual_received_amount ) from ins_ply_income_invoice_settlement ipiis
+    <select id="querySettledAmountByInvoiceIds" resultType="com.jzg.commons.entity.finance.vo.InsPlyIncomeInvoiceSettlementVo">
+        select
+            sum(ipiis.actual_received_amount ) as actual_received_amount,
+            sum(ipiis.settlement_payment_difference ) as settlement_payment_difference
+        from
+        ins_ply_income_invoice_settlement ipiis
         <where>
             <if test="invoiceIdList != null and invoiceIdList.size() > 0">
                 and ipiis.invoice_id in