CNCEC_SUBQHSE_WUHUAN/SGGL/BLL/SysManage/UnitService.cs

782 lines
28 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
namespace BLL
{
/// <summary>
/// 单位信息
/// </summary>
public static class UnitService
{
public static Model.SGGLDB db = Funs.DB;
/// <summary>
/// 获取单位信息
/// </summary>
/// <param name="UnitId"></param>
/// <returns></returns>
public static Model.Base_Unit GetUnitByUnitId(string unitId)
{
return Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitId == unitId);
}
/// <summary>
/// 获取单位信息是否存在
/// </summary>
/// <param name="UnitId"></param>
/// <returns></returns>
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);
}
/// <summary>
/// 获取单位信息是否存在
/// </summary>
/// <param name="UnitId"></param>
/// <returns></returns>
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
/// <summary>
/// 添加单位信息
/// </summary>
/// <param name="unit"></param>
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();
}
/// <summary>
/// 修改单位信息
/// </summary>
/// <param name="unit"></param>
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();
}
}
/// <summary>
/// 根据单位ID删除单位信息
/// </summary>
/// <param name="unitId"></param>
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
/// <summary>
/// 获取单位下拉选项
/// </summary>
/// <returns></returns>
public static List<Model.Base_Unit> GetUnitDropDownList()
{
var list = (from x in Funs.DB.Base_Unit select x).OrderBy(x => x.UnitCode).ToList();
return list;
}
/// <summary>
/// 获取本单位下拉选项
/// </summary>
/// <returns></returns>
public static List<Model.Base_Unit> GetThisUnitDropDownList()
{
var list = (from x in Funs.DB.Base_Unit where x.UnitId == Const.UnitId_CWCEC select x).ToList();
return list;
}
/// <summary>
/// 获取当前单位下分公司拉选项
/// </summary>
/// <returns></returns>
public static List<Model.Base_Unit> GetSubUnitList(string unitId)
{
List<Model.Base_Unit> unitList = new List<Model.Base_Unit>();
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
/// <summary>
/// 根据用户UnitId返回对应的ChildrenUnitId
/// </summary>
/// <returns></returns>
public static List<string> GetChildrenUnitId(string unitId)
{
List<string> unitIdList = new List<string>();
var unit = Funs.DB.Base_Unit.FirstOrDefault(e => e.SupUnitId == unitId); //本单位
if (unit != null)
{
unitIdList.Add(unit.UnitId);
GetChildrenUnitId(unit.UnitId);
}
return unitIdList;
}
#endregion
/// <summary>
/// 获取分公司列表
/// </summary>
/// <returns></returns>
public static List<Model.Base_Unit> 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;
}
/// <summary>
/// 获取单位信息
/// </summary>
/// <param name="UnitId"></param>
/// <returns></returns>
public static List<Model.Base_Unit> 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;
}
}
/// <summary>
/// 根据项目Id获取单位名称下拉选择项
/// </summary>
/// <param name="projectId"></param>
/// <returns></returns>
public static List<Model.Base_Unit> 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;
}
}
/// <summary>
/// 根据项目Id获取单位名称下拉选择项
/// </summary>
/// <param name="projectId"></param>
/// <returns></returns>
public static List<Model.Base_Unit> 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;
}
}
/// <summary>
/// 根据项目Id获取单位名称下拉选择项不包含某个单位
/// </summary>
/// <param name="projectId"></param>
/// <returns></returns>
public static List<Model.Base_Unit> 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;
}
}
/// <summary>
/// 获取单位名称
/// </summary>
/// <param name="UnitId"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 获取单位Id
/// </summary>
/// <param name="UnitName"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 获取单位简称
/// </summary>
/// <param name="UnitId"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 获取单位编号
/// </summary>
/// <param name="UnitId"></param>
/// <returns></returns>
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
/// <summary>
/// 单位表下拉框
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="isShowPlease">是否显示请选择</param>
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);
}
}
/// <summary>
/// 获取分公司表下拉框
/// </summary>
/// <param name="dropName"></param>
/// <param name="isShowPlease"></param>
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);
}
}
/// <summary>
/// 单位表下拉框
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="isShowPlease">是否显示请选择</param>
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);
}
}
/// <summary>
/// 根据单位类型获取单位表下拉框
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="isShowPlease">是否显示请选择</param>
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);
}
}
/// <summary>
/// 根据单位类型获取单位表下拉框
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="isShowPlease">是否显示请选择</param>
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
/// <summary>
/// 根据项目Id获取单位名称下拉选择项(总包和施工分包方)
/// </summary>
/// <param name="projectId"></param>
/// <returns></returns>
public static List<Model.Base_Unit> 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;
}
}
/// <summary>
/// 单位下拉选择项(添加其他单位)
/// </summary>
/// <param name="dropName"></param>
/// <param name="projectId"></param>
/// <param name="isShowPlease"></param>
public static void InitUnitOtherDropDownList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease)
{
dropName.DataValueField = "UnitId";
dropName.DataTextField = "UnitName";
List<Model.Base_Unit> units = new List<Model.Base_Unit>();
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);
}
}
/// <summary>
/// 单位表下拉框
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="isShowPlease">是否显示请选择</param>
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);
}
}
/// <summary>
/// 获取非分包所有单位
/// </summary>
/// <returns></returns>
public static List<Model.Base_Unit> 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;
}
}
/// <summary>
/// 单位表下拉框
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="isShowPlease">是否显示请选择</param>
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);
}
}
/// <summary>
/// 根据项目Id获取单位名称下拉选择项
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="isShowPlease">是否显示请选择</param>
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);
}
}
/// <summary>
/// 根据项目Id获取单位名称下拉选择项
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="isShowPlease">是否显示请选择</param>
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得到单位名称字符串
/// <summary>
/// 根据多单位ID得到单位名称字符串
/// </summary>
/// <param name="bigType"></param>
/// <returns></returns>
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
/// <summary>
/// 根据项目Id获取总包和分包单位名称项
/// </summary>
/// <param name="projectId">项目Id</param>
/// <returns></returns>
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);
}
}
/// <summary>
/// 字符串转化-》单位名称转化为对应的单位ID
/// </summary>
/// <param name="unitNames">带“,”的一个或多个单位名称</param>
/// <returns></returns>
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;
}
}
/// <summary>
/// 根据单位名称获取单位信息
/// </summary>
/// <param name="unitName"></param>
/// <returns></returns>
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);
}
}
/// <summary>
/// 根据项目Id获取单位名称项
/// </summary>
/// <param name="projectId"></param>
/// <returns></returns>
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);
}
}
/// <summary>
/// 获取除本单位外的所有单位名称下拉选择项
/// </summary>
/// <returns></returns>
public static List<Model.Base_Unit> 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;
}
}
/// <summary>
/// 获取问题类型名称
/// </summary>
/// <param name="UnitId"></param>
/// <returns></returns>
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;
}
}
}