426 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			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.CNPCDB 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.CNPCDB 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.CNPCDB 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.CNPCDB 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.CNPCDB 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.CNPCDB 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;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |