Basf_TCC7/HJGL/BLL/Common/ProjectSet/Base_ProjectService.cs

366 lines
14 KiB
C#
Raw Permalink 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.

namespace BLL
{
using System.Collections.Generic;
using System.Linq;
using Model;
public static class Base_ProjectService
{
/// <summary>
///获取项目信息
/// </summary>
/// <returns></returns>
public static Model.Base_Project GetProjectByProjectId(string projectId)
{
return Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
}
/// <summary>
///获取项目编号
/// </summary>
/// <returns></returns>
public static string GetProjectCode(string projectId)
{
Model.Base_Project project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
if (project == null)
{
return "";
}
else
{
return project.ProjectCode;
}
}
/// <summary>
///获取项目简称
/// </summary>
/// <returns></returns>
public static string GetProjectName(string projectId)
{
Model.Base_Project project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
if (project == null)
{
return "";
}
else
{
return project.ShortName;
}
}
/// <summary>
/// 判断施工号是否存在
/// </summary>
/// <param name="projectId">项目ID</param>
/// <param name="projectCode">施工号</param>
/// <returns></returns>
public static bool IsExistProjectCode(string projectId, string projectCode)
{
bool isExitCode = false;
var q = from x in Funs.DB.Base_Project where x.ProjectCode == projectCode && x.ProjectId != projectId select x;
if (q.Count() > 0)
{
isExitCode = true;
}
return isExitCode;
}
/// <summary>
/// 增加项目信息
/// </summary>
/// <returns></returns>
public static void AddProject(Model.Base_Project project)
{
Model.HJGLDB db = Funs.DB;
Model.Base_Project newProject = new Base_Project();
newProject.ProjectId = project.ProjectId;
newProject.ProjectCode = project.ProjectCode;
newProject.ProjectName = project.ProjectName;
newProject.EnProjectName = project.EnProjectName;
newProject.ShortName = project.ShortName;
newProject.ProjectAddress = project.ProjectAddress;
newProject.StartDate = project.StartDate;
newProject.EndDate = project.EndDate;
newProject.ProjectTypeId = project.ProjectTypeId;
newProject.Area = project.Area;
newProject.ProjectAmount = project.ProjectAmount;
newProject.ProjectPrincipal = project.ProjectPrincipal;
newProject.ConstructionPrincipal = project.ConstructionPrincipal;
newProject.Remark = project.Remark;
newProject.IsClosed = project.IsClosed;
newProject.ProjectArea = project.ProjectArea;
db.Base_Project.InsertOnSubmit(newProject);
db.SubmitChanges();
}
/// <summary>
///修改项目信息
/// </summary>
/// <param name="project"></param>
public static void UpdateProject(Model.Base_Project project)
{
Model.HJGLDB db = Funs.DB;
Model.Base_Project newProject = db.Base_Project.First(e => e.ProjectId == project.ProjectId);
newProject.ProjectCode = project.ProjectCode;
newProject.ProjectName = project.ProjectName;
newProject.EnProjectName = project.EnProjectName;
newProject.ShortName = project.ShortName;
newProject.ProjectAddress = project.ProjectAddress;
newProject.StartDate = project.StartDate;
newProject.EndDate = project.EndDate;
newProject.ProjectTypeId = project.ProjectTypeId;
newProject.Area = project.Area;
newProject.ProjectAmount = project.ProjectAmount;
newProject.ProjectPrincipal = project.ProjectPrincipal;
newProject.ConstructionPrincipal = project.ConstructionPrincipal;
newProject.Remark = project.Remark;
newProject.IsClosed = project.IsClosed;
newProject.ProjectArea = project.ProjectArea;
db.SubmitChanges();
}
/// <summary>
/// 根据项目Id删除一个项目信息
/// </summary>
/// <param name="projectId"></param>
public static void DeleteProject(string projectId)
{
Model.HJGLDB db = Funs.DB;
Model.Base_Project project = db.Base_Project.FirstOrDefault(e => e.ProjectId == projectId);
Model.Sys_Set sysSet=db.Sys_Set.FirstOrDefault(e => e.ProjectId == projectId);
Model.Common_ReportServer report=db.Common_ReportServer.FirstOrDefault(e => e.ProjectId == projectId);
if (report != null)
{
db.Common_ReportServer.DeleteOnSubmit(report);
}
if (sysSet != null)
{
db.Sys_Set.DeleteOnSubmit(sysSet);
}
if (project != null)
{
db.Base_Project.DeleteOnSubmit(project);
}
var punit = from x in db.Project_Unit where x.ProjectId == projectId select x;
if (punit.Count() > 0)
{
db.Project_Unit.DeleteAllOnSubmit(punit);
}
var puser = from x in db.Project_User where x.ProjectId == projectId select x;
if (puser.Count() > 0)
{
db.Project_User.DeleteAllOnSubmit(puser);
}
db.SubmitChanges();
}
public static List<Model.Base_Project> GetOnProjectList()
{
return (from x in Funs.DB.Base_Project where (x.IsClosed == null || x.IsClosed == false) select x).ToList();
}
/// <summary>
/// 根据用户加载项目
/// </summary>
/// <param name="userId"></param>
/// <param name="state">true:完工false:在建</param>
/// <returns></returns>
public static List<Model.Base_Project> GetProjectListByUserIdAndState(string userId, string state)
{
if (state == BLL.Const._Null)
{
if (userId == BLL.Const.GlyId) //管理员
{
var q = (from x in Funs.DB.Base_Project
orderby x.ProjectCode descending
select x).ToList();
return q;
}
else
{
var q = (from x in Funs.DB.Base_Project
join y in Funs.DB.Project_User
on x.ProjectId equals y.ProjectId
where y.UserId == userId
select x).Distinct().ToList();
return q.OrderByDescending(x => x.ProjectCode).ToList();
}
}
else if (state == BLL.Const._True)
{
if (userId == BLL.Const.GlyId) //管理员
{
var q = (from x in Funs.DB.Base_Project
where x.IsClosed == true
orderby x.ProjectCode descending
select x).ToList();
return q;
}
else
{
var q = (from x in Funs.DB.Base_Project
join y in Funs.DB.Project_User
on x.ProjectId equals y.ProjectId
where y.UserId == userId && x.IsClosed == true
select x).Distinct().ToList();
return q.OrderByDescending(x => x.ProjectCode).ToList();
}
}
else
{
if (userId == BLL.Const.GlyId) //管理员
{
var q = (from x in Funs.DB.Base_Project
where x.IsClosed == false
orderby x.ProjectCode descending
select x).ToList();
return q;
}
else
{
var q = (from x in Funs.DB.Base_Project
join y in Funs.DB.Project_User
on x.ProjectId equals y.ProjectId
where y.UserId == userId && x.IsClosed == false
select x).Distinct().ToList();
return q.OrderByDescending(x => x.ProjectCode).ToList();
}
}
}
/// <summary>
/// 根据用户,状态和项目类型加载项目
/// </summary>
/// <param name="userId"></param>
/// <param name="state"></param>
/// <param name="projectType"></param>
/// <returns></returns>
public static List<Model.Base_Project> GetProjectListByUserIdAndState(string userId, string state, string projectArea)
{
if (state == BLL.Const._Null)
{
if (userId == BLL.Const.GlyId) //管理员
{
var q = (from x in Funs.DB.Base_Project where x.ProjectArea== projectArea
orderby x.ProjectCode descending
select x).ToList();
return q;
}
else
{
var q = (from x in Funs.DB.Base_Project
join y in Funs.DB.Project_User
on x.ProjectId equals y.ProjectId
where y.UserId == userId && x.ProjectArea == projectArea
select x).Distinct().ToList();
return q.OrderByDescending(x => x.ProjectCode).ToList();
}
}
else if (state == BLL.Const._True)
{
if (userId == BLL.Const.GlyId) //管理员
{
var q = (from x in Funs.DB.Base_Project
where x.IsClosed == true && x.ProjectArea == projectArea
orderby x.ProjectCode descending
select x).ToList();
return q;
}
else
{
var q = (from x in Funs.DB.Base_Project
join y in Funs.DB.Project_User
on x.ProjectId equals y.ProjectId
where y.UserId == userId && x.IsClosed == true && x.ProjectArea == projectArea
select x).Distinct().ToList();
return q.OrderByDescending(x => x.ProjectCode).ToList();
}
}
else
{
if (userId == BLL.Const.GlyId) //管理员
{
var q = (from x in Funs.DB.Base_Project
where x.IsClosed == false && x.ProjectArea == projectArea
orderby x.ProjectCode descending
select x).ToList();
return q;
}
else
{
var q = (from x in Funs.DB.Base_Project
join y in Funs.DB.Project_User
on x.ProjectId equals y.ProjectId
where y.UserId == userId && x.IsClosed == false && x.ProjectArea == projectArea
select x).Distinct().ToList();
return q.OrderByDescending(x => x.ProjectCode).ToList();
}
}
}
public static void InitProjectDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease, string userId, string state, string projectArea, string itemText)
{
dropName.DataValueField = "ProjectId";
dropName.DataTextField = "ProjectCode";
dropName.DataSource = GetProjectListByUserIdAndState(userId, state, projectArea);
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName, itemText);
}
}
#region
/// <summary>
/// 项目信息下拉项
/// </summary>
/// <param name="dropName">下拉框名称</param>
/// <param name="isShowPlease">是否显示请选择</param>
/// <param name="userId">用户ID</param>
/// <param name="state">状态</param>
public static void InitProjectDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease, string userId, string state,string itemText)
{
dropName.DataValueField = "ProjectId";
dropName.DataTextField = "ProjectCode";
dropName.DataSource = GetProjectListByUserIdAndState(userId, state);
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName,itemText);
}
}
#endregion
/// <summary>
/// 获取用户所有在建项目字符串
/// </summary>
/// <param name="userId"></param>
/// <param name="projectSoft"></param>
/// <returns></returns>
public static string GetStrProjectIds(string userId, string state)
{
List<Model.Base_Project> projects = BLL.Base_ProjectService.GetProjectListByUserIdAndState(userId, state);
string projectIds = string.Empty;
foreach (var project in projects)
{
projectIds += project.ProjectId + ",";
}
return projectIds;
}
}
}