feat: 金蝶票池选票统一查镜像(收票登记与结算单认领统一分页查询+按票号补查+A801-1限定正常票,下线实时透传假分页)

This commit is contained in:
刘泉佳
2026-09-22 21:24:00 +08:00
parent b17f07b6c1
commit 56e3e9deb0
12 changed files with 506 additions and 301 deletions
@@ -1,74 +0,0 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.dto;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 正式结算单认领查询 全票池发票查询条件
*
* @author Chill
*/
@Data
public class FormalSettlementInvoicePoolQueryDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 页码,默认 1
*/
private Long current = 1L;
/**
* 每页条数,默认 10,最大 500
*/
private Long size = 10L;
/**
* 发票号码
*/
private String invoiceNo;
/**
* 开票日期起 yyyy-MM-dd
*/
private String invoiceDateStart;
/**
* 开票日期止 yyyy-MM-dd
*/
private String invoiceDateEnd;
/**
* 销方税号
*/
private String salerTaxNo;
/**
* 购方税号
*/
private String buyerTaxNo;
/**
* 单据使用状态,多个用英文逗号分隔[1未用,30在用,60已用,65已入账]
*/
private String expenseStatus;
}
@@ -0,0 +1,117 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 金蝶票据池镜像统一查询条件(收票登记选票与正式结算单认领共用)
*
* @author Chill
*/
@Data
@Schema(description = "金蝶票据池镜像统一查询条件")
public class KingdeeInvoicePoolQueryDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 当前页
*/
@Schema(description = "当前页")
private Long current = 1L;
/**
* 每页条数
*/
@Schema(description = "每页条数")
private Long size = 10L;
/**
* 发票号码,模糊
*/
@Schema(description = "发票号码(模糊)")
private String invoiceNo;
/**
* 开票日期起 yyyy-MM-dd
*/
@Schema(description = "开票日期起 yyyy-MM-dd")
private String invoiceDateStart;
/**
* 开票日期止 yyyy-MM-dd
*/
@Schema(description = "开票日期止 yyyy-MM-dd")
private String invoiceDateEnd;
/**
* 开票单位(销方名称),模糊
*/
@Schema(description = "开票单位(销方名称,模糊)")
private String salerName;
/**
* 受票单位(购方名称),模糊
*/
@Schema(description = "受票单位(购方名称,模糊)")
private String buyerName;
/**
* 发票类型名称,模糊(镜像存中文名)
*/
@Schema(description = "发票类型名称(模糊)")
private String invoiceType;
/**
* 销方税号,精确
*/
@Schema(description = "销方税号")
private String salerTaxNo;
/**
* 购方税号,精确
*/
@Schema(description = "购方税号")
private String buyerTaxNo;
/**
* 认领过滤:true 仅已认领,false 仅未认领,null 不过滤(已认领=存在正式结算单发票行)
*/
@Schema(description = "认领过滤:true已认领/false未认领/null不限")
private Boolean claimed;
/**
* 登记过滤:true 仅已登记,false 仅未登记,null 不过滤(已登记=存在非作废收票登记)
*/
@Schema(description = "登记过滤:true已登记/false未登记/null不限")
private Boolean registered;
}
@@ -1,87 +0,0 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 正式结算单认领查询 全票池发票VO
*
* @author Chill
*/
@Data
public class FormalSettlementInvoicePoolVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 发票号码
*/
private String invoiceNo;
/**
* 发票流水号
*/
private String serialNo;
/**
* 开票日期
*/
private String invoiceDate;
/**
* 发票类型名称
*/
private String invoiceTypeName;
/**
* 税率(百分数,如 13);票池明细缺失时为 null
*/
private BigDecimal taxRate;
/**
* 发票金额(含税,取票池价税合计)
*/
private BigDecimal invoiceAmount;
/**
* 可匹配发票金额(含税,本次口径等于价税合计)
*/
private BigDecimal availableInvoiceAmount;
/**
* 认领金额(默认等于可匹配金额,由前端按结算余额分配)
*/
private BigDecimal matchedAmount;
/**
* 开票单位(销方名称)
*/
private String salerName;
/**
* 受票单位(购方名称)
*/
private String buyerName;
/**
* 附件信息JSON,结构 {"source":"piaozone","path":"A801-2下载path","name":"文件名"}
*/
private String attachmentJson;
}
@@ -0,0 +1,153 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 金蝶票据池镜像统一视图(含本地认领/登记标记;认领口径:可匹配与默认认领金额=价税合计)
*
* @author Chill
*/
@Data
@Schema(description = "金蝶票据池镜像统一视图")
public class KingdeeInvoicePoolVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/** 镜像主键,收票登记保存绑定用(kingdeeInvoicePoolId) */
@Schema(description = "镜像主键")
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 发票号码 */
@Schema(description = "发票号码")
private String invoiceNo;
/** 金蝶发票流水号(票池唯一标识) */
@Schema(description = "金蝶发票流水号")
private String serialNo;
/** 开票日期 yyyy-MM-dd */
@Schema(description = "开票日期")
private String invoiceDate;
/** 发票类型名称(镜像落库时已由编码转名称) */
@Schema(description = "发票类型名称")
private String invoiceType;
/** 税率百分数,如 13 */
@Schema(description = "税率百分数")
private BigDecimal taxRate;
/** 价税合计 */
@Schema(description = "发票金额(价税合计)")
private BigDecimal invoiceAmount;
/** 税额 */
@Schema(description = "税额")
private BigDecimal taxAmount;
/** 受票单位(购方名称) */
@Schema(description = "受票单位")
private String receiverName;
/** 购方税号 */
@Schema(description = "购方税号")
private String buyerTaxNo;
/** 开票单位(销方名称) */
@Schema(description = "开票单位")
private String issuerName;
/** 销方税号 */
@Schema(description = "销方税号")
private String salerTaxNo;
/** 销方开户行名称 */
@Schema(description = "销方开户行名称")
private String bankName;
/** 销方银行账号 */
@Schema(description = "销方银行账号")
private String bankAccount;
/** 销方开户行及账号 */
@Schema(description = "开户行及账号")
private String issuingBank;
/** 销方电话 */
@Schema(description = "电话")
private String phone;
/** 客户邮箱 JSON 串 */
@Schema(description = "客户邮箱JSON")
private String customerEmails;
/** 部门邮箱 JSON 串 */
@Schema(description = "部门邮箱JSON")
private String departmentEmails;
/** 金蝶流水号(登记侧展示为金蝶单据号) */
@Schema(description = "金蝶单据号")
private String kingdeeBillNo;
/** 同步状态 unsynced/synced/failed */
@Schema(description = "金蝶同步状态")
private String kingdeeStatus;
/** 查验状态 */
@Schema(description = "查验状态")
private String checkStatus;
/** 附件 JSON(票易通下载 path) */
@Schema(description = "附件信息JSON")
private String attachmentsJson;
/** 可认领金额,口径同发票金额 */
@Schema(description = "可认领金额")
private BigDecimal availableInvoiceAmount;
/** 默认认领金额,口径同发票金额 */
@Schema(description = "默认认领金额")
private BigDecimal matchedAmount;
/** 是否已被正式结算单认领 */
@Schema(description = "是否已认领")
private Boolean claimed;
/** 是否已存在非作废收票登记 */
@Schema(description = "是否已登记")
private Boolean registered;
}