namespace BLL
{
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
public static class ProjectService
{
public static SGGLDB db = Funs.DB;
///
///获取项目信息
///
///
public static Model.Base_Project GetProjectByProjectId(string projectId)
{
return Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
}
///
///根据ID获取项目名称
///
///
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;
}
///
///根据ID获取项目编号
///
///
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;
}
///
///根据ID获取项目编号
///
///
public static string GetProjectRealCodeByProjectId(string projectId)
{
string name = string.Empty;
var project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
if (project != null)
{
name = project.ProjectRealCode;
}
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 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;
}
///
/// 增加项目信息
///
///
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,
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,
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,
ProjectRealCode=project.ProjectRealCode,
};
db.Base_Project.InsertOnSubmit(newProject);
db.SubmitChanges();
HSEDataCollectService.ProjectHSEDataCollectSubmission(newProject);
CQMSDataCollectService.ProjectCQMSDataCollectSubmission(newProject);
}
///
///修改项目信息
///
///
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.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.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.ProjectRealCode = project.ProjectRealCode;
db.SubmitChanges();
HSEDataCollectService.ProjectHSEDataCollectSubmission(newProject);
CQMSDataCollectService.ProjectCQMSDataCollectSubmission(newProject);
}
}
///
/// 根据项目Id删除一个项目信息
///
///
public static void DeleteProject(string projectId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
Base_Project project = db.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
if (project != null)
{
var getSitePerson_PersonItem = from x in db.SitePerson_PersonItem where x.ProjectId == projectId select x;
if (getSitePerson_PersonItem.Count() > 0)
{
db.SitePerson_PersonItem.DeleteAllOnSubmit(getSitePerson_PersonItem);
db.SubmitChanges();
}
var getSitePerson_Person = from x in db.SitePerson_Person where x.ProjectId == projectId select x;
if (getSitePerson_Person.Count() > 0)
{
db.SitePerson_Person.DeleteAllOnSubmit(getSitePerson_Person);
db.SubmitChanges();
}
var getPerson_Persons = from x in db.Person_Persons where x.CurrentProjectId == projectId select x;
if (getPerson_Persons.Count() > 0)
{
foreach (var item in getPerson_Persons)
{
item.CurrentProjectId = null;
db.SubmitChanges();
}
}
ProjectUnitService.DeleteProjectUnitByProjectId(project.ProjectId);
db.Base_Project.DeleteOnSubmit(project);
db.SubmitChanges();
}
}
}
///
/// 获取施工中项目集合
///
///
public static List 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;
}
///
/// 获取项目下拉选项
///
///
public static List 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;
}
}
///
/// 获取项目下拉选项
///
///
public static List GetAllProjectDropDownList()
{
var list = (from x in Funs.DB.Base_Project
orderby x.ProjectCode descending
select x).ToList();
return list;
}
///
/// 获取某类型下项目下拉选项
///
///
public static List 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;
}
///
/// 获取userId参与项目下拉框
///
///
public static List GetProjectByUserIdDropDownList(string userId)
{
if (userId == Const.sysglyId || userId == Const.hfnbdId || userId == Const.sedinId)
{
return (from x in Funs.DB.Base_Project
where x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1
orderby x.ProjectCode descending
select x).ToList();
}
List getLists = new List();
var getUser = Person_PersonsService.GetPerson_PersonsById(userId);
if (getUser != null && !string.IsNullOrEmpty(getUser.Account))
{
//List roleidList = Funs.GetStrListByStr(getUser.RoleIds, ',');
///// 获取角色类型
//var getRoleP = Funs.DB.Sys_RolePower.FirstOrDefault(x => roleidList.Contains(x.RoleId) && x.IsOffice == false);
if (getUser.IsOffice == true)
{
getLists = (from x in Funs.DB.Base_Project
where x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1
orderby x.ProjectCode descending
select x).ToList();
}
else
{
var getProjectIdList = Funs.DB.SitePerson_Person.Where(x => x.PersonId == userId && x.RoleIds != null).Select(x => x.ProjectId);
if (getProjectIdList.Count() > 0)
{
getLists = (from x in Funs.DB.Base_Project
where x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1 && getProjectIdList.Contains(x.ProjectId)
orderby x.ProjectCode descending
select x).ToList();
}
}
}
return getLists;
}
///
/// 获取userId参与项目下拉框 -- 按操作频率排序
///
///
public static List GetSortIndexProjectByUserIdDropDownList(string userId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
IQueryable getProjects = null;
getProjects = from x in db.Base_Project
where x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1
select x;
if (userId != Const.sysglyId && userId != Const.hfnbdId && userId != Const.sedinId)
{
var getUser = Person_PersonsService.GetPerson_PersonsById(userId);
if (getUser != null && !string.IsNullOrEmpty(getUser.Account))
{
//List roleidList = Funs.GetStrListByStr(getUser.RoleIds, ',');
///// 获取角色类型
//var getRoleP = db.Sys_RolePower.FirstOrDefault(x => roleidList.Contains(x.RoleId) && x.IsOffice == false);
if (getUser.IsOffice != true)
{
var getProjectIdList = db.SitePerson_Person.Where(x => x.PersonId == userId && x.RoleIds != null).Select(x => x.ProjectId);
if (getProjectIdList.Count() > 0)
{
getProjects = getProjects.Where(x => getProjectIdList.Contains(x.ProjectId));
}
}
}
}
var pcount = (from x in db.Sys_Log
where x.ProjectId != null && x.OperationTime > DateTime.Now.AddDays(-1)
group x by x.ProjectId into g
select new { g.First().ProjectId, count = g.Count() }).Distinct();
List getList = new List();
if (getProjects.Count() > 0)
{
getList = (from x in getProjects
join y in pcount on x.ProjectId equals y.ProjectId into PP
from p in PP.DefaultIfEmpty()
orderby p.count descending
select x).ToList();
}
return getList;
}
}
#region 项目表下拉框 --施工项目
///
/// 项目表下拉框
///
/// 下拉框名字
/// 是否显示请选择
public static void InitProjectDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.Items.Clear();
dropName.DataValueField = "ProjectId";
dropName.DataTextField = "ProjectName";
dropName.DataSource = BLL.ProjectService.GetProjectWorkList();
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
///
/// 项目表下拉框
///
/// 下拉框名字
/// 是否显示请选择
public static void InitProjectShortNameDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.Items.Clear();
dropName.DataValueField = "ProjectId";
dropName.DataTextField = "ShortName";
dropName.DataSource = BLL.ProjectService.GetProjectWorkList();
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
///
/// 项目表下拉框 --所有项目
///
/// 下拉框名字
/// 是否显示请选择
public static void InitAllProjectDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.Items.Clear();
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);
}
}
///
///
///
///
///
///
public static void InitAllProjectShortNameDropDownList(FineUIPro.DropDownList dropName, string userId, bool isShowPlease)
{
dropName.Items.Clear();
dropName.DataValueField = "ProjectId";
dropName.DataTextField = "ShortName";
var projectlist = GetProjectByUserIdDropDownList(userId);
dropName.DataSource = projectlist;
dropName.DataBind();
if (projectlist.Count() == 0)
{
isShowPlease = true;
}
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
///
/// 某类型下项目表下拉框
///
/// 下拉框名字
/// 是否显示请选择
public static void InitProjectByProjectTypeDropDownList(FineUIPro.DropDownList dropName, string projectType, bool isShowPlease)
{
dropName.Items.Clear();
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
///
/// 获取项目各单位类型单位名称
///
///
///
///
public static string getProjectUnitIdByUnitType(string projectId, string unitType)
{
string unitId = string.Empty;
if (!string.IsNullOrEmpty(projectId))
{
var getUnit = from x in Funs.DB.Project_ProjectUnit
where x.ProjectId == projectId && x.UnitType == unitType
select x.UnitId;
if (getUnit.Count() > 0)
{
unitId = Funs.GetStringByArray(getUnit.ToArray());
}
}
return unitId;
}
///
/// 获取项目各单位类型单位名称
///
///
///
///
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 && x.UnitType == unitType
select y.UnitName;
if (getUnitName.Count() > 0)
{
unitName = Funs.GetStringByArray(getUnitName.ToArray());
}
}
return unitName;
}
///
/// 获取项目各单位类型单位名称
///
///
///
///
public static string getShortProjectUnitNameByUnitType(string projectId, string unitType)
{
string unitName = string.Empty;
if (!string.IsNullOrEmpty(projectId))
{
var getShortUnitName = 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 == unitType
select y.ShortUnitName;
if (getShortUnitName.Count() > 0)
{
unitName = Funs.GetStringByArray(getShortUnitName.ToArray());
}
}
return unitName;
}
///
/// 获取所有项目号
///
///
///
public static void InitAllProjectCodeDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease)
{
dropName.DataValueField = "ProjectId";
dropName.DataTextField = "ProjectCode";
var projectlist = BLL.ProjectService.GetAllProjectDropDownList();
dropName.DataSource = projectlist;
dropName.DataBind();
if (projectlist.Count() == 0)
{
isShowPlease = true;
}
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
///
/// 获取该单位本部角色名称
///
///
///
///
public static string GetOfficeRoleName(string UnitId, string RoleId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
string name = string.Empty;
if (UnitId != null)
{
name = (from x in db.Person_Persons
where x.UnitId == UnitId && x.RoleIds.Contains(RoleId)
select x.PersonName).FirstOrDefault();
}
return name;
}
}
///
/// 获取该单位本部角色ID
///
///
///
///
public static string GetOfficeRoleID(string UnitId, string RoleId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getUser = db.Person_Persons.FirstOrDefault(x => x.UnitId == UnitId && x.RoleIds.Contains(RoleId));
string PersonId = string.Empty;
if (getUser != null)
{
PersonId = getUser.PersonId;
}
return PersonId;
}
}
public static Model.Base_Project GetProjectByProjectCode(string projectCode)
{
return Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectCode == projectCode);
}
///
///根据ID获取项目编号
///
///
public static string GetContractNoByProjectId(string projectId)
{
string name = string.Empty;
var project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
if (project != null)
{
name = project.ContractNo;
if (string.IsNullOrEmpty(name))
{
name = project.ProjectCode;
}
}
return name;
}
}
}