package nc.itf.hrcm;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import nc.vo.hrcm.contopinion.ContopinionVO;
import nc.vo.hrcm.share.PsnSelListVO;
import nc.vo.pub.BusinessException;
import nc.vo.uif2.LoginContext;

/**
 * 合同续签意见征询批量维护 Service接口
 * @author fengwei
 */
public interface IContopinionManageService
{

	/**
	 * 批量保存续签意见
	 * @param batchVO
	 * @return
	 * @throws BusinessException
	 */
	ContopinionVO[] batchSave(ContopinionVO[] vos) throws BusinessException;

	/**
	 * 更新续签征询意见
	 * @author fengwei on 2011-2-17
	 * @param vos
	 * @return 
	 * @throws BusinessException
	 * @exception 异常描述
	 * @see 需要参见的其它内容
	 * @since 从类的V60版本，此方法被添加进来。（可选）
	 */
	public ContopinionVO[] updateArray(ContopinionVO[] vos) throws BusinessException;

	/**
	 * 按照部门向部门负责人发送续签征询通知
	 * @author fengwei on 2011-1-26
	 * @param psndeptMap
	 *            　key:部门主键　value:部门下的人员
	 * @param pk_group
	 * @param pk_org
	 * @param vos 
	 * @param inFeedbackList 反馈中的续签意见，即部门反馈，个人还没有反馈的续签意见
	 * @return
	 * @exception 异常描述
	 * @see 需要参见的其它内容
	 * @since 从类的V60版本，此方法被添加进来。（可选）
	 */
	public HashMap<String, Object> sendNoticeToDeptManager(Map<String, List<String>> psndeptMap, Map<String, List<ContopinionVO>> contopMap, String pk_group,
			String pk_org, ContopinionVO[] vos,ArrayList<ContopinionVO> inFeedbackList) throws BusinessException;

	/**
	 * 删除续签征询记录
	 * @author fengwei on 2011-4-13
	 * @param vos
	 * @throws BusinessException
	 * @exception 异常描述
	 * @see 需要参见的其它内容
	 * @since 从类的V60版本，此方法被添加进来。（可选）
	 */
	public void delete(ContopinionVO[] vos) throws BusinessException;

	public ContopinionVO[] insertContOpVO(PsnSelListVO[] psnVOs, String remenddate, String remmonth, String pk_psndoc_sub, String termtype,
			Integer termUnit, LoginContext context) throws BusinessException;

	public HashMap<String, Object> getPsnjobDeptMap(ContopinionVO[] contopinionVOs) throws BusinessException;

	public String[] getDeptHasPrincipal(String[] deptPKs) throws BusinessException;
	
	/**
	 * 发送个人消息
	 * @param psndeptMap
	 * @param contopMap
	 * @param pk_group
	 * @param pk_org
	 * @param vos
	 * @param inFeedbackList
	 * @return
	 * @throws BusinessException
	 */
	public HashMap<String, Object> sendNoticeToPsn(Map<String, List<String>> psndeptMap, Map<String, List<ContopinionVO>> contopMap, String pk_group,
			String pk_org, ContopinionVO[] vos,ArrayList<ContopinionVO> inFeedbackList) throws BusinessException; 

}
