CNCEC_SUBQHSE_WUHUAN/SGGL/BLL/CQMS/WBS/BreakdownProjectService.cs

426 lines
16 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Web.UI.WebControls;
namespace BLL
{
public class BreakdownProjectService
{
public static Model.SGGLDB db = Funs.DB;
/// <summary>
/// 记录数
/// </summary>
public static int count
{
get;
set;
}
/// <summary>
/// 记录数2
/// </summary>
public static int count2
{
get;
set;
}
/// <summary>
/// 记录数3
/// </summary>
public static int count3
{
get;
set;
}
/// <summary>
/// 定义变量
/// </summary>
private static IQueryable<Model.WBS_BreakdownProject> qq = from x in db.WBS_BreakdownProject orderby x.SortIndex select x;
/// <summary>
/// 获取项目列表
/// </summary>
/// <param name="searchItem"></param>
/// <param name="searchValue"></param>
/// <param name="startRowIndex"></param>
/// <param name="maximumRows"></param>
/// <returns></returns>
public static IEnumerable getListData(string projectId, string divisionProjectId, string name, int startRowIndex, int maximumRows)
{
IQueryable<Model.WBS_BreakdownProject> q = qq;
if (!string.IsNullOrEmpty(projectId))
{
q = q.Where(e => e.ProjectId == projectId);
}
if (!string.IsNullOrEmpty(divisionProjectId))
{
q = q.Where(e => e.DivisionProjectId == divisionProjectId);
}
if (!string.IsNullOrEmpty(name))
{
q = q.Where(e => e.BreakdownName.Contains(name));
}
count = q.Count();
if (count == 0)
{
return new object[] { "" };
}
return from x in q.Skip(startRowIndex).Take(maximumRows)
select new
{
x.BreakdownProjectId,
x.BreakdownCode,
x.BreakdownName,
x.DivisionProjectId,
x.Basis,
x.CheckPoints,
x.RecordAndCode,
x.Class,
x.Remark,
x.FenBao,
x.YeZhu,
x.WuHuan,
x.JianLi,
CheckPointsDef = Funs.GetSubStr(x.CheckPoints, 15),
RecordAndCodeDef = Funs.GetSubStr(x.RecordAndCode, 15),
x.AttachUrl,
x.ModelURL
};
}
/// <summary>
/// 获取列表数
/// </summary>
/// <param name="searchItem"></param>
/// <param name="searchValue"></param>
/// <returns></returns>
public static int getListCount(string projectId, string divisionProjectId, string name)
{
return count;
}
/// <summary>
/// 定义变量
/// </summary>
private static IQueryable<Model.View_WBS> qq2 = from x in db.View_WBS select x;
/// <summary>
/// 获取项目已选择的WBS列表
/// </summary>
/// <param name="searchItem"></param>
/// <param name="searchValue"></param>
/// <param name="startRowIndex"></param>
/// <param name="maximumRows"></param>
/// <returns></returns>
public static IEnumerable getListData2(string projectId, int startRowIndex, int maximumRows)
{
IQueryable<Model.View_WBS> q = qq2;
if (!string.IsNullOrEmpty(projectId))
{
q = q.Where(e => e.ProjectId == projectId);
}
count2 = q.Count();
if (count2 == 0)
{
return new object[] { "" };
}
return from x in q.Skip(startRowIndex).Take(maximumRows)
select new
{
x.ProfessionalName,
x.DivisionName3,
x.DivisionName2,
x.DivisionName1,
x.ProjectId,
x.BreakdownCode,
x.BreakdownName,
x.Basis,
x.CheckPoints,
x.RecordAndCode,
x.Class,
x.Remark,
};
}
/// <summary>
/// 获取列表数
/// </summary>
/// <param name="searchItem"></param>
/// <param name="searchValue"></param>
/// <returns></returns>
public static int getListCount2(string projectId)
{
return count2;
}
/// <summary>
/// 定义变量
/// </summary>
private static IQueryable<Model.View_WBS_BreakdownProject> qq3 = from x in db.View_WBS_BreakdownProject orderby x.SortIndex select x;
/// <summary>
/// 获取项目列表
/// </summary>
/// <param name="searchItem"></param>
/// <param name="searchValue"></param>
/// <param name="startRowIndex"></param>
/// <param name="maximumRows"></param>
/// <returns></returns>
public static IEnumerable getListData3(string projectId, string divisionProjectId, string name, int startRowIndex, int maximumRows)
{
IQueryable<Model.View_WBS_BreakdownProject> q = qq3;
if (!string.IsNullOrEmpty(projectId))
{
q = q.Where(e => e.ProjectId == projectId);
}
if (!string.IsNullOrEmpty(divisionProjectId))
{
q = q.Where(e => e.DivisionProjectId == divisionProjectId);
}
if (!string.IsNullOrEmpty(name))
{
q = q.Where(e => e.BreakdownName.Contains(name));
}
count3 = q.Count();
if (count3 == 0)
{
return new object[] { "" };
}
return from x in q.Skip(startRowIndex).Take(maximumRows)
select new
{
x.BreakdownProjectId,
x.BreakdownCode,
x.BreakdownName,
x.DivisionProjectId,
x.Basis,
x.CheckPoints,
x.RecordAndCode,
x.Class,
x.Remark,
x.FenBao,
x.YeZhu,
x.WuHuan,
x.JianLi,
CheckPointsDef = Funs.GetSubStr(x.CheckPoints, 15),
RecordAndCodeDef = Funs.GetSubStr(x.RecordAndCode, 15),
x.AttachUrl,
};
}
/// <summary>
/// 获取列表数
/// </summary>
/// <param name="searchItem"></param>
/// <param name="searchValue"></param>
/// <returns></returns>
public static int getListCount3(string projectId, string divisionProjectId, string name)
{
return count3;
}
/// <summary>
/// 添加分项
/// </summary>
/// <param name="Installation"></param>
public static void AddBreakdownProject(Model.WBS_BreakdownProject breakdownProject)
{
Model.SGGLDB db = Funs.DB;
Model.WBS_BreakdownProject newBreakdownProject = new Model.WBS_BreakdownProject();
newBreakdownProject.BreakdownProjectId = breakdownProject.BreakdownProjectId;
newBreakdownProject.ProjectId = breakdownProject.ProjectId;
newBreakdownProject.BreakdownCode = breakdownProject.BreakdownCode;
newBreakdownProject.BreakdownName = breakdownProject.BreakdownName;
newBreakdownProject.DivisionProjectId = breakdownProject.DivisionProjectId;
newBreakdownProject.Basis = breakdownProject.Basis;
newBreakdownProject.CheckPoints = breakdownProject.CheckPoints;
newBreakdownProject.RecordAndCode = breakdownProject.RecordAndCode;
newBreakdownProject.Class = breakdownProject.Class;
newBreakdownProject.SortIndex = breakdownProject.SortIndex;
newBreakdownProject.Remark = breakdownProject.Remark;
newBreakdownProject.AttachUrl = breakdownProject.AttachUrl;
newBreakdownProject.ModelURL = breakdownProject.ModelURL;
newBreakdownProject.UnitWorkId = breakdownProject.UnitWorkId;
newBreakdownProject.IsAcceptance = breakdownProject.IsAcceptance;
newBreakdownProject.CompileMan = breakdownProject.CompileMan;
newBreakdownProject.CompileDate = breakdownProject.CompileDate;
newBreakdownProject.IsYellow = breakdownProject.IsYellow;
newBreakdownProject.WuHuan = breakdownProject.WuHuan;
newBreakdownProject.JianLi = breakdownProject.JianLi;
newBreakdownProject.YeZhu = breakdownProject.YeZhu;
newBreakdownProject.FenBao = breakdownProject.FenBao;
newBreakdownProject.SourceBreakdownId = breakdownProject.SourceBreakdownId;
newBreakdownProject.CheckAcceptType = breakdownProject.CheckAcceptType;
db.WBS_BreakdownProject.InsertOnSubmit(newBreakdownProject);
db.SubmitChanges();
}
/// <summary>
/// 修改分项
/// </summary>
/// <param name="breakdownProject"></param>
public static void UpdateBreakdownProject(Model.WBS_BreakdownProject breakdownProject)
{
Model.SGGLDB db = Funs.DB;
Model.WBS_BreakdownProject newBreakdownProject = db.WBS_BreakdownProject.First(e => e.BreakdownProjectId == breakdownProject.BreakdownProjectId);
newBreakdownProject.BreakdownCode = breakdownProject.BreakdownCode;
newBreakdownProject.BreakdownName = breakdownProject.BreakdownName;
newBreakdownProject.DivisionProjectId = breakdownProject.DivisionProjectId;
newBreakdownProject.Basis = breakdownProject.Basis;
newBreakdownProject.CheckPoints = breakdownProject.CheckPoints;
newBreakdownProject.RecordAndCode = breakdownProject.RecordAndCode;
newBreakdownProject.Class = breakdownProject.Class;
newBreakdownProject.SortIndex = breakdownProject.SortIndex;
newBreakdownProject.Remark = breakdownProject.Remark;
newBreakdownProject.AttachUrl = breakdownProject.AttachUrl;
newBreakdownProject.IsSelected = breakdownProject.IsSelected;
newBreakdownProject.WuHuan = breakdownProject.WuHuan;
newBreakdownProject.JianLi = breakdownProject.JianLi;
newBreakdownProject.YeZhu = breakdownProject.YeZhu;
newBreakdownProject.FenBao = breakdownProject.FenBao;
newBreakdownProject.CheckAcceptType = breakdownProject.CheckAcceptType;
db.SubmitChanges();
}
/// <summary>
/// 根据一个分项信息
/// </summary>
/// <param name="breakdownCode"></param>
public static void DeleteBreakdown(string breakdownProjectId)
{
Model.SGGLDB db = Funs.DB;
Model.WBS_BreakdownProject breakdownProject = db.WBS_BreakdownProject.First(e => e.BreakdownProjectId == breakdownProjectId);
db.WBS_BreakdownProject.DeleteOnSubmit(breakdownProject);
db.SubmitChanges();
}
/// <summary>
/// 根据一个子分部信息删除所有对应分项信息
/// </summary>
/// <param name="breakdownCode"></param>
public static void DeleteAllBreakdown(string divisionProjectId)
{
Model.SGGLDB db = Funs.DB;
var q = from x in db.WBS_BreakdownProject where x.DivisionProjectId == divisionProjectId select x;
if (q.Count() > 0)
{
db.WBS_BreakdownProject.DeleteAllOnSubmit(q);
db.SubmitChanges();
}
}
/// <summary>
/// 根据一个单位工程信息删除所有对应分项信息
/// </summary>
/// <param name="breakdownCode"></param>
public static void DeleteAllBreakdownByUnitWorkId(string unitWorkId)
{
Model.SGGLDB db = Funs.DB;
var q = from x in db.WBS_BreakdownProject where x.UnitWorkId == unitWorkId select x;
db.WBS_BreakdownProject.DeleteAllOnSubmit(q);
db.SubmitChanges();
}
/// <summary>
/// 获取施工分项项
/// </summary>
/// <returns></returns>
public static ListItem[] GetBreakdownNameList()
{
var q = (from x in Funs.DB.WBS_BreakdownProject orderby x.SortIndex select x).ToList();
ListItem[] list = new ListItem[q.Count()];
for (int i = 0; i < q.Count(); i++)
{
list[i] = new ListItem(q[i].BreakdownName ?? "", q[i].BreakdownProjectId.ToString());
}
return list;
}
/// <summary>
/// 根据主键返回一个分项信息
/// </summary>
/// <param name="cnProfessionalCode">分项编号</param>
/// <returns></returns>
public static Model.WBS_BreakdownProject GetBreakdownProjectById(string breakdownProjectId)
{
return Funs.DB.WBS_BreakdownProject.FirstOrDefault(x => x.BreakdownProjectId == breakdownProjectId);
}
/// <summary>
/// 根据子分部Id返回所有分项信息
/// </summary>
/// <param name="cnProfessionalCode">分项编号</param>
/// <returns></returns>
public static List<Model.WBS_BreakdownProject> GetBreakdownProjectsByDivisionProjectId(string divisionProjectId)
{
return (from x in Funs.DB.WBS_BreakdownProject where x.DivisionProjectId == divisionProjectId select x).ToList();
}
public static List<Model.WBS_BreakdownProject> GetBreakdownProjectsBySourceBreakdownId(string projectId, string unitWorkId, string sourceBreakdownId)
{
if (!string.IsNullOrEmpty(sourceBreakdownId))
{
string[] ids = sourceBreakdownId.Split(',');
return (from x in Funs.DB.WBS_BreakdownProject where x.ProjectId == projectId && x.UnitWorkId == unitWorkId && ids.Contains(x.SourceBreakdownId) select x).ToList();
}
return (from x in Funs.DB.WBS_BreakdownProject where x.ProjectId == projectId && x.UnitWorkId == unitWorkId && x.SourceBreakdownId == sourceBreakdownId select x).ToList();
}
/// <summary>
/// 根据单元Id返回所有分项信息
/// </summary>
/// <param name="cnProfessionalCode">分项编号</param>
/// <returns></returns>
public static List<Model.WBS_BreakdownProject> GetBreakdownProjectsByInstallationId(string unitWorkId)
{
return (from x in Funs.DB.WBS_BreakdownProject where x.UnitWorkId == unitWorkId select x).ToList();
}
/// <summary>
/// 判断分项编号是否存在
/// </summary>
/// <param name="breakdownCode"></param>
/// <returns></returns>
public static bool IsExistBreakdownCode(string breakdownCode, string breakdownProjectId)
{
Model.WBS_BreakdownProject m = Funs.DB.WBS_BreakdownProject.FirstOrDefault(e => e.BreakdownCode == breakdownCode && e.BreakdownProjectId != breakdownProjectId);
if (m != null)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 判断分项名称是否存在
/// </summary>
/// <param name="professionalName"></param>
/// <returns></returns>
public static bool IsExistProfessionalName(string breakdownName, string breakdownProjectId)
{
Model.WBS_BreakdownProject m = Funs.DB.WBS_BreakdownProject.FirstOrDefault(e => e.BreakdownName == breakdownName && e.BreakdownProjectId != breakdownProjectId);
if (m != null)
{
return true;
}
else
{
return false;
}
}
}
}