package com.rj.service; import com.baomidou.mybatisplus.extension.service.IService; import com.rj.entity.LbPurchaseApply; import jakarta.servlet.http.HttpServletResponse; import java.time.LocalDate; import java.util.List; import java.util.Map; public interface ILbPurchaseApplyService extends IService { Map add(LbPurchaseApply entity); Map update(LbPurchaseApply entity); Map deleteById(Long id); Map pageQuery(Integer current, Integer size, String tenantId, String applyUser, String applyPhone, String colleagueName, String teamLeader, String teamBigLeader, LocalDate applyDate); Map listNeedPrivilegeRecommenders(LocalDate startDate, LocalDate endDate); /** * 按申请日期区间与租户筛选进货申请,对不重复的 {@code apply_phone} 调用 hxrd 用户查询与更新接口, * 写入 {@code max_order}、VIP/转卖/状态 及 {@code viptime}(周末先对齐到下一工作日,再顺延 3 个工作日)。 */ Map syncHxrAdminUserVipByApplyDateRange( LocalDate applyDateStart, LocalDate applyDateEnd, String tenantId, Integer maxOrder); /** * 按用户 ID 列表批量调用 hxrd 用户更新接口,开通或关闭特权(不计算 viptime,使用入参)。 */ Map updateHxrAdminUserVipByUserIds( String tenantId, List userIds, Integer isVip, String vipTime, Integer maxOrder); /** * 按申请日期区间与租户筛选进货申请,对每条记录的 {@code colleague_phone} 调用 hxrd 用户查询与更新, * 仅当 {@code colleague_name} 能在 {@code lb_daily_user_trade}(同租户、按 nickname)中查到时才开通; * 以 {@code apply_date} 为起算日计算 {@code viptime}(周末先对齐到下一工作日,再顺延 2 个工作日)。 */ Map syncHxrAdminColleagueVipByApplyDateRange( LocalDate applyDateStart, LocalDate applyDateEnd, String tenantId); /** * 根据订货自然语言描述调用大模型解析为 {@link LbPurchaseApply}(不落库)。 * * @param orderInfo 订货信息原文 * @param tenantId 当前登录人租户 ID(回填到结果实体,覆盖模型输出) */ Map parseFromOrderInfoByLlm(String orderInfo, String tenantId); /** * 按申请日期区间与租户导出进货申请 Excel(按申请日分组,首列合并单元格)。 */ void exportExcel(LocalDate applyDateStart, LocalDate applyDateEnd, String tenantId, HttpServletResponse response); /** * 导出与 {@link #syncHxrAdminColleagueVipByApplyDateRange} 相同筛选条件下的同事特权开通提醒 Excel。 */ void exportColleagueVipExcel( LocalDate applyDateStart, LocalDate applyDateEnd, String tenantId, HttpServletResponse response); }