361 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			361 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Linq; | |||
|  | using System.Text; | |||
|  | using System.Threading.Tasks; | |||
|  | 
 | |||
|  | namespace BLL | |||
|  | { | |||
|  |   public static class SafetyDataService | |||
|  |     { | |||
|  |         /// <summary> | |||
|  |         /// 根据用户id获取企业安全管理资料主表列表 | |||
|  |         /// </summary> | |||
|  |         /// <param name="appraise"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.SafetyData_SafetyData> GetSafetyDataList() | |||
|  |         { | |||
|  |             var SafetyDataList = from x in Funs.DB.SafetyData_SafetyData | |||
|  |                                  orderby x.Code | |||
|  |                                  select x; | |||
|  |             return SafetyDataList.ToList(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据主键id获取企业安全管理资料 | |||
|  |         /// </summary> | |||
|  |         /// <param name="appraise"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static Model.SafetyData_SafetyData GetSafetyDataBySafetyDataId(string safetyDataId) | |||
|  |         { | |||
|  |             return Funs.DB.SafetyData_SafetyData.FirstOrDefault(x => x.SafetyDataId == safetyDataId); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据菜单id获取企业安全管理资料 | |||
|  |         /// </summary> | |||
|  |         /// <param name="appraise"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static Model.SafetyData_SafetyData GetSafetyDataByMenuId(string menuid) | |||
|  |         { | |||
|  |             return Funs.DB.SafetyData_SafetyData.FirstOrDefault(x => x.MenuId == menuid && x.IsCheck == true); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 添加企业安全管理资料 | |||
|  |         /// </summary> | |||
|  |         /// <param name="safetyData"></param> | |||
|  |         public static void AddSafetyData(Model.SafetyData_SafetyData safetyData) | |||
|  |         { | |||
|  |             Model.SafetyData_SafetyData newSafetyData = new Model.SafetyData_SafetyData | |||
|  |             { | |||
|  |                 SafetyDataId = safetyData.SafetyDataId, | |||
|  |                 MenuId = safetyData.MenuId, | |||
|  |                 Code = safetyData.Code, | |||
|  |                 Title = safetyData.Title, | |||
|  |                 Score = safetyData.Score, | |||
|  |                 Digit = safetyData.Digit, | |||
|  |                 SupSafetyDataId = safetyData.SupSafetyDataId, | |||
|  |                 IsEndLever = safetyData.IsEndLever, | |||
|  |                 Remark = safetyData.Remark, | |||
|  |                 CheckType = safetyData.CheckType, | |||
|  |                 CheckTypeValue1 = safetyData.CheckTypeValue1, | |||
|  |                 CheckTypeValue2 = safetyData.CheckTypeValue2, | |||
|  |                 IsCheck = safetyData.IsCheck | |||
|  |             }; | |||
|  |             Funs.DB.SafetyData_SafetyData.InsertOnSubmit(newSafetyData); | |||
|  |             Funs.DB.SubmitChanges(); | |||
|  | 
 | |||
|  |             ///更新考核项 | |||
|  |             if (newSafetyData.IsCheck == true) | |||
|  |             { | |||
|  |                 UpdateSafetyDataIsCheck(newSafetyData.SupSafetyDataId); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 修改企业安全管理资料 | |||
|  |         /// </summary> | |||
|  |         /// <param name="safetyData"></param> | |||
|  |         public static void UpdateSafetyData(Model.SafetyData_SafetyData safetyData) | |||
|  |         { | |||
|  |             Model.SafetyData_SafetyData newSafetyData = Funs.DB.SafetyData_SafetyData.FirstOrDefault(e => e.SafetyDataId == safetyData.SafetyDataId); | |||
|  |             if (newSafetyData != null) | |||
|  |             { | |||
|  |                 newSafetyData.Code = safetyData.Code; | |||
|  |                 newSafetyData.Title = safetyData.Title; | |||
|  |                 newSafetyData.MenuId = safetyData.MenuId; | |||
|  |                 newSafetyData.Score = safetyData.Score; | |||
|  |                 newSafetyData.Digit = safetyData.Digit; | |||
|  |                 newSafetyData.SupSafetyDataId = safetyData.SupSafetyDataId; | |||
|  |                 newSafetyData.IsEndLever = safetyData.IsEndLever; | |||
|  |                 newSafetyData.Remark = safetyData.Remark; | |||
|  |                 newSafetyData.CheckType = safetyData.CheckType; | |||
|  |                 newSafetyData.CheckTypeValue1 = safetyData.CheckTypeValue1; | |||
|  |                 newSafetyData.CheckTypeValue2 = safetyData.CheckTypeValue2; | |||
|  |                 newSafetyData.IsCheck = safetyData.IsCheck; | |||
|  |                 Funs.DB.SubmitChanges(); | |||
|  | 
 | |||
|  |                 ///更新考核项 | |||
|  |                 if (newSafetyData.IsCheck == true) | |||
|  |                 { | |||
|  |                     UpdateSafetyDataIsCheck(newSafetyData.SupSafetyDataId); | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据主键删除信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="safetyDataId"></param> | |||
|  |         public static void DeleteSafetyDataByID(string safetyDataId) | |||
|  |         { | |||
|  |             Model.SafetyData_SafetyData SafetyData = Funs.DB.SafetyData_SafetyData.FirstOrDefault(e => e.SafetyDataId == safetyDataId); | |||
|  |             { | |||
|  |                 ///删除相应的计划总表 | |||
|  |                 BLL.SafetyDataPlanService.DeleteSafetyDataPlanBySafetyDataId(safetyDataId); | |||
|  |                 Funs.DB.SafetyData_SafetyData.DeleteOnSubmit(SafetyData); | |||
|  |                 Funs.DB.SubmitChanges(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 是否存在文件夹名称 | |||
|  |         /// </summary> | |||
|  |         /// <param name="postName"></param> | |||
|  |         /// <returns>true-存在,false-不存在</returns> | |||
|  |         public static bool IsExistTitle(string SafetyDataId, string supSafetyDataId, string title) | |||
|  |         { | |||
|  |             var q = Funs.DB.SafetyData_SafetyData.FirstOrDefault(x => x.SupSafetyDataId == supSafetyDataId && x.Title == title | |||
|  |                     && x.SafetyDataId != SafetyDataId); | |||
|  |             if (q != null) | |||
|  |             { | |||
|  |                 return true; | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 return false; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         #region 是否可删除节点 | |||
|  |         /// <summary> | |||
|  |         /// 是否可删除节点 | |||
|  |         /// </summary> | |||
|  |         /// <param name="SafetyDataId"></param> | |||
|  |         /// <returns>true-可以,false-不可以</returns> | |||
|  |         public static bool IsDeleteSafetyData(string SafetyDataId) | |||
|  |         { | |||
|  |             bool isDelete = true; | |||
|  |             var SafetyData = GetSafetyDataBySafetyDataId(SafetyDataId); | |||
|  |             if (SafetyData != null) | |||
|  |             { | |||
|  |                 if (SafetyData.IsEndLever == true) | |||
|  |                 { | |||
|  |                     var detailCout = Funs.DB.SafetyData_SafetyDataItem.FirstOrDefault(x => x.SafetyDataId == SafetyDataId); | |||
|  |                     if (detailCout != null) | |||
|  |                     { | |||
|  |                         isDelete = false; | |||
|  |                     } | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     var supItemSetCount = Funs.DB.SafetyData_SafetyData.FirstOrDefault(x => x.SupSafetyDataId == SafetyDataId); | |||
|  |                     if (supItemSetCount != null) | |||
|  |                     { | |||
|  |                         isDelete = false; | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  |             return isDelete; | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 树节点是否显示 | |||
|  |         /// <summary> | |||
|  |         /// 树节点是否显示 | |||
|  |         /// </summary> | |||
|  |         /// <param name="safetyDataId">节点主键</param> | |||
|  |         /// <param name="isMenu">true-来自系统;false-来自定稿</param> | |||
|  |         /// <returns>true-显示,false-不显示</returns> | |||
|  |         public static bool IsShowSafetyDataTreeNode(string safetyDataId, bool isMenu) | |||
|  |         { | |||
|  |             bool isShow = false; | |||
|  |             var safetyData = GetSafetyDataBySafetyDataId(safetyDataId); | |||
|  |             if (safetyData != null) | |||
|  |             { | |||
|  |                 if (isMenu) /// 系统文件 | |||
|  |                 { | |||
|  |                     if (safetyData.IsEndLever == true) | |||
|  |                     { | |||
|  |                         if (!string.IsNullOrEmpty(safetyData.MenuId)) | |||
|  |                         { | |||
|  |                             isShow = true; | |||
|  |                         } | |||
|  |                         else | |||
|  |                         { | |||
|  |                             isShow = false; | |||
|  |                         } | |||
|  |                     } | |||
|  |                     else | |||
|  |                     { | |||
|  |                         var supSafe = Funs.DB.SafetyData_SafetyData.FirstOrDefault(x => x.SupSafetyDataId == safetyDataId && x.MenuId != null); | |||
|  |                         if (supSafe != null) | |||
|  |                         { | |||
|  |                             isShow = true; | |||
|  |                         } | |||
|  |                         else | |||
|  |                         { | |||
|  |                             var supSafeEnd = from x in Funs.DB.SafetyData_SafetyData where x.SupSafetyDataId == safetyDataId && (x.IsEndLever == false || x.IsEndLever == null) select x; | |||
|  |                             if (supSafeEnd.Count() == 0) | |||
|  |                             { | |||
|  |                                 isShow = false; | |||
|  |                             } | |||
|  |                             else | |||
|  |                             { | |||
|  |                                 foreach (var item in supSafeEnd) | |||
|  |                                 { | |||
|  |                                     isShow = IsShowSafetyDataTreeNode(item.SafetyDataId, isMenu); | |||
|  |                                     if (isShow) | |||
|  |                                     { | |||
|  |                                         break; | |||
|  |                                     } | |||
|  |                                 } | |||
|  |                             } | |||
|  |                         } | |||
|  |                     } | |||
|  |                 } | |||
|  |                 else  ///定稿文件 | |||
|  |                 { | |||
|  |                     if (safetyData.IsEndLever == true) | |||
|  |                     { | |||
|  |                         if (string.IsNullOrEmpty(safetyData.MenuId)) | |||
|  |                         { | |||
|  |                             isShow = true; | |||
|  |                         } | |||
|  |                         else | |||
|  |                         { | |||
|  |                             isShow = false; | |||
|  |                         } | |||
|  |                     } | |||
|  |                     else | |||
|  |                     { | |||
|  |                         var supSafe = Funs.DB.SafetyData_SafetyData.FirstOrDefault(x => x.SupSafetyDataId == safetyDataId && x.MenuId == null); | |||
|  |                         if (supSafe != null) | |||
|  |                         { | |||
|  |                             isShow = true; | |||
|  |                         } | |||
|  |                         else | |||
|  |                         { | |||
|  |                             var supSafeEnd = from x in Funs.DB.SafetyData_SafetyData where x.SupSafetyDataId == safetyDataId && (x.IsEndLever == false || x.IsEndLever == null) select x; | |||
|  |                             if (supSafeEnd.Count() == 0) | |||
|  |                             { | |||
|  |                                 isShow = false; | |||
|  |                             } | |||
|  |                             else | |||
|  |                             { | |||
|  |                                 foreach (var item in supSafeEnd) | |||
|  |                                 { | |||
|  |                                     isShow = IsShowSafetyDataTreeNode(item.SafetyDataId, isMenu); | |||
|  |                                     if (isShow) | |||
|  |                                     { | |||
|  |                                         break; | |||
|  |                                     } | |||
|  |                                 } | |||
|  |                             } | |||
|  |                         } | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  | 
 | |||
|  |             return isShow; | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 页面信息添加到企业管理资料 | |||
|  |         #region 添加到企业管理资料中方法 | |||
|  |         /// <summary> | |||
|  |         /// 添加到企业管理资料中方法 | |||
|  |         /// </summary> | |||
|  |         /// <param name="menuId"></param> | |||
|  |         /// <param name="dataId"></param> | |||
|  |         /// <param name="content"></param> | |||
|  |         public static void AddSafetyData(string menuId, string dataId, string content, string url, string projectId) | |||
|  |         { | |||
|  |             var safetyData = Funs.DB.SafetyData_SafetyData.FirstOrDefault(x => x.MenuId == menuId); | |||
|  |             if (safetyData != null)   ////判断这个菜单id 是否在企业管理资料 在则插入明细 | |||
|  |             { | |||
|  |                 AddDataToSafetyDataItem(dataId, content, safetyData.SafetyDataId, url, projectId); | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 增加企业管理资料明细 | |||
|  |         /// <summary> | |||
|  |         ///  增加企业管理资料明细 | |||
|  |         /// </summary> | |||
|  |         public static void AddDataToSafetyDataItem(string dataId, string content, string safetyDataId, string url, string projectId) | |||
|  |         { | |||
|  |             var safetyDataItem = BLL.SafetyDataItemService.GetSafetyDataItemByID(dataId); ///明细是否存在 | |||
|  |             if (safetyDataItem != null) | |||
|  |             { | |||
|  |                 safetyDataItem.Title = content; | |||
|  |                 BLL.SafetyDataItemService.UpdateSafetyDataItem(safetyDataItem); | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 Model.SafetyData_SafetyDataItem newSafetyDataItem = new Model.SafetyData_SafetyDataItem | |||
|  |                 { | |||
|  |                     SafetyDataItemId = dataId, | |||
|  |                     SafetyDataId = safetyDataId, | |||
|  |                     ProjectId = projectId | |||
|  |                 }; | |||
|  | 
 | |||
|  |                 string newCode = BLL.SafetyDataItemService.GetNewSafetyDataItemCode(projectId, safetyDataId); | |||
|  |                 newSafetyDataItem.SortIndex = Funs.GetNewInt(newCode); | |||
|  |                 var safeData = BLL.SafetyDataService.GetSafetyDataBySafetyDataId(safetyDataId); | |||
|  |                 if (safeData != null && !string.IsNullOrEmpty(safeData.Code)) | |||
|  |                 { | |||
|  |                     newCode = safeData.Code + "-" + newCode; | |||
|  |                 } | |||
|  |                 var project = BLL.ProjectService.GetProjectByProjectId(projectId); | |||
|  |                 if (project != null) | |||
|  |                 { | |||
|  |                     newCode = project.ProjectCode + "-" + newCode; | |||
|  |                 } | |||
|  | 
 | |||
|  |                 newSafetyDataItem.Code = newCode; | |||
|  |                 newSafetyDataItem.Title = content; | |||
|  |                 newSafetyDataItem.CompileDate = System.DateTime.Now;  ////单据时间 【todo:要从页面处理】 | |||
|  |                 newSafetyDataItem.SubmitDate = System.DateTime.Now;   ////单据提交时间      | |||
|  |                 newSafetyDataItem.IsMenu = true; | |||
|  |                 newSafetyDataItem.Url = url; | |||
|  |                 BLL.SafetyDataItemService.AddSafetyDataItem(newSafetyDataItem); | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 更新是否考核项 | |||
|  |         /// </summary> | |||
|  |         /// <param name="safetyData"></param> | |||
|  |         public static void UpdateSafetyDataIsCheck(string supSafetyDataId) | |||
|  |         { | |||
|  |             if (!string.IsNullOrEmpty(supSafetyDataId) && supSafetyDataId != "0") | |||
|  |             { | |||
|  |                 var supSafetyData = Funs.DB.SafetyData_SafetyData.FirstOrDefault(e => e.SafetyDataId == supSafetyDataId); | |||
|  |                 if (supSafetyData != null && supSafetyData.IsCheck != true) | |||
|  |                 { | |||
|  |                     supSafetyData.IsCheck = true; | |||
|  |                     Funs.DB.SubmitChanges(); | |||
|  |                     if (!string.IsNullOrEmpty(supSafetyData.SupSafetyDataId) && supSafetyData.SupSafetyDataId != "0") | |||
|  |                     { | |||
|  |                         UpdateSafetyDataIsCheck(supSafetyData.SupSafetyDataId); | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  |     } | |||
|  | } |