using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FangYar.Model.TBL;
namespace FangYar.IDAL.TBL
{
public interface SysEmpIDAL
{
///
/// 根据ID获取model
///
FangYar.Model.TBL.TBL_SYS_EMP_Model GetModelByID(string ID);
///
/// 根据UID获取model
///
FangYar.Model.TBL.TBL_SYS_EMP_Model GetModelByUID(string uid);
///
/// 根据username获取model
///
FangYar.Model.TBL.TBL_SYS_EMP_Model GetModelByName(string orgid, string username);
///
/// 添加
///
bool Add(FangYar.Model.TBL.TBL_SYS_EMP_Model model);
///
/// 删除
///
bool Delete(string IDList);
///
/// 编辑
///
bool Edit(FangYar.Model.TBL.TBL_SYS_EMP_Model model);
bool UPDPOLByID(string POL, string ID);
///
/// 机构部门树
///
DataTable getOrgTree(string orgId);
///
/// 机构部门树(包含父级机构下属消防站)
///
DataTable getOrgTree2(string orgId);
///
/// 机构部门树(包含所在机构下部门)
///
DataTable getOrgDeptTree(string orgId);
///
/// 机构部门树(下属机构树+当前机构部门树)
///
DataTable getOrgAndDeptTree(string orgId);
///
/// Tree列表展示,只获取单位
///
/// 机构ID
///
DataTable getOrgOnlyTree(string orgId);
//机构及所有下属机构(包含行政区划编码)
DataTable getOrgCityOnlyTree(string orgId);
///
/// 机构部门人员树
/// (下属机构树+当前机构部门树+机构部门下人员树)
///
DataTable getOrgAndDeptAndEmpTree(string orgId);
///
/// 获取记录总数
///
int GetRecordCount(string strWhere);
int GetRecordCount(string strWhere, string pOrgID);
//获取人员
DataTable GetTable(string strwhere);
///
/// 分页获取数据列表
///
List QueryEmp(int PageIndex, int PageSize, string strwhere, string order);
List QueryList(int PageIndex, int PageSize, string strwhere, string order);
List QueryList(int PageIndex, int PageSize, string strwhere, string order, string orgId);
List QueryListByOrgIdOrDeptId(string param);
DataTable expExcel(int PageIndex, int PageSize, string strwhere, string order);
DataTable expExcel(int PageIndex, int PageSize, string strwhere, string order, string pOrgID);
///
/// 获取可以绑定的登录账号
///
///
DataTable getUseruId(string orgId, string usersUid);
///
/// 添加人员
///
bool AddEmp(FangYar.Model.TBL.TBL_SYS_EMP_Model model);
///
/// 修改人员信息
///
bool EditEmp(FangYar.Model.TBL.TBL_SYS_EMP_Model model);
///
/// 删除人员
///
bool DelEmp(string EmpList, string UserUidList);
///
/// 恢复删除人员
///
bool ClearDel(string EmpList, string UserUidList);
///
/// 重置密码
///
///
///
///
bool ResetPwd(string EmpList, string UserUidList);
//请/销假审批(根据ID修改员工表在岗情况)
FangYar.Model.OA.CommonSql getEditIsWorkSql(FangYar.Model.TBL.TBL_SYS_EMP_Model model);
//请/销假审批(根据USERS_UID修改员工表在岗情况)
FangYar.Model.OA.CommonSql getEditIsWorkSql2(FangYar.Model.TBL.TBL_SYS_EMP_Model model);
///
/// 根据User_ID获取model
///
FangYar.Model.TBL.TBL_SYS_EMP_Model GetModelByUserID(string OrgId, string UserId);
///
/// 根据IDnumber(身份证号)获取model
///
FangYar.Model.TBL.TBL_SYS_EMP_Model GetModelByIDnumber(string OrgId, string IDnumber);
/// 根据deptId查询人员列表(序列,登录账号,名称)
DataTable deptIdGetEmpList(string deptId);
/// 根据USERS_UID修改人员在岗状态
bool EditEmpIswork(FangYar.Model.TBL.TBL_SYS_EMP_Model model);
/// 根据多个USERS_UID修改人员在岗状态(xx,xx,xx格式)
bool EditEmpIsworks(string usersUids, string state);
/// 根据多个USERS_UID修改人员在岗状态(xx,xx,xx格式),同时修改年休假剩余天数
bool EditEmpIsworks2(string usersUids, string state, decimal l_num);
///
/// 营区政工接口
/// 根据User_ID获取model
///
FangYar.Model.TBL.TBL_SYS_EMP_Model GetModelByUserIDZG(string UserId);
///
/// 营区政工接口
/// 根据orgId获取:机构+部门+人员 Tree结构(获取组织机构)
///
DataTable getProcOrganization(string orgId);
///
/// 人员在岗统计
///
DataTable personSta(string strWhere);
///
/// 人员在岗统计
///
DataTable personStaAll(string strWhere);
///
/// 人员在岗统计_手机端
///
///
DataTable personSta3(string orgId, string findDate, string EXTENDCODE1, string ISORG);
///
/// 人员在岗统计
///
///
DataTable personSta2(string orgId, string findDate);
///
/// 人员实力统计
///
DataTable personStrengthSta(string strWhere);
///
/// 人员实力统计(消防要事日记)
///
DataTable personStrengthSta2(string strWhere);
//三维可视化平台提供接口:根据机构ID统计下属机构所拥有人员数
DataTable getPerNumByOrgId(string orgId);
DataTable QueryCurrentUserUnitPersonNumByOrgId(string orgId);
//获取机构下人员
List getEmpListByOrgId(string orgId, string isUid);
//获取机构下人员(有部门ID的不查询)
List getEmpListByOrgIdAndDeptisNull(string orgId, string isUid);
//获取部门下人员
List getEmpListByDeptId(string deptId, string isUid);
//获取机构下所有在职人员Tree(绑定账号的人员)
DataTable getOrgDeptEmpTreeByOrgId(string orgId);
//点名打卡人员选择(APP专属方法)
DataTable getOrgDeptEmpTreeByOrgId2(string orgId);
//判断本级以及下级机构是否包含人员
DataTable getEmpCountByOrgId(string orgId);
///
/// 根据ID获取dt
///
DataTable GetDTByUID(string USERS_UID);
/// 根据USERS_UID修改人员年休假总天数、剩余年休假天数
bool EditAnnualLeave(FangYar.Model.TBL.TBL_SYS_EMP_Model model);
//获取下一个empnum
string GetEmpNum();
/// 获取人员通讯录
DataTable getPerPhoneListByOrgId(string orgId);
/// 根据USERS_UID修改人员cid
bool updateCid(string uid, string cid);
/// 根据USERS_UID修改人员openId
bool updateOpenId(string uid, string openId);
//党建接口,导出人员excel
DataTable DJexpExcel(int PageIndex, int PageSize, string strwhere, string order);
//获取多个机构下所有在职人员Tree(绑定账号的人员)
DataTable getOrgDeptEmpTreeByOrgIds(string orgIds);
//APP点名打卡人员选择(专属方法)
DataTable getOrgDeptEmpTreeByOrgIds2(string orgIds);
DataTable getOrgAndDeptEmpByOrgIds(string orgIds);
//获取机构下的当日总指挥
DataTable GetOrgDeptEmpTreeByTags(string orgId, string tag);
//包含同级机关单位
DataTable getOrgAndDeptEmpByOrgIds2(string orgId);
///
/// 根据部门优先排序
///
///
///
///
DataTable getOrgAndDeptEmpByOrgIds2(string orgId,string deptId,string usersUid);
//获取本级以及上级单位
DataTable getOrgAndDeptEmpByOrgIds3(string orgId);
DataTable getEmpModelByUId(string uid);
///
/// 根据账号删除
///
bool DeleteByUid(string Uid);
///
/// 根据多个Uid获取多个cid
///
DataTable GetCidsByUids(string uids);
///
/// APP人员在岗统计
///
DataTable AppPersonSta2(string orgId, string findDate);
///
/// 获取Tree 机构-部门-员工(包含所有下级,获取UID)
///
/// 机构ID
///
DataTable getOrgTree3(string orgId);
///
/// 根据用户账号获取个人信息:
/// 所属机构、联系方式、消防救援衔、入伍时间、政治面貌、岗位、兴趣爱好
///
DataTable GetHealthUserInfoByUid(string userUid);
}
}