208 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			208 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections;
 | |
| using System.Diagnostics.CodeAnalysis;
 | |
| using System.Globalization;
 | |
| using System.Linq;
 | |
| using System.Data.Linq;
 | |
| using System.Web.Security;
 | |
| using System.Web.UI.WebControls;
 | |
| using Model;
 | |
| using BLL;
 | |
| using System.Collections.Generic;
 | |
| 
 | |
| namespace BLL
 | |
| {
 | |
|     public class UnitProjectService
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// 根据单位/子单位工程Id获取单位/子单位工程信息
 | |
|         /// </summary>
 | |
|         /// <param name="unitProjectId">单位/子单位工程Id</param>
 | |
|         /// <returns></returns>
 | |
|         public static Model.Wbs_UnitProject GetUnitProjectByUnitProjectId(string unitProjectId)
 | |
|         {
 | |
|             return Funs.DB.Wbs_UnitProject.FirstOrDefault(e => e.UnitProjectId == unitProjectId);
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据单位工程Id获取子单位工程集合信息
 | |
|         /// </summary>
 | |
|         /// <param name="unitProjectId">单位工程Id</param>
 | |
|         /// <returns></returns>
 | |
|         public static List<Model.Wbs_UnitProject> GetUnitProjectsBySuperUnitProjectId(string superUnitProjectId)
 | |
|         {
 | |
|             return (from x in Funs.DB.Wbs_UnitProject where x.SuperUnitProjectId == superUnitProjectId orderby x.UnitProjectCode select x).ToList();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据专业Id和分部编号获取分部Id
 | |
|         /// </summary>
 | |
|         /// <param name="unitProjectId">专业Id</param>
 | |
|         /// <returns></returns>
 | |
|         public static List<string> GetUnitProjectIdByCnProfessionIdAndUnitProjectCode(string cnProfessionId, string unitProjectCode)
 | |
|         {
 | |
|             Model.SGGLDB db = Funs.DB;
 | |
|             var list = (from x in db.Wbs_UnitProject where x.CnProfessionId == cnProfessionId && x.UnitProjectCode == unitProjectCode select x.UnitProjectId).ToList();
 | |
|             return list;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据装置、专业Id和分部编号获取分部Id
 | |
|         /// </summary>
 | |
|         /// <param name="unitProjectId">专业Id</param>
 | |
|         /// <returns></returns>
 | |
|         public static Model.Wbs_UnitProject GetUnitProjectIdByInstallationId(string installationId)
 | |
|         {
 | |
|             Model.SGGLDB db = Funs.DB;
 | |
|             string inId = string.Empty;
 | |
|             Model.Project_Installation ins = db.Project_Installation.FirstOrDefault(x => x.InstallationId == installationId);
 | |
|             if (ins.IsEnd == true)
 | |
|             {
 | |
|                 inId = installationId;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 inId = Project_InstallationService.GetEndInstallationId(installationId);
 | |
|             }
 | |
|             return (from x in db.Wbs_UnitProject where x.InstallationId==inId select x).FirstOrDefault();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据装置、专业Id和分部编号获取分部Id
 | |
|         /// </summary>
 | |
|         /// <param name="unitProjectId">专业Id</param>
 | |
|         /// <returns></returns>
 | |
|         public static List<string> GetUnitProjectIdByInstallationIdAndCNCodeAndUnitProjectCode(string installationId, string cnCode, string unitProjectCode)
 | |
|         {
 | |
|             Model.SGGLDB db = Funs.DB;
 | |
|             string inId = string.Empty;
 | |
|             Model.Project_Installation ins = db.Project_Installation.FirstOrDefault(x => x.InstallationId == installationId);
 | |
|             if (ins.IsEnd == true)
 | |
|             {
 | |
|                 inId = installationId;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 inId = Project_InstallationService.GetEndInstallationId(installationId);
 | |
|             }
 | |
|             var cn = (from x in db.WBS_CnProfession where x.InstallationId == inId && x.OldId.ToString() == cnCode select x).FirstOrDefault();
 | |
|             var list = (from x in db.Wbs_UnitProject where x.CnProfessionId == cn.CnProfessionId && x.UnitProjectCode == unitProjectCode select x.UnitProjectId).ToList();
 | |
|             return list;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据装置Id获取单位工程集合信息
 | |
|         /// </summary>
 | |
|         /// <param name="unitProjectId">单位工程Id</param>
 | |
|         /// <returns></returns>
 | |
|         public static List<Model.Wbs_UnitProject> GetUnitProjectsByInstallationId(string installationId)
 | |
|         {
 | |
|             return (from x in Funs.DB.Wbs_UnitProject where x.InstallationId == installationId && x.SuperUnitProjectId == null orderby x.UnitProjectCode select x).ToList();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据专业Id获取单位工程集合信息
 | |
|         /// </summary>
 | |
|         /// <param name="cnProfessionId">专业Id</param>
 | |
|         /// <returns></returns>
 | |
|         public static List<Model.Wbs_UnitProject> GetUnitProjectsByCnProfessionId(string cnProfessionId)
 | |
|         {
 | |
|             return (from x in Funs.DB.Wbs_UnitProject where x.CnProfessionId == cnProfessionId orderby x.UnitProjectCode select x).ToList();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据单位工程Id获取单位工程子级集合的累计工程量
 | |
|         /// </summary>
 | |
|         /// <param name="unitProjectId">单位工程Id</param>
 | |
|         /// <returns></returns>
 | |
|         public static decimal GetChildEngineerQuantitys(string unitProjectId)
 | |
|         {
 | |
|             return (from x in Funs.DB.Wbs_WbsSet where x.UnitProjectId == unitProjectId && x.SuperWbsSetId == null && x.IsApprove == true select x.EngineerQuantity ?? 0).Sum();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 增加单位工程/子单位工程
 | |
|         /// </summary>
 | |
|         /// <param name="user">单位工程/子单位工程</param>
 | |
|         public static void AddUnitProject(Model.Wbs_UnitProject unitProject)
 | |
|         {
 | |
|             Model.SGGLDB db = Funs.DB;
 | |
|             Model.Wbs_UnitProject newUP = new Model.Wbs_UnitProject();
 | |
|             newUP.UnitProjectId = unitProject.UnitProjectId;
 | |
|             newUP.UnitProjectName = unitProject.UnitProjectName;
 | |
|             newUP.UnitProjectCode = unitProject.UnitProjectCode;
 | |
|             newUP.SuperUnitProjectId = unitProject.SuperUnitProjectId;
 | |
|             newUP.InstallationId = unitProject.InstallationId;
 | |
|             newUP.ProjectId = unitProject.ProjectId;
 | |
|             newUP.CnProfessionId = unitProject.CnProfessionId;
 | |
|             newUP.StartDate = unitProject.StartDate;
 | |
|             newUP.EndDate = unitProject.EndDate;
 | |
|             newUP.Weights = unitProject.Weights;
 | |
|             newUP.Remark = unitProject.Remark;
 | |
|             newUP.IsIn = unitProject.IsIn;
 | |
|             newUP.IsSelected = unitProject.IsSelected;
 | |
|             newUP.IsApprove = unitProject.IsApprove;
 | |
|             newUP.SortIndex = unitProject.SortIndex;
 | |
|             newUP.EngineerQuantity = unitProject.EngineerQuantity;
 | |
|             newUP.BudgetUnitPrice = unitProject.BudgetUnitPrice;
 | |
|             newUP.CostUnivalent = unitProject.CostUnivalent;
 | |
|             newUP.Unit = unitProject.Unit;
 | |
| 
 | |
|             db.Wbs_UnitProject.InsertOnSubmit(newUP);
 | |
|             db.SubmitChanges();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 修改单位工程/子单位工程
 | |
|         /// </summary>
 | |
|         /// <param name="user">单位工程/子单位工程</param>
 | |
|         public static void UpdateUnitProject(Model.Wbs_UnitProject unitProject)
 | |
|         {
 | |
|             Model.SGGLDB db = Funs.DB;
 | |
|             Model.Wbs_UnitProject newUP = db.Wbs_UnitProject.First(e => e.UnitProjectId == unitProject.UnitProjectId);
 | |
| 
 | |
|             newUP.UnitProjectName = unitProject.UnitProjectName;
 | |
|             newUP.UnitProjectCode = unitProject.UnitProjectCode;
 | |
|             newUP.InstallationId = unitProject.InstallationId;
 | |
|             newUP.StartDate = unitProject.StartDate;
 | |
|             newUP.EndDate = unitProject.EndDate;
 | |
|             newUP.Weights = unitProject.Weights;
 | |
|             newUP.WeightsMoney = unitProject.WeightsMoney;
 | |
|             newUP.Remark = unitProject.Remark;
 | |
|             newUP.IsSelected = unitProject.IsSelected;
 | |
|             newUP.IsApprove = unitProject.IsApprove;
 | |
|             newUP.IsWeightsApprove = unitProject.IsWeightsApprove;
 | |
|             newUP.SortIndex = unitProject.SortIndex;
 | |
|             newUP.EngineerQuantity = unitProject.EngineerQuantity;
 | |
|             newUP.BudgetUnitPrice = unitProject.BudgetUnitPrice;
 | |
|             newUP.CostUnivalent = unitProject.CostUnivalent;
 | |
|             newUP.Unit = unitProject.Unit;
 | |
|             db.SubmitChanges();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据Id删除单位工程/子单位工程信息
 | |
|         /// </summary>
 | |
|         /// <param name="userId"></param>
 | |
|         public static void DeleteUnitProject(string unitProjectId)
 | |
|         {
 | |
|             Model.SGGLDB db = Funs.DB;
 | |
|             Model.Wbs_UnitProject UP = db.Wbs_UnitProject.First(e => e.UnitProjectId == unitProjectId);
 | |
|             db.Wbs_UnitProject.DeleteOnSubmit(UP);
 | |
|             db.SubmitChanges();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据Id删除所有子级单位工程/子单位工程信息
 | |
|         /// </summary>
 | |
|         /// <param name="userId"></param>
 | |
|         public static void DeleteUnitProjectBySuperUnitProjectId(string superUnitProjectId)
 | |
|         {
 | |
|             Model.SGGLDB db = Funs.DB;
 | |
|             var q = from x in db.Wbs_UnitProject where x.SuperUnitProjectId == superUnitProjectId select x;
 | |
|             db.Wbs_UnitProject.DeleteAllOnSubmit(q);
 | |
|             db.SubmitChanges();
 | |
|         }
 | |
|     }
 | |
| }
 |