package cn.iocoder.yudao.module.hrm.service.supply; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.hrm.controller.admin.supply.vo.HrmSupplyAlertRespVO; import cn.iocoder.yudao.module.hrm.controller.admin.supply.vo.HrmSupplyIssuePageReqVO; import cn.iocoder.yudao.module.hrm.controller.admin.supply.vo.HrmSupplyIssueRespVO; import cn.iocoder.yudao.module.hrm.controller.admin.supply.vo.HrmSupplyIssueSaveReqVO; import cn.iocoder.yudao.module.hrm.controller.admin.supply.vo.HrmSupplyPageReqVO; import cn.iocoder.yudao.module.hrm.controller.admin.supply.vo.HrmSupplyPurchasePageReqVO; import cn.iocoder.yudao.module.hrm.controller.admin.supply.vo.HrmSupplyPurchaseRespVO; import cn.iocoder.yudao.module.hrm.controller.admin.supply.vo.HrmSupplyPurchaseSaveReqVO; import cn.iocoder.yudao.module.hrm.controller.admin.supply.vo.HrmSupplyRespVO; import cn.iocoder.yudao.module.hrm.controller.admin.supply.vo.HrmSupplySaveReqVO; import cn.iocoder.yudao.module.hrm.dal.dataobject.supply.HrmSupplyDO; import jakarta.validation.Valid; import java.util.List; /** * 办公用品管理 Service 接口 * * @author 超级管理员 */ public interface HrmSupplyService { /** * 新增办公用品 * * @param createReqVO 新增信息 * @return 用品编号 */ Long createSupply(@Valid HrmSupplySaveReqVO createReqVO); /** * 更新办公用品 * * @param updateReqVO 更新信息 */ void updateSupply(@Valid HrmSupplySaveReqVO updateReqVO); /** * 删除办公用品 * * @param id 用品编号 */ void deleteSupply(Long id); /** * 获得办公用品 * * @param id 用品编号 * @return 办公用品 */ HrmSupplyDO getSupply(Long id); /** * 获得办公用品分页 * * @param pageReqVO 分页查询参数 * @return 办公用品分页 */ PageResult getSupplyPage(HrmSupplyPageReqVO pageReqVO); /** * 获得启用的办公用品精简列表 * * @return 办公用品列表 */ List getSupplyList(); /** * 获得库存预警列表:当前库存低于库存下限或高于库存上限的启用用品 * * @return 预警列表 */ List getSupplyAlertList(); /** * 新增采购记录(同时累加办公用品当前库存) * * @param createReqVO 新增信息 * @return 采购记录编号 */ Long createSupplyPurchase(@Valid HrmSupplyPurchaseSaveReqVO createReqVO); /** * 获得采购记录分页 * * @param pageReqVO 分页查询参数 * @return 采购记录分页 */ PageResult getSupplyPurchasePage(HrmSupplyPurchasePageReqVO pageReqVO); /** * 新增领用申请(初始状态为待审批) * * @param createReqVO 新增信息 * @return 领用申请编号 */ Long createSupplyIssue(@Valid HrmSupplyIssueSaveReqVO createReqVO); /** * 审批领用申请 * * @param id 领用申请编号 * @param approve true 通过,false 驳回 * @param remark 审批意见 */ void approveSupplyIssue(Long id, Boolean approve, String remark); /** * 发放领用申请(扣减办公用品库存) * * @param id 领用申请编号 */ void issueSupply(Long id); /** * 获得领用申请分页 * * @param pageReqVO 分页查询参数 * @return 领用申请分页 */ PageResult getSupplyIssuePage(HrmSupplyIssuePageReqVO pageReqVO); }