package com.goafanti.order.service;

import java.util.List;

import com.goafanti.app.bo.ProjectBo;
import com.goafanti.common.model.TTaskHours;
import com.goafanti.core.mybatis.page.Pagination;
import com.goafanti.order.bo.OutTaskProgressLog;
import com.goafanti.order.bo.TOrderTaskDetailBo;
import com.goafanti.order.bo.TOrderTaskListBo;
import com.goafanti.order.bo.TaskLogBo;
import com.goafanti.order.bo.TaskProgressBo;
import com.goafanti.order.bo.UpdateProjectStatusBo;
import com.goafanti.order.bo.inuptTaskHoursListBo;
import com.goafanti.order.bo.inuptTaskListBo;
import com.goafanti.order.bo.managerListBo;
import com.goafanti.order.bo.taskAttributionLogBo;
import com.goafanti.organization.bo.OutPaymentNode;

public interface OrderProjectService {

	/**
	 * 
	 * @param taskId
	 * @param taskReceiverId
	 * @param remarks
	 * @param type 0管理员派单 1经理转交 2经理派单 3咨询师转交 4回退
	 * @return
	 */
	int updateProjectDistribution(Integer taskId, String taskReceiverId, String remarks,Integer type);

	Pagination<TOrderTaskListBo> orderTaskList(inuptTaskListBo ib);

	TOrderTaskDetailBo orderTaskDetail(String id);

	int updateOrderTask(TOrderTaskDetailBo t);

	int addTaskHours(TTaskHours t);
	
	Pagination<TOrderTaskListBo> taskHoursList(inuptTaskHoursListBo ib,
			Integer pageNo, Integer pageSize);


	Pagination<TOrderTaskListBo>  selectTaskList(String name, String orderNo, String taskId, Integer taskStatus, String adminName,
			Integer specially,String depId  , Integer pageNo, Integer pageSize);

	List<TaskLogBo> TaskLogList(Integer id);

	int createTaskProgress(TaskProgressBo t);

	int delectTaskProgress(Integer id);

	List<TaskProgressBo> selectTaskProgress(Integer tid);


	List<TTaskHours> taskHoursDetailsList(String taskId);


	void checkProjiectAllocation(String orderNo);

	int pushSplitProject(Integer tid, String splitList);

	List<TOrderTaskListBo> splitProjectList(Integer tid);

	void addNoticAndEmail(OutPaymentNode pn, Integer code);


	List<OutTaskProgressLog> selectTaskProgressLog(Integer tid);

	int updateTaskProgress(TaskProgressBo t);

	Pagination<managerListBo> managerSelect(String name, String orderNo, String contractNo, String cid, String projectType, String depId,
			String techDepId, Integer declarationBatch, String commodityPrice, String startTime, String endTime, Integer pageNo, Integer pageSize);

	int updateProjectStatus(UpdateProjectStatusBo b);

	List<taskAttributionLogBo> taskAttributionLog(Integer tid);

//	List<Project> selectUidByproject(Integer uid);


}
