CNCEC_SUBQHSE_WUHUAN/SGGL/BLL/ProjectData/ProjectService.cs

645 lines
24 KiB
C#

namespace BLL
{
using System.Collections.Generic;
using System.Linq;
using Model;
using System;
public static class ProjectService
{
public static SGGLDB db = Funs.DB;
/// <summary>
///获取项目信息
/// </summary>
/// <returns></returns>
public static Model.Base_Project GetProjectByProjectId(string projectId)
{
return Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
}
/// <summary>
///根据ID获取项目名称
/// </summary>
/// <returns></returns>
public static string GetProjectNameByProjectId(string projectId)
{
string name = string.Empty;
var project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
if (project != null)
{
name = project.ProjectName;
}
return name;
}
/// <summary>
///根据ID获取项目编号
/// </summary>
/// <returns></returns>
public static string GetProjectCodeByProjectId(string projectId)
{
string name = string.Empty;
var project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
if (project != null)
{
name = project.ProjectCode;
}
return name;
}
/// <summary>
///根据ID获取项目编号
/// </summary>
/// <returns></returns>
public static string GetJTProjectCodeByProjectId(string projectId)
{
string name = string.Empty;
var project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
if (project != null)
{
name = project.JTProjectCode;
if (string.IsNullOrEmpty(name))
{
name = project.ProjectCode;
}
}
return name;
}
public static Model.Base_Project GetProjectByProjectShortName(string name)
{
return Funs.DB.Base_Project.FirstOrDefault(e => e.ShortName == name);
}
public static Model.Base_Project GetProjectByProjectName(string name)
{
return Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectName == name);
}
public static Model.Base_Project GetProjectByProjectCode(string code)
{
return Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectCode == code);
}
/// <summary>
///获取项目简称
/// </summary>
/// <returns></returns>
public static string GetShortNameByProjectId(string projectId)
{
string name = string.Empty;
var project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
if (project != null)
{
name = project.ShortName;
}
return name;
}
/// <summary>
/// 增加项目信息
/// </summary>
/// <returns></returns>
public static void AddProject(Model.Base_Project project)
{
Model.SGGLDB db = Funs.DB;
Model.Base_Project newProject = new Base_Project
{
ProjectId = project.ProjectId,
ProjectCode = project.ProjectCode,
JTProjectCode = project.JTProjectCode,
ProjectName = project.ProjectName,
StartDate = project.StartDate,
EndDate = project.EndDate,
ProjectAddress = project.ProjectAddress,
ContractNo = project.ContractNo,
WorkRange = project.WorkRange,
Duration = project.Duration,
ShortName = project.ShortName,
ProjectType = project.ProjectType,
PostCode = project.PostCode,
Remark = project.Remark,
ProjectState = project.ProjectState,
ProjectState2 = project.ProjectState2,
IsUpTotalMonth = project.IsUpTotalMonth,
UnitId = project.UnitId,
ProjectMainPerson = project.ProjectMainPerson,
ProjectLiaisonPerson = project.ProjectLiaisonPerson,
IsForeign = project.IsForeign,
FromProjectId = project.FromProjectId,
MapCoordinates = project.MapCoordinates,
ProjectMoney = project.ProjectMoney,
ConstructionMoney = project.ConstructionMoney,
Telephone = project.Telephone,
Country = project.Country,
Province = project.Province,
City = project.City,
EnglishRemark = project.EnglishRemark,
HJProjectCode = project.HJProjectCode,
KZProjectCode = project.KZProjectCode,
Progress = project.Progress,
ProjType = project.ProjType,
ProjPhase = project.ProjPhase,
};
db.Base_Project.InsertOnSubmit(newProject);
db.SubmitChanges();
HSEDataCollectService.ProjectHSEDataCollectSubmission(newProject);
}
/// <summary>
///修改项目信息
/// </summary>
/// <param name="project"></param>
public static void UpdateProject(Model.Base_Project project)
{
SGGLDB db = Funs.DB;
Base_Project newProject = db.Base_Project.FirstOrDefault(e => e.ProjectId == project.ProjectId);
if (newProject != null)
{
newProject.ProjectCode = project.ProjectCode;
newProject.JTProjectCode = project.JTProjectCode;
newProject.ProjectName = project.ProjectName;
newProject.StartDate = project.StartDate;
newProject.EndDate = project.EndDate;
newProject.ProjectAddress = project.ProjectAddress;
newProject.ShortName = project.ShortName;
newProject.ContractNo = project.ContractNo;
newProject.WorkRange = project.WorkRange;
newProject.Duration = project.Duration;
newProject.ProjectType = project.ProjectType;
newProject.PostCode = project.PostCode;
newProject.Remark = project.Remark;
newProject.ProjectState = project.ProjectState;
newProject.ProjectState2 = project.ProjectState2;
newProject.IsUpTotalMonth = project.IsUpTotalMonth;
newProject.UnitId = project.UnitId;
newProject.ProjectMainPerson = project.ProjectMainPerson;
newProject.ProjectLiaisonPerson = project.ProjectLiaisonPerson;
newProject.IsForeign = project.IsForeign;
newProject.FromProjectId = project.FromProjectId;
newProject.MapCoordinates = project.MapCoordinates;
newProject.ProjectMoney = project.ProjectMoney;
newProject.ConstructionMoney = project.ConstructionMoney;
newProject.Telephone = project.Telephone;
newProject.Country = project.Country;
newProject.Province = project.Province;
newProject.City = project.City;
newProject.EnglishRemark = project.EnglishRemark;
newProject.HJProjectCode = project.HJProjectCode;
newProject.KZProjectCode = project.KZProjectCode;
newProject.Progress = project.Progress;
newProject.ProjType = project.ProjType;
newProject.ProjPhase = project.ProjPhase;
db.SubmitChanges();
HSEDataCollectService.ProjectHSEDataCollectSubmission(newProject);
}
}
/// <summary>
/// 根据项目Id删除一个项目信息
/// </summary>
/// <param name="projectId"></param>
public static void DeleteProject(string projectId)
{
SGGLDB db = Funs.DB;
Base_Project project = db.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
if (project != null)
{
db.Base_Project.DeleteOnSubmit(project);
db.SubmitChanges();
}
}
/// <summary>
/// 获取施工中项目集合
/// </summary>
/// <returns></returns>
public static List<Model.Base_Project> GetProjectWorkList()
{
var list = (from x in Funs.DB.Base_Project
where x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1
orderby x.ProjectCode descending
select x).ToList();
return list;
}
/// <summary>
/// 获取项目下拉选项
/// </summary>
/// <returns></returns>
public static List<Model.Base_Project> GetProjectDropDownListByState(string state)
{
if (state == BLL.Const.ProjectState_1) //施工
{
var list = (from x in Funs.DB.Base_Project
where x.ProjectState == state || x.ProjectState == null
orderby x.ProjectCode descending
select x).ToList();
return list;
}
else
{
var list = (from x in Funs.DB.Base_Project
where x.ProjectState == state
orderby x.ProjectCode descending
select x).ToList();
return list;
}
}
/// <summary>
/// 获取项目下拉选项
/// </summary>
/// <returns></returns>
public static List<Model.Base_Project> GetAllProjectDropDownList()
{
var list = (from x in Funs.DB.Base_Project
orderby x.ProjectCode descending
select x).ToList();
return list;
}
/// <summary>
/// 获取某类型下项目下拉选项
/// </summary>
/// <returns></returns>
public static List<Model.Base_Project> GetProjectByProjectTypeDropDownList(string projectType)
{
var list = (from x in Funs.DB.Base_Project
where x.ProjectType == projectType
orderby x.ProjectCode descending
select x).ToList();
return list;
}
/// <summary>
/// 获取userId参与项目下拉框
/// </summary>
/// <returns></returns>
public static List<Model.Base_Project> GetProjectByUserIdDropDownList(string userId)
{
if (userId == Const.sysglyId || userId == Const.hfnbdId || userId == Const.sedinId)
{
return (from x in Funs.DB.Base_Project
orderby x.ProjectCode descending
select x).ToList();
}
var getUser = UserService.GetUserByUserId(userId);
if (getUser != null)
{
/// 获取角色类型
var getRoleP = Funs.DB.Sys_RolePower.FirstOrDefault(x => x.RoleId == getUser.RoleId && x.IsOffice == false);
if (getRoleP != null)
{
return (from x in Funs.DB.Base_Project
orderby x.ProjectCode descending
select x).ToList();
}
else
{
return (from x in Funs.DB.Base_Project
join y in Funs.DB.Project_ProjectUser on x.ProjectId equals y.ProjectId
where y.UserId == userId && y.IsPost == true
orderby x.ProjectCode descending
select x).Distinct().ToList();
}
}
else
{
return null;
}
}
/// <summary>
/// 获取userId参与项目下拉框
/// </summary>
/// <returns></returns>
public static List<Model.Base_Project> GetProjectByUserIdStateDropDownList(string userId, string state)
{
if (userId == Const.sysglyId || userId == Const.hfnbdId || userId == Const.sedinId)
{
return (from x in Funs.DB.Base_Project
where x.ProjectState == state
orderby x.ProjectCode descending
select x).ToList();
}
var getUser = UserService.GetUserByUserId(userId);
if (getUser != null)
{
/// 获取角色类型
var getRoleP = Funs.DB.Sys_RolePower.FirstOrDefault(x => x.RoleId == getUser.RoleId && x.IsOffice == false);
if (getRoleP != null)
{
return (from x in Funs.DB.Base_Project
where x.ProjectState == state
orderby x.ProjectCode descending
select x).ToList();
}
else
{
return (from x in Funs.DB.Base_Project
join y in Funs.DB.Project_ProjectUser on x.ProjectId equals y.ProjectId
where y.UserId == userId && y.IsPost == true && x.ProjectState == state
orderby x.ProjectCode descending
select x).Distinct().ToList();
}
}
else
{
return null;
}
}
#region
/// <summary>
/// 项目表下拉框
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="isShowPlease">是否显示请选择</param>
public static void InitProjectDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.DataValueField = "ProjectId";
dropName.DataTextField = "ProjectName";
dropName.DataSource = BLL.ProjectService.GetProjectWorkList();
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
/// <summary>
/// 项目表下拉框
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="isShowPlease">是否显示请选择</param>
public static void InitAllProjectDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.DataValueField = "ProjectId";
dropName.DataTextField = "ProjectName";
var projectlist = BLL.ProjectService.GetAllProjectDropDownList();
dropName.DataSource = projectlist;
dropName.DataBind();
if (projectlist.Count() == 0)
{
isShowPlease = true;
}
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
/// <summary>
///
/// </summary>
/// <param name="dropName"></param>
/// <param name="userId"></param>
/// <param name="isShowPlease"></param>
public static void InitAllProjectShortNameDropDownList(FineUIPro.DropDownList dropName, string userId, bool isShowPlease)
{
dropName.DataValueField = "ProjectId";
dropName.DataTextField = "ProjectName";
var projectlist = GetProjectByUserIdDropDownList(userId);
dropName.DataSource = projectlist;
dropName.DataBind();
if (projectlist.Count() == 0)
{
isShowPlease = true;
}
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
/// <summary>
///
/// </summary>
/// <param name="dropName"></param>
/// <param name="userId"></param>
/// <param name="isShowPlease"></param>
public static void InitProjectShortNameByStateDropDownList(FineUIPro.DropDownList dropName, string userId, string state, bool isShowPlease)
{
dropName.DataValueField = "ProjectId";
dropName.DataTextField = "ProjectName";
var projectlist = GetProjectByUserIdStateDropDownList(userId, state);
dropName.DataSource = projectlist;
dropName.DataBind();
if (projectlist.Count() == 0)
{
isShowPlease = true;
}
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
/// <summary>
/// 某类型下项目表下拉框
/// </summary>
/// <param name="dropName">下拉框名字</param>
/// <param name="isShowPlease">是否显示请选择</param>
public static void InitProjectByProjectTypeDropDownList(FineUIPro.DropDownList dropName, string projectType, bool isShowPlease)
{
dropName.DataValueField = "ProjectId";
dropName.DataTextField = "ProjectName";
var projectlist = BLL.ProjectService.GetProjectByProjectTypeDropDownList(projectType);
dropName.DataSource = projectlist;
dropName.DataBind();
if (projectlist.Count() == 0)
{
isShowPlease = true;
}
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
#endregion
#region
/// <summary>
/// 项目经理
/// </summary>
/// <param name="unitId"></param>
/// <returns></returns>
public static string GetProjectManagerName(string projectId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string name = string.Empty;
if (projectId != null)
{
name = (from x in db.Base_Project
join y in db.Project_ProjectUser on x.ProjectId equals y.ProjectId
join z in db.Sys_User on y.UserId equals z.UserId
where x.ProjectId == projectId && y.RoleId.Contains(BLL.Const.ProjectManager)
select z.UserName).FirstOrDefault();
}
return name;
}
}
/// <summary>
/// 施工经理
/// </summary>
/// <param name="unitId"></param>
/// <returns></returns>
public static string GetConstructionManagerName(string projectId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string name = string.Empty;
if (projectId != null)
{
name = (from x in db.Base_Project
join y in db.Project_ProjectUser on x.ProjectId equals y.ProjectId
join z in db.Sys_User on y.UserId equals z.UserId
where x.ProjectId == projectId && y.RoleId.Contains(BLL.Const.ConstructionManager)
select z.UserName).FirstOrDefault();
}
return name;
}
}
/// <summary>
/// 安全经理
/// </summary>
/// <param name="unitId"></param>
/// <returns></returns>
public static string GetHSSEManagerName(string projectId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string name = string.Empty;
if (projectId != null)
{
name = (from x in db.Project_ProjectUser
join y in db.Sys_User on x.UserId equals y.UserId
where x.ProjectId == projectId && x.RoleId.Contains(BLL.Const.HSSEManager)
select y.UserName).FirstOrDefault();
}
return name;
}
}
/// <summary>
/// 获取安全经理
/// </summary>
/// <param name="projectId"></param>
/// <returns></returns>
public static Model.Project_ProjectUser getHSSEManager(string projectId)
{
return Funs.DB.Project_ProjectUser.FirstOrDefault(x => x.ProjectId == projectId && x.RoleId.Contains(BLL.Const.HSSEManager));
}
/// <summary>
/// 质量经理
/// </summary>
/// <param name="unitId"></param>
/// <returns></returns>
public static string GetQAManagerName(string projectId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string name = string.Empty;
if (projectId != null)
{
name = (from x in db.Base_Project
join y in db.Project_ProjectUser on x.ProjectId equals y.ProjectId
join z in db.Sys_User on y.UserId equals z.UserId
where x.ProjectId == projectId && y.RoleId.Contains(BLL.Const.QAManager)
select z.UserName).FirstOrDefault();
}
return name;
}
}
/// <summary>
/// 开车经理
/// </summary>
/// <param name="unitId"></param>
/// <returns></returns>
public static string GetDriveManagerName(string projectId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string name = string.Empty;
if (projectId != null)
{
name = (from x in db.Base_Project
join y in db.Project_ProjectUser on x.ProjectId equals y.ProjectId
join z in db.Sys_User on y.UserId equals z.UserId
where x.ProjectId == projectId && y.RoleId.Contains(BLL.Const.DriveManager)
select z.UserName).FirstOrDefault();
}
return name;
}
}
#endregion
/// <summary>
/// 获取项目各单位类型单位名称
/// </summary>
/// <param name="projectId"></param>
/// <param name="unitType"></param>
/// <returns></returns>
public static string getProjectUnitNameByUnitType(string projectId, string unitType)
{
string unitName = string.Empty;
if (!string.IsNullOrEmpty(projectId))
{
var getUnitName = from x in Funs.DB.Project_ProjectUnit
join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
where x.ProjectId == projectId.ToString() && x.UnitType == unitType
select y.UnitName;
if (getUnitName.Count() > 0)
{
unitName = Funs.GetStringByArray(getUnitName.ToArray());
}
}
return unitName;
}
/// <summary>
///获取项目材料软件ID
/// </summary>
/// <returns></returns>
public static long GetCLProjectCodeByProjectId(string projectId)
{
long code = 0;
var project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
if (project != null)
{
code = project.CLProjectCode ?? 0;
}
return code;
}
/// <summary>
/// 获取施工中项目集合
/// </summary>
/// <returns></returns>
public static List<Model.Base_Project> GetProjectWorkList(string unitId)
{
var getDatas = from x in Funs.DB.Base_Project
where (x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1)
select x;
if (unitId == BLL.Const.UnitId_CWCEC)
{
getDatas = getDatas.Where(x => x.UnitId == unitId || x.UnitId == null);
}
else
{
getDatas = getDatas.Where(x => x.UnitId == unitId);
}
var list = getDatas.OrderBy(x => x.ProjectName).ToList();
return list;
}
}
}