package org.springblade.modules.rhzf.fwInfo.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.common.controller.vo.webService.WebServiceVO;
import org.springblade.common.controller.vo.webService.YwxxVO;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.rhzf.fwInfo.entity.FwInfoEntity;
import org.springblade.modules.rhzf.fwInfo.entity.Fwccjgb;
import org.springblade.modules.rhzf.fwInfo.excel.FwInfoExcel;
import org.springblade.modules.rhzf.fwInfo.vo.*;
import org.springblade.modules.rhzf.fwRy.vo.FwRyVO;

import java.util.List;
import java.util.Map;

/**
 * 入户走访_房屋_基本信息 服务类
 *
 * @author BladeX
 * @since 2023-11-14
 */
public interface IFwInfoService extends BaseService<FwInfoEntity> {

	IPage<FwInfoVO> selectFwInfoPage(IPage<FwInfoVO> page, FwInfoVO fwInfo);

	String getFwxzByRkDzxx(String dzbm);

	List<FwInfoExcel> exportFwInfo(FwInfoVO fwInfo);

	IPage<LdBzdzVO> getLdList(IPage<LdBzdzVO> page, Map<String, Object> params);

    List<DyVO> getDyList(Map<String, Object> params);

	List<LcVO> getLcList(Map<String, Object> params);

	List<FjVO> getFjList(Map<String, Object> params);

	RhzfSaveVO getFjDetail(Map<String, Object> params);

	RhzfSaveVO getFjDetailByFwIdAndDzbm(Map<String, Object> params);

	List<FwRyVO> getRyList(Map<String, Object> params);

	SyjzryVO getCzrk(Map<String, Object> params);

	SyjzryVO getJwrk(Map<String, Object> params);

	SyjzryVO getJzrk(Map<String, Object> params);

	SyjzryVO getWlrk(Map<String, Object> params);

	SyjzryVO getZzrk(Map<String, Object> params);

	FwInfoEntity getFwIsExist(FwInfoEntity fwInfo);

	FwInfoEntity getFwByFwidAndDzbm(Map<String, Object> params);

	List<FwInfoVO> getFwByRysfzh(String sfzh);

    int getFjNum(FwInfoEntity fwInfo);

	String getCzrkInfo(WebServiceVO webServiceVO);

	YwxxVO getYwxxParams(Long userId);

	Integer getTimes(String dzbm);

	List<LdBzdzVO> getJzwList(Map<String, Object> params);

	List<LdBzdzVO> getDzList(Map<String, Object> params);

	List<LdBzdzVO> getFjJzwList(Map<String, Object> params);

	int getRhzfCs(Long userId);

	List<FwInfoExcel> getExportRyList(List<FwInfoExcel> list);

	List<LdBzdzVO> getCsLdList(List<Long> ldphxlhList);

	List<Fwccjgb> getJcdList(String pc);

	int getFwSl(Long userId);

    RkxxVO getRyxxBySfzh(Map<String, String> params);

	int getKfsl(Long userId);

	String getTarget(String userAccount);

	List<FwInfoVO> getMphxlhByLdphxlh(String ldphxlh);

	FwInfoVO selectFwInfo(FwInfoVO fwInfo, String dzbm);

	String getTargetDm(String gajgDm);

	List<LdBzdzVO> getLdByJg(List<String> jgIdList);

	void saveToJl(FwInfoEntity fwInfo);

	void updateByIdToJl(FwInfoEntity fwInfo);

	void gxUpdateTime(Long fwId);

	int countByType(int type, Map<String, Object> params);

	void updateMdId(Long fwId, Long mdId);

	IPage<RhzfHistoryVO> history(IPage<RhzfHistoryVO> page, Map<String, Object> params);
}
