where+=" AND g."+nameof(RB_Group.GroupName)+" like '%"+dmodel.GroupName+"%'";
}
if(!string.IsNullOrWhiteSpace(dmodel.Domain))
{
where+=" AND g."+nameof(RB_Group.Domain)+" like '%"+dmodel.Domain+"%'";
}
if(dmodel.Status.HasValue&&dmodel.Status>=0)
{
where+=" AND g."+nameof(RB_Group.Status)+"="+(int)dmodel.Status;
}
//where += string.Format(" ORDER BY g.{0} DESC ", nameof(Model.Entity.RB_Group.Id));
varpageList=GetPage<RB_Group_Extend>(pageIndex,pageSize,outcount,"select g.*,v.VersionsName,e.EmAccount from Rb_group g left join rb_employee e on g.AdminAccount=e.EmployeeId Left join Rb_sys_versions v on g.Versions_Id=v.Id "+where+" order by g.Id desc").ToList();
sb.AppendFormat(" AND e.{0}={1}",nameof(RB_Employee.RB_Group_id),model.RB_Group_id);
}
if(model.RB_Branch_id>=0)
{
sb.AppendFormat(" AND e.{0}={1}",nameof(RB_Employee.RB_Branch_id),model.RB_Branch_id);
}
if(model.RB_Department_Id>0)
{
sb.AppendFormat(" AND e.{0}={1}",nameof(RB_Employee.RB_Department_Id),model.RB_Department_Id);
}
if(model.RB_Post_Id>0)
{
sb.AppendFormat(" AND e.{0}={1}",nameof(RB_Employee.RB_Post_Id),model.RB_Post_Id);
}
if(!string.IsNullOrEmpty(model.EmName))
{
sb.AppendFormat(" AND e.{0} LIKE '%{1}%'",nameof(RB_Employee.EmName),model.EmName.Trim());
}
if(!string.IsNullOrEmpty(model.EmAccount))
{
sb.AppendFormat(" AND e.{0} LIKE '%{1}%'",nameof(RB_Employee.EmAccount),model.EmAccount.Trim());
}
if(Status>=0)
{
if(Status==0)
{
sb.AppendFormat(" AND e.{0}=0 ",nameof(RB_Employee.IsLeave));
}
else
{
sb.AppendFormat(" AND e.{0}=1 ",nameof(RB_Employee.IsLeave));
}
}
if(!string.IsNullOrEmpty(sEmEntry))
{
sb.AppendFormat(" AND e.{0}>='{1}' ",nameof(RB_Employee.EmEntry),sEmEntry);
}
if(!string.IsNullOrEmpty(eEmEntry))
{
sb.AppendFormat(" AND e.{0}<='{1} 23:59:59' ",nameof(RB_Employee.EmEntry),eEmEntry);
}
if(!string.IsNullOrEmpty(sEmLeave))
{
sb.AppendFormat(" AND e.{0}>='{1}' and e.{2}=1 ",nameof(RB_Employee.EmLeave),sEmLeave,nameof(RB_Employee.IsLeave));
}
if(!string.IsNullOrEmpty(eEmLeave))
{
sb.AppendFormat(" AND e.{0}<='{1} 23:59:59' and e.{2}=1 ",nameof(RB_Employee.EmLeave),eEmLeave,nameof(RB_Employee.IsLeave));
}
if(model.EmployeeType>0)
{
sb.AppendFormat(" AND e.{0}={1} ",nameof(RB_Employee.EmployeeType),model.EmployeeType);
}
if(sb.ToString().Length>0)
{
sb.Insert(0," WHERE 1=1 ");
}
stringsql=string.Format($@"SELECT e.*,g.GroupName,b.BName as CompanyName,d.DepartmentName,p.PostName FROM {TableName} e left join {nameof(RB_Group)} g on e.{nameof(RB_Employee.RB_Group_id)}=g.{nameof(RB_Group.Id)}
left join RB_Branch b on e.{nameof(RB_Employee.RB_Branch_id)}=b.Id
left join RB_Department d on e.{nameof(RB_Employee.RB_Department_Id)}=d.DepartmentID
left join RB_Post p on e.{nameof(RB_Employee.RB_Post_Id)}=p.PostId
sb.AppendFormat($@" SELECT {TableName}.*,rb_post.PostName,m.OpenAccount FROM {TableName} LEFT JOIN (SELECT m.EmpId,m.OpenAccount from rb_account_mapping m where m.MappingSource = 3) m on m.EmpId = {TableName}.EmployeeId
left join rb_post on {TableName}.RB_Post_Id=rb_post.PostId WHERE 1=1 ");
if(where!=null)
{
if(where.RB_Group_id>0)
{
sb.AppendFormat(" AND RB_Employee.{0}={1} ",nameof(RB_Employee.RB_Group_id),where.RB_Group_id);
}
if(where.RB_Branch_id>=0)
{
sb.AppendFormat(" AND RB_Employee.{0}={1} ",nameof(RB_Employee.RB_Branch_id),where.RB_Branch_id);
}
if(where.RB_Department_Id>0)
{
sb.AppendFormat(" AND RB_Employee.{0}={1} ",nameof(RB_Employee.RB_Department_Id),where.RB_Department_Id);
sb.AppendFormat(" AND RB_Employee.{0} in({1}) ",nameof(RB_Employee.RB_Department_Id),where.DepartmentIds);
}
if(where.RB_Post_Id>0)
{
sb.AppendFormat(" AND RB_Employee.{0}={1} ",nameof(RB_Employee.RB_Post_Id),where.RB_Post_Id);
}
if(where.IsLeave>=0)
{
sb.AppendFormat(" AND RB_Employee.{0}={1} ",nameof(RB_Employee.IsLeave),where.IsLeave);
}
if(!string.IsNullOrWhiteSpace(where.LeaveMonth))
{
sb.AppendFormat(" AND case when RB_Employee.IsLeave=1 then RB_Employee.{0}>='{1}' else RB_Employee.{3}<='{2}' end ",nameof(RB_Employee.EmLeave),where.LeaveMonth+"-01",Convert.ToDateTime(where.LeaveMonth+"-01").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd")+" 23:59:59",nameof(RB_Employee.EmEntry));
}
if(!string.IsNullOrEmpty(where.EmAccount))
{
sb.AppendFormat(" AND RB_Employee.{0}='{1}' ",nameof(RB_Employee.EmAccount),where.EmAccount.Trim());
}
if(!string.IsNullOrEmpty(where.EmLoginMobile))
{
sb.AppendFormat(" AND RB_Employee.{0}='{1}' ",nameof(RB_Employee.EmLoginMobile),where.EmLoginMobile.Trim());
}
if(!string.IsNullOrWhiteSpace(where.EmployeeIds))
{
sb.AppendFormat(" AND RB_Employee.{0} in({1}) ",nameof(RB_Employee.EmployeeId),where.EmployeeIds);
stringsql=$"SELECT * from rb_employee WHERE {nameof(RB_Employee.EmLoginMobile)} = '{loginMobile}' and {nameof(RB_Employee.EmployeeId)} != {employeeId} and {nameof(RB_Employee.RB_Group_id)}={groupId}";
varlist=Get(sql).ToList();
if(list.Count()>0)
{
returntrue;
}
else
{
returnfalse;
}
}
/// <summary>
/// 根据账号获取员工信息
/// </summary>
/// <param name="account">账号</param>
/// <returns></returns>
publicRB_EmployeeGetByAccount(stringaccount)
{
stringsql=$"SELECT * from rb_employee WHERE EmAccount = '{account}' and IsLeave = 0";
stringsql=$"SELECT * from rb_employee e WHERE e.EmName LIKE '%{key}%' or '{key}' LIKE CONCAT('%',e.EmName,'%') and e.IsLeave = 0 and e.RB_Group_id ={groupId} LIMIT 1";