282 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			282 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | ||
|  | using System.Collections.Generic; | ||
|  | using System.Linq; | ||
|  | using System.Net; | ||
|  | using System.Net.Http; | ||
|  | using System.Web.Http; | ||
|  | using Model; | ||
|  | using BLL; | ||
|  | 
 | ||
|  | 
 | ||
|  | namespace WebAPI.Controllers.JGZL | ||
|  | { | ||
|  |     public class JGZLController : ApiController | ||
|  |     { | ||
|  |         #region 用户基本数据,单位,项目,单位工程,签审岗位(无),机构(无) | ||
|  | 
 | ||
|  |         /// <summary> | ||
|  |         /// 用户基本数据,单位,项目,单位工程,签审岗位(无),机构(无) | ||
|  |         /// </summary> | ||
|  |         /// <returns></returns> | ||
|  |         public Model.ResponeData getUserList(string UserName,int? PageIndex,int? PageSize) | ||
|  |         { | ||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | ||
|  |             { | ||
|  |                 var responeData = new Model.ResponeData(); | ||
|  |                 try | ||
|  |                 { | ||
|  |                     var getUserListQuery = from x in db.Sys_User | ||
|  |                                            join u in db.Base_Unit on x.UnitId equals u.UnitId into uGrouped | ||
|  |                                            from ug in uGrouped.DefaultIfEmpty() | ||
|  |                                            select new | ||
|  |                                            { | ||
|  |                                                x.UserId, | ||
|  |                                                x.Account, | ||
|  |                                                x.UserName, | ||
|  |                                                x.Telephone, | ||
|  |                                                x.IdentityCard, | ||
|  |                                                x.BirthDay, | ||
|  |                                                x.Email, | ||
|  |                                                x.IsPost, | ||
|  |                                                x.Sex, | ||
|  |                                                ug.UnitId, | ||
|  |                                                ug.UnitName, | ||
|  |                                                ProjectItems = from proj in db.Base_Project | ||
|  |                                                               join pu in db.Project_ProjectUser on proj.ProjectId equals pu.ProjectId | ||
|  |                                                               where pu.UserId == x.UserId | ||
|  |                                                               select new | ||
|  |                                                               { | ||
|  |                                                                   proj.ProjectId, | ||
|  |                                                                   proj.ProjectName, | ||
|  |                                                                   pu.WorkAreaId // 假设 WorkAreaId 是 UnitWorkIds 的来源 | ||
|  |                                                               } | ||
|  |                                            }; | ||
|  | 
 | ||
|  |                     var getList = getUserListQuery.AsEnumerable() | ||
|  |                         .Select(user => new UserItem | ||
|  |                         { | ||
|  |                             UserId = user.UserId, | ||
|  |                             Account = user.Account, | ||
|  |                             UserName = user.UserName, | ||
|  |                             Telephone = user.Telephone, | ||
|  |                             IdentityCard = user.IdentityCard, | ||
|  |                             BirthDay = user.BirthDay, | ||
|  |                             Email = user.Email, | ||
|  |                             IsPost = user.IsPost, | ||
|  |                             Sex = user.Sex, | ||
|  |                             UnitId = user.UnitId, | ||
|  |                             UnitName = user.UnitName, | ||
|  |                             ProjectItemList = user.ProjectItems.Select(projectItem => new ProjectItem | ||
|  |                             { | ||
|  |                                 ProjectId = projectItem.ProjectId, | ||
|  |                                 ProjectName = projectItem.ProjectName, | ||
|  |                                 UnitWorkItemList = string.IsNullOrEmpty(projectItem.WorkAreaId) | ||
|  |                                     ? new List<UnitWorkItem>() | ||
|  |                                     : db.WBS_UnitWork | ||
|  |                                         .Where(uw => projectItem.WorkAreaId.Split(',') | ||
|  |                                             .Contains(uw.UnitWorkId)) | ||
|  |                                         .Select(uw => new UnitWorkItem | ||
|  |                                         { | ||
|  |                                             UnitWorkId = uw.UnitWorkId, | ||
|  |                                             UnitWorkName = uw.UnitWorkName | ||
|  |                                         }) | ||
|  |                                         .ToList() | ||
|  |                             }).ToList() | ||
|  |                         }).ToList(); | ||
|  | 
 | ||
|  |                     if (!string.IsNullOrEmpty(UserName)) | ||
|  |                     { | ||
|  |                         getList = getList.Where(x => x.UserName.Contains(UserName)).ToList(); | ||
|  |                     } | ||
|  | 
 | ||
|  |                     if (PageIndex > 0 && PageSize > 0) | ||
|  |                     { | ||
|  |                         getList = getList.Skip(((int)PageIndex - 1) * (int)PageSize).Take((int)PageSize).ToList(); | ||
|  |                     } | ||
|  | 
 | ||
|  |                     responeData.data = new { getList }; | ||
|  |                 } | ||
|  |                 catch (Exception ex) | ||
|  |                 { | ||
|  |                     responeData.code = 0; | ||
|  |                     responeData.message = ex.Message; | ||
|  |                 } | ||
|  |                 return responeData; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         #endregion | ||
|  |          | ||
|  |         #region 项目数据 | ||
|  | 
 | ||
|  |         /// <summary> | ||
|  |         /// 项目数据 | ||
|  |         /// </summary> | ||
|  |         /// <returns></returns> | ||
|  |         public Model.ResponeData getProjedtList() | ||
|  |         { | ||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | ||
|  |             { | ||
|  |                 var responeData = new Model.ResponeData(); | ||
|  |                 try | ||
|  |                 { | ||
|  |                     var getList = (from x in db.Base_Project | ||
|  |                         select new | ||
|  |                         { | ||
|  |                             x.ProjectId, | ||
|  |                             x.ProjectCode, | ||
|  |                             x.ProjectName, | ||
|  |                             x.StartDate, | ||
|  |                         }).ToList(); | ||
|  | 
 | ||
|  |                     responeData.data = new { getList }; | ||
|  |                 } | ||
|  |                 catch (Exception ex) | ||
|  |                 { | ||
|  |                     responeData.code = 0; | ||
|  |                     responeData.message = ex.Message; | ||
|  |                 } | ||
|  |                 return responeData; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         #endregion | ||
|  |          | ||
|  |          | ||
|  |         #region 根据项目获取单位工程数据 | ||
|  | 
 | ||
|  |         /// <summary> | ||
|  |         /// 根据项目获取单位工程数据 | ||
|  |         /// </summary> | ||
|  |         /// <returns></returns> | ||
|  |         public Model.ResponeData getUnitWorkListByProjectId(string ProjectId) | ||
|  |         { | ||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | ||
|  |             { | ||
|  |                 var responeData = new Model.ResponeData(); | ||
|  |                 try | ||
|  |                 { | ||
|  |                     var getList = (from x in db.WBS_UnitWork | ||
|  |                         where x.ProjectId==ProjectId | ||
|  |                         select new | ||
|  |                         { | ||
|  |                             x.UnitWorkId, | ||
|  |                             x.UnitWorkName, | ||
|  |                             x.UnitWorkCode, | ||
|  |                         }).ToList(); | ||
|  | 
 | ||
|  |                     responeData.data = new { getList }; | ||
|  |                 } | ||
|  |                 catch (Exception ex) | ||
|  |                 { | ||
|  |                     responeData.code = 0; | ||
|  |                     responeData.message = ex.Message; | ||
|  |                 } | ||
|  |                 return responeData; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         #endregion | ||
|  |          | ||
|  |          | ||
|  |         #region 根据项目获取装置数据 | ||
|  | 
 | ||
|  |         /// <summary> | ||
|  |         /// 根据项目获取装置数据 | ||
|  |         /// </summary> | ||
|  |         /// <returns></returns> | ||
|  |         public Model.ResponeData getInstallationListByProjectId(string ProjectId) | ||
|  |         { | ||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | ||
|  |             { | ||
|  |                 var responeData = new Model.ResponeData(); | ||
|  |                 try | ||
|  |                 { | ||
|  |                     var getList = (from x in db.Project_Installation | ||
|  |                         where x.ProjectId==ProjectId | ||
|  |                         select new | ||
|  |                         { | ||
|  |                             x.InstallationId, | ||
|  |                             x.InstallationName, | ||
|  |                             x.InstallationCode, | ||
|  |                         }).ToList(); | ||
|  | 
 | ||
|  |                     responeData.data = new { getList }; | ||
|  |                 } | ||
|  |                 catch (Exception ex) | ||
|  |                 { | ||
|  |                     responeData.code = 0; | ||
|  |                     responeData.message = ex.Message; | ||
|  |                 } | ||
|  |                 return responeData; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         #endregion | ||
|  |          | ||
|  |          | ||
|  |         #region 单位数据 | ||
|  | 
 | ||
|  |         /// <summary> | ||
|  |         /// 单位数据 | ||
|  |         /// </summary> | ||
|  |         /// <returns></returns> | ||
|  |         public Model.ResponeData getUnitList() | ||
|  |         { | ||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | ||
|  |             { | ||
|  |                 var responeData = new Model.ResponeData(); | ||
|  |                 try | ||
|  |                 { | ||
|  |                     var getList = (from x in db.Base_Unit | ||
|  |                         select new | ||
|  |                         { | ||
|  |                             x.UnitId, | ||
|  |                             x.UnitCode, | ||
|  |                             x.UnitName, | ||
|  |                         }).ToList(); | ||
|  | 
 | ||
|  |                     responeData.data = new { getList }; | ||
|  |                 } | ||
|  |                 catch (Exception ex) | ||
|  |                 { | ||
|  |                     responeData.code = 0; | ||
|  |                     responeData.message = ex.Message; | ||
|  |                 } | ||
|  |                 return responeData; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         #endregion | ||
|  | 
 | ||
|  |         public class UserItem | ||
|  |         { | ||
|  |             public string UserId { get; set; } | ||
|  |             public string Account { get; set; } | ||
|  |             public string UserName { get; set; } | ||
|  |             public string Telephone { get; set; } | ||
|  |             public string IdentityCard { get; set; } | ||
|  |             public DateTime? BirthDay { get; set; } | ||
|  |             public string Email { get; set; } | ||
|  |             public System.Nullable<bool> IsPost { get; set; } | ||
|  |             public string Sex { get; set; } | ||
|  |             public string UnitId { get; set; } | ||
|  |             public string UnitName { get; set; } | ||
|  |             public List<ProjectItem> ProjectItemList { get; set; } | ||
|  | 
 | ||
|  |         } | ||
|  | 
 | ||
|  |         public class ProjectItem | ||
|  |         { | ||
|  |             public string ProjectId { get; set; } | ||
|  |             public string ProjectName { get; set; } | ||
|  |             public List<UnitWorkItem> UnitWorkItemList { get; set; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public class UnitWorkItem | ||
|  |         { | ||
|  |             public string UnitWorkId { get; set; } | ||
|  |             public string UnitWorkName { get; set; } | ||
|  |         } | ||
|  |     } | ||
|  | } |