386 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			386 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Linq; | |||
|  | using System.Text; | |||
|  | using System.Collections; | |||
|  | 
 | |||
|  | namespace BLL | |||
|  | { | |||
|  |     /// <summary> | |||
|  |     /// 专项检查 | |||
|  |     /// </summary> | |||
|  |     public static class Check_CheckSpecialService | |||
|  |     { | |||
|  |         /// <summary> | |||
|  |         /// 根据专项检查ID获取专项检查信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="CheckSpecialName"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static Model.Check_CheckSpecial GetCheckSpecialByCheckSpecialId(string checkSpecialId) | |||
|  |         { | |||
|  |             return Funs.DB.Check_CheckSpecial.FirstOrDefault(e => e.CheckSpecialId == checkSpecialId); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据时间段获取专项检查信息集合 | |||
|  |         /// </summary> | |||
|  |         /// <param name="startTime"></param> | |||
|  |         /// <param name="endTime"></param> | |||
|  |         /// <param name="projectId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static int GetCountByCheckTime(DateTime startTime, DateTime endTime, string projectId) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.Check_CheckSpecial where x.CheckTime >= startTime && x.CheckTime < endTime && x.ProjectId == projectId && x.States == BLL.Const.State_2 select x).Count(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据时间段获取专项检查集合 | |||
|  |         /// </summary> | |||
|  |         /// <param name="startTime">开始时间</param> | |||
|  |         /// <param name="endTime">结束时间</param> | |||
|  |         /// <param name="projectId">项目号</param> | |||
|  |         /// <returns>专项检查集合</returns> | |||
|  |         public static List<Model.Check_CheckSpecial> GetListByCheckTime(DateTime startTime, DateTime endTime, string projectId) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.Check_CheckSpecial where x.CheckTime >= startTime && x.CheckTime < endTime && x.ProjectId == projectId select x).ToList(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据时间段获取已完成的专项检查整改数量 | |||
|  |         /// </summary> | |||
|  |         /// <param name="startTime">开始时间</param> | |||
|  |         /// <param name="endTime">结束时间</param> | |||
|  |         /// <param name="projectId">项目号</param> | |||
|  |         /// <returns>已完成的专项检查整改数量</returns> | |||
|  |         public static int GetIsOKViolationCountByCheckTime(DateTime startTime, DateTime endTime, string projectId) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             return (from x in db.Check_CheckSpecial | |||
|  |                         join y in db.Check_CheckSpecialDetail on x.CheckSpecialId equals y.CheckSpecialId | |||
|  |                         where x.CheckTime >= startTime && x.CheckTime <= endTime && x.ProjectId == projectId && y.CompleteStatus != null && y.CompleteStatus == true | |||
|  |                         select y).Count(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 添加安全专项检查 | |||
|  |         /// </summary> | |||
|  |         /// <param name="checkSpecial"></param> | |||
|  |         public static void AddCheckSpecial(Model.Check_CheckSpecial checkSpecial) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             Model.Check_CheckSpecial newCheckSpecial = new Model.Check_CheckSpecial | |||
|  |             { | |||
|  |                 CheckSpecialId = checkSpecial.CheckSpecialId, | |||
|  |                 CheckSpecialCode = checkSpecial.CheckSpecialCode, | |||
|  |                 ProjectId = checkSpecial.ProjectId, | |||
|  |                 CheckPerson = checkSpecial.CheckPerson, | |||
|  |                 CheckTime = checkSpecial.CheckTime, | |||
|  |                 ScanUrl = checkSpecial.ScanUrl, | |||
|  |                 DaySummary = checkSpecial.DaySummary, | |||
|  |                 PartInUnits = checkSpecial.PartInUnits, | |||
|  |                 PartInPersons = checkSpecial.PartInPersons, | |||
|  |                 PartInPersonIds = checkSpecial.PartInPersonIds, | |||
|  |                 PartInPersonNames = checkSpecial.PartInPersonNames, | |||
|  |                 CheckAreas = checkSpecial.CheckAreas, | |||
|  |                 States = checkSpecial.States, | |||
|  |                 CompileMan = checkSpecial.CompileMan, | |||
|  |                 CheckType = checkSpecial.CheckType, | |||
|  |                 CheckItemSetId = checkSpecial.CheckItemSetId, | |||
|  |             }; | |||
|  |             db.Check_CheckSpecial.InsertOnSubmit(newCheckSpecial); | |||
|  |             db.SubmitChanges(); | |||
|  |             ////增加一条编码记录 | |||
|  |             BLL.CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(BLL.Const.ProjectCheckSpecialMenuId, checkSpecial.ProjectId, null, checkSpecial.CheckSpecialId, checkSpecial.CheckTime);          | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 修改安全专项检查 | |||
|  |         /// </summary> | |||
|  |         /// <param name="checkSpecial"></param> | |||
|  |         public static void UpdateCheckSpecial(Model.Check_CheckSpecial checkSpecial) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             Model.Check_CheckSpecial newCheckSpecial = db.Check_CheckSpecial.FirstOrDefault(e => e.CheckSpecialId == checkSpecial.CheckSpecialId); | |||
|  |             if (newCheckSpecial != null) | |||
|  |             { | |||
|  |                 newCheckSpecial.CheckSpecialCode = checkSpecial.CheckSpecialCode; | |||
|  |                 //newCheckSpecial.ProjectId = checkSpecial.ProjectId; | |||
|  |                 newCheckSpecial.CheckPerson = checkSpecial.CheckPerson; | |||
|  |                 newCheckSpecial.CheckTime = checkSpecial.CheckTime; | |||
|  |                 newCheckSpecial.ScanUrl = checkSpecial.ScanUrl; | |||
|  |                 newCheckSpecial.DaySummary = checkSpecial.DaySummary; | |||
|  |                 newCheckSpecial.PartInUnits = checkSpecial.PartInUnits; | |||
|  |                 newCheckSpecial.PartInPersons = checkSpecial.PartInPersons; | |||
|  |                 newCheckSpecial.PartInPersonIds = checkSpecial.PartInPersonIds; | |||
|  |                 newCheckSpecial.PartInPersonNames = checkSpecial.PartInPersonNames; | |||
|  |                 newCheckSpecial.CheckAreas = checkSpecial.CheckAreas; | |||
|  |                 newCheckSpecial.States = checkSpecial.States; | |||
|  |                 newCheckSpecial.CheckType = checkSpecial.CheckType; | |||
|  |                 newCheckSpecial.CheckItemSetId = checkSpecial.CheckItemSetId; | |||
|  |                 db.SubmitChanges(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据专项检查ID 更新专项检查状态 | |||
|  |         /// </summary> | |||
|  |         /// <param name="checkSpecialDetailId"></param> | |||
|  |         public static void UpdateCheckSpecialStates(string checkSpecialId) | |||
|  |         { | |||
|  |             var getS = Funs.DB.Check_CheckSpecial.FirstOrDefault(x => x.CheckSpecialId == checkSpecialId); | |||
|  |             if (getS != null && getS.States == Const.State_1) | |||
|  |             { | |||
|  |                 var getNCDetail = Funs.DB.Check_CheckSpecialDetail.FirstOrDefault(x => x.CheckSpecialId == getS.CheckSpecialId && x.CompleteStatus == false); | |||
|  |                 if (getNCDetail == null) | |||
|  |                 { | |||
|  |                     getS.States = Const.State_2; | |||
|  |                     Funs.DB.SubmitChanges(); | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据专项检查ID删除对应专项检查记录信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="superviseCheckReportId"></param> | |||
|  |         public static void DeleteCheckSpecial(string checkSpecialId) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             var q = (from x in db.Check_CheckSpecial where x.CheckSpecialId == checkSpecialId select x).FirstOrDefault(); | |||
|  |             if (q != null) | |||
|  |             { | |||
|  |                 ///删除编码表记录 | |||
|  |                 BLL.CodeRecordsService.DeleteCodeRecordsByDataId(q.CheckSpecialId); | |||
|  |                 ////删除附件表 | |||
|  |                 BLL.CommonService.DeleteAttachFileById(q.CheckSpecialId);               | |||
|  |                 ////删除审核流程表 | |||
|  |                 BLL.CommonService.DeleteFlowOperateByID(q.CheckSpecialId); | |||
|  |                 db.Check_CheckSpecial.DeleteOnSubmit(q); | |||
|  |                 db.SubmitChanges(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         ///  | |||
|  |         /// </summary> | |||
|  |         /// <param name="CheckSpecialDetailId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static string ConvertHandleStep(object CheckSpecialDetailId) | |||
|  |         { | |||
|  |             string name = string.Empty; | |||
|  |             if (CheckSpecialDetailId != null) | |||
|  |             { | |||
|  |                 var getDetail = BLL.Check_CheckSpecialDetailService.GetCheckSpecialDetailByCheckSpecialDetailId(CheckSpecialDetailId.ToString()); | |||
|  |                 if (getDetail != null) | |||
|  |                 { | |||
|  |                     if (getDetail.DataType == "1") | |||
|  |                     { | |||
|  |                         name = "下发整改单:"; | |||
|  |                         var getRe = RectifyNoticesService.GetRectifyNoticesById(getDetail.DataId); | |||
|  |                         if (getRe != null) | |||
|  |                         { | |||
|  |                             name += getRe.RectifyNoticesCode; | |||
|  |                         } | |||
|  |                     } | |||
|  |                     else if (getDetail.DataType == "2") | |||
|  |                     { | |||
|  |                         name = "下发处罚单:"; | |||
|  |                         var getRe = PunishNoticeService.GetPunishNoticeById(getDetail.DataId); | |||
|  |                         if (getRe != null) | |||
|  |                         { | |||
|  |                             name += getRe.PunishNoticeCode; | |||
|  |                         } | |||
|  |                     } | |||
|  |                     else if (getDetail.DataType == "3") | |||
|  |                     { | |||
|  |                         name = "下发暂停令:"; | |||
|  |                         var getRe = Check_PauseNoticeService.GetPauseNoticeByPauseNoticeId(getDetail.DataId); | |||
|  |                         if (getRe != null) | |||
|  |                         { | |||
|  |                             name += getRe.PauseNoticeCode; | |||
|  |                         } | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  |             return name; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         ///  | |||
|  |         /// </summary> | |||
|  |         /// <param name="detailLists"></param> | |||
|  |         /// <param name="checkSpecial"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static string IssueRectification(List<Model.Check_CheckSpecialDetail> detailLists, Model.Check_CheckSpecial checkSpecial) | |||
|  |         { | |||
|  |             string info = string.Empty; | |||
|  |             if (detailLists.Count() > 0 && checkSpecial != null) | |||
|  |             { | |||
|  |                 ////隐患整改单 | |||
|  |                 var getDetail1 = detailLists.Where(x => x.HandleStep.Contains("1")); | |||
|  |                 if (getDetail1.Count() > 0) | |||
|  |                 { | |||
|  |                     var getUnitList = getDetail1.Select(x => x.UnitId).Distinct(); | |||
|  |                     foreach (var unitItem in getUnitList) | |||
|  |                     { | |||
|  |                         var getUnitItemList = getDetail1.Where(x => x.UnitId == unitItem); | |||
|  |                         var getTypeIds = getUnitItemList.Select(x => x.HiddenHazardType).Distinct(); | |||
|  |                         foreach (var itemTypeId in getTypeIds) | |||
|  |                         { | |||
|  |                             Model.RectifyNoticesItem rectifyNotices = new Model.RectifyNoticesItem | |||
|  |                             { | |||
|  |                                 ProjectId = checkSpecial.ProjectId, | |||
|  |                                 UnitId = unitItem, | |||
|  |                                 CompleteManId = checkSpecial.CompileMan, | |||
|  |                                 CheckManNames = checkSpecial.PartInPersonNames, | |||
|  |                                 CheckManIds = checkSpecial.PartInPersonIds, | |||
|  |                                 CheckedDate = string.Format("{0:yyyy-MM-dd HH:mm:ss}", checkSpecial.CheckTime), | |||
|  |                                 States = Const.State_0, | |||
|  |                             }; | |||
|  | 
 | |||
|  |                             rectifyNotices.RectifyNoticesItemItem = new List<Model.RectifyNoticesItemItem>(); | |||
|  |                             var getUnitDItem = getUnitItemList.Where(x => x.HiddenHazardType == itemTypeId); | |||
|  |                             foreach (var item in getUnitDItem) | |||
|  |                             { | |||
|  |                                 Model.RectifyNoticesItemItem newRItem = new Model.RectifyNoticesItemItem | |||
|  |                                 { | |||
|  |                                     WrongContent = item.Unqualified | |||
|  |                                 }; | |||
|  |                                 if (string.IsNullOrEmpty(rectifyNotices.CheckSpecialDetailId)) | |||
|  |                                 { | |||
|  |                                     rectifyNotices.CheckSpecialDetailId = item.CheckSpecialDetailId; | |||
|  |                                 } | |||
|  |                                 else | |||
|  |                                 { | |||
|  |                                     rectifyNotices.CheckSpecialDetailId += "," + item.CheckSpecialDetailId; | |||
|  |                                 } | |||
|  |                                 var getAtt = Funs.DB.AttachFile.FirstOrDefault(x => x.ToKeyId == item.CheckSpecialDetailId); | |||
|  |                                 if (getAtt != null && !string.IsNullOrEmpty(getAtt.AttachUrl)) | |||
|  |                                 { | |||
|  |                                     newRItem.PhotoBeforeUrl = getAtt.AttachUrl; | |||
|  |                                 } | |||
|  |                                 if (!string.IsNullOrEmpty(item.CheckArea)) | |||
|  |                                 { | |||
|  |                                     if (string.IsNullOrEmpty(rectifyNotices.WorkAreaId)) | |||
|  |                                     { | |||
|  |                                         rectifyNotices.WorkAreaId = item.CheckArea; | |||
|  |                                     } | |||
|  |                                     else if (!rectifyNotices.WorkAreaId.Contains(item.CheckArea)) | |||
|  |                                     { | |||
|  |                                         rectifyNotices.WorkAreaId += "," + item.CheckArea; | |||
|  |                                     } | |||
|  |                                 } | |||
|  |                                 rectifyNotices.RectifyNoticesItemItem.Add(newRItem); | |||
|  |                             } | |||
|  | 
 | |||
|  |                             APIRectifyNoticesService.SaveRectifyNotices(rectifyNotices); | |||
|  |                         } | |||
|  |                     } | |||
|  |                     info += "整改单已下发。"; | |||
|  |                 } | |||
|  |                 ///处罚单 | |||
|  |                 var getDetail2 = detailLists.Where(x => x.HandleStep.Contains("2")); | |||
|  |                 if (getDetail2.Count() > 0) | |||
|  |                 { | |||
|  |                     var getUnitList = getDetail2.Select(x => x.UnitId).Distinct(); | |||
|  |                     foreach (var unitItem in getUnitList) | |||
|  |                     { | |||
|  |                         Model.PunishNoticeItem punishNotice = new Model.PunishNoticeItem | |||
|  |                         { | |||
|  |                             ProjectId = checkSpecial.ProjectId, | |||
|  |                             PunishNoticeDate = string.Format("{0:yyyy-MM-dd HH:mm:ss}", checkSpecial.CheckTime), | |||
|  |                             UnitId = unitItem, | |||
|  |                             CompileManId = checkSpecial.CompileMan, | |||
|  |                             PunishStates = Const.State_0, | |||
|  |                         }; | |||
|  |                         punishNotice.PunishNoticeItemItem = new List<Model.PunishNoticeItemItem>(); | |||
|  |                         var getUnitDItem = getDetail2.Where(x => x.UnitId == unitItem); | |||
|  |                         foreach (var item in getUnitDItem) | |||
|  |                         { | |||
|  |                             Model.PunishNoticeItemItem newPItem = new Model.PunishNoticeItemItem(); | |||
|  |                             newPItem.PunishContent = item.Unqualified; | |||
|  |                             newPItem.SortIndex = item.SortIndex; | |||
|  |                             punishNotice.PunishNoticeItemItem.Add(newPItem); | |||
|  |                             if (string.IsNullOrEmpty(punishNotice.CheckSpecialDetailId)) | |||
|  |                             { | |||
|  |                                 punishNotice.CheckSpecialDetailId = item.CheckSpecialDetailId; | |||
|  |                             } | |||
|  |                             else | |||
|  |                             { | |||
|  |                                 punishNotice.CheckSpecialDetailId += "," + item.CheckSpecialDetailId; | |||
|  |                             } | |||
|  |                         } | |||
|  | 
 | |||
|  |                         APIPunishNoticeService.SavePunishNotice(punishNotice); | |||
|  |                     } | |||
|  |                     info += "处罚单已下发。"; | |||
|  |                 } | |||
|  |                 ///暂停令 | |||
|  |                 var getDetail3 = detailLists.Where(x => x.HandleStep.Contains("3")); | |||
|  |                 if (getDetail3.Count() > 0) | |||
|  |                 { | |||
|  |                     var getUnitList = getDetail3.Select(x => x.UnitId).Distinct(); | |||
|  |                     foreach (var unitItem in getUnitList) | |||
|  |                     { | |||
|  |                         Model.PauseNoticeItem pauseNotice = new Model.PauseNoticeItem | |||
|  |                         { | |||
|  |                             ProjectId = checkSpecial.ProjectId, | |||
|  |                             UnitId = unitItem, | |||
|  |                             CompileManId= checkSpecial.CompileMan, | |||
|  |                             PauseTime = string.Format("{0:yyyy-MM-dd HH:mm:ss}", checkSpecial.CheckTime), | |||
|  |                             PauseStates = Const.State_0, | |||
|  |                         }; | |||
|  | 
 | |||
|  |                         var getUnitDItem = getDetail3.Where(x => x.UnitId == unitItem); | |||
|  |                         foreach (var item in getUnitDItem) | |||
|  |                         { | |||
|  |                             Model.RectifyNoticesItemItem newRItem = new Model.RectifyNoticesItemItem(); | |||
|  |                             pauseNotice.ThirdContent += item.Unqualified; | |||
|  |                             string checkAreaName= UnitWorkService.GetNameById(item.CheckArea); | |||
|  |                             if (!string.IsNullOrEmpty(checkAreaName)) | |||
|  |                             { | |||
|  |                                 if (string.IsNullOrEmpty(pauseNotice.ProjectPlace)) | |||
|  |                                 { | |||
|  |                                     pauseNotice.ProjectPlace = checkAreaName; | |||
|  |                                 } | |||
|  |                                 else | |||
|  |                                 { | |||
|  |                                     if (!pauseNotice.ProjectPlace.Contains(checkAreaName)) | |||
|  |                                     { | |||
|  |                                         pauseNotice.ProjectPlace += "," + checkAreaName; | |||
|  |                                     } | |||
|  |                                 } | |||
|  |                             } | |||
|  |                             if (string.IsNullOrEmpty(pauseNotice.CheckSpecialDetailId)) | |||
|  |                             { | |||
|  |                                 pauseNotice.CheckSpecialDetailId = item.CheckSpecialDetailId; | |||
|  |                             } | |||
|  |                             else | |||
|  |                             { | |||
|  |                                 pauseNotice.CheckSpecialDetailId += "," + item.CheckSpecialDetailId; | |||
|  |                             } | |||
|  |                             var getAtt = Funs.DB.AttachFile.FirstOrDefault(x => x.ToKeyId == item.CheckSpecialDetailId); | |||
|  |                             if (getAtt != null && !string.IsNullOrEmpty(getAtt.AttachUrl)) | |||
|  |                             { | |||
|  |                                 pauseNotice.PauseNoticeAttachUrl = getAtt.AttachUrl; | |||
|  |                             } | |||
|  |                         } | |||
|  | 
 | |||
|  |                         APIPauseNoticeService.SavePauseNotice(pauseNotice); | |||
|  |                     } | |||
|  |                     info += "整改单已下发。"; | |||
|  |                 } | |||
|  | 
 | |||
|  |                 checkSpecial.States = Const.State_1; | |||
|  |                 Check_CheckSpecialService.UpdateCheckSpecial(checkSpecial); | |||
|  |             } | |||
|  | 
 | |||
|  |             if (!string.IsNullOrEmpty(info)) | |||
|  |             { | |||
|  |                 info += "请在相应办理页面提交!"; | |||
|  |             } | |||
|  |             return info; | |||
|  |         } | |||
|  |     } | |||
|  | } |