377 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			377 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System.Collections.Generic;
 | |
| using System.Linq;
 | |
| 
 | |
| namespace BLL
 | |
| {
 | |
|     /// <summary>
 | |
|     /// 专项检查
 | |
|     /// </summary>
 | |
|     public static class APICheckSpecialService
 | |
|     {
 | |
|         #region  获取专项检查详细
 | |
|         /// <summary>
 | |
|         ///  获取专项检查详细
 | |
|         /// </summary>
 | |
|         /// <param name="CheckSpecialId"></param>
 | |
|         /// <returns></returns>
 | |
|         public static Model.CheckSpecialItem getCheckSpecialById(string CheckSpecialId)
 | |
|         {
 | |
|             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|             {
 | |
|                 var getInfo = from x in db.Check_CheckSpecial
 | |
|                               where x.CheckSpecialId == CheckSpecialId
 | |
|                               select new Model.CheckSpecialItem
 | |
|                               {
 | |
|                                   CheckSpecialId = x.CheckSpecialId,
 | |
|                                   ProjectId = x.ProjectId,
 | |
|                                   CheckSpecialCode = x.CheckSpecialCode,
 | |
|                                   CheckTypeName = (x.CheckType == "1" ? "联合" : "专项"),
 | |
|                                   CheckType = x.CheckType,
 | |
|                                   CheckItemSetId = x.CheckItemSetId,
 | |
|                                   CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItemSetId).CheckItemName,
 | |
|                                   CheckPersonId = x.CheckPerson,
 | |
|                                   CheckPersonName = db.Sys_User.First(u => u.UserId == x.CheckPerson).UserName,
 | |
|                                   CheckTime = string.Format("{0:yyyy-MM-dd}", x.CheckTime),
 | |
|                                   DaySummary = x.DaySummary,
 | |
|                                   PartInUnitIds = x.PartInUnits,
 | |
|                                   PartInUnitNames = UnitService.getUnitNamesUnitIds(x.PartInUnits),
 | |
|                                   PartInPersonIds = x.PartInPersonIds,
 | |
|                                   PartInPersonNames = UserService.getUserNamesUserIds(x.PartInPersonIds),
 | |
|                                   PartInPersonNames2 = x.PartInPersonNames,
 | |
|                                   CompileManId = x.CompileMan,
 | |
|                                   CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName,
 | |
|                                   States = x.States,
 | |
|                                   AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialId, null),
 | |
|                                   CheckSpecialDetailItems = getCheckSpecialDetailList(x.CheckSpecialId),
 | |
|                               };
 | |
|                 return getInfo.FirstOrDefault();
 | |
|             }
 | |
|         }
 | |
|         #endregion        
 | |
| 
 | |
|         #region 获取专项检查列表信息
 | |
|         /// <summary>
 | |
|         /// 获取专项检查列表信息
 | |
|         /// </summary>
 | |
|         /// <param name="projectId"></param>
 | |
|         /// <param name="states"></param>
 | |
|         /// <returns></returns>
 | |
|         public static List<Model.CheckSpecialItem> getCheckSpecialList(string projectId,  string states)
 | |
|         {
 | |
|             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|             {
 | |
|                 var getCheckSpecial = from x in db.Check_CheckSpecial
 | |
|                                       where x.ProjectId == projectId &&  x.States ==states
 | |
|                                       orderby x.CheckSpecialCode descending
 | |
|                                       select new Model.CheckSpecialItem
 | |
|                                       {
 | |
|                                           CheckSpecialId = x.CheckSpecialId,
 | |
|                                           ProjectId = x.ProjectId,
 | |
|                                           CheckSpecialCode = db.Sys_CodeRecords.First(y => y.DataId == x.CheckSpecialId).Code ?? x.CheckSpecialCode,
 | |
|                                           CheckTypeName = (x.CheckType == "1" ? "联合" : "专项"),
 | |
|                                           CheckType = x.CheckType,
 | |
|                                           CheckItemSetId = x.CheckItemSetId,
 | |
|                                           CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItemSetId).CheckItemName,
 | |
|                                           CheckPersonId = x.CheckPerson,
 | |
|                                           CheckPersonName = db.Sys_User.First(u => u.UserId == x.CheckPerson).UserName,
 | |
|                                           CheckTime = string.Format("{0:yyyy-MM-dd}", x.CheckTime),
 | |
|                                           DaySummary = x.DaySummary,
 | |
|                                           PartInUnitIds = x.PartInUnits,
 | |
|                                           PartInUnitNames = UnitService.getUnitNamesUnitIds(x.PartInUnits),
 | |
|                                           PartInPersonIds = x.PartInPersonIds,
 | |
|                                           PartInPersonNames = UserService.getUserNamesUserIds(x.PartInPersonIds),
 | |
|                                           PartInPersonNames2 = x.PartInPersonNames,
 | |
|                                           CompileManId = x.CompileMan,
 | |
|                                           CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName,
 | |
|                                           States = x.States,
 | |
|                                           AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialId, null),
 | |
|                                       };
 | |
|                 return getCheckSpecial.ToList();
 | |
|             }
 | |
|         }       
 | |
|         #endregion        
 | |
| 
 | |
|         #region 保存Check_CheckSpecial
 | |
|         /// <summary>
 | |
|         /// 保存Check_CheckSpecial
 | |
|         /// </summary>
 | |
|         /// <param name="newItem">处罚通知单</param>
 | |
|         /// <returns></returns>
 | |
|         public static string SaveCheckSpecial(Model.CheckSpecialItem newItem)
 | |
|         {
 | |
|             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|             {
 | |
|                 string message = string.Empty;
 | |
|                 Model.Check_CheckSpecial newCheckSpecial = new Model.Check_CheckSpecial
 | |
|                 {
 | |
|                     CheckSpecialId = newItem.CheckSpecialId,
 | |
|                     CheckSpecialCode = newItem.CheckSpecialCode,
 | |
|                     CheckItemSetId=newItem.CheckItemSetId,
 | |
|                     CheckType = newItem.CheckType,
 | |
|                     ProjectId = newItem.ProjectId,
 | |
|                     CheckPerson = newItem.CheckPersonId,
 | |
|                     CheckTime = Funs.GetNewDateTime(newItem.CheckTime),
 | |
|                     DaySummary = System.Web.HttpUtility.HtmlEncode(newItem.DaySummary),
 | |
|                     PartInUnits = newItem.PartInUnitIds,
 | |
|                     PartInPersonIds = newItem.PartInPersonIds,
 | |
|                     PartInPersons = UserService.getUserNamesUserIds(newItem.PartInPersonIds),
 | |
|                     PartInPersonNames = newItem.PartInPersonNames2,
 | |
|                     CompileMan = newItem.CompileManId,
 | |
|                     States = Const.State_0,
 | |
|                 };
 | |
|                 //if (newItem.States != Const.State_1)
 | |
|                 //{
 | |
|                 //    newCheckSpecial.States = Const.State_0;
 | |
|                 //}
 | |
| 
 | |
|                 if (newItem.CheckSpecialDetailItems == null || newItem.CheckSpecialDetailItems.Count() == 0)
 | |
|                 {
 | |
|                     if (newItem.States == Const.State_1)
 | |
|                     {
 | |
|                         newCheckSpecial.States = Const.State_2;
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 var updateCheckSpecial = db.Check_CheckSpecial.FirstOrDefault(x => x.CheckSpecialId == newItem.CheckSpecialId);
 | |
|                 if (updateCheckSpecial == null)
 | |
|                 {
 | |
|                     newCheckSpecial.CheckSpecialId = SQLHelper.GetNewID();                    
 | |
|                     newCheckSpecial.CheckSpecialCode = CodeRecordsService.ReturnCodeByMenuIdProjectId(Const.ProjectCheckSpecialMenuId, newCheckSpecial.ProjectId, string.Empty);
 | |
|                     db.Check_CheckSpecial.InsertOnSubmit(newCheckSpecial);
 | |
|                     db.SubmitChanges();
 | |
|                     ////增加一条编码记录
 | |
|                     BLL.CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(BLL.Const.ProjectCheckSpecialMenuId, newCheckSpecial.ProjectId, null, newCheckSpecial.CheckSpecialId, newCheckSpecial.CheckTime);
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     Check_CheckSpecialService.UpdateCheckSpecial(newCheckSpecial);
 | |
|                     //// 删除专项检查明细项
 | |
|                     Check_CheckSpecialDetailService.DeleteCheckSpecialDetails(newCheckSpecial.CheckSpecialId);
 | |
|                 }               
 | |
|                 ////保存附件
 | |
|                 if (!string.IsNullOrEmpty(newItem.AttachUrl1))
 | |
|                 {
 | |
|                     UploadFileService.SaveAttachUrl(UploadFileService.GetSourceByAttachUrl(newItem.AttachUrl1, 10, null), newItem.AttachUrl1, Const.ProjectCheckSpecialMenuId, newCheckSpecial.CheckSpecialId);
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     CommonService.DeleteAttachFileById(Const.ProjectCheckSpecialMenuId, newCheckSpecial.CheckSpecialId);
 | |
|                 }
 | |
| 
 | |
|                 ///// 新增检查项
 | |
|                 if (newItem.CheckSpecialDetailItems != null && newItem.CheckSpecialDetailItems.Count() > 0)
 | |
|                 {                      
 | |
|                     foreach (var item in newItem.CheckSpecialDetailItems)
 | |
|                     {
 | |
|                         item.CheckSpecialId = newCheckSpecial.CheckSpecialId;
 | |
|                         SaveCheckSpecialDetail(item);                      
 | |
|                     }
 | |
|                     //// 单据完成后 系统自动按照单位 整改要求生成隐患整改单
 | |
|                     if (newItem.States == Const.State_1)
 | |
|                     {
 | |
|                         var getC = newItem.CheckSpecialDetailItems.FirstOrDefault(x => x.CompleteStatus == false);
 | |
|                         if (getC == null)
 | |
|                         {
 | |
|                             newCheckSpecial.States = Const.State_2;
 | |
|                             Check_CheckSpecialService.UpdateCheckSpecial(newCheckSpecial);
 | |
|                         }
 | |
|                         else
 | |
|                         {
 | |
|                             var getNA = newItem.CheckSpecialDetailItems.FirstOrDefault(x => x.CompleteStatus == false && (x.HandleStep== null || x.HandleStep==""));
 | |
|                             if (getNA == null)
 | |
|                             {
 | |
|                                 var detailLists = db.Check_CheckSpecialDetail.Where(x => x.CheckSpecialId == newCheckSpecial.CheckSpecialId && x.CompleteStatus == false);
 | |
|                                 if (detailLists.Count() > 0)
 | |
|                                 {
 | |
|                                     message = Check_CheckSpecialService.IssueRectification(detailLists.ToList(), newCheckSpecial);
 | |
|                                 }
 | |
|                             }
 | |
|                             else
 | |
|                             {
 | |
|                                 message += "存在待整改,没有处理措施的记录!";
 | |
|                             }
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|                 return message;
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region  获取专项检查明细项列表
 | |
|         /// <summary>
 | |
|         ///  获取专项检查明细项
 | |
|         /// </summary>
 | |
|         /// <param name="checkSpecialId"></param>
 | |
|         /// <returns></returns>
 | |
|         public static List<Model.CheckSpecialDetailItem> getCheckSpecialDetailList(string checkSpecialId)
 | |
|         {
 | |
|             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|             {
 | |
|                 var getInfo = from x in db.Check_CheckSpecialDetail
 | |
|                               where x.CheckSpecialId == checkSpecialId
 | |
|                               orderby x.SortIndex
 | |
|                               select new Model.CheckSpecialDetailItem
 | |
|                               {
 | |
|                                   CheckSpecialDetailId = x.CheckSpecialDetailId,
 | |
|                                   CheckSpecialId = x.CheckSpecialId,
 | |
|                                   CheckItemSetId = x.CheckItem,
 | |
|                                   CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItem).CheckItemName,
 | |
|                                   CheckContent = x.CheckContent,
 | |
|                                   SortIndex = x.SortIndex,
 | |
|                                   Unqualified = x.Unqualified,
 | |
|                                   Suggestions = x.Suggestions,
 | |
|                                   WorkArea = db.WBS_UnitWork.First(y=>y.UnitWorkId ==x.CheckArea).UnitWorkName,
 | |
|                                   WorkAreaId=x.CheckArea,
 | |
|                                   UnitId = x.UnitId,
 | |
|                                   UnitName = db.Base_Unit.First(y => y.UnitId == x.UnitId).UnitName,
 | |
|                                   HandleStep = x.HandleStep,
 | |
|                                   HandleStepName = getNames(x.HandleStep),
 | |
|                                   HiddenHazardType = x.HiddenHazardType,
 | |
|                                   HiddenHazardTypeName = x.HiddenHazardType == "3" ? "重大" : (x.HiddenHazardType == "2" ? "较大" : "一般"),
 | |
|                                   LimitedDate = string.Format("{0:yyyy-MM-dd}", x.LimitedDate),
 | |
|                                   CompleteStatus = x.CompleteStatus,
 | |
|                                   CompleteStatusName = x.CompleteStatus == true ? "已整改" : "待整改",
 | |
|                                   CompletedDate = string.Format("{0:yyyy-MM-dd}", x.CompletedDate),
 | |
|                                   AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialDetailId, null),
 | |
|                               };
 | |
|                 return getInfo.ToList();
 | |
|             }
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <returns></returns>
 | |
|         private static string getNames(string constValue)
 | |
|         {
 | |
|             return ConstValue.getConstTextsConstValues(constValue, ConstValue.Group_HandleStep);
 | |
|         }
 | |
|         #endregion      
 | |
| 
 | |
|         #region  获取专项检查明细项详细
 | |
|         /// <summary>
 | |
|         ///  获取专项检查明细项详细
 | |
|         /// </summary>
 | |
|         /// <param name="checkSpecialDetailId"></param>
 | |
|         /// <returns></returns>
 | |
|         public static Model.CheckSpecialDetailItem getCheckSpecialDetailById(string checkSpecialDetailId)
 | |
|         {
 | |
|             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|             {
 | |
|                 var getInfo = from x in db.Check_CheckSpecialDetail
 | |
|                               where x.CheckSpecialDetailId == checkSpecialDetailId
 | |
|                               orderby x.SortIndex
 | |
|                               select new Model.CheckSpecialDetailItem
 | |
|                               {
 | |
|                                   CheckSpecialDetailId = x.CheckSpecialDetailId,
 | |
|                                   CheckSpecialId = x.CheckSpecialId,
 | |
|                                   CheckItemSetId = x.CheckItem,
 | |
|                                   CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItem).CheckItemName,
 | |
|                                   CheckContent = x.CheckContent,
 | |
|                                   Unqualified = x.Unqualified,
 | |
|                                   Suggestions = x.Suggestions,
 | |
|                                   WorkArea = db.WBS_UnitWork.First(y => y.UnitWorkId == x.CheckArea).UnitWorkName,
 | |
|                                   WorkAreaId = x.CheckArea,
 | |
|                                   UnitId = x.UnitId,
 | |
|                                   UnitName = db.Base_Unit.First(y => y.UnitId == x.UnitId).UnitName,
 | |
|                                   HandleStep = x.HandleStep,
 | |
|                                   HandleStepName = getNames(x.HandleStep),
 | |
|                                   HiddenHazardType = x.HiddenHazardType,
 | |
|                                   HiddenHazardTypeName = x.HiddenHazardType == "3" ? "重大" : (x.HiddenHazardType == "2" ? "较大" : "一般"),
 | |
|                                   LimitedDate = string.Format("{0:yyyy-MM-dd}", x.LimitedDate),
 | |
|                                   CompleteStatus = x.CompleteStatus,
 | |
|                                   CompleteStatusName = x.CompleteStatus == true ? "已整改" : "待整改",
 | |
|                                   AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialDetailId, null),
 | |
|                               };
 | |
|                 return getInfo.First();
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 保存专项检查明细项
 | |
|         /// <summary>
 | |
|         ///  保存专项检查明细项
 | |
|         /// </summary>
 | |
|         /// <param name="newDetail"></param>
 | |
|         public static void SaveCheckSpecialDetail(Model.CheckSpecialDetailItem newDetail)
 | |
|         {
 | |
|             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|             {
 | |
|                 if (!string.IsNullOrEmpty(newDetail.CheckSpecialId))
 | |
|                 {
 | |
|                     Model.Check_CheckSpecialDetail newCheckSpecialDetail = new Model.Check_CheckSpecialDetail
 | |
|                     {
 | |
|                         CheckSpecialId = newDetail.CheckSpecialId,
 | |
|                         SortIndex = newDetail.SortIndex,
 | |
|                         CheckItemType = newDetail.CheckItemSetName,
 | |
|                         Unqualified = newDetail.Unqualified,
 | |
|                         UnitId = newDetail.UnitId,
 | |
|                         HandleStep = newDetail.HandleStep,
 | |
|                         HiddenHazardType = newDetail.HiddenHazardType,
 | |
|                         CompleteStatus = newDetail.CompleteStatus ?? false,
 | |
|                         RectifyNoticeId = newDetail.RectifyNoticeId,
 | |
|                         LimitedDate = Funs.GetNewDateTime(newDetail.LimitedDate),
 | |
|                         CompletedDate = Funs.GetNewDateTime(newDetail.CompletedDate),
 | |
|                         Suggestions = newDetail.Suggestions,
 | |
|                         WorkArea = newDetail.WorkArea,
 | |
|                         CheckArea = newDetail.WorkAreaId,
 | |
|                         CheckContent = newDetail.CheckContent,
 | |
|                     };
 | |
|                     if (newCheckSpecialDetail.CompleteStatus == false && newCheckSpecialDetail.HandleStep.Contains("1") && string.IsNullOrEmpty(newCheckSpecialDetail.HiddenHazardType))
 | |
|                     {
 | |
|                         newCheckSpecialDetail.HiddenHazardType = "1";
 | |
|                     }
 | |
|                     var getUnit = UnitService.GetUnitByUnitId(newDetail.UnitId);
 | |
|                     if (getUnit != null)
 | |
|                     {
 | |
|                         newCheckSpecialDetail.UnitId = newDetail.UnitId;
 | |
|                     }
 | |
|                     var getCheckItem = db.Technique_CheckItemSet.FirstOrDefault(x => x.CheckItemSetId == newDetail.CheckItemSetId);
 | |
|                     if (getCheckItem != null)
 | |
|                     {
 | |
|                         newCheckSpecialDetail.CheckItem = newDetail.CheckItemSetId;
 | |
|                     }
 | |
| 
 | |
|                     var updateDetail = db.Check_CheckSpecialDetail.FirstOrDefault(x => x.CheckSpecialDetailId == newDetail.CheckSpecialDetailId);
 | |
|                     if (updateDetail == null)
 | |
|                     {
 | |
|                         newCheckSpecialDetail.CheckSpecialDetailId = SQLHelper.GetNewID();
 | |
|                         db.Check_CheckSpecialDetail.InsertOnSubmit(newCheckSpecialDetail);
 | |
|                         db.SubmitChanges();
 | |
|                     }
 | |
|                     else
 | |
|                     {
 | |
|                         newCheckSpecialDetail.CheckSpecialDetailId = updateDetail.CheckSpecialDetailId;
 | |
|                         updateDetail.CheckItem = newCheckSpecialDetail.CheckItem;
 | |
|                         updateDetail.CheckItemType = newCheckSpecialDetail.CheckItemType;
 | |
|                         updateDetail.SortIndex = newCheckSpecialDetail.SortIndex;
 | |
|                         updateDetail.Unqualified = newCheckSpecialDetail.Unqualified;
 | |
|                         updateDetail.UnitId = newCheckSpecialDetail.UnitId;
 | |
|                         updateDetail.HandleStep = newCheckSpecialDetail.HandleStep;
 | |
|                         updateDetail.HiddenHazardType = newCheckSpecialDetail.HiddenHazardType;
 | |
|                         updateDetail.CompleteStatus = newCheckSpecialDetail.CompleteStatus;
 | |
|                         updateDetail.RectifyNoticeId = newCheckSpecialDetail.RectifyNoticeId;
 | |
|                         updateDetail.LimitedDate = newCheckSpecialDetail.LimitedDate;
 | |
|                         updateDetail.CompletedDate = newCheckSpecialDetail.CompletedDate;
 | |
|                         updateDetail.Suggestions = newCheckSpecialDetail.Suggestions;
 | |
|                         updateDetail.WorkArea = newCheckSpecialDetail.WorkArea;    
 | |
|                         updateDetail.CheckArea = newCheckSpecialDetail.CheckArea;
 | |
|                         updateDetail.CheckContent = newCheckSpecialDetail.CheckContent;
 | |
|                         db.SubmitChanges();
 | |
|                     }
 | |
|                     ////保存附件
 | |
|                     if (!string.IsNullOrEmpty(newDetail.AttachUrl1))
 | |
|                     {
 | |
|                         UploadFileService.SaveAttachUrl(UploadFileService.GetSourceByAttachUrl(newDetail.AttachUrl1, 10, null), newDetail.AttachUrl1, Const.ProjectCheckSpecialMenuId, newCheckSpecialDetail.CheckSpecialDetailId);
 | |
|                     }
 | |
|                     else
 | |
|                     {
 | |
|                         CommonService.DeleteAttachFileById(Const.ProjectCheckSpecialMenuId, newCheckSpecialDetail.CheckSpecialDetailId);
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         #endregion        
 | |
|     }
 | |
| }
 |