ZhiYeJianKang_PeiXun/Song.ServiceImpls/EmployeeCom.cs

612 lines
27 KiB
C#
Raw Normal View History

2025-02-20 15:41:53 +08:00
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Linq;
using WeiSha.Common;
using Song.Entities;
using WeiSha.Data;
using Song.ServiceInterfaces;
namespace Song.ServiceImpls
{
public class EmployeeCom : IEmployee
{
#region
/// <summary>
/// 添加
/// </summary>
/// <param name="entity">业务实体</param>
public int Add(EmpAccount entity)
{
//如果密码为空
if (string.IsNullOrWhiteSpace(entity.Acc_Pw))
entity.Acc_Pw = WeiSha.Common.Login.Get["Admin"].DefaultPw.MD5;
else
entity.Acc_Pw = new WeiSha.Common.Param.Method.ConvertToAnyValue(entity.Acc_Pw).MD5;
//员所在院系、所处岗位、所在机构
Depart dep = Gateway.Default.From<Depart>().Where(Depart._.Dep_Id == entity.Dep_Id).ToFirst<Depart>();
if (dep != null) entity.Dep_CnName = dep.Dep_CnName;
Position pos = Gateway.Default.From<Position>().Where(Position._.Posi_Id == entity.Posi_Id).ToFirst<Position>();
if (pos != null) entity.Posi_Name = pos.Posi_Name;
try
{
IDCardNumber card = IDCardNumber.Get(entity.Acc_IDCardNumber);
entity.Acc_Age = card.Birthday.Year;
entity.Acc_Sex = card.Sex;
entity.Acc_Birthday = card.Birthday;
}
catch { }
entity.Acc_RegTime = DateTime.Now;
entity.Acc_OutTime = DateTime.Now.AddYears(1000);
Gateway.Default.Save<EmpAccount>(entity);
//获取当前名称的最后一个对象,即刚录入的对象
entity = Gateway.Default.From<EmpAccount>().OrderBy(EmpAccount._.Acc_Id.Desc).ToFirst<EmpAccount>();
return entity.Acc_Id;
}
/// <summary>
/// 修改
/// </summary>
/// <param name="entity">业务实体</param>
public void Save(EmpAccount entity)
{
try
{
//解析身份证信息,取年龄、性别等
IDCardNumber card = IDCardNumber.Get(entity.Acc_IDCardNumber);
entity.Acc_Age = card.Birthday.Year;
entity.Acc_Sex = card.Sex;
entity.Acc_Birthday = card.Birthday;
}
catch { }
//员所在院系,与所处岗位
Song.Entities.Depart dep = Gateway.Default.From<Depart>().Where(Depart._.Dep_Id == entity.Dep_Id).ToFirst<Depart>();
if (dep != null)
entity.Dep_CnName = dep.Dep_CnName;
Song.Entities.Position pos = Gateway.Default.From<Position>().Where(Position._.Posi_Id == entity.Posi_Id).ToFirst<Position>();
if (pos != null)
entity.Posi_Name = pos.Posi_Name;
using (DbTrans tran = Gateway.Default.BeginTrans())
{
try
{
//当修改员工帐号时
tran.Save<EmpAccount>(entity);
//tran.Update<Picture>(new Field[] { Picture._.Acc_Name }, new object[] { entity.Acc_Name }, Picture._.Acc_Id == entity.Acc_Id,tran);
//Gateway.Default.Update<Product>(new Field[] { Product._.Acc_Name }, new object[] { entity.Acc_Name }, Product._.Acc_Id == entity.Acc_Id,tran);
tran.Update<Article>(new Field[] { Article._.Acc_Name }, new object[] { entity.Acc_Name }, Article._.Acc_Id == entity.Acc_Id);
//Gateway.Default.Update<Video>(new Field[] { Video._.Acc_Name }, new object[] { entity.Acc_Name }, Video._.Acc_Id == entity.Acc_Id);
//Gateway.Default.Update<Download>(new Field[] { Download._.Acc_Name }, new object[] { entity.Acc_Name }, Download._.Acc_Id == entity.Acc_Id);
//工作日志的信息
tran.Update<DailyLog>(new Field[] { DailyLog._.Acc_Name }, new object[] { entity.Acc_Name }, DailyLog._.Acc_Id == entity.Acc_Id);
//任务管理
tran.Update<Task>(new Field[] { Task._.Acc_Name }, new object[] { entity.Acc_Name }, Task._.Acc_Id == entity.Acc_Id);
tran.Update<Task>(new Field[] { Task._.Task_WorkerName }, new object[] { entity.Acc_Name }, Task._.Task_WorkerId == entity.Acc_Id);
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw ex;
}
finally
{
tran.Close();
}
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="entity">业务实体</param>
public void Delete(EmpAccount entity)
{
if (entity == null) return;
//如果用户属于超管角色,则不允许删除
Position p = Gateway.Default.From<Position>().Where(Position._.Posi_Id == entity.Posi_Id).ToFirst<Position>();
if (p != null && p.Posi_IsAdmin == true) throw new Exception("管理员不可以删除!");
//删除与用户组的关联
using (DbTrans tran = Gateway.Default.BeginTrans())
{
try
{
tran.Delete<EmpAcc_Group>(EmpAcc_Group._.Acc_Id == entity.Acc_Id);
tran.Delete<EmpAccount>(entity);
WeiSha.WebControl.FileUpload.Delete("Employee", entity.Acc_Photo);
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw ex;
}
finally
{
tran.Close();
}
}
}
/// <summary>
/// 删除按主键ID
/// </summary>
/// <param name="identify">实体的主键</param>
public void Delete(int identify)
{
EmpAccount ea = this.GetSingle(identify);
this.Delete(ea);
}
/// <summary>
/// 获取单一实体对象按主键ID
/// </summary>
/// <param name="identify">实体的主键</param>
/// <returns></returns>
public EmpAccount GetSingle(int identify)
{
return Gateway.Default.From<EmpAccount>().Where(EmpAccount._.Acc_Id == identify)
.OrderBy(EmpAccount._.Acc_Id.Desc).ToFirst<EmpAccount>();
}
/// <summary>
/// 根据公司id获取当前公司管理员。
/// </summary>
/// <param name="orgid"></param>
/// <returns></returns>
public EmpAccount GetAdminByOrgId(int orgid)
{
//先获取普通管理员岗位
Position pos = Gateway.Default.From<Position>().Where(Position._.Posi_IsAdmin == true && Position._.Org_ID == orgid).ToFirst<Position>();
if (pos == null) return null;
EmpAccount acc = Gateway.Default.From<EmpAccount>().Where(EmpAccount._.Posi_Id == pos.Posi_Id).OrderBy(EmpAccount._.Acc_Id.Asc).ToFirst<EmpAccount>();
return acc;
}
/// <summary>
/// 获取单一实体对象,按员工手机号码
/// </summary>
/// <param name="acc">员工手机号码</param>
/// <returns></returns>
public EmpAccount GetSingleByPhone(string phoneNumber)
{
return Gateway.Default.From<EmpAccount>().Where(EmpAccount._.Acc_MobileTel == phoneNumber).ToFirst<EmpAccount>();
}
/// <summary>
/// 获取单一实体对象,按员工名称
/// </summary>
/// <param name="phoneNumber"></param>
/// <returns></returns>
public EmpAccount GetSingleByName(string name)
{
return Gateway.Default.From<EmpAccount>().Where(EmpAccount._.Acc_Name == name).ToFirst<EmpAccount>();
}
/// <summary>
/// 获取单一实体对象,按员工帐号名称与密码
/// </summary>
/// <param name="acc">员工帐号名称</param>
/// <param name="pw">员工密码,MD5加密字符串</param>
/// <returns></returns>
public EmpAccount GetSingle(string acc, string pw)
{
return GetSingle(-1, acc, pw);
}
public EmpAccount GetSingle(int orgid, string acc, string pw)
{
Song.Entities.EmpAccount ea;
WhereClip wc = new WhereClip();
if (orgid > 0) wc &= EmpAccount._.Org_ID == orgid;
wc.And(EmpAccount._.Acc_Pw == new WeiSha.Common.Param.Method.ConvertToAnyValue(pw).MD5);
//先用帐号
ea = Gateway.Default.From<EmpAccount>().Where(wc && EmpAccount._.Acc_AccName == acc).ToFirst<EmpAccount>();
//如果帐号不正确,用手机号
if (ea == null) ea = Gateway.Default.From<EmpAccount>().Where(wc && EmpAccount._.Acc_MobileTel == acc).ToFirst<EmpAccount>();
//用员工编号
if (ea == null) ea = Gateway.Default.From<EmpAccount>().Where(wc && EmpAccount._.Acc_IDCardNumber == acc).ToFirst<EmpAccount>();
return ea;
}
/// <summary>
/// 登录
/// </summary>
/// <param name="acc">账号,或身份证,或手机</param>
/// <param name="pw">密码</param>
/// <param name="orgid"></param>
/// <returns></returns>
public EmpAccount EmpLogin(string acc, string pw, int orgid)
{
WhereClip wc = EmpAccount._.Org_ID == orgid;
string pwMd5= new WeiSha.Common.Param.Method.ConvertToAnyValue(pw).MD5;
wc.And(EmpAccount._.Acc_Pw == pwMd5);
Song.Entities.EmpAccount entity = null;
if (entity == null) entity = Gateway.Default.From<EmpAccount>().Where(wc && EmpAccount._.Acc_AccName == acc).ToFirst<EmpAccount>();
if (entity == null) entity = Gateway.Default.From<EmpAccount>().Where(wc && EmpAccount._.Acc_MobileTel == acc).ToFirst<EmpAccount>();
if (entity == null) entity = Gateway.Default.From<EmpAccount>().Where(wc && EmpAccount._.Acc_IDCardNumber == acc).ToFirst<EmpAccount>();
return entity;
}
/// <summary>
/// 获取当前员工所在的院系
/// </summary>
/// <param name="identify"></param>
/// <returns></returns>
public Depart Get4Depart(int identify)
{
EmpAccount ea = this.GetSingle(identify);
if (ea == null) return null;
Depart dep = Gateway.Default.From<Depart>().Where(Depart._.Dep_Id == ea.Dep_Id).ToFirst<Depart>();
return dep;
}
/// <summary>
/// 当前员工是否为超级管理员
/// </summary>
/// <param name="identify"></param>
/// <returns></returns>
public bool IsSuperAdmin(int identify)
{
if (identify < 1) return false;
//先获取员工对象如果为空则返回false;
EmpAccount ea = this.GetSingle(identify);
if (ea == null) return false;
return IsSuperAdmin(ea);
}
public bool IsForRoot(int identify)
{
if (identify < 1) return false;
//先获取员工对象如果为空则返回false;
EmpAccount ea = this.GetSingle(identify);
Song.Entities.Organization org = Gateway.Default.From<Organization>().Where(Organization._.Org_IsRoot == true && Organization._.Org_ID == ea.Org_ID).ToFirst<Organization>();
return org != null;
}
/// <summary>
/// 当前用户是否为超级管理员
/// </summary>
/// <param name="acc">当前用户对象</param>
/// <returns></returns>
public bool IsSuperAdmin(EmpAccount acc)
{
if (acc == null) return false;
//获取所在机构
Organization org = Gateway.Default.From<Organization>().Where(Organization._.Org_ID == acc.Org_ID).ToFirst<Organization>();
if (org == null) return false;
//通过员工所处的岗位ID获取岗位对象如果岗位不存在则返回false;
Position p = Gateway.Default.From<Position>().Where(Position._.Posi_Id == acc.Posi_Id).ToFirst<Position>();
if (p == null) return false;
//通过岗位属性,判断是否为超管
return org.Org_IsRoot && p.Posi_IsAdmin;
}
public bool IsAdmin(int identify)
{
if (identify < 1) return false;
//先获取员工对象如果为空则返回false;
EmpAccount ea = this.GetSingle(identify);
//通过员工所处的岗位ID获取岗位对象如果岗位不存在则返回false;
Position p = Gateway.Default.From<Position>().Where(Position._.Posi_Id == ea.Posi_Id).ToFirst<Position>();
if (p == null) return false;
return p.Posi_IsAdmin;
}
/// <summary>
/// 当前员工是否存在(通过帐号判断)
/// </summary>
/// <param name="acc"></param>
/// <returns></returns>
public bool IsExists(int orgid, EmpAccount acc)
{
WhereClip wc = new WhereClip();
if (orgid < 1) wc.And(EmpAccount._.Org_ID == acc.Org_ID);
else
wc.And(EmpAccount._.Org_ID == orgid);
wc.And(EmpAccount._.Acc_AccName == acc.Acc_AccName);
int obj = Gateway.Default.Count<EmpAccount>(wc && EmpAccount._.Acc_Id != acc.Acc_Id);
return obj > 0;
}
public bool LoginCheck(int orgid, string acc, string pw)
{
pw = new WeiSha.Common.Param.Method.ConvertToAnyValue(pw).MD5;
WhereClip wc = EmpAccount._.Acc_Pw == pw;
wc.And(EmpAccount._.Org_ID == orgid);
Song.Entities.EmpAccount ea;
//先用帐号
ea = Gateway.Default.From<EmpAccount>().Where(wc && EmpAccount._.Acc_AccName == acc).ToFirst<EmpAccount>();
//如果帐号不正确,用手机号
if (ea == null)
{
ea = Gateway.Default.From<EmpAccount>().Where(wc && EmpAccount._.Acc_MobileTel == acc).ToFirst<EmpAccount>();
}
//用员工编号
if (ea == null)
{
ea = Gateway.Default.From<EmpAccount>().Where(wc && EmpAccount._.Acc_EmpCode == acc).ToFirst<EmpAccount>();
}
if (ea == null) return false;
//判断是否在职
return ea.Acc_IsUse;
}
/// <summary>
/// 通过手机号码验证,当前员工是否为在职员工
/// </summary>
/// <param name="phoneNumber">手机号</param>
/// <returns></returns>
public bool IsOnJob(string phoneNumber)
{
//验证员工帐号与密码
WhereClip wc = EmpAccount._.Acc_MobileTel.Like("%" + phoneNumber + "%");
//员工必须在职
wc.And(EmpAccount._.Acc_IsUse == true);
EmpAccount ac = Gateway.Default.From<EmpAccount>().Where(wc).ToFirst<EmpAccount>();
if (ac == null) return false;
return true;
}
/// <summary>
/// 获取对象;即所有员工帐号;
/// </summary>
/// <returns></returns>
public EmpAccount[] GetAll(int orgid)
{
WhereClip wc = new WhereClip();
if (orgid > 0) wc.And(EmpAccount._.Org_ID == orgid);
return Gateway.Default.From<EmpAccount>().Where(wc)
.OrderBy(EmpAccount._.Acc_NamePinyin.Asc).ToArray<EmpAccount>();
}
public EmpAccount[] GetAll(int orgid, int depId, bool? isUse, string searTxt)
{
WhereClip wc = new WhereClip();
if (orgid > 0) wc.And(EmpAccount._.Org_ID == orgid);
if (depId > 0) wc.And(EmpAccount._.Dep_Id == depId);
if (isUse != null) wc.And(EmpAccount._.Acc_IsUse == isUse);
if (!string.IsNullOrWhiteSpace(searTxt) && searTxt != "") wc.And(EmpAccount._.Acc_Name.Like("%" + searTxt + "%"));
return Gateway.Default.From<EmpAccount>().Where(wc).OrderBy(EmpAccount._.Acc_NamePinyin.Asc).ToArray<EmpAccount>();
}
/// <summary>
/// 获取某个分厂的所有员工帐号;
/// </summary>
/// <param name="orgid">分厂id</param>
/// <param name="isUse"></param>
/// <param name="searTxt">员工名称</param>
/// <returns></returns>
public EmpAccount[] GetAll4Org(int orgid, bool? isUse, string searTxt)
{
WhereClip wc = new WhereClip();
if (orgid > 0) wc.And(EmpAccount._.Org_ID == orgid);
if (isUse != null) wc.And(EmpAccount._.Acc_IsUse == (bool)isUse);
if (!string.IsNullOrEmpty(searTxt) && searTxt != "") wc.And(EmpAccount._.Acc_Name.Like("%" + searTxt + "%"));
return Gateway.Default.From<EmpAccount>().Where(wc).OrderBy(EmpAccount._.Acc_EmpCode.Asc).ToArray<EmpAccount>();
}
/// <summary>
/// 分页获取所有的员工帐号;
/// </summary>
/// <param name="size">每页显示几条记录</param>
/// <param name="index">当前第几页</param>
/// <param name="countSum">记录总数</param>
/// <returns></returns>
public EmpAccount[] GetPager(int orgid, int size, int index, out int countSum)
{
WhereClip wc = EmpAccount._.Org_ID == orgid;
countSum = Gateway.Default.Count<EmpAccount>(wc);
return Gateway.Default.From<EmpAccount>().Where(wc).OrderBy(EmpAccount._.Acc_RegTime.Desc).ToArray<EmpAccount>(size, (index - 1) * size);
}
/// <summary>
/// 分页获取某院系所有的员工帐号如果院系dep_id为0则取不归属院系的员工
/// </summary>
/// <param name="dep_id">院系Id如果为0则取不归属院系的员工</param>
/// <param name="size">每页显示几条记录</param>
/// <param name="index">当前第几页</param>
/// <param name="countSum">记录总数</param>
/// <returns></returns>
public EmpAccount[] GetPager(int orgid, int dep_id, int size, int index, out int countSum)
{
WhereClip wc = EmpAccount._.Org_ID == orgid && EmpAccount._.Dep_Id == dep_id;
countSum = Gateway.Default.Count<EmpAccount>(wc);
return Gateway.Default.From<EmpAccount>().Where(wc).OrderBy(EmpAccount._.Acc_RegTime.Desc).ToArray<EmpAccount>(size, (index - 1) * size);
}
public EmpAccount[] GetPager(int orgid, int? dep_id, bool? isUse, string searName, int size, int index, out int countSum)
{
WhereClip wc = EmpAccount._.Org_ID == orgid;
if (dep_id > -1) wc.And(EmpAccount._.Dep_Id == dep_id);
if (isUse != null) wc.And(EmpAccount._.Acc_IsUse == isUse);
if (!string.IsNullOrWhiteSpace(searName) && searName != "") wc.And(EmpAccount._.Acc_Name.Like("%" + searName + "%"));
countSum = Gateway.Default.Count<EmpAccount>(wc);
return Gateway.Default.From<EmpAccount>().Where(wc).OrderBy(EmpAccount._.Acc_RegTime.Desc).ToArray<EmpAccount>(size, (index - 1) * size);
}
#endregion
#region
/// <summary>
/// 添加
/// </summary>
/// <param name="entity">业务实体</param>
public void TitileAdd(EmpTitle entity)
{
//添加对象,并设置排序号
object obj = Gateway.Default.Max<EmpTitle>(EmpTitle._.Title_Tax, EmpTitle._.Title_Tax > -1);
int tax = obj is int ? (int)obj : 0;
entity.Title_Tax = tax + 1;
Organization org = Gateway.Default.From<Organization>().Where(Organization._.Org_ID == entity.Org_ID).ToFirst<Organization>();
if (org != null) entity.Org_Name = org.Org_Name;
Gateway.Default.Save<EmpTitle>(entity);
}
/// <summary>
/// 修改
/// </summary>
/// <param name="entity">业务实体</param>
public void TitleSave(EmpTitle entity)
{
using (DbTrans tran = Gateway.Default.BeginTrans())
{
try
{
tran.Save<EmpTitle>(entity);
tran.Update<EmpAccount>(new Field[] { EmpAccount._.Title_Name }, new object[] { entity.Title_Name }, EmpAccount._.Title_Id == entity.Title_Id);
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw ex;
}
finally
{
tran.Close();
}
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="entity">业务实体</param>
public void TitleDelete(EmpTitle entity)
{
this.TitleDelete(entity.Title_Id);
}
/// <summary>
/// 删除按主键ID
/// </summary>
/// <param name="identify">实体的主键</param>
public void TitleDelete(int identify)
{
Gateway.Default.Delete<EmpTitle>(EmpTitle._.Title_Id == identify);
}
/// <summary>
/// 获取单一实体对象按主键ID
/// </summary>
/// <param name="identify">实体的主键</param>
/// <returns></returns>
public EmpTitle TitleSingle(int identify)
{
return Gateway.Default.From<EmpTitle>().Where(EmpTitle._.Title_Id == identify).OrderBy(EmpTitle._.Title_Id.Desc).ToFirst<EmpTitle>();
}
/// <summary>
/// 获取对象;即所有职位;
/// </summary>
/// <returns></returns>
public EmpTitle[] TitleAll(int orgid)
{
return Gateway.Default.From<EmpTitle>().Where(EmpTitle._.Org_ID == orgid).OrderBy(EmpTitle._.Title_Tax.Asc).ToArray<EmpTitle>();
}
public EmpTitle[] TitleAll(int orgid,bool? isUse)
{
if (isUse == null) return this.TitleAll(orgid);
return Gateway.Default.From<EmpTitle>()
.Where(EmpTitle._.Org_ID == orgid && EmpTitle._.Title_IsUse == (bool)isUse)
.OrderBy(EmpTitle._.Title_Tax.Asc).ToArray<EmpTitle>();
}
/// <summary>
/// 获取当前职务的所有员工
/// </summary>
/// <param name="titleid">职务Id</param>
/// <param name="isUse">是否在职</param>
/// <returns></returns>
public EmpAccount[] Title4Emplyee(int titleid, bool? isUse)
{
WhereClip wc = EmpAccount._.Title_Id == titleid;
if (isUse != null) wc.And(EmpAccount._.Acc_IsUse == (bool)isUse);
return Gateway.Default.From<EmpAccount>().Where(wc).OrderBy(EmpAccount._.Acc_Id.Asc).ToArray<EmpAccount>();
}
/// <summary>
/// 当前对象名称是否重名
/// </summary>
/// <param name="entity">业务实体</param>
/// <returns></returns>
public bool TitleIsExist(int orgid,EmpTitle entity)
{
EmpTitle mm = null;
//如果是一个新对象
if (entity.Title_Id == 0)
{
mm = Gateway.Default.From<EmpTitle>().Where(EmpTitle._.Org_ID == orgid && EmpTitle._.Title_Name == entity.Title_Name).ToFirst<EmpTitle>();
}
else
{
//如果是一个已经存在的对象,则不匹配自己
mm = Gateway.Default.From<EmpTitle>()
.Where(EmpTitle._.Org_ID == orgid && EmpTitle._.Title_Name == entity.Title_Name && EmpTitle._.Title_Id != entity.Title_Id)
.ToFirst<EmpTitle>();
}
return mm != null;
}
/// <summary>
/// 将当前项目向上移动;仅在当前对象的同层移动,即同一父节点下的对象这前移动;
/// </summary>
/// <param name="id"></param>
/// <returns>如果已经处于顶端则返回false移动成功返回true</returns>
public bool TitleRemoveUp(int orgid,int id)
{
//当前对象
EmpTitle current = Gateway.Default.From<EmpTitle>().Where(EmpTitle._.Title_Id == id).ToFirst<EmpTitle>();
//当前对象排序号
int orderValue = (int)current.Title_Tax; ;
//上一个对象,即兄长对象;
EmpTitle up = Gateway.Default.From<EmpTitle>()
.Where(EmpTitle._.Org_ID == orgid && EmpTitle._.Title_Tax < orderValue)
.OrderBy(EmpTitle._.Title_Tax.Desc).ToFirst<EmpTitle>();
if (up == null) return false;
//交换排序号
current.Title_Tax = up.Title_Tax;
up.Title_Tax = orderValue;
using (DbTrans tran = Gateway.Default.BeginTrans())
{
try
{
tran.Save<EmpTitle>(current);
tran.Save<EmpTitle>(up);
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw ex;
}
finally
{
tran.Close();
}
}
return true;
}
/// <summary>
/// 将当前项目向下移动;仅在当前对象的同层移动,即同一父节点下的对象这前移动;
/// </summary>
/// <param name="id"></param>
/// <returns>如果已经处于顶端则返回false移动成功返回true</returns>
public bool TitleRemoveDown(int orgid,int id)
{
//当前对象
EmpTitle current = Gateway.Default.From<EmpTitle>().Where(EmpTitle._.Title_Id == id).ToFirst<EmpTitle>();
//当前对象排序号
int orderValue = (int)current.Title_Tax;
//下一个对象,即弟弟对象;
EmpTitle down = Gateway.Default.From<EmpTitle>()
.Where(EmpTitle._.Org_ID == orgid && EmpTitle._.Title_Tax > orderValue)
.OrderBy(EmpTitle._.Title_Tax.Asc).ToFirst<EmpTitle>();
if (down == null) return false;
//交换排序号
current.Title_Tax = down.Title_Tax;
down.Title_Tax = orderValue;
using (DbTrans tran = Gateway.Default.BeginTrans())
{
try
{
tran.Save<EmpTitle>(current);
tran.Save<EmpTitle>(down);
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
throw ex;
}
finally
{
tran.Close();
}
}
return true;
}
#endregion
}
}