package com.jojubanking.boot.module.system.service.childitem;

import java.util.*;
import javax.validation.*;
import com.jojubanking.boot.module.system.controller.admin.childitem.vo.*;
import com.jojubanking.boot.module.system.controller.app.xytjinfo.vo.ItemListReqVO;
import com.jojubanking.boot.module.system.dal.dataobject.childitem.ChilditemDO;
import com.jojubanking.boot.framework.common.pojo.PageResult;
import com.jojubanking.boot.module.system.dal.dataobject.item.ItemDO;

/**
 * 检查项目子 Service 接口
 *
 * @author admin
 */
public interface ChilditemService {

    /**
     * 创建检查项目子
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createChilditem(@Valid ChilditemCreateReqVO createReqVO);

    /**
     * 更新检查项目子
     *
     * @param updateReqVO 更新信息
     */
    void updateChilditem(@Valid ChilditemUpdateReqVO updateReqVO);
    void updateItemPriceByNo(ChilditemDO itemDO);
    /**
     * 删除检查项目子
     *
     * @param id 编号
     */
    void deleteChilditem(Long id);

    /**
     * 获得检查项目子
     *
     * @param id 编号
     * @return 检查项目子
     */
    ChilditemDO getChilditem(Long id);

    /**
     * 获得检查项目子列表
     *
     * @param ids 编号
     * @return 检查项目子列表
     */
    List<ChilditemDO> getChilditemList(Collection<Long> ids);
    List<ChilditemDO> getSimpleItemList(ItemListReqVO itemListReqVO);

    /**
     * 获得检查项目子分页
     *
     * @param pageReqVO 分页查询
     * @return 检查项目子分页
     */
    PageResult<ChilditemDO> getChilditemPage(ChilditemPageReqVO pageReqVO);

    /**
     * 获得检查项目子列表, 用于 Excel 导出
     *
     * @param exportReqVO 查询条件
     * @return 检查项目子列表
     */
    List<ChilditemDO> getChilditemList(ChilditemExportReqVO exportReqVO);

}
