Преглед изворни кода

平台应收 结算报表的保险公司报表数据缺失

lipf пре 3 месеци
родитељ
комит
d8e34f7c83

+ 5 - 1
commons/src/main/java/com/jzg/commons/entity/finance/vo/FollowCompanyFeeVO.java

@@ -1,6 +1,5 @@
 package com.jzg.commons.entity.finance.vo;
 package com.jzg.commons.entity.finance.vo;
 
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.Data;
 
 
@@ -37,6 +36,11 @@ public class FollowCompanyFeeVO {
     /** 未结算总金额  totalInvoiced - totalSettlementAmount */
     /** 未结算总金额  totalInvoiced - totalSettlementAmount */
     private BigDecimal totalUnSettlementAmount;
     private BigDecimal totalUnSettlementAmount;
 
 
+    /**
+     * 已结算记录的序号集
+     */
+    private String settleIdsStr;
+
     /** 回款差额 */
     /** 回款差额 */
     private BigDecimal totalPaymentDifference;
     private BigDecimal totalPaymentDifference;
 
 

+ 4 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/PlatformCompanyFeeVO.java

@@ -0,0 +1,4 @@
+package com.jzg.commons.entity.finance.vo;
+
+public class PlatformCompanyFeeVO extends FollowCompanyFeeVO{
+}

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

@@ -732,7 +732,7 @@ public class ReceivableController {
      */
      */
     @PostMapping("/platformCompanySuperviseSettlementReport")
     @PostMapping("/platformCompanySuperviseSettlementReport")
     @Operation(summary = "平台公司结算报表")
     @Operation(summary = "平台公司结算报表")
-    public HttpResult<List<FollowCompanyFeeVO>> platformCompanySuperviseSettlementReport(@RequestBody SettlementReportQueryVo settlementReportQueryVo) {
+    public HttpResult<List<PlatformCompanyFeeVO>> platformCompanySuperviseSettlementReport(@RequestBody SettlementReportQueryVo settlementReportQueryVo) {
         return HttpResult.ok(receivableService.platformCompanySuperviseSettlementReport(settlementReportQueryVo));
         return HttpResult.ok(receivableService.platformCompanySuperviseSettlementReport(settlementReportQueryVo));
     }
     }
 
 

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

@@ -1,11 +1,21 @@
 package com.jzg.organization.mapper;
 package com.jzg.organization.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.jzg.commons.entity.finance.po.InsPlyIncomeInvoice;
 import com.jzg.commons.entity.finance.po.InsPlyIncomeInvoiceSettlement;
 import com.jzg.commons.entity.finance.po.InsPlyIncomeInvoiceSettlement;
+import com.jzg.commons.entity.finance.vo.SettlementVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 
 @Mapper
 @Mapper
 public interface InsPlyIncomeInvoiceSettlementMapper extends BaseMapper<InsPlyIncomeInvoiceSettlement> {
 public interface InsPlyIncomeInvoiceSettlementMapper extends BaseMapper<InsPlyIncomeInvoiceSettlement> {
 
 
+    /**
+     * 查询所有已结算记录的结算金额和回款差额的汇总值
+     *
+     * @author lipf
+     * @date 2026/6/30 15:39
+     */
+    SettlementVo querySettlementAndDiff(@Param("settlementIds") List<String> settlementIds);
 }
 }

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

@@ -286,5 +286,5 @@ public interface ReceivableMapper extends BaseMapper<InsPlyIncome> {
      */
      */
     InsPlyIncomeInvoiceSettlementVo querySettledAmountByInvoiceIds(@Param("invoiceIdList") List<String> invoiceIdList);
     InsPlyIncomeInvoiceSettlementVo querySettledAmountByInvoiceIds(@Param("invoiceIdList") List<String> invoiceIdList);
 
 
-    List<FollowCompanyFeeVO> selectPlatformCompanySettlementReport(@Param("query") SettlementReportQueryVo settlementReportQueryVo);
+    List<PlatformCompanyFeeVO> selectPlatformCompanySettlementReport(@Param("query") SettlementReportQueryVo settlementReportQueryVo);
 }
 }

+ 1 - 1
tenant/organization/src/main/java/com/jzg/organization/service/ReceivableService.java

@@ -511,5 +511,5 @@ public interface ReceivableService extends IService<InsPlyIncome> {
 
 
     List<FollowCompanyFeeVO> followCompanySuperviseSettlementReport(SettlementReportQueryVo settlementReportQueryVo);
     List<FollowCompanyFeeVO> followCompanySuperviseSettlementReport(SettlementReportQueryVo settlementReportQueryVo);
 
 
-    List<FollowCompanyFeeVO> platformCompanySuperviseSettlementReport(SettlementReportQueryVo settlementReportQueryVo);
+    List<PlatformCompanyFeeVO> platformCompanySuperviseSettlementReport(SettlementReportQueryVo settlementReportQueryVo);
 }
 }

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

@@ -761,20 +761,29 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
      * - companyName: 保险公司名称  - companyId: 保险公司ID - contactPerson: 对接人   - contactPersonPhone: 对接人手机号  - partnerCompanyId: 分支保险公司ID  - totalInvoiced: 已开票总金额  - totalUnInvoiced: 未开票总金额  - totalSettlementAmount: 已结算总金额  - totalUnSettlementAmount: 未结算总金额(统一设置为0) - totalPaymentDifference: 回款差额  - totalReceivable: 累计应收
      * - companyName: 保险公司名称  - companyId: 保险公司ID - contactPerson: 对接人   - contactPersonPhone: 对接人手机号  - partnerCompanyId: 分支保险公司ID  - totalInvoiced: 已开票总金额  - totalUnInvoiced: 未开票总金额  - totalSettlementAmount: 已结算总金额  - totalUnSettlementAmount: 未结算总金额(统一设置为0) - totalPaymentDifference: 回款差额  - totalReceivable: 累计应收
      */
      */
     @Override
     @Override
-    public List<FollowCompanyFeeVO> platformCompanySuperviseSettlementReport(SettlementReportQueryVo settlementReportQueryVo) {
+    public List<PlatformCompanyFeeVO> platformCompanySuperviseSettlementReport(SettlementReportQueryVo settlementReportQueryVo) {
         log.info("平台协议-结算记录-结算报表: settlementReportQueryVo=[{}]", JSONUtil.toJsonStr(settlementReportQueryVo));
         log.info("平台协议-结算记录-结算报表: settlementReportQueryVo=[{}]", JSONUtil.toJsonStr(settlementReportQueryVo));
-
-        List<FollowCompanyFeeVO> platformCompanyFeeVos = baseMapper.selectPlatformCompanySettlementReport(settlementReportQueryVo);
+        List<PlatformCompanyFeeVO> platformCompanyFeeVos = baseMapper.selectPlatformCompanySettlementReport(settlementReportQueryVo);
         // 过滤掉对接人和对接人手机号为空的数据
         // 过滤掉对接人和对接人手机号为空的数据
-        List<FollowCompanyFeeVO> list = platformCompanyFeeVos.stream().filter(plat -> StrUtil.isNotBlank(plat.getContactPerson()) && StrUtil.isNotBlank(plat.getContactPersonPhone())).toList();
+        // List<PlatformCompanyFeeVO> list = platformCompanyFeeVos.stream().filter(plat -> StrUtil.isNotBlank(plat.getContactPerson()) && StrUtil.isNotBlank(plat.getContactPersonPhone())).toList();
         // 查询所有保险公司,匹配保险公司的id和名称
         // 查询所有保险公司,匹配保险公司的id和名称
         HttpResult<Map<String, EsmInsCompany>> mapHttpResult = esmInsCompanyClient.queryAllCompanyMap();
         HttpResult<Map<String, EsmInsCompany>> mapHttpResult = esmInsCompanyClient.queryAllCompanyMap();
         Map<String, EsmInsCompany> data = mapHttpResult.getData();
         Map<String, EsmInsCompany> data = mapHttpResult.getData();
-        for (FollowCompanyFeeVO platformCompanyFeeVo : list) {
+        for (PlatformCompanyFeeVO platformCompanyFeeVo : platformCompanyFeeVos) {
             platformCompanyFeeVo.setCompanyName(null != data.get(platformCompanyFeeVo.getCompanyId()) ? data.get(platformCompanyFeeVo.getCompanyId()).getName() : "");
             platformCompanyFeeVo.setCompanyName(null != data.get(platformCompanyFeeVo.getCompanyId()) ? data.get(platformCompanyFeeVo.getCompanyId()).getName() : "");
-            platformCompanyFeeVo.setTotalUnSettlementAmount(BigDecimal.ZERO);
+            String settleIdsStr = platformCompanyFeeVo.getSettleIdsStr();
+            if(StrUtil.isNotEmpty(settleIdsStr)){
+                List<String> settlementIds = Arrays.asList(settleIdsStr.split(","));
+                SettlementVo vo =  insPlyIncomeInvoiceSettlementMapper.querySettlementAndDiff(settlementIds);
+                platformCompanyFeeVo.setTotalSettlementAmount(vo.getActualReceivedAmount());
+                platformCompanyFeeVo.setTotalPaymentDifference(vo.getSettlementPaymentDifference());
+            }else{
+                platformCompanyFeeVo.setTotalSettlementAmount(BigDecimal.ZERO);
+                platformCompanyFeeVo.setTotalPaymentDifference(BigDecimal.ZERO);
+            }
+            platformCompanyFeeVo.setTotalUnSettlementAmount(BigDecimalUtil.subtract(BigDecimalUtil.subtract(platformCompanyFeeVo.getTotalReceivable(),platformCompanyFeeVo.getTotalSettlementAmount()), platformCompanyFeeVo.getTotalPaymentDifference()));
         }
         }
-        return list;
+        return platformCompanyFeeVos;
     }
     }
 
 
 
 

+ 23 - 0
tenant/organization/src/main/resources/mapper/InsPlyIncomeInvoiceSettlementMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jzg.organization.mapper.InsPlyIncomeInvoiceSettlementMapper">
+    <!-- 查询所有已结算记录的结算金额和回款差额的汇总值 lipf 2026年6月30日15:43:15  -->
+    <select id="querySettlementAndDiff" resultType="com.jzg.commons.entity.finance.vo.SettlementVo">
+        select
+            sum(COALESCE(ipiis.actual_received_amount, 0.0)) as actual_received_amount ,
+            sum(COALESCE(ipiis.settlement_payment_difference,0.0) ) AS settlement_payment_difference
+        from
+            ins_ply_income_invoice_settlement ipiis
+        <where>
+            ipiis.is_delete = 0
+            <if test="settlementIds != null and settlementIds.size() > 0 ">
+                AND ipiis.id in
+                <foreach collection="settlementIds" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+    </select>
+</mapper>

+ 8 - 7
tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

@@ -2087,18 +2087,18 @@
     </select>
     </select>
 
 
 
 
-    <select id="selectPlatformCompanySettlementReport" resultType="com.jzg.commons.entity.finance.vo.FollowCompanyFeeVO">
+    <select id="selectPlatformCompanySettlementReport" resultType="com.jzg.commons.entity.finance.vo.PlatformCompanyFeeVO">
         SELECT
         SELECT
         ipi.company_id,
         ipi.company_id,
-        ipii.contact_person,
-        ipii.contact_person_phone,
-        COALESCE(SUM(sett.actual_received_amount), 0.00) AS totalSettlementAmount,
-        COALESCE(SUM(ipii.receivable_supervise_premium), 0.00) AS totalReceivable,
-        COALESCE(SUM(sett.settlement_payment_difference), 0.00) AS totalPaymentDifference
+        io.docking_person as contact_person ,
+        io.docking_person_phone as contact_person_phone,
+        SUM(COALESCE(ipi.jq_receivable_premium,0) + COALESCE(ipi.sy_receivable_premium,0) + COALESCE(ipi.jy_receivable_premium,0)) AS totalReceivable,
+        group_concat(distinct sett.id) as settle_idsStr
         FROM ins_ply_income ipi
         FROM ins_ply_income ipi
         LEFT JOIN ins_ply_income_invoice_link ipil ON ipi.id = ipil.income_id AND ipil.is_delete = 0
         LEFT JOIN ins_ply_income_invoice_link ipil ON ipi.id = ipil.income_id AND ipil.is_delete = 0
         LEFT JOIN ins_ply_income_invoice ipii ON ipil.invoice_id = ipii.id AND ipii.is_delete = 0
         LEFT JOIN ins_ply_income_invoice ipii ON ipil.invoice_id = ipii.id AND ipii.is_delete = 0
         LEFT JOIN ins_ply_income_invoice_settlement sett ON ipii.id = sett.invoice_id AND sett.is_delete = 0
         LEFT JOIN ins_ply_income_invoice_settlement sett ON ipii.id = sett.invoice_id AND sett.is_delete = 0
+        left join ins_orders io on ipi.order_no = io.id
         <where>
         <where>
             ipi.is_delete = 0
             ipi.is_delete = 0
             <if test="query.companyId != null and query.companyId != ''">
             <if test="query.companyId != null and query.companyId != ''">
@@ -2127,7 +2127,8 @@
                 AND sett.create_time BETWEEN #{query.settlementStartTime} AND #{query.settlementEndTime}
                 AND sett.create_time BETWEEN #{query.settlementStartTime} AND #{query.settlementEndTime}
             </if>
             </if>
         </where>
         </where>
-        GROUP BY ipii.contact_person_phone, ipii.contact_person, ipi.company_id
+        GROUP BY ipi.company_id, io.docking_person,io.docking_person_phone
+        order by settle_idsStr desc
     </select>
     </select>