package com.usky.vpp.service; import com.usky.common.core.bean.CommonPage; import com.usky.vpp.service.vo.VppContractExpireStatVO; import com.usky.vpp.service.vo.VppContractRequestVO; import com.usky.vpp.service.vo.VppContractResponseVO; import javax.servlet.http.HttpServletResponse; import java.time.LocalDate; import java.util.Map; /** * VppContractService 业务接口 */ public interface VppContractService { default Object stub(String action, Map params) { return null; } /** * 新增合同 */ Boolean create(VppContractRequestVO vo); /** * 修改合同 */ Boolean update(VppContractRequestVO vo); /** * 分页查询合同 * @param id 主键ID(精确匹配) * @param signDateStart 签约日期起始 * @param signDateEnd 签约日期截止 * @param templateId 模板ID * @param contractType 合同类型 * @param customerId 客户ID * @param customerName 客户名称(模糊匹配) * @param signDateStart 签订时间起始 * @param signDateEnd 签订时间截止 * @param contractStatus 合同状态 * @param pageNum 页码 * @param pageSize 页大小 */ CommonPage page(Long id, LocalDate signDateStart, LocalDate signDateEnd, Long templateId, Integer contractType, Long customerId, String customerName, LocalDate signDateRangeStart, LocalDate signDateRangeEnd, Integer contractStatus, Integer pageNum, Integer pageSize); /** * 删除合同(软删除) */ Boolean delete(Long id); /** * 下载合同文件 */ void download(Long id, HttpServletResponse response); /** * 按客户最新合同统计已到期 / 即将到期(近三个月)数量 *

租户隔离;每个客户仅取创建时间最新的一份合同,再按到期日分类统计数量。 * 列表请走分页接口,按 contractStatus=5(已到期)/ 7(即将到期)查询。

*/ VppContractExpireStatVO expireStat(); }