418 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			418 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Linq; | |||
|  | using System.Text; | |||
|  | using System.Threading.Tasks; | |||
|  | using System.Web.UI.WebControls; | |||
|  | 
 | |||
|  | namespace BLL | |||
|  | { | |||
|  |     public class CQMSConstructSolutionService | |||
|  |     { | |||
|  |         public static string IsAgree(Object type, Object res) | |||
|  |         { | |||
|  |             string result = string.Empty; | |||
|  |             if (type.ToString().Equals(Const.CQMSConstructSolution_ReCompile) || type.ToString().Equals(Const.CQMSConstructSolution_Compile)) | |||
|  |             { | |||
|  |                 res = null; | |||
|  |             } | |||
|  |             if (res != null) | |||
|  |             { | |||
|  |                 if (Convert.ToBoolean(res)) | |||
|  |                 { | |||
|  |                     result = "是"; | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     result = "否"; | |||
|  |                 } | |||
|  |             } | |||
|  |             return result; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据方案审查Id删除一个方案审查信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="constructSolutionCode">方案审查Id</param> | |||
|  |         public static void DeleteConstructSolution(string constructSolutionId) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             Model.Solution_CQMSConstructSolution constructSolution = db.Solution_CQMSConstructSolution.First(e => e.ConstructSolutionId == constructSolutionId); | |||
|  | 
 | |||
|  |             db.Solution_CQMSConstructSolution.DeleteOnSubmit(constructSolution); | |||
|  |             db.SubmitChanges(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 增加方案审查信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="constructSolution">方案审查实体</param> | |||
|  |         public static void AddConstructSolution(Model.Solution_CQMSConstructSolution constructSolution) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             Model.Solution_CQMSConstructSolution newConstructSolution = new Model.Solution_CQMSConstructSolution(); | |||
|  |             newConstructSolution.ConstructSolutionId = constructSolution.ConstructSolutionId; | |||
|  |             newConstructSolution.Code = constructSolution.Code; | |||
|  |             newConstructSolution.ProjectId = constructSolution.ProjectId; | |||
|  |             newConstructSolution.UnitId = constructSolution.UnitId; | |||
|  |             newConstructSolution.SolutionName = constructSolution.SolutionName; | |||
|  |             newConstructSolution.SolutionType = constructSolution.SolutionType; | |||
|  |             newConstructSolution.UnitWorkIds = constructSolution.UnitWorkIds; | |||
|  |             newConstructSolution.CNProfessionalCodes = constructSolution.CNProfessionalCodes; | |||
|  |             newConstructSolution.AttachUrl = constructSolution.AttachUrl; | |||
|  |             newConstructSolution.CompileMan = constructSolution.CompileMan; | |||
|  |             newConstructSolution.CompileDate = constructSolution.CompileDate; | |||
|  |             newConstructSolution.State = constructSolution.State; | |||
|  |             newConstructSolution.Edition = constructSolution.Edition; | |||
|  |             newConstructSolution.SpecialSchemeTypeId = constructSolution.SpecialSchemeTypeId; | |||
|  |             db.Solution_CQMSConstructSolution.InsertOnSubmit(newConstructSolution); | |||
|  |             db.SubmitChanges(); | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 修改方案审查信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="constructSolution">方案审查实体</param> | |||
|  |         public static void UpdateConstructSolution(Model.Solution_CQMSConstructSolution constructSolution) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             Model.Solution_CQMSConstructSolution newConstructSolution = db.Solution_CQMSConstructSolution.First(e => e.ConstructSolutionId == constructSolution.ConstructSolutionId); | |||
|  |             newConstructSolution.Code = constructSolution.Code; | |||
|  |             newConstructSolution.UnitId = constructSolution.UnitId; | |||
|  |             newConstructSolution.SolutionName = constructSolution.SolutionName; | |||
|  |             newConstructSolution.SolutionType = constructSolution.SolutionType; | |||
|  |             newConstructSolution.UnitWorkIds = constructSolution.UnitWorkIds; | |||
|  |             newConstructSolution.CNProfessionalCodes = constructSolution.CNProfessionalCodes; | |||
|  |             newConstructSolution.AttachUrl = constructSolution.AttachUrl; | |||
|  |             newConstructSolution.State = constructSolution.State; | |||
|  |             newConstructSolution.Edition = constructSolution.Edition; | |||
|  |             newConstructSolution.SpecialSchemeTypeId = constructSolution.SpecialSchemeTypeId; | |||
|  |             db.SubmitChanges(); | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 把状态转换代号为文字形式 | |||
|  |         /// </summary> | |||
|  |         /// <param name="state"></param> | |||
|  |         /// <returns></returns> | |||
|  |         ///  | |||
|  |         public static string ConvertState(object state) | |||
|  |         { | |||
|  |             if (state != null) | |||
|  |             { | |||
|  |                 if (state.ToString() == BLL.Const.CQMSConstructSolution_ReCompile) | |||
|  |                 { | |||
|  |                     return "重报"; | |||
|  |                 } | |||
|  |                 else if (state.ToString() == BLL.Const.CQMSConstructSolution_Compile) | |||
|  |                 { | |||
|  |                     return "编制"; | |||
|  |                 } | |||
|  |                 else if (state.ToString() == BLL.Const.CQMSConstructSolution_Audit) | |||
|  |                 { | |||
|  |                     return "会签"; | |||
|  |                 } | |||
|  |                 else if (state.ToString() == BLL.Const.CQMSConstructSolution_Complete) | |||
|  |                 { | |||
|  |                     return "审批完成"; | |||
|  |                 } | |||
|  |             } | |||
|  |             return ""; | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 获取单位信息中的常用工程类型信息 | |||
|  |         /// </summary> | |||
|  |         /// <returns></returns> | |||
|  |         public static ListItem[] GetSolutionType() | |||
|  |         { | |||
|  |             ListItem[] list = new ListItem[3]; | |||
|  |             list[0] = new ListItem("施工组织设计", "1"); | |||
|  |             list[1] = new ListItem("专项施工方案", "2"); | |||
|  |             list[2] = new ListItem("施工方案", "3"); | |||
|  |             return list; | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据方案审查Id获取一个方案审查信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="constructSolutionCode">方案审查Id</param> | |||
|  |         /// <returns>一个方案审查实体</returns> | |||
|  |         public static Model.Solution_CQMSConstructSolution GetConstructSolutionByConstructSolutionId(string constructSolutionId) | |||
|  |         { | |||
|  |             return Funs.DB.Solution_CQMSConstructSolution.FirstOrDefault(x => x.ConstructSolutionId == constructSolutionId); | |||
|  |         } | |||
|  |         public static Model.Solution_CQMSConstructSolution GetConstructSolutionByConstructSolutionIdForApi(string constructSolutionId) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 Model.Solution_CQMSConstructSolution solution = db.Solution_CQMSConstructSolution.FirstOrDefault(x => x.ConstructSolutionId == constructSolutionId); | |||
|  |                 solution.AttachUrl = AttachFileService.getFileUrl(solution.ConstructSolutionId); | |||
|  |                 solution.CNProfessionalCodes = solution.CNProfessionalCodes + "$" + GetProfessionalName(solution.CNProfessionalCodes); | |||
|  |                 solution.UnitWorkIds = solution.UnitWorkIds + "$" + GetUnitWorkName(solution.UnitWorkIds); | |||
|  |                 var unit = BLL.UnitService.GetUnitByUnitId(solution.UnitId); | |||
|  |                 solution.UnitId = solution.UnitId + "$" + (unit != null ? unit.UnitName : ""); | |||
|  |                 solution.CompileMan = solution.CompileMan + "$" + UserService.GetUserNameByUserId(solution.CompileMan); | |||
|  |                 return solution; | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 获取方案类别 | |||
|  |         /// </summary> | |||
|  |         /// <param name="state"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static string ConvertSolutionType(object solutionType) | |||
|  |         { | |||
|  |             if (solutionType != null) | |||
|  |             { | |||
|  |                 if (solutionType.ToString() == "1") | |||
|  |                 { | |||
|  |                     return "施工组织设计"; | |||
|  |                 } | |||
|  |                 else if (solutionType.ToString() == "2") | |||
|  |                 { | |||
|  |                     return "专项施工方案"; | |||
|  |                 } | |||
|  |                 else if (solutionType.ToString() == "3") | |||
|  |                 { | |||
|  |                     return "施工方案"; | |||
|  |                 } | |||
|  |             } | |||
|  |             return ""; | |||
|  |         } | |||
|  |         public static string GetProfessionalName(string cNProfessionalCodes) | |||
|  |         { | |||
|  |             string professionalName = string.Empty; | |||
|  |             if (!string.IsNullOrEmpty(cNProfessionalCodes)) | |||
|  |             { | |||
|  |                 string[] strs = cNProfessionalCodes.Split(','); | |||
|  |                 foreach (var item in strs) | |||
|  |                 { | |||
|  |                     var cn = BLL.CNProfessionalService.GetCNProfessional(item); | |||
|  |                     if (cn != null) | |||
|  |                     { | |||
|  |                         professionalName += cn.ProfessionalName + ","; | |||
|  |                     } | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(professionalName)) | |||
|  |                 { | |||
|  |                     professionalName = professionalName.Substring(0, professionalName.LastIndexOf(",")); | |||
|  |                 } | |||
|  |             } | |||
|  |             return professionalName; | |||
|  |         } | |||
|  |         public static string GetUnitWorkName(string unitWorkIds) | |||
|  |         { | |||
|  |             string unitWorkName = string.Empty; | |||
|  |             if (!string.IsNullOrEmpty(unitWorkIds)) | |||
|  |             { | |||
|  |                 string[] strs = unitWorkIds.Split(','); | |||
|  |                 foreach (var item in strs) | |||
|  |                 { | |||
|  |                     var un = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(item); | |||
|  |                     if (un != null) | |||
|  |                     { | |||
|  |                         unitWorkName += un.UnitWorkName + BLL.UnitWorkService.GetProjectType(un.ProjectType) + ","; | |||
|  |                     } | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(unitWorkName)) | |||
|  |                 { | |||
|  |                     unitWorkName = unitWorkName.Substring(0, unitWorkName.LastIndexOf(",")); | |||
|  |                 } | |||
|  |             } | |||
|  |             return unitWorkName; | |||
|  |         } | |||
|  |         public static List<Model.Solution_CQMSConstructSolution> getListDataForApi(string name, string unitId, string unitWork, string cNProfessionalCodes, string solutionType, string state, string projectId, int startRowIndex, int maximumRows) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 IQueryable<Model.Solution_CQMSConstructSolution> q = db.Solution_CQMSConstructSolution; | |||
|  | 
 | |||
|  |                 if (!string.IsNullOrEmpty(projectId)) | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.ProjectId == projectId); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(unitId) && unitId != "undefined") | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.UnitId == unitId); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(unitWork) && unitWork != "undefined") | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.UnitWorkIds.Contains(unitWork)); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(cNProfessionalCodes) && cNProfessionalCodes != "undefined") | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.CNProfessionalCodes.Contains(cNProfessionalCodes)); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(solutionType) && solutionType != "undefined") | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.SolutionType == solutionType); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(state) && state != "undefined") | |||
|  |                 { | |||
|  |                     if ("已闭合" == state) | |||
|  |                     { | |||
|  |                         q = q.Where(e => e.State == "3"); | |||
|  |                     } | |||
|  |                     else if ("未闭合" == state) | |||
|  |                     { | |||
|  |                         q = q.Where(e => e.State != "3"); | |||
|  | 
 | |||
|  |                     } | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(name)) | |||
|  |                 { | |||
|  |                     List<string> ids = new List<string>(); | |||
|  |                     var qunit = from u in Funs.DB.Base_Unit | |||
|  |                                 where u.UnitName.Contains(name) | |||
|  |                                 select u.UnitId; | |||
|  |                     ids = qunit.ToList(); | |||
|  |                     q = q.Where(e => e.SolutionName.Contains(name) || ids.Contains(e.UnitId)); | |||
|  |                 } | |||
|  | 
 | |||
|  | 
 | |||
|  |                 var qlist = from x in q | |||
|  |                             orderby x.Code descending | |||
|  | 
 | |||
|  |                             select new | |||
|  |                             { | |||
|  |                                 x.ConstructSolutionId, | |||
|  |                                 x.Code, | |||
|  |                                 x.ProjectId, | |||
|  |                                 x.UnitId, | |||
|  |                                 UnitName = (from y in db.Base_Unit where y.UnitId == x.UnitId select y.UnitName).First(), | |||
|  |                                 x.SolutionName, | |||
|  |                                 x.SolutionType, | |||
|  |                                 x.UnitWorkIds, | |||
|  |                                 UnitWorkName = GetUnitWorkName(x.UnitWorkIds), | |||
|  |                                 x.CNProfessionalCodes, | |||
|  |                                 ProfessionalName = GetProfessionalName(x.CNProfessionalCodes), | |||
|  |                                 x.AttachUrl, | |||
|  |                                 x.CompileMan, | |||
|  |                                 x.CompileDate, | |||
|  |                                 x.State, | |||
|  |                                 x.Edition, | |||
|  |                                 CompileManName = (from y in db.Sys_User where y.UserId == x.CompileMan select y.UserName).First(), | |||
|  |                             }; | |||
|  | 
 | |||
|  |                 List<Model.Solution_CQMSConstructSolution> res = new List<Model.Solution_CQMSConstructSolution>(); | |||
|  |                 var qres = qlist.Skip(startRowIndex * maximumRows).Take(maximumRows).ToList(); | |||
|  |                 foreach (var item in qres) | |||
|  |                 { | |||
|  |                     Model.Solution_CQMSConstructSolution cs = new Model.Solution_CQMSConstructSolution(); | |||
|  |                     cs.ConstructSolutionId = item.ConstructSolutionId; | |||
|  |                     cs.Code = item.Code; | |||
|  |                     cs.ProjectId = item.ProjectId; | |||
|  |                     cs.UnitId = item.UnitId + "$" + item.UnitName; | |||
|  |                     cs.SolutionName = item.SolutionName; | |||
|  |                     cs.SolutionType = item.SolutionType; | |||
|  |                     cs.UnitWorkIds = item.UnitWorkIds + "$" + item.UnitWorkName; | |||
|  |                     cs.CNProfessionalCodes = item.CNProfessionalCodes + "$" + item.ProfessionalName; | |||
|  |                     cs.AttachUrl = item.AttachUrl; | |||
|  |                     cs.CompileMan = item.CompileMan + "$" + item.CompileManName; | |||
|  |                     cs.CompileDate = item.CompileDate; | |||
|  |                     cs.State = item.State; | |||
|  |                     cs.Edition = item.Edition; | |||
|  | 
 | |||
|  |                     res.Add(cs); | |||
|  |                 } | |||
|  |                 return res; | |||
|  |             } | |||
|  |         } | |||
|  |         public static List<Model.Solution_CQMSConstructSolution> getListDataForApi(string name, string projectId, int startRowIndex, int maximumRows) | |||
|  |         { | |||
|  |             var db = Funs.DB; | |||
|  |             IQueryable<Model.Solution_CQMSConstructSolution> q = db.Solution_CQMSConstructSolution; | |||
|  | 
 | |||
|  |             if (!string.IsNullOrEmpty(projectId)) | |||
|  |             { | |||
|  |                 q = q.Where(e => e.ProjectId == projectId); | |||
|  |             } | |||
|  |             if (!string.IsNullOrEmpty(name)) | |||
|  |             { | |||
|  |                 List<string> ids = new List<string>(); | |||
|  |                 var qunit = from u in Funs.DB.Base_Unit | |||
|  |                             where u.UnitName.Contains(name) | |||
|  |                             select u.UnitId; | |||
|  |                 ids = qunit.ToList(); | |||
|  |                 q = q.Where(e => e.SolutionName.Contains(name) || ids.Contains(e.UnitId)); | |||
|  |             } | |||
|  | 
 | |||
|  | 
 | |||
|  |             var qlist = from x in q | |||
|  |                         orderby x.Code descending | |||
|  | 
 | |||
|  |                         select new | |||
|  |                         { | |||
|  |                             x.ConstructSolutionId, | |||
|  |                             x.Code, | |||
|  |                             x.ProjectId, | |||
|  |                             x.UnitId, | |||
|  |                             UnitName = (from y in db.Base_Unit where y.UnitId == x.UnitId select y.UnitName).First(), | |||
|  |                             x.SolutionName, | |||
|  |                             x.SolutionType, | |||
|  |                             x.UnitWorkIds, | |||
|  |                             UnitWorkName = GetUnitWorkName(x.UnitWorkIds), | |||
|  |                             x.CNProfessionalCodes, | |||
|  |                             ProfessionalName = GetProfessionalName(x.CNProfessionalCodes), | |||
|  |                             x.AttachUrl, | |||
|  |                             x.CompileMan, | |||
|  |                             x.CompileDate, | |||
|  |                             x.State, | |||
|  |                             x.Edition, | |||
|  |                             CompileManName = (from y in db.Sys_User where y.UserId == x.CompileMan select y.UserName).First(), | |||
|  |                         }; | |||
|  | 
 | |||
|  |             List<Model.Solution_CQMSConstructSolution> res = new List<Model.Solution_CQMSConstructSolution>(); | |||
|  |             var qres = qlist.Skip(startRowIndex * maximumRows).Take(maximumRows).ToList(); | |||
|  |             foreach (var item in qres) | |||
|  |             { | |||
|  |                 Model.Solution_CQMSConstructSolution cs = new Model.Solution_CQMSConstructSolution(); | |||
|  |                 cs.ConstructSolutionId = item.ConstructSolutionId; | |||
|  |                 cs.Code = item.Code; | |||
|  |                 cs.ProjectId = item.ProjectId; | |||
|  |                 cs.UnitId = item.UnitId + "$" + item.UnitName; | |||
|  |                 cs.SolutionName = item.SolutionName; | |||
|  |                 cs.SolutionType = item.SolutionType; | |||
|  |                 cs.UnitWorkIds = item.UnitWorkIds + "$" + item.UnitWorkName; | |||
|  |                 cs.CNProfessionalCodes = item.CNProfessionalCodes + "$" + item.ProfessionalName; | |||
|  |                 cs.AttachUrl = AttachFileService.getFileUrl(item.ConstructSolutionId); | |||
|  |                 cs.CompileMan = item.CompileMan + "$" + item.CompileManName; | |||
|  |                 cs.CompileDate = item.CompileDate; | |||
|  |                 cs.State = item.State; | |||
|  |                 cs.Edition = item.Edition; | |||
|  | 
 | |||
|  |                 res.Add(cs); | |||
|  |             } | |||
|  |             return res; | |||
|  |         } | |||
|  |         public static void UpdateConstructSolutionForApi(Model.Solution_CQMSConstructSolution constructSolution) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 Model.Solution_CQMSConstructSolution newConstructSolution = db.Solution_CQMSConstructSolution.First(e => e.ConstructSolutionId == constructSolution.ConstructSolutionId); | |||
|  |                 if (!string.IsNullOrEmpty(constructSolution.Code)) | |||
|  |                     newConstructSolution.Code = constructSolution.Code; | |||
|  |                 if (!string.IsNullOrEmpty(constructSolution.UnitId)) | |||
|  |                     newConstructSolution.UnitId = constructSolution.UnitId; | |||
|  |                 if (!string.IsNullOrEmpty(constructSolution.SolutionName)) | |||
|  |                     newConstructSolution.SolutionName = constructSolution.SolutionName; | |||
|  |                 if (!string.IsNullOrEmpty(constructSolution.SolutionType)) | |||
|  |                     newConstructSolution.SolutionType = constructSolution.SolutionType; | |||
|  |                 if (!string.IsNullOrEmpty(constructSolution.UnitWorkIds)) | |||
|  |                     newConstructSolution.UnitWorkIds = constructSolution.UnitWorkIds; | |||
|  |                 if (!string.IsNullOrEmpty(constructSolution.CNProfessionalCodes)) | |||
|  |                     newConstructSolution.CNProfessionalCodes = constructSolution.CNProfessionalCodes; | |||
|  |                 if (!string.IsNullOrEmpty(constructSolution.AttachUrl)) | |||
|  |                     newConstructSolution.AttachUrl = constructSolution.AttachUrl; | |||
|  |                 if (!string.IsNullOrEmpty(constructSolution.State)) | |||
|  |                     newConstructSolution.State = constructSolution.State; | |||
|  |                 if (constructSolution.Edition.HasValue) | |||
|  |                     newConstructSolution.Edition = constructSolution.Edition; | |||
|  |                 db.SubmitChanges(); | |||
|  |             } | |||
|  |         } | |||
|  |     } | |||
|  | } |