
package org.sky.scientific.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.servlet.http.HttpServletResponse;
import org.sky.core.mp.base.BaseService;
import org.sky.scientific.pojo.dto.TechnicianDTO;
import org.sky.scientific.pojo.entity.XmTechnicianHours;
import org.sky.scientific.pojo.vo.TechnicianHoursMonthlyVO;
import org.sky.scientific.pojo.vo.XmTechnicianHoursVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 研发人员研发工时记录表 服务类
 *
 * @author Kd
 * @since 2025-06-29
 */
public interface IXmTechnicianHoursService extends BaseService<XmTechnicianHours> {

	/**
	 *  导入
	 * @param file
	 * @param yearAndMonth
	 */
	void importXmTechnicianHours(MultipartFile file, String yearAndMonth);

	/**
	 *  分页
	 * @param dto
	 * @param page
	 * @return
	 */
	IPage<XmTechnicianHoursVO> selectPage(XmTechnicianHoursVO dto, IPage<XmTechnicianHoursVO> page);

	boolean batchSubmit(XmTechnicianHoursVO dto);

	/**
	 * 清除
	 * @param dto
	 * @return
	 */
	boolean clear(JSONObject dto);

	/**
	 * 导出
	 * @param response
	 * @param param
	 */
	void export(HttpServletResponse response, XmTechnicianHoursVO param);

	/**
	 * 列表，自动生成-打印
	 * @param dto
	 * @return
	 */
	List<JSONObject> selectListForPrint(XmTechnicianHoursVO dto);

	/**
	 * 研发费用统计-人员人工费用-每月研发工时分配表
	 * @param page
	 * @param dto
	 * @return
	 */
    IPage<TechnicianHoursMonthlyVO> meiyueyanfagongshifenpeibiao(IPage<TechnicianHoursMonthlyVO> page, TechnicianDTO dto);
}
