
package nccloud.itf.hrkq.hrkq;

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

import nc.ui.querytemplate.querytree.IQueryScheme;
import nc.vo.bd.defdoc.DefdocVO;
import nc.vo.hrkq.monthottime.AggMonthOtTimeVO;
import nc.vo.hrkq.monthottime.MonthOtTimeBVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFDate;
import nc.vo.pub.lang.UFDouble;

public interface IMonthottimevoMaintain {

        public void delete(AggMonthOtTimeVO[] clientFullVOs,
                        AggMonthOtTimeVO[] originBills) throws BusinessException;

        public AggMonthOtTimeVO[] insert(AggMonthOtTimeVO[] clientFullVOs,
                        AggMonthOtTimeVO[] originBills) throws BusinessException;

        public AggMonthOtTimeVO[] update(AggMonthOtTimeVO[] clientFullVOs,
                        AggMonthOtTimeVO[] originBills) throws BusinessException;

        public AggMonthOtTimeVO[] query(IQueryScheme queryScheme)
                        throws BusinessException;

        public AggMonthOtTimeVO[] save(AggMonthOtTimeVO[] clientFullVOs,
                        AggMonthOtTimeVO[] originBills) throws BusinessException;

        public AggMonthOtTimeVO[] unsave(AggMonthOtTimeVO[] clientFullVOs,
                        AggMonthOtTimeVO[] originBills) throws BusinessException;

        public AggMonthOtTimeVO[] approve(AggMonthOtTimeVO[] clientFullVOs,
                        AggMonthOtTimeVO[] originBills) throws BusinessException;

        public AggMonthOtTimeVO[] unapprove(AggMonthOtTimeVO[] clientFullVOs,
                        AggMonthOtTimeVO[] originBills) throws BusinessException;
        
        /**
         * 查询
         * @param pk_psndoc
         * @param pk_org
         * @return
         * @throws BusinessException
         */
        public List<Map<String,UFDate>> queryHoliday(String pk_psndoc,String pk_org)throws BusinessException;
        
        /**
         * 查询节假日类型数据
         * @return
         * @throws BusinessException
         */
        public List<String> queryDefdoc()throws BusinessException;
        
        /**
         * 查询子表自定义档案数据
         * @return
         * @throws BusinessException
         */
        public List<DefdocVO> queryDefdoc2()throws BusinessException;
        
        /**
         * 查询单据信息
         * @param pk
         * @return
         * @throws BusinessException
         */
        public AggMonthOtTimeVO queryByPk(String pk) throws BusinessException;
        
        /**
         * 查询个人月份数据
         * @param pk_psndoc
         * @return
         * @throws BusinessException
         */
        public Map<String,UFDouble> queryMonth(String pk_psndoc) throws BusinessException;
        
        /**
         * 查询当前人员所有子表数据
         * @param pk_psndoc
         * @return
         * @throws BusinessException
         */
        public List<MonthOtTimeBVO> queryBVOByPkPsndoc(String pk_psndoc) throws BusinessException;
        
        /**
	     * 获取有权限部门map
	     *
	     * @param userId  userId
	     * @param PkGroup pkGroup
	     * @param appCode appCode
	     * @return map
	     * @throws BusinessException BusinessException
	     */
        public List<String> getPowerDeptMap(String userId, String PkGroup, String appCode) throws BusinessException;
}
