
package org.sky.scientific.service;

import jakarta.servlet.http.HttpServletResponse;
import org.sky.core.mp.base.BaseService;
import org.sky.scientific.pojo.entity.*;
import org.sky.scientific.pojo.vo.*;

import java.io.OutputStream;
import java.util.List;

/**
 * 企业基础信息表 服务类
 *
 * @author Kd
 * @since 2025-08-14
 */
public interface IEnterpriseInfoService extends BaseService<EnterpriseInfoEntity> {

	/**
	 * 获取上一年度数据
	 *
	 * @param enterpriseInfo
	 * @return
	 */
	Boolean fetchLastYearData(EnterpriseInfoEntity enterpriseInfo);

	/**
	 * 新增或修改
	 *
	 * @param enterpriseInfo
	 * @return
	 */
	boolean submit(EnterpriseInfoEntity enterpriseInfo);

	/**
	 * 107-1 企业研究开发项目情况 编辑
	 * @param year
	 * @return
	 */
	List<A107_1VO> qyyjkfxmqk107_1(String year);

	/**
	 *
	 * @param a1071
	 * @return
	 */
	Boolean updateQyyjkfxmqk107_1(A107_1 a1071);

	/**
	 * 107-1 企业研究开发项目情况 导出
	 * @param response
	 * @param year
	 */
	void exportQyyjkfxmqk107_1(HttpServletResponse response, String year);

	/**
	 * 107-2-企业研究开发活动及相关情况
	 * @param year
	 * @return
	 */
	A107_2VO qyyjkfhdjxgfy107_2(String year);

	/**
	 * 107-2-企业研究开发活动及相关情况-编辑
	 * @param a1072
	 * @return
	 */
	boolean updateQyyjkfhdjxgfy107_2(A107_2 a1072);

	/**
	 * 107-2-企业研究开发活动及相关情况-导出
	 * @param response
	 * @param year
	 */
	void exportQyyjkfhdjxgqk107_2(HttpServletResponse response, String year);

	/**
	 * A107012研发费用加计扣除优惠明细表
	 * @param year
	 * @return
	 */
	A107012VO yffyjjkcyhmxbA107012(String year);

	/**
	 * A107012研发费用加计扣除优惠明细表-填写
	 * @param a107012
	 * @return
	 */
	boolean updateYffyjjkcyhmxbA107012(A107012 a107012);

	/**
	 * A107012研发费用加计扣除优惠明细表-导出
	 * @param os
	 * @param year
	 */
	void exportYffyjjkcyhmxbA107012(OutputStream os, String year);

	/**
	 * A107041高新技术企业优惠情况及明细表
	 * @param year
	 * @return
	 */
	A107041VO gxjsqyyhqkjmxbA107041(String year);

	/**
	 * A107041高新技术企业优惠情况及明细表-填写
	 * @param a107041
	 * @return
	 */
	boolean updateGxjsqyyhqkjmxbA107041(A107041 a107041);

	/**
	 * A107041高新技术企业优惠情况及明细表-导出
	 * @param response
	 * @param year
	 */
	void exportQxjsqyyhqkjmxbA107041(HttpServletResponse response, String year);

	/**
	 * 高企年报
	 * @param year
	 * @return
	 */
	HighTechYBVO gqnb(String year);

	/**
	 * 高企年报-填写
	 * @param highTechYB
	 * @return
	 */
	boolean gqnbUpdate(HighTechYB highTechYB);

	/**
	 * 高企年报-导出
	 * @param response
	 * @param year
	 */
	void exportGqnb(OutputStream os, HighTechYBVO techYBVO);

	/**
	 * 火炬发展年报
	 * @param year
	 * @return
	 */
    TorchDevYBVO torchDevYB(String year);

	void exportTorchDevYB(HttpServletResponse response, String year);
}
