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

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

lipf 1 месяц назад
Родитель
Сommit
c83e1a0928

+ 16 - 1
commons/src/main/java/com/jzg/commons/entity/finance/dto/ReceiverSettlementReportDto.java

@@ -1,5 +1,6 @@
 package com.jzg.commons.entity.finance.dto;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -14,48 +15,62 @@ import java.math.BigDecimal;
 @Data
 public class ReceiverSettlementReportDto {
     @Schema(description = "对接人")
+    @ExcelProperty("对接人")
     private String receiver;
 
     @Schema(description = "保险公司")
+    @ExcelProperty("保险公司")
     private String companyName;
 
     @Schema(description = "保险公司id")
+    @ExcelProperty("保险公司id")
     private String companyId;
 
     @Schema(description = "保险公司名称及父级的名称")
+    @ExcelProperty("保险公司名称及父级的名称")
     private String companyALlName;
 
     @Schema(description = "应收总计")
+    @ExcelProperty("应收总计")
     private String totalReceivable;
 
     @Schema(description = "应收手续费")
+    @ExcelProperty("应收手续费")
     private String superviseFee;
 
     @Schema(description = "应收跟单费")
+    @ExcelProperty("应收跟单费")
     private String followFee;
 
     @Schema(description = "已结算手续费")
+    @ExcelProperty("已结算手续费")
     private String settledSuperviseFee;
 
     @Schema(description = "已结算跟单费")
+    @ExcelProperty("已结算跟单费")
     private String settledFollowFee;
 
     @Schema(description = "已结算总计")
+    @ExcelProperty("已结算总计")
     private String settledAmount;
 
     @Schema(description = "未结算手续费")
+    @ExcelProperty("未结算手续费")
     private String unSettledSuperviseFee;
 
     @Schema(description = "未结算跟单费")
+    @ExcelProperty("未结算跟单费")
     private String unSettledFollowFee;
 
-
     @Schema(description = "未结算总计")
+    @ExcelProperty("未结算总计")
     private String unSettledAmount;
 
     @Schema(description = "已结算发票的发票号")
+    @ExcelProperty("已结算发票的发票号")
     private String invoiceIds;
 
     @Schema(description = "回款差额")
+    @ExcelProperty("回款差额")
     private BigDecimal totalPaymentDifference;
 }

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

@@ -26,6 +26,11 @@ public class InvoiceRecordQueryVo extends PageRequest {
      */
     private String invoiceType;
 
+    /**
+     * 开票号
+     */
+    private String invoiceNo;
+
     /**
      * 开票类型
      */

+ 2 - 4
commons/src/main/java/com/jzg/commons/entity/report/vo/FeeAuditSummaryParam.java

@@ -7,6 +7,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.time.LocalDate;
+import java.util.List;
 
 /**
  * 费用审核汇总统计请求参数
@@ -18,9 +19,6 @@ public class FeeAuditSummaryParam extends PageRequest {
 
     @Schema(description = "审核开始时间")
     @JsonFormat(pattern = "yyyy-MM-dd")
-    private LocalDate auditTimeStart;
+    private List<String> checkTime;
 
-    @Schema(description = "审核结束时间")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private LocalDate auditTimeEnd;
 }

+ 2 - 5
consoleStatistics/src/main/resources/mapper/ReportFeeAuditSummaryMapper.xml

@@ -21,11 +21,8 @@
         LEFT JOIN ins_orders io ON ifa.order_no = io.id AND io.is_delete = 0
         <where>
             ifa.is_delete = 0
-            <if test="param.auditTimeStart != null">
-                AND (ifa.audit_time &gt;= #{param.auditTimeStart} OR ifa.audit_time IS NULL)
-            </if>
-            <if test="param.auditTimeEnd != null">
-                AND (ifa.audit_time &lt;= #{param.auditTimeEnd} OR ifa.audit_time IS NULL)
+            <if test="param.checkTime != null and  param.checkTime.size() > 0">
+                AND (ifa.audit_time BETWEEN #{param.checkTime[0]} AND #{param.checkTime[1]}} OR ifa.audit_time IS NULL)
             </if>
         </where>
         GROUP BY io.company_id, io.company_name

+ 27 - 21
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -3,6 +3,7 @@ package com.jzg.organization.service.impl;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.lang.tree.TreeNodeConfig;
 import cn.hutool.core.lang.tree.TreeUtil;
@@ -756,6 +757,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
     public List<FollowCompanyFeeVO> followCompanySuperviseSettlementReport(SettlementReportQueryVo settlementReportQueryVo) {
         log.info("私有协议-跟单结算记录-结算报表: settlementReportQueryVo=[{}]", JSONUtil.toJsonStr(settlementReportQueryVo));
         List<FollowCompanyFeeVO> resultList = new ArrayList<>();
+        String invoiceType = settlementReportQueryVo.getInvoiceType();
 
         // 1. 一次性获取保险公司全量Map,全局复用
         Map<String, EsmInsCompany> companyMap = getAllInsCompanyMap();
@@ -771,22 +773,25 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         }
 
         // 应收项为空时才去补充数据,不为空时不补充数据,补充数据是因为联查了invoice和settlement表,所以没开票和结算的数据会被过滤掉,才需要补充数据
-        List<InsPlyIncomeDto> incomeDtoList = CollUtil.newArrayList();
-        if (StrUtil.isBlank(settlementReportQueryVo.getInvoiceType())){
-            // 3. 查询额外其他费用收入数据,补充到结果集
-            incomeDtoList = queryFollowIncomeData(settlementReportQueryVo);
-            if (CollUtil.isEmpty(incomeDtoList)) {
-                return resultList;
-            }else{
-                // 如果JyPremium不为0,则设置发票类型为4
-                incomeDtoList.stream().forEach(item -> {
-                    if (StrUtil.isNotBlank(item.getJyPremium()) && !NumberUtil.equals(BigDecimal.ZERO, new BigDecimal(item.getJyPremium()))){
-                        item.setInvoiceType(InvoiceTypeEnum.FEE_4.getCode());
-                    }else{
-                        item.setInvoiceType(InvoiceTypeEnum.FEE_2.getCode());
-                    }
-                });
-                List<InsPlyIncomeDto> copyList = CollUtil.newArrayList();
+        List<InsPlyIncomeDto> incomeDtoList = queryFollowIncomeData(settlementReportQueryVo);
+        if (CollUtil.isEmpty(incomeDtoList)) {
+            return resultList;
+        }else{
+            // 如果JyPremium不为0,则设置发票类型为4
+            incomeDtoList.stream().forEach(item -> {
+                if (StrUtil.isNotBlank(item.getJyPremium()) && !NumberUtil.equals(BigDecimal.ZERO, new BigDecimal(item.getJyPremium()))){
+                    item.setInvoiceType(InvoiceTypeEnum.FEE_4.getCode());
+                }else{
+                    item.setInvoiceType(InvoiceTypeEnum.FEE_2.getCode());
+                }
+            });
+            // 过滤一下invoiceType等于请求接口入参的数据
+            incomeDtoList = incomeDtoList.stream()
+                    .filter(income -> StrUtil.isBlank(invoiceType)
+                            || invoiceType.equals(income.getInvoiceType()))
+                    .toList();
+            List<InsPlyIncomeDto> copyList = CollUtil.newArrayList();
+            if (CollUtil.isNotEmpty(incomeDtoList)){
                 // 如果有发票类型为4的,则复制一条4的数据,完全一致,但发票类型为2
                 incomeDtoList.stream().filter(item -> InvoiceTypeEnum.FEE_4.getCode().equals(item.getInvoiceType())).forEach(item -> {
                     InsPlyIncomeDto incomeDto = new InsPlyIncomeDto();
@@ -794,7 +799,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                     incomeDto.setInvoiceType(InvoiceTypeEnum.FEE_2.getCode());
                     copyList.add(incomeDto);
                 });
-                incomeDtoList.addAll(copyList);
+                incomeDtoList = CollUtil.addAll(incomeDtoList, copyList).stream().toList();
             }
         }
 
@@ -978,7 +983,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         boolean noFilterCond = StrUtil.isBlank(status)
                 && (StrUtil.isBlank(invoiceStartTime) || StrUtil.isBlank(invoiceEndTime))
                 && (StrUtil.isBlank(settleStartTime) || StrUtil.isBlank(settleEndTime));
-        if (noFilterCond) {
+        if (noFilterCond || CollUtil.isEmpty(incomeList)) {
             return incomeList;
         }
 
@@ -1954,7 +1959,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             // 处理结算数据
             // 未完全结算完成
             InsPlyIncomeInvoiceSettlement settlement = new InsPlyIncomeInvoiceSettlement(invoice.getId(), settlementVo.getActualReceivedAmount(),
-                    DateTime.now(), settlementVo.getSettlementPaymentDifference(), settlementVo.getSettlementPaymentReason());
+                    DateUtil.parse(settlementVo.getReceivePaymentDate(), "yyyy-MM-dd HH:mm:ss"), settlementVo.getSettlementPaymentDifference(), settlementVo.getSettlementPaymentReason());
             insPlyIncomeInvoiceSettlementMapper.insert(settlement);
 
             if (CollectionUtils.isNotEmpty(settlementVo.getAttachmentIds())) {
@@ -2791,7 +2796,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             // 处理结算数据
             // 未完全结算完成
             InsPlyIncomeInvoiceSettlement settlement = new InsPlyIncomeInvoiceSettlement(settlementVo.getInvoicingId(), settlementVo.getActualReceivedAmount(),
-                    DateTime.now(), settlementVo.getSettlementPaymentDifference(), settlementVo.getSettlementPaymentReason());
+                    DateUtil.parse(settlementVo.getReceivePaymentDate(), "yyyy-MM-dd HH:mm:ss"), settlementVo.getSettlementPaymentDifference(), settlementVo.getSettlementPaymentReason());
             insPlyIncomeInvoiceSettlementMapper.insert(settlement);
 
             if (CollectionUtils.isNotEmpty(settlementVo.getAttachmentIds())) {
@@ -4556,7 +4561,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             // 处理结算数据
             // 未完全结算完成
             InsPlyIncomeInvoiceSettlement settlement = new InsPlyIncomeInvoiceSettlement(settlementVo.getInvoicingId(), settlementVo.getActualReceivedAmount(),
-                    DateTime.now(), settlementVo.getSettlementPaymentDifference(), settlementVo.getSettlementPaymentReason());
+                    DateUtil.parse(settlementVo.getReceivePaymentDate(), "yyyy-MM-dd"), settlementVo.getSettlementPaymentDifference(), settlementVo.getSettlementPaymentReason());
             insPlyIncomeInvoiceSettlementMapper.insert(settlement);
 
             if (CollectionUtils.isNotEmpty(settlementVo.getAttachmentIds())) {
@@ -6303,6 +6308,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         BigDecimal subtract = BigDecimalUtil.subtract(settlementAmount, insPlyIncomeInvoice.getReceivableSupervisePremium());
         if (CollUtil.isNotEmpty(insPlyIncomeInvoiceSettlements)){
             if(subtract.compareTo(BigDecimal.ZERO) != 0){
+                // 点标识结清的时候不更新收款日期,和wwq确认过
                 InsPlyIncomeInvoiceSettlement insPlyIncomeInvoiceSettlement = insPlyIncomeInvoiceSettlements.get(0);
                 insPlyIncomeInvoiceSettlement.setSettlementPaymentDifference(subtract);
                 insPlyIncomeInvoiceSettlement.setSettlementPaymentReason(settlementPaymentReason);

+ 6 - 0
tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

@@ -1506,6 +1506,9 @@
             <if test="invoiceRecordQueryVo.companyId != null and invoiceRecordQueryVo.companyId != ''">
                 AND ipii.company_id = #{invoiceRecordQueryVo.companyId}
             </if>
+            <if test="invoiceRecordQueryVo.invoiceNo != null and invoiceRecordQueryVo.invoiceNo != ''">
+                AND ipii.invoice_no like concat('%',#{invoiceRecordQueryVo.invoiceNo},'%')
+            </if>
             <if test="invoiceRecordQueryVo.invoiceType != null and invoiceRecordQueryVo.invoiceType != ''">
                 AND ipii.invoice_type = #{invoiceRecordQueryVo.invoiceType}
             </if>
@@ -1585,6 +1588,9 @@
             <if test="invoiceRecordQueryVo.recordId != null and invoiceRecordQueryVo.recordId != ''">
                 AND ipii.id = #{invoiceRecordQueryVo.recordId}
             </if>
+            <if test="invoiceRecordQueryVo.invoiceNo != null and invoiceRecordQueryVo.invoiceNo != ''">
+                AND ipii.invoice_no like concat('%',#{invoiceRecordQueryVo.invoiceNo},'%')
+            </if>
             <if test="invoiceRecordQueryVo.companyId != null and invoiceRecordQueryVo.companyId != ''">
                 AND ipii.company_id = #{invoiceRecordQueryVo.companyId}
             </if>