428 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			428 lines
		
	
	
		
			20 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;
 | |
|             newConstructSolution.Content= constructSolution.Content;
 | |
|             newConstructSolution.CsUsers = constructSolution.CsUsers;
 | |
| 
 | |
|             db.Solution_CQMSConstructSolution.InsertOnSubmit(newConstructSolution);
 | |
|             db.SubmitChanges();
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// 修改方案审查信息
 | |
|         /// </summary>
 | |
|         /// <param name="constructSolution">方案审查实体</param>
 | |
|         public static void UpdateConstructSolution(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);
 | |
|                 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;
 | |
|                 newConstructSolution.Content= constructSolution.Content;
 | |
|                 newConstructSolution.CsUsers = constructSolution.CsUsers;
 | |
|                 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_Audit1)
 | |
|                 {
 | |
|                     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();
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |