Sfoglia il codice sorgente

根据私有协议调整后端逻辑

lipf 2 settimane fa
parent
commit
33766d19c2

+ 7 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/InvoiceRecordQueryVo.java

@@ -4,6 +4,7 @@ import com.jzg.commons.core.base.PageRequest;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -88,4 +89,10 @@ public class InvoiceRecordQueryVo extends PageRequest {
      */
     @Schema(description = "签署月份")
     private String signMonth;
+
+    @Schema(description = "开票金额")
+    private BigDecimal receivableSupervisePremium;
+
+    @Schema(description = "开票金额(参数接收)")
+    private String amount;
 }

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

@@ -148,6 +148,10 @@ public class ReceivableQueryVo extends PageRequest {
     @Schema(description = "修改人")
     private String updateBy;
 
+    @Schema(description = "投保人")
+    private String policyholder;
 
+    @Schema(description = "被保人")
+    private String insurName;
 
 }

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

@@ -100,4 +100,11 @@ public class SettlementQueryVo extends PageRequest {
 
     @Schema(description = "发票号")
     private String invoiceNo;
+
+    @Schema(description = "交强险保单号")
+    private String jqPolicyNo;
+    @Schema(description = "商业险保单号")
+    private String syPolicyNo;
+    @Schema(description = "驾意险保单号")
+    private String jyPolicyNo;
 }

+ 28 - 19
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -311,12 +311,6 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
     @Override
     public Page<InsPlyIncome> getReceivablePage(ReceivableQueryVo receivableQueryVo) {
         log.info("获取私有协议手续费应收列表。receivableQueryVo=[{}]", JSONUtil.toJsonStr(receivableQueryVo));
-
-//        if(StrUtil.isNotEmpty(receivableQueryVo.getUpdateBy())){
-//            insFeeOrdersClient.getUserNameByMobile();
-//        }
-
-
         Page<InsPlyIncome> page = baseMapper.getReceivablePage(receivableQueryVo.getPage(), receivableQueryVo);
         List<InsPlyIncome> records = page.getRecords();
         records = records.stream().filter(action->{
@@ -844,7 +838,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
      * 5. 补充收入表中的其他费用应收数据(驾意险相关费用)
      * </p>
      *
-     * @param settlementReportQueryVo 结算报表查询条件对象,包含查询所需的过滤参数(如时间范围、公司ID等)
+     * @param vo 结算报表查询条件对象,包含查询所需的过滤参数(如时间范围、公司ID等)
      * @return List<FollowCompanyFeeVO> 返回跟单公司费用视图对象列表,每个对象包含:
      *         - partnerCompanyId: 合作公司ID
      *         - companyName: 合作公司名称
@@ -857,10 +851,17 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
      *         - totalUnSettlementAmount: 未结算总金额
      */
     @Override
-    public List<FollowCompanyFeeVO> followCompanySuperviseSettlementReport(SettlementReportQueryVo settlementReportQueryVo) {
-        log.info("私有协议-跟单结算记录-结算报表: settlementReportQueryVo=[{}]", JSONUtil.toJsonStr(settlementReportQueryVo));
+    public List<FollowCompanyFeeVO> followCompanySuperviseSettlementReport(SettlementReportQueryVo vo) {
+        log.info("私有协议-跟单结算记录-结算报表: vo=[{}]", JSONUtil.toJsonStr(vo));
+
+        if(StrUtil.isNotEmpty(vo.getReceivePaymentDateBegin())){
+            vo.setReceivePaymentDateBegin(DateTimeUtils.obtainStartTime(vo.getReceivePaymentDateBegin()));
+        }
+        if(StrUtil.isNotEmpty(vo.getReceivePaymentDateEnd())){
+            vo.setReceivePaymentDateEnd(DateTimeUtils.obtainNextDayStartTime(vo.getReceivePaymentDateEnd()));
+        }
         List<FollowCompanyFeeVO> resultList = new ArrayList<>();
-        String invoiceType = settlementReportQueryVo.getInvoiceType();
+        String invoiceType = vo.getInvoiceType();
 
         // 1. 获取保险公司全量Map
         Map<String, EsmInsCompany> companyMap = getAllInsCompanyMap();
@@ -869,17 +870,17 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         }
 
         // 处理公司ID,递归收集子公司ID
-        fillCompanyChildIds(settlementReportQueryVo, companyMap);
+        fillCompanyChildIds(vo, companyMap);
 
         // 2. 查询跟单主数据并聚合
-        List<FollowCompanyFeeVO> originalFollowList = insFeeFollowOrderMapper.selectFollowCompanySettlementReport(settlementReportQueryVo);
+        List<FollowCompanyFeeVO> originalFollowList = insFeeFollowOrderMapper.selectFollowCompanySettlementReport(vo);
         if (CollUtil.isNotEmpty(originalFollowList)) {
             List<FollowCompanyFeeVO> followAggVoList = aggregateFollowData(originalFollowList, companyMap);
             resultList.addAll(followAggVoList);
         }
 
         // 3. 查询补充应收收入数据并合并
-        fillOtherReceivableData(settlementReportQueryVo, resultList, companyMap, invoiceType);
+        fillOtherReceivableData(vo, resultList, companyMap, invoiceType);
 
         if (CollUtil.isEmpty(resultList)) {
             return resultList;
@@ -5456,16 +5457,24 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
     /**
      * 跟单协议结算记录
      *
-     * @param settlementQueryVo 查询条件
+     * @param vo 查询条件
      * @return Page<ExportSuperviseSettlementExcelDto>
      */
     @Override
-    public Page<ExportSuperviseSettlementExcelDto> followSettlementExcel(Page page, SettlementQueryVo settlementQueryVo) {
-        log.info("查询平台结算记录:settlementQueryVo=[{}]", JSONUtil.toJsonStr(settlementQueryVo));
+    public Page<ExportSuperviseSettlementExcelDto> followSettlementExcel(Page page, SettlementQueryVo vo) {
+        log.info("查询平台结算记录:vo=[{}]", JSONUtil.toJsonStr(vo));
         // 设置空条件
-        setNoneCondition(settlementQueryVo);
-        settlementQueryVo.setSystemCode(baseController.getSystemCode());
-        Page<ExportSuperviseSettlementExcelDto> exportSuperviseSettlementExcelDtos = baseMapper.followSettlementExcelDtos(page, settlementQueryVo);
+        setNoneCondition(vo);
+        if(StrUtil.isNotEmpty(vo.getReceivePaymentDateBegin())){
+            vo.setReceivePaymentDateBegin(DateTimeUtils.obtainStartTime(vo.getReceivePaymentDateBegin()));
+        }
+        if(StrUtil.isNotEmpty(vo.getReceivePaymentDateEnd())){
+            vo.setReceivePaymentDateEnd(DateTimeUtils.obtainNextDayStartTime(vo.getReceivePaymentDateEnd()));
+        }
+
+
+        vo.setSystemCode(baseController.getSystemCode());
+        Page<ExportSuperviseSettlementExcelDto> exportSuperviseSettlementExcelDtos = baseMapper.followSettlementExcelDtos(page, vo);
         // 补充、转换列表的数据
         supplementaryListData(exportSuperviseSettlementExcelDtos);
         return exportSuperviseSettlementExcelDtos;

+ 61 - 28
tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

@@ -356,6 +356,24 @@
     <select id="getReceivablePage" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
         <include refid="query"/>
         and ipi.system_code = #{receivableQueryVo.systemCode}
+        <if test="receivableQueryVo.policyholder != null and receivableQueryVo.policyholder != ''">
+            and  iocui.name = #{receivableQueryVo.policyholder}
+        </if>
+        <if test="receivableQueryVo.insurName != null and receivableQueryVo.insurName != ''">
+            and iocui2.name = #{receivableQueryVo.insurName}
+        </if>
+        <if test="receivableQueryVo.jqPolicyNo != null and receivableQueryVo.jqPolicyNo != '' ">
+            and iop.jq_policy_no  = #{receivableQueryVo.jqPolicyNo}
+        </if>
+        <if test="receivableQueryVo.syPolicyNo != null and receivableQueryVo.syPolicyNo != '' ">
+            and iop.sy_policy_no = #{receivableQueryVo.syPolicyNo}
+        </if>
+        <if test="receivableQueryVo.jyPolicyNo != null and receivableQueryVo.jyPolicyNo != '' ">
+            and iop.jy_policy_no = #{receivableQueryVo.jyPolicyNo}
+        </if>
+        <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
+            and ipi.agreement_id = #{receivableQueryVo.agreementId}
+        </if>
         <if test="receivableQueryVo.payTimeBegin != null and receivableQueryVo.payTimeEnd != null">
             and io.pay_time between #{receivableQueryVo.payTimeBegin} and #{receivableQueryVo.payTimeEnd}
         </if>
@@ -827,6 +845,7 @@
         SELECT
         ipiis.id AS settlementId,
         GROUP_CONCAT(DISTINCT ipiis.invoice_id SEPARATOR ',') AS invoiceId,
+        GROUP_CONCAT(DISTINCT ipii.invoice_no SEPARATOR ',') AS invoiceNos,
         GROUP_CONCAT(DISTINCT ipii.company_id SEPARATOR ',') AS company_id,
         GROUP_CONCAT(DISTINCT eic.name SEPARATOR ',') AS company_name,
         GROUP_CONCAT(DISTINCT ipii.invoice_type SEPARATOR ',') AS invoice_type,
@@ -847,6 +866,12 @@
         <where>
             ipiis.is_delete = 0
             AND ipiis.system_code = #{settlementQueryVo.systemCode}
+            <if test="settlementQueryVo.invoiceNo != null and settlementQueryVo.invoiceNo != ''">
+                and ipii.invoice_no  = #{settlementQueryVo.invoiceNo}
+            </if>
+            <if test="settlementQueryVo.receivePaymentDateBegin != null and settlementQueryVo.receivePaymentDateEnd != null">
+                and ipiis.receive_payment_date between #{settlementQueryVo.receivePaymentDateBegin} and #{settlementQueryVo.receivePaymentDateEnd}
+            </if>
             <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
                 AND ipiis.id IN
                 <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
@@ -984,35 +1009,28 @@
 
 
     <select id="getSuperviseSettlementDetailExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementDetailExcelDto">
-        select ipi.contact_person, ipi.contact_person_phone,
-        io.company_name as companyName,
-        io.signing_time as signingTime,
-        ipii.id as invoiceId,
-        ipii.status as status,
-        ipi.license_no as licenseNo,
-        io.product_name as productName,
-        ipii.invoice_type as invoiceType,
-        ipii.invoice_party as invoiceParty,
-        ipii.tax_point as taxPoint,
-        (COALESCE(ipi.jq_supervise_costs_premiums,0)  + COALESCE(ipi.sy_supervise_costs_premiums,0)  + COALESCE(ipi.jy_supervise_costs_premiums,0) ) as receivableSuperviseCosts,
-        COALESCE(ipi.jq_supervise_costs_premiums, 0) + COALESCE(ipi.sy_supervise_costs_premiums, 0) as superviseCostPremiums4Car,
-        COALESCE(ipi.jy_supervise_costs_premiums, 0) as jy_supervise_costs_premiums,
-        ipi.jq_premium as jqPremium,
-        ipi.jq_supervise_costs_proportion as jqSuperviseCostsProportion,
-        ipi.jq_policy_no as jqPolicyNo,
-        ipi.sy_premium as syPremium,
-        ipi.sy_supervise_costs_proportion as sySuperviseCostsProportion,
-        ipi.sy_policy_no as syPolicyNo,
-        ipi.jy_premium as jyPremium,
-        ipi.jy_supervise_costs_proportion as jySuperviseCostsProportion,
-        ipi.jy_policy_no as jyPolicyNo,
-        ipi.tax_premium as taxPremium,
-        (SELECT U.USERNAME FROM sys_user U WHERE U.mobile = ipii.create_by) as invoicePerson,
-        ipii.invoice_time
+        SELECT ipii.invoice_no , iop.jq_policy_no ,iop.sy_policy_no , iop.jy_policy_no , io.id as order_no, ipi.contact_person, ipi.contact_person_phone, io.company_name AS companyName, io.signing_time AS signingTime, ipii.id AS invoiceId
+        , ipii.status AS status, ipi.license_no AS licenseNo, io.product_name AS productName, ipii.invoice_type AS invoiceType, ipii.invoice_party AS invoiceParty
+        , ipii.tax_point AS taxPoint
+        , COALESCE(ipi.jq_supervise_costs_premiums, 0) + COALESCE(ipi.sy_supervise_costs_premiums, 0) + COALESCE(ipi.jy_supervise_costs_premiums, 0) AS receivableSuperviseCosts
+        , COALESCE(ipi.jq_supervise_costs_premiums, 0) + COALESCE(ipi.sy_supervise_costs_premiums, 0) AS superviseCostPremiums4Car
+        , COALESCE(ipi.jy_supervise_costs_premiums, 0) AS jy_supervise_costs_premiums, ipi.jq_premium AS jqPremium
+        , ipi.jq_supervise_costs_proportion AS jqSuperviseCostsProportion, ipi.jq_policy_no AS jqPolicyNo, ipi.sy_premium AS syPremium, ipi.sy_supervise_costs_proportion AS sySuperviseCostsProportion, ipi.sy_policy_no AS syPolicyNo
+        , ipi.jy_premium AS jyPremium, ipi.jy_supervise_costs_proportion AS jySuperviseCostsProportion, ipi.jy_policy_no AS jyPolicyNo, ipi.tax_premium AS taxPremium
+        , (  SELECT U.USERNAME FROM sys_user U WHERE U.mobile = ipii.create_by ) AS invoicePerson, ipii.invoice_time
         FROM ins_ply_income_invoice ipii
-        LEFT JOIN ins_ply_income_invoice_link ipil ON ipii.id = ipil.invoice_id AND ipil.is_delete = 0
-        LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id  AND ipi.is_delete = 0
-        LEFT JOIN ins_orders io  ON ipi.order_no = io.id  AND io.is_delete = 0
+        LEFT JOIN ins_ply_income_invoice_link ipil
+        ON ipii.id = ipil.invoice_id
+        AND ipil.is_delete = 0
+        LEFT JOIN ins_ply_income ipi
+        ON ipi.id = ipil.income_id
+        AND ipi.is_delete = 0
+        AND ipi.system_code = 'G111'
+        LEFT JOIN ins_orders io
+        ON ipi.order_no = io.id
+        AND io.is_delete = 0
+        left join ins_orders_policy iop
+        on io.id = iop.order_no and iop.is_delete = 0
         <where>
             ipii.is_delete = 0
             AND ipii.system_code = #{settlementQueryVo.systemCode}
@@ -1037,6 +1055,18 @@
             <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
                 AND ipi.agreement_type = #{settlementQueryVo.agreementType}
             </if>
+            <if test="settlementQueryVo.invoiceNo != null and settlementQueryVo.invoiceNo != ''">
+                and ipii.invoice_no  = #{settlementQueryVo.invoiceNo}
+            </if>
+            <if test="settlementQueryVo.jqPolicyNo != null and settlementQueryVo.jqPolicyNo != '' ">
+                and iop.jq_policy_no  = #{settlementQueryVo.jqPolicyNo}
+            </if>
+            <if test="settlementQueryVo.syPolicyNo != null and settlementQueryVo.syPolicyNo != ''">
+                and iop.sy_policy_no  = #{settlementQueryVo.syPolicyNo}
+            </if>
+            <if test="settlementQueryVo.jyPolicyNo != null and settlementQueryVo.jyPolicyNo != ''">
+                and iop.jy_policy_no = #{settlementQueryVo.jyPolicyNo}
+            </if>
         </where>
     </select>
     <select id="getPlatFormSettlementDetailExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementDetailExcelDto">
@@ -1692,6 +1722,9 @@
         <where>
             ipii.is_delete = 0
             AND ipii.system_code = #{invoiceRecordQueryVo.systemCode}
+            <if test="invoiceRecordQueryVo.amount != null and invoiceRecordQueryVo.amount != ''">
+                and ipii.receivable_supervise_premium = #{invoiceRecordQueryVo.amount}
+            </if>
             <if test="invoiceRecordQueryVo.invoiceType != null and invoiceRecordQueryVo.invoiceType != ''">
                 AND ipii.invoice_type = #{invoiceRecordQueryVo.invoiceType}
             </if>