338 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			338 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Linq; | |||
|  | using System.Text; | |||
|  | using System.Threading.Tasks; | |||
|  | 
 | |||
|  | namespace BLL | |||
|  | { | |||
|  |     public class ControlItemAndCycleService | |||
|  |     { | |||
|  |         /// <summary> | |||
|  |         /// 根据编号获取明细 | |||
|  |         /// </summary> | |||
|  |         /// <param name="WorkPackageId"></param> | |||
|  |         public static Model.WBS_ControlItemAndCycle GetControlItemAndCycleById(string ControlItemAndCycleId) | |||
|  |         { | |||
|  |             return Funs.DB.WBS_ControlItemAndCycle.FirstOrDefault(e => e.ControlItemAndCycleId == ControlItemAndCycleId); | |||
|  |         } | |||
|  |         public static Model.WBS_ControlItemAndCycle GetControlItemAndCycleByIdForApi(string ControlItemAndCycleId) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 return db.WBS_ControlItemAndCycle.FirstOrDefault(e => e.ControlItemAndCycleId == ControlItemAndCycleId); | |||
|  |             } | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 根据控制点等级获取对应已选择分项的数量 | |||
|  |         /// </summary> | |||
|  |         /// <param name="WorkPackageId">工作包Id</param> | |||
|  |         /// <returns></returns> | |||
|  |         public static int GetControlItemAndCyclesByControlPoint(string controlPoint) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.WBS_ControlItemAndCycle where x.ControlPoint == controlPoint && x.IsApprove == true select x).Count(); | |||
|  |         } | |||
|  | 
 | |||
|  |         public static List<Model.WBS_ControlItemAndCycle> GetTotalControlItemAndCycles(string projectId) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.WBS_ControlItemAndCycle where x.ProjectId == projectId && x.IsApprove == true && (x.ControlPoint.Contains("A") || x.ControlPoint.Contains("B")) orderby x.ControlItemAndCycleCode select x).ToList(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 添加工作包 | |||
|  |         /// </summary> | |||
|  |         /// <param name="ControlItemAndCycle"></param> | |||
|  |         public static void AddControlItemAndCycle(Model.WBS_ControlItemAndCycle ControlItemAndCycle) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             Model.WBS_ControlItemAndCycle newControlItemAndCycle = new Model.WBS_ControlItemAndCycle(); | |||
|  |             //string newKeyID = SQLHelper.GetNewID(typeof(Model.WBS_ControlItemAndCycle)); | |||
|  |             newControlItemAndCycle.ControlItemAndCycleId = ControlItemAndCycle.ControlItemAndCycleId; | |||
|  |             newControlItemAndCycle.ControlItemAndCycleCode = ControlItemAndCycle.ControlItemAndCycleCode; | |||
|  |             newControlItemAndCycle.WorkPackageId = ControlItemAndCycle.WorkPackageId; | |||
|  |             newControlItemAndCycle.ProjectId = ControlItemAndCycle.ProjectId; | |||
|  |             newControlItemAndCycle.ControlItemContent = ControlItemAndCycle.ControlItemContent; | |||
|  |             newControlItemAndCycle.ControlPoint = ControlItemAndCycle.ControlPoint; | |||
|  |             newControlItemAndCycle.ControlItemDef = ControlItemAndCycle.ControlItemDef; | |||
|  |             newControlItemAndCycle.IsSelected = ControlItemAndCycle.IsSelected; | |||
|  |             newControlItemAndCycle.IsApprove = ControlItemAndCycle.IsApprove; | |||
|  |             newControlItemAndCycle.AttachUrl = ControlItemAndCycle.AttachUrl; | |||
|  |             newControlItemAndCycle.Weights = ControlItemAndCycle.Weights; | |||
|  |             newControlItemAndCycle.HGForms = ControlItemAndCycle.HGForms; | |||
|  |             newControlItemAndCycle.SHForms = ControlItemAndCycle.SHForms; | |||
|  |             newControlItemAndCycle.Standard = ControlItemAndCycle.Standard; | |||
|  |             newControlItemAndCycle.ClauseNo = ControlItemAndCycle.ClauseNo; | |||
|  |             newControlItemAndCycle.CheckNum = ControlItemAndCycle.CheckNum; | |||
|  |             newControlItemAndCycle.InitControlItemCode = ControlItemAndCycle.InitControlItemCode; | |||
|  |             newControlItemAndCycle.PlanCompleteDate = ControlItemAndCycle.PlanCompleteDate; | |||
|  |             newControlItemAndCycle.Costs = ControlItemAndCycle.Costs; | |||
|  | 
 | |||
|  |             db.WBS_ControlItemAndCycle.InsertOnSubmit(newControlItemAndCycle); | |||
|  |             db.SubmitChanges(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 修改工作包 | |||
|  |         /// </summary> | |||
|  |         /// <param name="ControlItemAndCycle"></param> | |||
|  |         public static void UpdateControlItemAndCycle(Model.WBS_ControlItemAndCycle ControlItemAndCycle) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             Model.WBS_ControlItemAndCycle newControlItemAndCycle = db.WBS_ControlItemAndCycle.First(e => e.ControlItemAndCycleId == ControlItemAndCycle.ControlItemAndCycleId); | |||
|  |             newControlItemAndCycle.ControlItemAndCycleCode = ControlItemAndCycle.ControlItemAndCycleCode; | |||
|  |             newControlItemAndCycle.WorkPackageId = ControlItemAndCycle.WorkPackageId; | |||
|  |             newControlItemAndCycle.ControlItemContent = ControlItemAndCycle.ControlItemContent; | |||
|  |             newControlItemAndCycle.ControlPoint = ControlItemAndCycle.ControlPoint; | |||
|  |             newControlItemAndCycle.ControlItemDef = ControlItemAndCycle.ControlItemDef; | |||
|  |             newControlItemAndCycle.ControlItemContent = ControlItemAndCycle.ControlItemContent; | |||
|  |             newControlItemAndCycle.ControlPoint = ControlItemAndCycle.ControlPoint; | |||
|  |             newControlItemAndCycle.ControlItemDef = ControlItemAndCycle.ControlItemDef; | |||
|  |             newControlItemAndCycle.IsSelected = ControlItemAndCycle.IsSelected; | |||
|  |             newControlItemAndCycle.IsApprove = ControlItemAndCycle.IsApprove; | |||
|  |             newControlItemAndCycle.AttachUrl = ControlItemAndCycle.AttachUrl; | |||
|  |             newControlItemAndCycle.Weights = ControlItemAndCycle.Weights; | |||
|  |             newControlItemAndCycle.HGForms = ControlItemAndCycle.HGForms; | |||
|  |             newControlItemAndCycle.SHForms = ControlItemAndCycle.SHForms; | |||
|  |             newControlItemAndCycle.Standard = ControlItemAndCycle.Standard; | |||
|  |             newControlItemAndCycle.ClauseNo = ControlItemAndCycle.ClauseNo; | |||
|  |             newControlItemAndCycle.CheckNum = ControlItemAndCycle.CheckNum; | |||
|  |             newControlItemAndCycle.PlanCompleteDate = ControlItemAndCycle.PlanCompleteDate; | |||
|  |             newControlItemAndCycle.Costs = ControlItemAndCycle.Costs; | |||
|  | 
 | |||
|  |             db.SubmitChanges(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据工作包Id删除一个工作包信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="ControlItemAndCycleId"></param> | |||
|  |         public static void DeleteControlItemAndCycle(string ControlItemAndCycleId) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             Model.WBS_ControlItemAndCycle ControlItemAndCycle = db.WBS_ControlItemAndCycle.First(e => e.ControlItemAndCycleId == ControlItemAndCycleId); | |||
|  |             db.WBS_ControlItemAndCycle.DeleteOnSubmit(ControlItemAndCycle); | |||
|  |             db.SubmitChanges(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据初始工作包编码和分部分项获取工作包集合 | |||
|  |         /// </summary> | |||
|  |         /// <param name="initWorkPackageCode"></param> | |||
|  |         /// <param name="unitWorkId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.WBS_ControlItemAndCycle> GetControlItemAndCyclesByInitControlItemCodeAndWorkPackageId(string initControlItemCode, string workPackageId) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.WBS_ControlItemAndCycle where x.InitControlItemCode == initControlItemCode && x.WorkPackageId == workPackageId orderby x.ControlItemAndCycleCode descending select x).ToList(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据分部分项Id删除所有明细信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="ControlItemAndCycleId"></param> | |||
|  |         public static void DeleteAllControlItemAndCycle(string WorkPackageId) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             List<Model.WBS_ControlItemAndCycle> q = (from x in db.WBS_ControlItemAndCycle where x.WorkPackageId == WorkPackageId orderby x.ControlItemAndCycleCode select x).ToList(); | |||
|  |             db.WBS_ControlItemAndCycle.DeleteAllOnSubmit(q); | |||
|  |             db.SubmitChanges(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据单位工程Id删除所有明细信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="ControlItemAndCycleId"></param> | |||
|  |         public static void DeleteAllControlItemAndCycleByUnitWorkId(string unitWorkId) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             List<Model.WBS_ControlItemAndCycle> q = (from x in db.WBS_ControlItemAndCycle | |||
|  |                                                      join y in db.WBS_WorkPackage | |||
|  |                                                      on x.WorkPackageId equals y.WorkPackageId | |||
|  |                                                      where y.UnitWorkId == unitWorkId | |||
|  |                                                      orderby x.ControlItemAndCycleCode select x).ToList(); | |||
|  |             db.WBS_ControlItemAndCycle.DeleteAllOnSubmit(q); | |||
|  |             db.SubmitChanges(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据分部分项Id获取所有工作包内容 | |||
|  |         /// </summary> | |||
|  |         /// <param name="WorkPackageId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.WBS_ControlItemAndCycle> GetListByWorkPackageId(string WorkPackageId) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.WBS_ControlItemAndCycle where x.WorkPackageId == WorkPackageId orderby x.ControlItemAndCycleCode select x).ToList(); | |||
|  |         } | |||
|  |         public static List<Model.WBS_ControlItemAndCycle> GetListByWorkPackageIdForApi(string WorkPackageId) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 var res = (from x in db.WBS_ControlItemAndCycle where x.WorkPackageId == WorkPackageId orderby x.ControlItemAndCycleCode select x).ToList(); | |||
|  |                 foreach (var item in res) | |||
|  |                 { | |||
|  |                     var details = BLL.SpotCheckDetailService.GetSpotCheckDetailsByControlItemAndCycleId(item.ControlItemAndCycleId); | |||
|  |                     if (details != null) | |||
|  |                     { | |||
|  |                         item.ControlPoint = item.ControlPoint + "$" + details.Count; | |||
|  |                     } | |||
|  |                     else | |||
|  |                     { | |||
|  |                         item.ControlPoint = item.ControlPoint + "$0"; | |||
|  |                     } | |||
|  |                     item.AttachUrl = ConvertDetailName(item.ControlItemAndCycleId); | |||
|  | 
 | |||
|  |                 } | |||
|  |                 return res; | |||
|  |             } | |||
|  |         } | |||
|  |         public static string ConvertDetailName(object ControlItemAndCycleId) | |||
|  |         { | |||
|  |             string name = string.Empty; | |||
|  |             if (ControlItemAndCycleId != null) | |||
|  |             { | |||
|  |                 Model.WBS_ControlItemAndCycle c = BLL.ControlItemAndCycleService.GetControlItemAndCycleById(ControlItemAndCycleId.ToString()); | |||
|  |                 if (c != null) | |||
|  |                 { | |||
|  |                     name = c.ControlItemContent; | |||
|  |                     Model.WBS_WorkPackage w = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(c.WorkPackageId); | |||
|  |                     if (w != null) | |||
|  |                     { | |||
|  |                         name = w.PackageContent + "/" + name; | |||
|  |                         Model.WBS_WorkPackage pw = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(w.SuperWorkPackageId); | |||
|  |                         if (pw != null) | |||
|  |                         { | |||
|  |                             name = pw.PackageContent + "/" + name; | |||
|  |                             Model.WBS_WorkPackage ppw = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(pw.SuperWorkPackageId); | |||
|  |                             if (ppw != null) | |||
|  |                             { | |||
|  |                                 name = ppw.PackageContent + "/" + name; | |||
|  |                                 Model.WBS_UnitWork u = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(ppw.UnitWorkId); | |||
|  |                                 if (u != null) | |||
|  |                                 { | |||
|  |                                     name = u.UnitWorkName + "/" + name; | |||
|  |                                 } | |||
|  |                             } | |||
|  |                             else | |||
|  |                             { | |||
|  |                                 Model.WBS_UnitWork u = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(pw.UnitWorkId); | |||
|  |                                 if (u != null) | |||
|  |                                 { | |||
|  |                                     name = u.UnitWorkName + "/" + name; | |||
|  |                                 } | |||
|  |                             } | |||
|  |                         } | |||
|  |                         else | |||
|  |                         { | |||
|  |                             Model.WBS_UnitWork u = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(w.UnitWorkId); | |||
|  |                             if (u != null) | |||
|  |                             { | |||
|  |                                 name = u.UnitWorkName + "/" + name; | |||
|  |                             } | |||
|  |                         } | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  |             return name; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 是否存在工作包 | |||
|  |         /// </summary> | |||
|  |         /// <param name="postName"></param> | |||
|  |         /// <returns>true-存在,false-不存在</returns> | |||
|  |         public static bool IsExistControlItemAndCycleName(string workPackageId, string controlItemContent, string controlItemCode, string projectId) | |||
|  |         { | |||
|  |             var q = from x in Funs.DB.WBS_ControlItemAndCycle where x.WorkPackageId == workPackageId && x.ControlItemContent == controlItemContent && x.ControlItemAndCycleCode != controlItemCode && x.ProjectId == projectId select x; | |||
|  |             if (q.Count() > 0) | |||
|  |             { | |||
|  |                 return true; | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 return false; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 获取表格名称 | |||
|  |         /// </summary> | |||
|  |         /// <param name="ControlItemAndCycleId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static string ConvertContronInfo(object ControlItemAndCycleId) | |||
|  |         { | |||
|  |             StringBuilder sbform = new StringBuilder(); | |||
|  |             var str = Funs.DB.WBS_ControlItemAndCycle.FirstOrDefault(e => e.ControlItemAndCycleId == ControlItemAndCycleId.ToString()); | |||
|  |             if (str != null) | |||
|  |             { | |||
|  |                 if (!string.IsNullOrWhiteSpace(str.HGForms)) | |||
|  |                 { | |||
|  |                     sbform.Append(str.HGForms); | |||
|  |                 } | |||
|  |                 sbform.Append(' ', 8); | |||
|  |                 if (!string.IsNullOrWhiteSpace(str.SHForms)) | |||
|  |                 { | |||
|  |                     sbform.Append(str.SHForms); | |||
|  |                 } | |||
|  |             } | |||
|  |             if (sbform.Length > 0) | |||
|  |             { | |||
|  |                 return sbform.ToString(); | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 return string.Empty; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据单位工程Id获取需要计算权重的工作包 | |||
|  |         /// </summary> | |||
|  |         /// <param name="WorkPackageId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.WBS_ControlItemAndCycle> GetControlItemAndCyclesByUnitWorkIdAndDate(string UnitWorkId, DateTime endDate) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.WBS_ControlItemAndCycle | |||
|  |                     join y in Funs.DB.WBS_WorkPackage | |||
|  |                     on x.WorkPackageId equals y.WorkPackageId | |||
|  |                     where y.UnitWorkId == UnitWorkId | |||
|  |                     where x.IsApprove == true && x.Weights != null | |||
|  |                     && x.PlanCompleteDate <= endDate | |||
|  |                     orderby x.ControlItemAndCycleCode | |||
|  |                     select x).ToList(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据项目Id获取需要计算权重的工作包 | |||
|  |         /// </summary> | |||
|  |         /// <param name="WorkPackageId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.WBS_ControlItemAndCycle> GetControlItemAndCyclesByProjectIdAndDate(string projectId, DateTime endDate) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.WBS_ControlItemAndCycle | |||
|  |                     join y in Funs.DB.WBS_WorkPackage | |||
|  |                     on x.WorkPackageId equals y.WorkPackageId | |||
|  |                     where y.ProjectId == projectId | |||
|  |                     where x.IsApprove == true && x.Weights != null | |||
|  |                     && x.PlanCompleteDate <= endDate | |||
|  |                     orderby x.ControlItemAndCycleCode | |||
|  |                     select x).ToList(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据单位工程Id获取需要计算权重的工作包 | |||
|  |         /// </summary> | |||
|  |         /// <param name="WorkPackageId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.WBS_ControlItemAndCycle> GetControlItemAndCyclesByUnitWorkIdsAndDate(string[] UnitWorkIds, DateTime endDate) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.WBS_ControlItemAndCycle | |||
|  |                     join y in Funs.DB.WBS_WorkPackage | |||
|  |                     on x.WorkPackageId equals y.WorkPackageId | |||
|  |                     where UnitWorkIds.Contains(y.UnitWorkId) | |||
|  |                     where x.IsApprove == true && x.Weights != null | |||
|  |                     && x.PlanCompleteDate <= endDate | |||
|  |                     orderby x.ControlItemAndCycleCode | |||
|  |                     select x).ToList(); | |||
|  |         } | |||
|  |     } | |||
|  | } |