| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using System.Linq; | 
					
						
							|  |  |  |  | using System.Text; | 
					
						
							|  |  |  |  | using System.Collections; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace BLL | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     /// <summary> | 
					
						
							|  |  |  |  |     /// NCR管理 | 
					
						
							|  |  |  |  |     /// </summary> | 
					
						
							|  |  |  |  |     public static class NCRManagementService | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         public static Model.SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 记录数 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         private static int count | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get; | 
					
						
							|  |  |  |  |             set; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取分页列表 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="startRowIndex"></param> | 
					
						
							|  |  |  |  |         /// <param name="maximumRows"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static IEnumerable GetListData(string projectId, string sendUnit, string cnProfessionalId, string startDate, string endDate, int startRowIndex, int maximumRows) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             IQueryable<Model.Comprehensive_NCRManagement> q = from x in db.Comprehensive_NCRManagement | 
					
						
							|  |  |  |  |                                                               where x.ProjectId == projectId | 
					
						
							|  |  |  |  |                                                               orderby x.IssuedDate descending | 
					
						
							|  |  |  |  |                                                               select x; | 
					
						
							|  |  |  |  |             if (sendUnit!="0") | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 q = q.Where(e => e.SendUnit == sendUnit); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (cnProfessionalId != "0") | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 q = q.Where(e => e.CNProfessionalId == cnProfessionalId); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (!string.IsNullOrEmpty(startDate) && !string.IsNullOrEmpty(endDate) && Convert.ToDateTime(startDate) <= Convert.ToDateTime(endDate)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 q = q.Where(e => e.CompleteDate >= Convert.ToDateTime(startDate) && e.CompleteDate <= Convert.ToDateTime(endDate)); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             count = q.Count(); | 
					
						
							|  |  |  |  |             if (count == 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return new object[] { }; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return from x in q.Skip(startRowIndex).Take(maximumRows) | 
					
						
							|  |  |  |  |                    select new | 
					
						
							|  |  |  |  |                    { | 
					
						
							|  |  |  |  |                        x.NCRManagementId, | 
					
						
							|  |  |  |  |                        x.ProjectId, | 
					
						
							|  |  |  |  |                        SendUnit=(from y in db.Base_Unit where y.UnitId==x.SendUnit select y.UnitName).FirstOrDefault(), | 
					
						
							|  |  |  |  |                        ProfessionalName = (from y in db.Base_CNProfessional where y.CNProfessionalId == x.CNProfessionalId select y.ProfessionalName).FirstOrDefault(), | 
					
						
							|  |  |  |  |                        x.NCRCode, | 
					
						
							|  |  |  |  |                        x.Contents, | 
					
						
							| 
									
										
										
										
											2025-10-22 16:38:02 +08:00
										 |  |  |  |                        x.ReasonAnalysis, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                        x.IssuedDate, | 
					
						
							|  |  |  |  |                        ReceiveUnit = x.ReceiveUnit!= null ? BLL.UnitService.getUnitNamesUnitIds(x.ReceiveUnit) : null, | 
					
						
							|  |  |  |  |                        UnitWorkName = x.UnitWorkId != null ? BLL.UnitWorkService.GetUnitWorkName(x.UnitWorkId) : null, | 
					
						
							|  |  |  |  |                        x.ClosedDate, | 
					
						
							|  |  |  |  |                        x.CompleteDate, | 
					
						
							|  |  |  |  |                        x.ResponsibleMan, | 
					
						
							|  |  |  |  |                        x.AttachUrl, | 
					
						
							|  |  |  |  |                        x.ImplementationFrontState, | 
					
						
							|  |  |  |  |                        //TotalCount = x.NCRManagementId.Count() | 
					
						
							|  |  |  |  |                    }; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取分页列表数 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static int GetListCount(string projectId, string sendUnit, string cnProfessionalId, string startDate, string endDate) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return count; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据主键获取NCR管理 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="nCRManagementId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static Model.Comprehensive_NCRManagement GetNCRManagementById(string nCRManagementId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return Funs.DB.Comprehensive_NCRManagement.FirstOrDefault(e => e.NCRManagementId == nCRManagementId); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 添加NCR管理 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="nCRManagement"></param> | 
					
						
							|  |  |  |  |         public static void AddNCRManagement(Model.Comprehensive_NCRManagement nCRManagement) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  |             Model.Comprehensive_NCRManagement newNCRManagement = new Model.Comprehensive_NCRManagement(); | 
					
						
							|  |  |  |  |             newNCRManagement.NCRManagementId = nCRManagement.NCRManagementId; | 
					
						
							|  |  |  |  |             newNCRManagement.ProjectId = nCRManagement.ProjectId; | 
					
						
							|  |  |  |  |             newNCRManagement.SendUnit = nCRManagement.SendUnit; | 
					
						
							|  |  |  |  |             newNCRManagement.CNProfessionalId = nCRManagement.CNProfessionalId; | 
					
						
							|  |  |  |  |             newNCRManagement.NCRCode = nCRManagement.NCRCode; | 
					
						
							|  |  |  |  |             newNCRManagement.Contents = nCRManagement.Contents; | 
					
						
							| 
									
										
										
										
											2025-10-22 16:38:02 +08:00
										 |  |  |  |             newNCRManagement.ReasonAnalysis = nCRManagement.ReasonAnalysis; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             newNCRManagement.IssuedDate = nCRManagement.IssuedDate; | 
					
						
							|  |  |  |  |             newNCRManagement.ReceiveUnit = nCRManagement.ReceiveUnit; | 
					
						
							|  |  |  |  |             newNCRManagement.ClosedDate = nCRManagement.ClosedDate; | 
					
						
							|  |  |  |  |             newNCRManagement.CompleteDate = nCRManagement.CompleteDate; | 
					
						
							|  |  |  |  |             newNCRManagement.ResponsibleMan = nCRManagement.ResponsibleMan; | 
					
						
							|  |  |  |  |             newNCRManagement.AttachUrl = nCRManagement.AttachUrl; | 
					
						
							|  |  |  |  |             newNCRManagement.ImplementationFrontState = nCRManagement.ImplementationFrontState; | 
					
						
							|  |  |  |  |             newNCRManagement.CompileMan = nCRManagement.CompileMan; | 
					
						
							|  |  |  |  |             newNCRManagement.UnitWorkId = nCRManagement.UnitWorkId; | 
					
						
							| 
									
										
										
										
											2023-04-28 17:46:41 +08:00
										 |  |  |  |             newNCRManagement.Status = nCRManagement.Status; | 
					
						
							| 
									
										
										
										
											2024-03-31 01:12:53 +08:00
										 |  |  |  |             newNCRManagement.Problem = nCRManagement.Problem; | 
					
						
							|  |  |  |  |             newNCRManagement.Measure = nCRManagement.Measure; | 
					
						
							| 
									
										
										
										
											2024-04-22 11:19:05 +08:00
										 |  |  |  |             newNCRManagement.RemarkCode = nCRManagement.RemarkCode; | 
					
						
							| 
									
										
										
										
											2024-07-01 14:09:40 +08:00
										 |  |  |  |             newNCRManagement.Supervisor = nCRManagement.Supervisor; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             db.Comprehensive_NCRManagement.InsertOnSubmit(newNCRManagement); | 
					
						
							|  |  |  |  |             db.SubmitChanges(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 修改NCR管理 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="nCRManagement"></param> | 
					
						
							|  |  |  |  |         public static void UpdateNCRManagement(Model.Comprehensive_NCRManagement nCRManagement) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  |             Model.Comprehensive_NCRManagement newNCRManagement = db.Comprehensive_NCRManagement.FirstOrDefault(e => e.NCRManagementId == nCRManagement.NCRManagementId); | 
					
						
							|  |  |  |  |             if (newNCRManagement != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 newNCRManagement.ProjectId = nCRManagement.ProjectId; | 
					
						
							|  |  |  |  |                 newNCRManagement.SendUnit = nCRManagement.SendUnit; | 
					
						
							|  |  |  |  |                 newNCRManagement.CNProfessionalId = nCRManagement.CNProfessionalId; | 
					
						
							|  |  |  |  |                 newNCRManagement.NCRCode = nCRManagement.NCRCode; | 
					
						
							|  |  |  |  |                 newNCRManagement.Contents = nCRManagement.Contents; | 
					
						
							| 
									
										
										
										
											2025-10-22 16:38:02 +08:00
										 |  |  |  |                 newNCRManagement.ReasonAnalysis = nCRManagement.ReasonAnalysis; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 newNCRManagement.IssuedDate = nCRManagement.IssuedDate; | 
					
						
							|  |  |  |  |                 newNCRManagement.ReceiveUnit = nCRManagement.ReceiveUnit; | 
					
						
							|  |  |  |  |                 newNCRManagement.ClosedDate = nCRManagement.ClosedDate; | 
					
						
							|  |  |  |  |                 newNCRManagement.CompleteDate = nCRManagement.CompleteDate; | 
					
						
							|  |  |  |  |                 newNCRManagement.ResponsibleMan = nCRManagement.ResponsibleMan; | 
					
						
							|  |  |  |  |                 newNCRManagement.AttachUrl = nCRManagement.AttachUrl; | 
					
						
							|  |  |  |  |                 newNCRManagement.ImplementationFrontState = nCRManagement.ImplementationFrontState; | 
					
						
							|  |  |  |  |                 newNCRManagement.UnitWorkId = nCRManagement.UnitWorkId; | 
					
						
							| 
									
										
										
										
											2023-04-28 17:46:41 +08:00
										 |  |  |  |                 newNCRManagement.Status = nCRManagement.Status; | 
					
						
							| 
									
										
										
										
											2024-03-31 01:12:53 +08:00
										 |  |  |  |                 newNCRManagement.Problem = nCRManagement.Problem; | 
					
						
							|  |  |  |  |                 newNCRManagement.Measure = nCRManagement.Measure; | 
					
						
							| 
									
										
										
										
											2024-04-30 23:33:49 +08:00
										 |  |  |  |                 newNCRManagement.RemarkCode = nCRManagement.RemarkCode; | 
					
						
							| 
									
										
										
										
											2024-07-01 14:09:40 +08:00
										 |  |  |  |                 newNCRManagement.Supervisor = nCRManagement.Supervisor; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 db.SubmitChanges(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据主键删除NCR管理 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="nCRManagementId"></param> | 
					
						
							|  |  |  |  |         public static void DeleteNCRManagement(string nCRManagementId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  |             Model.Comprehensive_NCRManagement nCRManagement = db.Comprehensive_NCRManagement.FirstOrDefault(e => e.NCRManagementId == nCRManagementId); | 
					
						
							|  |  |  |  |             if (nCRManagement != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(nCRManagement.AttachUrl)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     BLL.UploadAttachmentService.DeleteFile(Funs.RootPath, nCRManagement.AttachUrl);//删除附件 | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 db.Comprehensive_NCRManagement.DeleteOnSubmit(nCRManagement); | 
					
						
							|  |  |  |  |                 db.SubmitChanges(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取对应时间内的集合 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         /// <param name="unitId"></param> | 
					
						
							|  |  |  |  |         /// <param name="startDate"></param> | 
					
						
							|  |  |  |  |         /// <param name="SoptDate"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.Comprehensive_NCRManagement> GetNCRManagementListByDate(string projectId, DateTime startDate, DateTime SoptDate) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             List<Model.Comprehensive_NCRManagement> NondestructiveTestList = (from x in Funs.DB.Comprehensive_NCRManagement where x.ProjectId == projectId select x).ToList(); | 
					
						
							|  |  |  |  |             if (startDate != null && SoptDate != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 NondestructiveTestList = (from x in NondestructiveTestList where x.IssuedDate >= startDate && x.IssuedDate <= SoptDate select x).ToList(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return NondestructiveTestList; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据接收单位获取对应时间内的集合 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         /// <param name="unitName"></param> | 
					
						
							|  |  |  |  |         /// <param name="startDate"></param> | 
					
						
							|  |  |  |  |         /// <param name="SoptDate"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.Comprehensive_NCRManagement> GetNCRManagementListByUnitNameAndDate(string projectId, string unitName, DateTime startDate, DateTime SoptDate) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             List<Model.Comprehensive_NCRManagement> NondestructiveTestList = (from x in Funs.DB.Comprehensive_NCRManagement where x.ProjectId == projectId && x.ReceiveUnit==unitName select x).ToList(); | 
					
						
							|  |  |  |  |             if (startDate != null && SoptDate != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 NondestructiveTestList = (from x in NondestructiveTestList where x.IssuedDate >= startDate && x.IssuedDate <= SoptDate select x).ToList(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return NondestructiveTestList; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据专业获取对应时间内的集合 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         /// <param name="cNProfessionalId"></param> | 
					
						
							|  |  |  |  |         /// <param name="startDate"></param> | 
					
						
							|  |  |  |  |         /// <param name="SoptDate"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.Comprehensive_NCRManagement> GetNCRManagementListByCNProfessionalIdAndDate(string projectId, string cNProfessionalId, DateTime startDate, DateTime SoptDate) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             List<Model.Comprehensive_NCRManagement> NondestructiveTestList = (from x in Funs.DB.Comprehensive_NCRManagement where x.ProjectId == projectId && x.CNProfessionalId == cNProfessionalId select x).ToList(); | 
					
						
							|  |  |  |  |             if (startDate != null && SoptDate != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 NondestructiveTestList = (from x in NondestructiveTestList where x.IssuedDate >= startDate && x.IssuedDate <= SoptDate select x).ToList(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return NondestructiveTestList; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |