using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.UI.WebControls; namespace BLL { /// /// 单位信息 /// public static class UnitService { public static Model.SGGLDB db = Funs.DB; /// /// 获取单位信息 /// /// /// public static Model.Base_Unit GetUnitByUnitId(string unitId) { return Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitId == unitId); } /// /// 获取单位信息是否存在 /// /// /// public static bool IsExitUnitByUnitName(string unitId, string unitName) { var unit = Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitId != unitId && x.UnitName == unitName); return (unit != null); } /// /// 获取单位信息是否存在 /// /// /// public static bool IsExitUnitByUnitCode(string unitId, string unitCode) { var unit = Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitId != unitId && x.UnitCode == unitCode); return (unit != null); } #region 单位信息维护 /// /// 添加单位信息 /// /// public static void AddUnit(Model.Base_Unit unit) { Model.SGGLDB db = Funs.DB; Model.Base_Unit newUnit = new Model.Base_Unit { UnitId = unit.UnitId, UnitCode = unit.UnitCode, UnitName = unit.UnitName, ShortUnitName = unit.ShortUnitName, UnitTypeId = unit.UnitTypeId, Corporate = unit.Corporate, Address = unit.Address, Telephone = unit.Telephone, Fax = unit.Fax, EMail = unit.EMail, ProjectRange = unit.ProjectRange, IsBranch = unit.IsBranch, DataSources = unit.DataSources, FromUnitId = unit.FromUnitId, SupUnitId = unit.SupUnitId, CollCropCode = unit.CollCropCode, IsChina = unit.IsChina, LinkName = unit.LinkName, IdcardType = unit.IdcardType, IdcardNumber = unit.IdcardNumber, LinkMobile = unit.LinkMobile, CollCropStatus = unit.CollCropStatus, RealNamePushTime = null, }; db.Base_Unit.InsertOnSubmit(newUnit); db.SubmitChanges(); } /// /// 修改单位信息 /// /// public static void UpdateUnit(Model.Base_Unit unit) { Model.SGGLDB db = Funs.DB; Model.Base_Unit newUnit = db.Base_Unit.FirstOrDefault(e => e.UnitId == unit.UnitId); if (newUnit != null) { newUnit.UnitCode = unit.UnitCode; newUnit.UnitName = unit.UnitName; newUnit.UnitTypeId = unit.UnitTypeId; newUnit.Corporate = unit.Corporate; newUnit.Address = unit.Address; newUnit.ShortUnitName = unit.ShortUnitName; newUnit.Telephone = unit.Telephone; newUnit.Fax = unit.Fax; newUnit.EMail = unit.EMail; newUnit.ProjectRange = unit.ProjectRange; newUnit.IsBranch = unit.IsBranch; newUnit.FromUnitId = unit.FromUnitId; newUnit.SupUnitId = unit.SupUnitId; newUnit.CollCropCode = unit.CollCropCode; newUnit.IsChina = unit.IsChina; newUnit.LinkName = unit.LinkName; newUnit.IdcardType = unit.IdcardType; newUnit.IdcardNumber = unit.IdcardNumber; newUnit.LinkMobile = unit.LinkMobile; newUnit.CollCropStatus = unit.CollCropStatus; newUnit.RealNamePushTime = null; db.SubmitChanges(); } } /// /// 根据单位ID删除单位信息 /// /// public static void DeleteUnitById(string unitId) { Model.SGGLDB db = Funs.DB; var delUnit = db.Base_Unit.FirstOrDefault(e => e.UnitId == unitId); if (delUnit != null) { db.Base_Unit.DeleteOnSubmit(delUnit); db.SubmitChanges(); } } #endregion /// /// 获取单位下拉选项 /// /// public static List GetUnitDropDownList() { var list = (from x in Funs.DB.Base_Unit select x).OrderBy(x => x.UnitCode).ToList(); return list; } /// /// 获取本单位下拉选项 /// /// public static List GetThisUnitDropDownList() { var list = (from x in Funs.DB.Base_Unit where x.UnitId == Const.UnitId_CWCEC select x).ToList(); return list; } /// /// 获取当前单位下分公司拉选项 /// /// public static List GetSubUnitList(string unitId) { List unitList = new List(); if (string.IsNullOrEmpty(unitId)) { unitId = Const.UnitId_CWCEC; } var unitIdList = GetChildrenUnitId(unitId); if (unitIdList.Count() > 0) { unitList = (from x in Funs.DB.Base_Unit where unitIdList.Contains(x.UnitId) || x.UnitId == unitId select x).ToList(); } return unitList; } #region 根据UnitId返回对应的ChildrenUnitId /// /// 根据用户UnitId返回对应的ChildrenUnitId /// /// public static List GetChildrenUnitId(string unitId) { List unitIdList = new List(); var unit = Funs.DB.Base_Unit.FirstOrDefault(e => e.SupUnitId == unitId); //本单位 if (unit != null) { unitIdList.Add(unit.UnitId); GetChildrenUnitId(unit.UnitId); } return unitIdList; } #endregion /// /// 获取分公司列表 /// /// public static List GetBranchUnitList(bool isThisUnit) { var list = (from x in Funs.DB.Base_Unit where x.IsBranch == true select x).OrderBy(x => x.UnitCode).ToList(); if (isThisUnit) { list = (from x in Funs.DB.Base_Unit where x.IsBranch == true || x.UnitId == Const.UnitId_CWCEC select x).OrderBy(x => x.UnitCode).ToList(); } return list; } /// /// 获取单位信息 /// /// /// public static List GetUnitListByProjectId(string projectId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var units = (from x in db.Base_Unit orderby x.UnitCode select x).ToList(); if (!string.IsNullOrEmpty(projectId)) { units = (from x in units join y in db.Project_ProjectUnit on x.UnitId equals y.UnitId where y.ProjectId == projectId select x).ToList(); } units = units.OrderBy(x => x.UnitCode).ToList(); return units; } } /// /// 根据项目Id获取单位名称下拉选择项 /// /// /// public static List GetUnitByProjectIdList(string projectId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var q = (from x in db.Base_Unit join y in db.Project_ProjectUnit on x.UnitId equals y.UnitId where y.ProjectId == projectId orderby x.UnitCode select x).ToList(); return q; } } /// /// 根据项目Id获取单位名称下拉选择项 /// /// /// public static List GetUnitByProjectIdUnitTypeList(string projectId, string unitType) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var q = (from x in db.Base_Unit join y in db.Project_ProjectUnit on x.UnitId equals y.UnitId where y.ProjectId == projectId && (y.UnitType == unitType || string.IsNullOrEmpty(unitType)) orderby x.UnitCode select x).ToList(); return q; } } /// /// 根据项目Id获取单位名称下拉选择项(不包含某个单位) /// /// /// public static List GetUnitByProjectIdListNotContainOneUnit(string projectId, string unitId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var q = (from x in db.Base_Unit join y in db.Project_ProjectUnit on x.UnitId equals y.UnitId where y.ProjectId == projectId && (x.UnitId != unitId || unitId == null) orderby x.UnitCode select x).ToList(); return q; } } /// /// 获取单位名称 /// /// /// public static string GetUnitNameByUnitId(string unitId) { string name = string.Empty; var unit = Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitId == unitId); if (unit != null) { name = unit.UnitName; } return name; } /// /// 获取单位Id /// /// /// public static string GetUnitIdByUnitName(string unitName) { string name = null; var unit = Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitName == unitName); if (unit != null) { name = unit.UnitId; } return name; } /// /// 获取单位简称 /// /// /// public static string GetShortUnitNameByUnitId(string unitId) { string name = string.Empty; var unit = Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitId == unitId); if (unit != null) { name = unit.ShortUnitName; if (string.IsNullOrEmpty(name)) { name = unit.UnitName; } } return name; } /// /// 获取单位编号 /// /// /// public static string GetUnitCodeByUnitId(string unitId) { string code = string.Empty; var unit = Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitId == unitId); if (unit != null) { code = unit.UnitCode; } return code; } #region 单位表下拉框 /// /// 单位表下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitUnitDropDownList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease) { dropName.DataValueField = "UnitId"; dropName.DataTextField = "UnitName"; dropName.DataSource = BLL.UnitService.GetUnitListByProjectId(projectId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 获取分公司表下拉框 /// /// /// public static void InitBranchUnitDropDownList(FineUIPro.DropDownList dropName, string unitId, bool isShowPlease) { dropName.DataValueField = "UnitId"; dropName.DataTextField = "UnitName"; dropName.DataSource = BLL.UnitService.GetSubUnitList(unitId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 单位表下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitUnitNoUnitIdDropDownList(FineUIPro.DropDownList dropName, string projectId, string unitId, bool isShowPlease) { dropName.DataValueField = "UnitId"; dropName.DataTextField = "UnitName"; dropName.DataSource = BLL.UnitService.GetUnitByProjectIdListNotContainOneUnit(projectId, unitId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 根据单位类型获取单位表下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitUnitByProjectIdUnitTypeDropDownList(FineUIPro.DropDownList dropName, string projectId, string unitType, bool isShowPlease) { dropName.DataValueField = "UnitId"; dropName.DataTextField = "UnitName"; dropName.DataSource = BLL.UnitService.GetUnitByProjectIdUnitTypeList(projectId, unitType); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 根据单位类型获取单位表下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitUnitNameByProjectIdUnitTypeDropDownList(FineUIPro.DropDownList dropName, string projectId, string unitType, bool isShowPlease) { dropName.DataValueField = "UnitName"; dropName.DataTextField = "UnitName"; dropName.DataSource = BLL.UnitService.GetUnitByProjectIdUnitTypeList(projectId, unitType); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } #endregion /// /// 根据项目Id获取单位名称下拉选择项(总包和施工分包方) /// /// /// public static List GetMainAndSubUnitByProjectIdList(string projectId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var q = (from x in db.Base_Unit join y in db.Project_ProjectUnit on x.UnitId equals y.UnitId where y.ProjectId == projectId && (y.UnitType == BLL.Const.ProjectUnitType_1 || y.UnitType == BLL.Const.ProjectUnitType_2) && (y.OutTime == null || y.OutTime >= Convert.ToDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-01")) select x).OrderBy(x => x.UnitCode).ToList(); return q; } } /// /// 单位下拉选择项(添加其他单位) /// /// /// /// public static void InitUnitOtherDropDownList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease) { dropName.DataValueField = "UnitId"; dropName.DataTextField = "UnitName"; List units = new List(); units.AddRange(BLL.UnitService.GetUnitListByProjectId(projectId)); Model.Base_Unit other = new Model.Base_Unit { UnitName = "其他", UnitId = "0" }; units.Add(other); dropName.DataSource = units; dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 单位表下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitUnitNotsub(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease) { dropName.DataValueField = "UnitId"; dropName.DataTextField = "UnitName"; dropName.DataSource = BLL.UnitService.GetAllNoSubUnitList(projectId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 获取非分包所有单位 /// /// public static List GetAllNoSubUnitList(string projectId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var q = (from x in db.Base_Unit orderby x.UnitCode select x).ToList(); if (!string.IsNullOrEmpty(projectId)) { q = (from x in q join y in db.Project_ProjectUnit on x.UnitId equals y.UnitId where (y.ProjectId == projectId && y.UnitType != Const.ProjectUnitType_2) select x).ToList(); } q = q.OrderByDescending(x => x.UnitCode).ToList(); return q; } } /// /// 单位表下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void GetUnit(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease) { dropName.DataValueField = "UnitId"; dropName.DataTextField = "UnitName"; dropName.DataSource = GetUnitByProjectIdList(projectId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 根据项目Id获取单位名称下拉选择项 /// /// 下拉框名字 /// 是否显示请选择 public static void InitUnitByProjectIdUnitTypeDropDownList1(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease) { dropName.DataValueField = "UnitId"; dropName.DataTextField = "UnitName"; dropName.DataSource = BLL.UnitService.GetUnitByProjectIdList(projectId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 根据项目Id获取单位名称下拉选择项 /// /// 下拉框名字 /// 是否显示请选择 public static void InitBranchUnitDropDownList(FineUIPro.DropDownList dropName, bool isThis, bool isShowPlease) { dropName.DataValueField = "UnitId"; dropName.DataTextField = "UnitName"; dropName.DataSource = GetBranchUnitList(isThis); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } #region 根据多单位ID得到单位名称字符串 /// /// 根据多单位ID得到单位名称字符串 /// /// /// public static string getUnitNamesUnitIds(object unitIds) { string unitName = string.Empty; if (unitIds != null) { string[] ids = unitIds.ToString().Split(','); foreach (string id in ids) { var q = GetUnitByUnitId(id); if (q != null) { unitName += q.UnitName + ","; } } if (unitName != string.Empty) { unitName = unitName.Substring(0, unitName.Length - 1); ; } } return unitName; } #endregion /// /// 根据项目Id获取总包和分包单位名称项 /// /// 项目Id /// public static ListItem[] drpMainOrSubUnitList(string projectId) { var q = (from x in Funs.DB.Project_ProjectUnit join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId where x.ProjectId == projectId && (x.UnitType == Const.ProjectUnitType_1 || x.UnitType == Const.ProjectUnitType_2) orderby y.UnitCode select y).ToList(); ListItem[] list = new ListItem[q.Count()]; for (int i = 0; i < list.Count(); i++) { list[i] = new ListItem(q[i].UnitName ?? "", q[i].UnitId); } return list; } public static void InitUnitDownList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease) { dropName.DataValueField = "Value"; dropName.DataTextField = "Text"; dropName.DataSource = drpMainOrSubUnitList(projectId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } public static void InitAllUnitDownList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease) { dropName.DataValueField = "Value"; dropName.DataTextField = "Text"; dropName.DataSource = drpUnitItemListByProjectId(projectId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 字符串转化-》单位名称转化为对应的单位ID /// /// 带“,”的一个或多个单位名称 /// public static string GetUnitIds(string unitNames) { if (!string.IsNullOrEmpty(unitNames)) { string[] ins = unitNames.Split(','); string unitIds = string.Empty; foreach (string s in ins) { var q = BLL.UnitService.getUnitByUnitName(s); unitIds = unitIds + q.UnitId + ","; } return unitIds.Substring(0, unitIds.Length - 1); } else { return string.Empty; } } /// /// 根据单位名称获取单位信息 /// /// /// public static Model.Base_Unit getUnitByUnitName(string unitName) { return Funs.DB.Base_Unit.FirstOrDefault(e => e.UnitName == unitName); } public static Model.Base_Unit getUnitByCollCropCodeUnitName(string CollCropCode, string unitName) { var getUnit = Funs.DB.Base_Unit.FirstOrDefault(e => e.CollCropCode == CollCropCode); if (getUnit != null) { return getUnit; } else { return Funs.DB.Base_Unit.FirstOrDefault(e => e.UnitName == unitName); } } /// /// 根据项目Id获取单位名称项 /// /// /// public static ListItem[] drpUnitItemListByProjectId(string projectId) { var q = (from x in Funs.DB.Project_ProjectUnit join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId where x.ProjectId == projectId orderby y.UnitCode select y).ToList(); ListItem[] list = new ListItem[q.Count()]; for (int i = 0; i < list.Count(); i++) { list[i] = new ListItem(q[i].UnitName ?? "", q[i].UnitId); } return list; } public static string GetUnitNameByUnitId(object unitId) { string name = string.Empty; if (unitId != null) { var unit = Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitId == unitId.ToString()); if (unit != null) { name = unit.UnitName; } } return name; } public static void InitNoThisAllUnitDownList(FineUIPro.DropDownList dropName, bool isShowPlease) { dropName.DataValueField = "UnitId"; dropName.DataTextField = "UnitName"; dropName.DataSource = GetNoThisAllUnitList(); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 获取除本单位外的所有单位名称下拉选择项 /// /// public static List GetNoThisAllUnitList() { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var q = (from x in db.Base_Unit where x.UnitId != BLL.Const.UnitId_CWCEC orderby x.UnitCode select x).ToList(); return q; } } /// /// 获取问题类型名称 /// /// /// public static string GetQuestionTypeId(string RegisterTypesId) { string name = string.Empty; var unit = Funs.DB.HSSE_Hazard_HazardRegisterTypes.FirstOrDefault(x => x.RegisterTypesId == RegisterTypesId); if (unit != null) { name = unit.RegisterTypesName; } return name; } } }