728 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			728 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using Model; | |||
|  | using System; | |||
|  | using System.Collections; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Globalization; | |||
|  | using System.Linq; | |||
|  | using System.Text; | |||
|  | using System.Threading.Tasks; | |||
|  | using System.Web.UI.WebControls; | |||
|  | 
 | |||
|  | namespace BLL | |||
|  | { | |||
|  |     public class CheckControlService | |||
|  |     { | |||
|  |         public static Model.SGGLDB db = Funs.DB; | |||
|  |         /// <summary> | |||
|  |         /// 根据质量检查与控制Id删除一个质量检查与控制信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="CheckControlId"></param> | |||
|  |         public static void DeleteCheckControl(string CheckControlId) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             Model.Check_CheckControl CheckControl = db.Check_CheckControl.First(e => e.CheckControlCode == CheckControlId); | |||
|  |             db.Check_CheckControl.DeleteOnSubmit(CheckControl); | |||
|  |             db.SubmitChanges(); | |||
|  |         } | |||
|  |         public static void Init(FineUIPro.DropDownList dropName, string state, bool isShowPlease) | |||
|  |         { | |||
|  |             dropName.DataValueField = "Value"; | |||
|  |             dropName.DataTextField = "Text"; | |||
|  |             dropName.DataSource = GetDHandleTypeByState(state); | |||
|  |             dropName.DataBind(); | |||
|  |             if (isShowPlease) | |||
|  |             { | |||
|  |                 Funs.FineUIPleaseSelect(dropName); | |||
|  |             } | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 添加质量检查与控制 | |||
|  |         /// </summary> | |||
|  |         /// <param name="CheckControl"></param> | |||
|  |         public static void AddCheckControl(Model.Check_CheckControl CheckControl) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             Model.Check_CheckControl newCheckControl = new Model.Check_CheckControl(); | |||
|  |             newCheckControl.CheckControlCode = CheckControl.CheckControlCode; | |||
|  |             newCheckControl.ProposeUnitId = CheckControl.ProposeUnitId; | |||
|  |             newCheckControl.DocCode = CheckControl.DocCode; | |||
|  |             newCheckControl.ProjectId = CheckControl.ProjectId; | |||
|  |             newCheckControl.UnitWorkId = CheckControl.UnitWorkId; | |||
|  |             newCheckControl.UnitId = CheckControl.UnitId; | |||
|  |             newCheckControl.CheckDate = CheckControl.CheckDate; | |||
|  |             newCheckControl.CheckMan = CheckControl.CheckMan; | |||
|  |             newCheckControl.IsSubmit = CheckControl.IsSubmit; | |||
|  |             newCheckControl.SubmitMan = CheckControl.SubmitMan; | |||
|  |             newCheckControl.CNProfessionalCode = CheckControl.CNProfessionalCode; | |||
|  |             newCheckControl.QuestionType = CheckControl.QuestionType; | |||
|  |             newCheckControl.CheckSite = CheckControl.CheckSite; | |||
|  |             newCheckControl.QuestionDef = CheckControl.QuestionDef; | |||
|  |             newCheckControl.LimitDate = CheckControl.LimitDate; | |||
|  |             newCheckControl.RectifyOpinion = CheckControl.RectifyOpinion; | |||
|  |             newCheckControl.AttachUrl = CheckControl.AttachUrl; | |||
|  |             newCheckControl.HandleWay = CheckControl.HandleWay; | |||
|  |             newCheckControl.RectifyDate = CheckControl.RectifyDate; | |||
|  |             newCheckControl.ReAttachUrl = CheckControl.ReAttachUrl; | |||
|  |             newCheckControl.State = CheckControl.State; | |||
|  |             newCheckControl.SaveHandleMan = CheckControl.SaveHandleMan; | |||
|  | 
 | |||
|  |             db.Check_CheckControl.InsertOnSubmit(newCheckControl); | |||
|  |             db.SubmitChanges(); | |||
|  |         } | |||
|  |         public static void AddCheckControlForApi(Model.Check_CheckControl CheckControl) | |||
|  |         { | |||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 Model.Check_CheckControl newCheckControl = new Model.Check_CheckControl(); | |||
|  |                 newCheckControl.CheckControlCode = CheckControl.CheckControlCode; | |||
|  |                 newCheckControl.ProposeUnitId = CheckControl.ProposeUnitId; | |||
|  |                 newCheckControl.DocCode = CheckControl.DocCode; | |||
|  |                 newCheckControl.ProjectId = CheckControl.ProjectId; | |||
|  |                 newCheckControl.UnitWorkId = CheckControl.UnitWorkId; | |||
|  |                 newCheckControl.UnitId = CheckControl.UnitId; | |||
|  |                 newCheckControl.CheckDate = CheckControl.CheckDate; | |||
|  |                 newCheckControl.CheckMan = CheckControl.CheckMan; | |||
|  |                 newCheckControl.IsSubmit = CheckControl.IsSubmit; | |||
|  |                 newCheckControl.SubmitMan = CheckControl.SubmitMan; | |||
|  |                 newCheckControl.CNProfessionalCode = CheckControl.CNProfessionalCode; | |||
|  |                 newCheckControl.QuestionType = CheckControl.QuestionType; | |||
|  |                 newCheckControl.CheckSite = CheckControl.CheckSite; | |||
|  |                 newCheckControl.QuestionDef = CheckControl.QuestionDef; | |||
|  |                 newCheckControl.LimitDate = CheckControl.LimitDate; | |||
|  |                 newCheckControl.RectifyOpinion = CheckControl.RectifyOpinion; | |||
|  |                 newCheckControl.AttachUrl = CheckControl.AttachUrl; | |||
|  |                 newCheckControl.HandleWay = CheckControl.HandleWay; | |||
|  |                 newCheckControl.RectifyDate = CheckControl.RectifyDate; | |||
|  |                 newCheckControl.ReAttachUrl = CheckControl.ReAttachUrl; | |||
|  |                 newCheckControl.State = CheckControl.State; | |||
|  |                 newCheckControl.SaveHandleMan = CheckControl.SaveHandleMan; | |||
|  | 
 | |||
|  |                 db.Check_CheckControl.InsertOnSubmit(newCheckControl); | |||
|  |                 db.SubmitChanges(); | |||
|  |             } | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 根据质量检查与控制Id获取一个质量检查与控制信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="CheckControlDetailId"></param> | |||
|  |         public static Model.Check_CheckControl GetCheckControl(string CheckControlCode) | |||
|  |         { | |||
|  |             return Funs.DB.Check_CheckControl.FirstOrDefault(e => e.CheckControlCode == CheckControlCode); | |||
|  |         } | |||
|  |         public static Model.Check_CheckControl GetCheckControlForApi(string CheckControlCode) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 Model.Check_CheckControl x = db.Check_CheckControl.FirstOrDefault(e => e.CheckControlCode == CheckControlCode); | |||
|  |                 x.AttachUrl = AttachFileService.getFileUrl(x.CheckControlCode); | |||
|  |                 x.ReAttachUrl = AttachFileService.getFileUrl(x.CheckControlCode + "r"); | |||
|  |                 x.QuestionType = x.QuestionType + "$" + BLL.QualityQuestionTypeService.GetQualityQuestionType(x.QuestionType).QualityQuestionType; | |||
|  |                 var unit = UnitService.GetUnitByUnitId(x.UnitId); | |||
|  |                 x.UnitId = x.UnitId + "$" + unit.UnitName; | |||
|  |                 var ppunit = UnitService.GetUnitByUnitId(x.ProposeUnitId); | |||
|  |                 var punit = ProjectUnitService.GetProjectUnitByUnitIdProjectId(x.ProjectId, x.ProposeUnitId); | |||
|  |                 if (punit != null) | |||
|  |                 { | |||
|  |                     x.ProposeUnitId = x.ProposeUnitId + "$" + ppunit.UnitName + "$" + punit.UnitType; | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     x.ProposeUnitId = x.ProposeUnitId + "$" + "$"; | |||
|  | 
 | |||
|  |                 } | |||
|  |                 Sys_User checkMen = UserService.GetUserByUserId(x.CheckMan); | |||
|  | 
 | |||
|  |                 x.CheckMan = (checkMen != null ? checkMen.UserName : "") + "$" + UnitWorkService.GetNameById(x.UnitWorkId) + "$" + ConvertManAndID(x.CheckControlCode); | |||
|  | 
 | |||
|  |                 x.CNProfessionalCode = x.CNProfessionalCode + "$" + CNProfessionalService.GetCNProfessionalNameByCode(x.CNProfessionalCode); | |||
|  |                 return x; | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 根据状态选择下一步办理类型 | |||
|  |         /// </summary> | |||
|  |         /// <param name="state"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static ListItem[] GetDHandleTypeByState(string state) | |||
|  |         { | |||
|  |             if (state == Const.CheckControl_Compile || state == Const.CheckControl_ReCompile)  //无是否同意 | |||
|  |             { | |||
|  |                 ListItem[] lis = new ListItem[2]; | |||
|  |                 lis[0] = new ListItem("总包负责人审核", Const.CheckControl_Audit1); | |||
|  |                 lis[1] = new ListItem("分包专业工程师回复", Const.CheckControl_Audit2); | |||
|  |                 return lis; | |||
|  |             } | |||
|  |             else if (state == Const.CheckControl_Audit1)//有是否同意 | |||
|  |             { | |||
|  |                 ListItem[] lis = new ListItem[2]; | |||
|  |                 lis[0] = new ListItem("分包专业工程师回复", Const.CheckControl_Audit2);//是 加载 | |||
|  |                 lis[1] = new ListItem("重新编制", Const.CheckControl_ReCompile);//否加载 | |||
|  |                 return lis; | |||
|  |             } | |||
|  |             else if (state == Const.CheckControl_Audit2 || state == Const.CheckControl_ReCompile2)//无是否同意 | |||
|  |             { | |||
|  |                 ListItem[] lis = new ListItem[2]; | |||
|  |                 lis[0] = new ListItem("分包负责人审批", Const.CheckControl_Audit3); | |||
|  |                 lis[1] = new ListItem("总包专业工程师确认", Const.CheckControl_Audit4); | |||
|  |                 return lis; | |||
|  |             } | |||
|  |             else if (state == Const.CheckControl_Audit3)//有是否同意 | |||
|  |             { | |||
|  |                 ListItem[] lis = new ListItem[2]; | |||
|  |                 lis[0] = new ListItem("总包专业工程师确认", Const.CheckControl_Audit4);//是 加载 | |||
|  |                 lis[1] = new ListItem("分包专业工程师重新回复", Const.CheckControl_ReCompile2);//否加载 | |||
|  |                 return lis; | |||
|  |             } | |||
|  |             else if (state == Const.CheckControl_Audit4)//有是否同意 | |||
|  |             { | |||
|  |                 ListItem[] lis = new ListItem[3]; | |||
|  |                 lis[0] = new ListItem("总包负责人确认", Const.CheckControl_Audit5);//是 加载 | |||
|  |                 lis[1] = new ListItem("审批完成", Const.CheckControl_Complete);//是 加载 | |||
|  |                 lis[2] = new ListItem("分包专业工程师重新回复", Const.CheckControl_ReCompile2);//否加载 | |||
|  |                 return lis; | |||
|  |             } | |||
|  |             else if (state == Const.CheckControl_Audit5)//有是否同意 | |||
|  |             { | |||
|  |                 ListItem[] lis = new ListItem[2]; | |||
|  |                 lis[0] = new ListItem("审批完成", Const.CheckControl_Complete);//是 加载 | |||
|  |                 lis[1] = new ListItem("分包专业工程师重新回复", Const.CheckControl_ReCompile2);//否加载 | |||
|  |                 return lis; | |||
|  |             } | |||
|  |             else | |||
|  |                 return null; | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 修改质量检查与控制 | |||
|  |         /// </summary> | |||
|  |         /// <param name="CheckControl"></param> | |||
|  |         public static void UpdateCheckControl(Model.Check_CheckControl CheckControl) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             Model.Check_CheckControl newCheckControl = db.Check_CheckControl.First(e => e.CheckControlCode == CheckControl.CheckControlCode); | |||
|  |             newCheckControl.DocCode = CheckControl.DocCode; | |||
|  |             newCheckControl.ProposeUnitId = CheckControl.ProposeUnitId; | |||
|  |             newCheckControl.UnitWorkId = CheckControl.UnitWorkId; | |||
|  |             newCheckControl.UnitId = CheckControl.UnitId; | |||
|  |             newCheckControl.CheckDate = CheckControl.CheckDate; | |||
|  |             newCheckControl.IsSubmit = CheckControl.IsSubmit; | |||
|  |             newCheckControl.SubmitMan = CheckControl.SubmitMan; | |||
|  |             newCheckControl.IsOK = CheckControl.IsOK; | |||
|  |             newCheckControl.CNProfessionalCode = CheckControl.CNProfessionalCode; | |||
|  |             newCheckControl.QuestionType = CheckControl.QuestionType; | |||
|  |             newCheckControl.CheckSite = CheckControl.CheckSite; | |||
|  |             newCheckControl.QuestionDef = CheckControl.QuestionDef; | |||
|  |             newCheckControl.LimitDate = CheckControl.LimitDate; | |||
|  |             newCheckControl.RectifyOpinion = CheckControl.RectifyOpinion; | |||
|  |             newCheckControl.AttachUrl = CheckControl.AttachUrl; | |||
|  |             newCheckControl.HandleWay = CheckControl.HandleWay; | |||
|  |             newCheckControl.RectifyDate = CheckControl.RectifyDate; | |||
|  |             newCheckControl.ReAttachUrl = CheckControl.ReAttachUrl; | |||
|  |             newCheckControl.State = CheckControl.State; | |||
|  |             newCheckControl.SaveHandleMan = CheckControl.SaveHandleMan; | |||
|  | 
 | |||
|  |             db.SubmitChanges(); | |||
|  |         } | |||
|  |         public static List<Model.Check_CheckControl> GetListDataForApi(string state, string name, string projectId, int index, int page) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 IQueryable<Model.Check_CheckControl> q = db.Check_CheckControl; | |||
|  |                 List<string> ids = new List<string>(); | |||
|  |                 if (!string.IsNullOrEmpty(name)) | |||
|  |                 { | |||
|  |                     var qunit = from u in Funs.DB.Base_Unit | |||
|  |                                 where u.UnitName.Contains(name) | |||
|  |                                 select u.UnitId; | |||
|  |                     ids = qunit.ToList(); | |||
|  |                     q = q.Where(e => ids.Contains(e.UnitId)); | |||
|  |                 } | |||
|  | 
 | |||
|  | 
 | |||
|  |                 if (!string.IsNullOrEmpty(projectId)) | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.ProjectId == projectId); | |||
|  |                 } | |||
|  |                 switch (state) | |||
|  |                 { | |||
|  |                     case "1": // 未整改 | |||
|  |                         q = q.Where(e => e.State != BLL.Const.CheckControl_Audit4 | |||
|  |                                         && e.State != BLL.Const.CheckControl_Audit5 | |||
|  |                                         && e.State != BLL.Const.CheckControl_Complete | |||
|  |                                         && e.LimitDate > DateTime.Now); | |||
|  |                         break; | |||
|  |                     case "2": // 待确认 5/6 | |||
|  |                         q = q.Where(e => e.State == BLL.Const.CheckControl_Audit4 || e.State == BLL.Const.CheckControl_Audit5); | |||
|  |                         break; | |||
|  |                     case "3": // 已闭环 7 | |||
|  |                         q = q.Where(e => e.State == BLL.Const.CheckControl_Complete); | |||
|  |                         break; | |||
|  |                     case "4":  // 超期未整改 | |||
|  |                         q = q.Where(e => e.State != BLL.Const.CheckControl_Audit4 | |||
|  |                                         && e.State != BLL.Const.CheckControl_Audit5 | |||
|  |                                         && e.State != BLL.Const.CheckControl_Complete | |||
|  |                                         && e.LimitDate < DateTime.Now); | |||
|  |                         break; | |||
|  |                 } | |||
|  |                 var qq1 = from x in q | |||
|  |                           orderby x.DocCode descending | |||
|  |                           select new | |||
|  |                           { | |||
|  |                               x.CheckControlCode, | |||
|  |                               x.DocCode, | |||
|  |                               x.UnitId, | |||
|  |                               x.ProposeUnitId, | |||
|  |                               x.UnitWorkId, | |||
|  |                               x.CheckDate, | |||
|  |                               x.State, | |||
|  |                               x.CheckSite, | |||
|  |                               x.IsSubmit, | |||
|  |                               x.AttachUrl, | |||
|  |                               x.QuestionDef, | |||
|  |                               x.QuestionType, | |||
|  |                               x.RectifyOpinion, | |||
|  |                               x.LimitDate, | |||
|  |                               x.CNProfessionalCode, | |||
|  | 
 | |||
|  |                               CNProfessionalName = (from y in db.Base_CNProfessional where y.CNProfessionalId == x.CNProfessionalCode select y.ProfessionalName).First(), | |||
|  |                               UnitWork = (from y in db.WBS_UnitWork where y.UnitWorkId == x.UnitWorkId select y.UnitWorkCode + "-" + y.UnitWorkName + (y.ProjectType == "1" ? "(建筑)" : "(安装)")).First(), | |||
|  |                               CheckMan = (from y in db.Sys_User where y.UserId == x.CheckMan select y.UserName).First() | |||
|  | 
 | |||
|  |                           }; | |||
|  |                 var list = qq1.Skip(index * page).Take(page).ToList(); | |||
|  | 
 | |||
|  |                 List<Model.Check_CheckControl> listRes = new List<Model.Check_CheckControl>(); | |||
|  |                 for (int i = 0; i < list.Count; i++) | |||
|  |                 { | |||
|  |                     Model.Check_CheckControl x = new Model.Check_CheckControl(); | |||
|  |                     x.CheckControlCode = list[i].CheckControlCode; | |||
|  |                     x.DocCode = list[i].DocCode; | |||
|  |                     x.UnitWorkId = list[i].UnitWorkId; | |||
|  |                     x.CheckDate = list[i].CheckDate; | |||
|  |                     x.UnitId = list[i].UnitId + "$" + UnitService.GetUnitNameByUnitId(list[i].UnitId); | |||
|  |                     var punit = ProjectUnitService.GetProjectUnitByUnitIdProjectId(projectId, list[i].ProposeUnitId); | |||
|  |                     string unitType = string.Empty; | |||
|  |                     if (punit != null) | |||
|  |                     { | |||
|  |                         unitType = punit.UnitType; | |||
|  |                     } | |||
|  |                     x.ProposeUnitId = list[i].ProposeUnitId + "$" + UnitService.GetUnitNameByUnitId(list[i].ProposeUnitId) + "$" + unitType; | |||
|  |                     x.CheckMan = list[i].CheckMan + "$" + list[i].UnitWork + "$" + ConvertManAndID(list[i].CheckControlCode); | |||
|  |                     x.State = list[i].State; | |||
|  |                     x.CheckSite = list[i].CheckSite; | |||
|  |                     x.IsSubmit = list[i].IsSubmit; | |||
|  |                     x.AttachUrl = list[i].AttachUrl; | |||
|  |                     x.QuestionDef = list[i].QuestionDef; | |||
|  |                     if (!string.IsNullOrEmpty(list[i].QuestionType)) | |||
|  |                     { | |||
|  |                         x.QuestionType = list[i].QuestionType + "$" + BLL.QualityQuestionTypeService.GetQualityQuestionType(list[i].QuestionType).QualityQuestionType; | |||
|  |                     } | |||
|  |                     x.RectifyOpinion = list[i].RectifyOpinion; | |||
|  |                     x.LimitDate = list[i].LimitDate; | |||
|  |                     x.CNProfessionalCode = list[i].CNProfessionalCode + "$" + list[i].CNProfessionalName; | |||
|  |                     x.AttachUrl = AttachFileService.getFileUrl(x.CheckControlCode); | |||
|  |                     x.ReAttachUrl = AttachFileService.getFileUrl(x.CheckControlCode + "r"); | |||
|  |                     listRes.Add(x); | |||
|  |                 } | |||
|  |                 return listRes; | |||
|  |             } | |||
|  |         } | |||
|  |         // 查询数量 | |||
|  |         public static string GetListCountStr(string projectId, string searchWord, string unitId, string unitWork, string problemType, string professional, string dateA, string dateZ) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 IQueryable<Model.Check_CheckControl> q = db.Check_CheckControl; | |||
|  | 
 | |||
|  |                 List<string> ids = new List<string>(); | |||
|  |                 if (!string.IsNullOrEmpty(searchWord)) | |||
|  |                 { | |||
|  |                     var qunit = from u in Funs.DB.Base_Unit | |||
|  |                                 where u.UnitName.Contains(searchWord) | |||
|  |                                 select u.UnitId; | |||
|  |                     ids = qunit.ToList(); | |||
|  |                     q = q.Where(e => ids.Contains(e.UnitId)); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 if (!string.IsNullOrEmpty(projectId)) | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.ProjectId == projectId); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 if (!string.IsNullOrEmpty(unitWork) && "undefined" != unitWork) | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.UnitWorkId == unitWork); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(problemType) && "undefined" != problemType) | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.QuestionType == problemType); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 if (!string.IsNullOrEmpty(professional) && "undefined" != professional) | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.CNProfessionalCode == professional); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(dateA) && "undefined" != dateA) | |||
|  |                 { | |||
|  |                     DateTime date = DateTime.ParseExact(dateA, "yyyy-MM-dd", new CultureInfo("zh-CN", true)); | |||
|  |                     q = q.Where(e => e.CheckDate >= date); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(dateZ) && "undefined" != dateZ) | |||
|  |                 { | |||
|  |                     DateTime date = DateTime.ParseExact(dateZ + "23:59:59", "yyyy-MM-ddHH:mm:ss", new CultureInfo("zh-CN", true)); | |||
|  |                     q = q.Where(e => e.CheckDate <= date); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(unitId) && "undefined" != unitId) | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.UnitId == unitId); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 var i = q.Where(e => e.State != BLL.Const.CheckControl_Audit4 | |||
|  |                                         && e.State != BLL.Const.CheckControl_Audit5 | |||
|  |                                         && e.State != BLL.Const.CheckControl_Complete | |||
|  |                                         && e.LimitDate > DateTime.Now).ToList(); | |||
|  |                 string weiZhengLeng = i.Count.ToString(); // 未整改 | |||
|  | 
 | |||
|  |                 var j = q.Where(e => e.State == BLL.Const.CheckControl_Audit4 || e.State == BLL.Const.CheckControl_Audit5).ToList(); | |||
|  |                 string weiRengLeng = j.Count.ToString(); // 未确认 | |||
|  | 
 | |||
|  |                 string len = weiZhengLeng + "$" + weiRengLeng; | |||
|  |                 return len; | |||
|  |             } | |||
|  |         } | |||
|  |         public static List<Model.Check_CheckControl> GetListDataForApi(string state, string unitId, string unitWork, string problemType, string professional, string dateA, string dateZ, string projectId, int index, int page) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 IQueryable<Model.Check_CheckControl> q = db.Check_CheckControl; | |||
|  | 
 | |||
|  |                 if (!string.IsNullOrEmpty(state) && "undefined" != state) | |||
|  |                 { | |||
|  |                     switch (state) | |||
|  |                     { | |||
|  |                         case "1": // 未整改 | |||
|  |                             q = q.Where(e => e.State != BLL.Const.CheckControl_Audit4 | |||
|  |                                             && e.State != BLL.Const.CheckControl_Audit5 | |||
|  |                                             && e.State != BLL.Const.CheckControl_Complete | |||
|  |                                             && e.LimitDate > DateTime.Now); | |||
|  |                             break; | |||
|  |                         case "2": // 待确认 5/6 | |||
|  |                             q = q.Where(e => e.State == BLL.Const.CheckControl_Audit4 || e.State == BLL.Const.CheckControl_Audit5); | |||
|  |                             break; | |||
|  |                         case "3": // 已闭环 7 | |||
|  |                             q = q.Where(e => e.State == BLL.Const.CheckControl_Complete); | |||
|  |                             break; | |||
|  |                         case "4":  // 超期未整改 | |||
|  |                             q = q.Where(e => e.State != BLL.Const.CheckControl_Audit4 | |||
|  |                                             && e.State != BLL.Const.CheckControl_Audit5 | |||
|  |                                             && e.State != BLL.Const.CheckControl_Complete | |||
|  |                                             && e.LimitDate < DateTime.Now); | |||
|  |                             break; | |||
|  |                     } | |||
|  | 
 | |||
|  |                 } | |||
|  | 
 | |||
|  |                 //if (!string.IsNullOrEmpty(state) && "undefined" != state) | |||
|  |                 //{ | |||
|  |                 //    switch (state) | |||
|  |                 //    { | |||
|  |                 //        case "未确认": | |||
|  |                 //            q = q.Where(e => "5,6".Split(',').Contains(e.State)); | |||
|  |                 //            break; | |||
|  |                 //        case "已闭环": | |||
|  |                 //            q = q.Where(e => "7" == e.State); | |||
|  |                 //            break; | |||
|  |                 //        case "未整改": | |||
|  |                 //            q = q.Where(e => "0,1,2,3,4,8".Split(',').Contains(e.State)); | |||
|  |                 //            q = q.Where(e => e.LimitDate >= DateTime.Now); | |||
|  |                 //            break; | |||
|  |                 //        case "超期未整改": | |||
|  |                 //            q = q.Where(e => e.LimitDate < DateTime.Now); | |||
|  |                 //            q = q.Where(e => "0,1,2,3,4,8".Split(',').Contains(e.State)); | |||
|  |                 //            break; | |||
|  |                 //    } | |||
|  | 
 | |||
|  |                 //} | |||
|  | 
 | |||
|  |                 if (!string.IsNullOrEmpty(unitWork) && "undefined" != unitWork) | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.UnitWorkId == unitWork); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(problemType) && "undefined" != problemType) | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.QuestionType == problemType); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 if (!string.IsNullOrEmpty(professional) && "undefined" != professional) | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.CNProfessionalCode == professional); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(dateA) && "undefined" != dateA) | |||
|  |                 { | |||
|  |                     DateTime date = DateTime.ParseExact(dateA, "yyyy-MM-dd", new CultureInfo("zh-CN", true)); | |||
|  |                     q = q.Where(e => e.CheckDate >= date); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(dateZ) && "undefined" != dateZ) | |||
|  |                 { | |||
|  |                     DateTime date = DateTime.ParseExact(dateZ + "23:59:59", "yyyy-MM-ddHH:mm:ss", new CultureInfo("zh-CN", true)); | |||
|  |                     q = q.Where(e => e.CheckDate <= date); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(unitId) && "undefined" != unitId) | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.UnitId == unitId); | |||
|  |                 } | |||
|  |                 if (!string.IsNullOrEmpty(projectId) && "undefined" != projectId) | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.ProjectId == projectId); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 var qq1 = from x in q | |||
|  |                           orderby x.DocCode descending | |||
|  |                           select new | |||
|  |                           { | |||
|  |                               x.CheckControlCode, | |||
|  |                               x.DocCode, | |||
|  |                               x.UnitId, | |||
|  |                               x.ProposeUnitId, | |||
|  |                               x.UnitWorkId, | |||
|  |                               x.CheckDate, | |||
|  |                               x.State, | |||
|  |                               x.CheckSite, | |||
|  |                               x.IsSubmit, | |||
|  |                               x.AttachUrl, | |||
|  |                               x.QuestionDef, | |||
|  |                               x.QuestionType, | |||
|  |                               x.RectifyOpinion, | |||
|  |                               x.LimitDate, | |||
|  |                               x.CNProfessionalCode, | |||
|  | 
 | |||
|  |                               CNProfessionalName = (from y in db.Base_CNProfessional where y.CNProfessionalId == x.CNProfessionalCode select y.ProfessionalName).First(), | |||
|  |                               UnitWork = (from y in db.WBS_UnitWork where y.UnitWorkId == x.UnitWorkId select y.UnitWorkCode + "-" + y.UnitWorkName + (y.ProjectType == "1" ? "(建筑)" : "(安装)")).First(), | |||
|  |                               CheckMan = (from y in db.Sys_User where y.UserId == x.CheckMan select y.UserName).First() | |||
|  | 
 | |||
|  |                           }; | |||
|  |                 var list = qq1.Skip(index * page).Take(page).ToList(); | |||
|  | 
 | |||
|  |                 List<Model.Check_CheckControl> listRes = new List<Model.Check_CheckControl>(); | |||
|  |                 for (int i = 0; i < list.Count; i++) | |||
|  |                 { | |||
|  |                     Model.Check_CheckControl x = new Model.Check_CheckControl(); | |||
|  |                     x.CheckControlCode = list[i].CheckControlCode; | |||
|  |                     x.DocCode = list[i].DocCode; | |||
|  |                     x.UnitWorkId = list[i].UnitWorkId; | |||
|  |                     x.CheckDate = list[i].CheckDate; | |||
|  |                     x.UnitId = list[i].UnitId + "$" + UnitService.GetUnitNameByUnitId(list[i].UnitId); | |||
|  |                     x.ProposeUnitId = list[i].ProposeUnitId + "$" + UnitService.GetUnitNameByUnitId(list[i].ProposeUnitId); | |||
|  |                     x.CheckMan = list[i].CheckMan + "$" + list[i].UnitWork + "$" + ConvertManAndID(list[i].CheckControlCode); | |||
|  |                     x.State = list[i].State; | |||
|  |                     x.CheckSite = list[i].CheckSite; | |||
|  |                     x.IsSubmit = list[i].IsSubmit; | |||
|  |                     x.AttachUrl = list[i].AttachUrl; | |||
|  |                     x.QuestionDef = list[i].QuestionDef; | |||
|  |                     if (!string.IsNullOrEmpty(list[i].QuestionType)) | |||
|  |                     { | |||
|  |                         x.QuestionType = list[i].QuestionType + "$" + BLL.QualityQuestionTypeService.GetQualityQuestionType(list[i].QuestionType).QualityQuestionType; | |||
|  |                     } | |||
|  |                     x.RectifyOpinion = list[i].RectifyOpinion; | |||
|  |                     x.LimitDate = list[i].LimitDate; | |||
|  |                     x.CNProfessionalCode = list[i].CNProfessionalCode + "$" + list[i].CNProfessionalName; | |||
|  |                     x.AttachUrl = AttachFileService.getFileUrl(x.CheckControlCode); | |||
|  |                     x.ReAttachUrl = AttachFileService.getFileUrl(x.CheckControlCode + "r"); | |||
|  |                     listRes.Add(x); | |||
|  |                 } | |||
|  |                 return listRes; | |||
|  |             } | |||
|  |         } | |||
|  |         public static string ConvertMan(object CheckControlCode) | |||
|  |         { | |||
|  |             if (CheckControlCode != null) | |||
|  |             { | |||
|  |                 Model.Check_CheckControlApprove a = BLL.CheckControlApproveService.GetCheckControlApproveByCheckControlId(CheckControlCode.ToString()); | |||
|  |                 if (a != null) | |||
|  |                 { | |||
|  |                     if (a.ApproveMan != null) | |||
|  |                     { | |||
|  |                         return BLL.UserService.GetUserByUserId(a.ApproveMan).UserName; | |||
|  |                     } | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     return ""; | |||
|  |                 } | |||
|  |             } | |||
|  |             return ""; | |||
|  |         } | |||
|  |         public static string ConvertManAndID(object CheckControlCode) | |||
|  |         { | |||
|  |             if (CheckControlCode != null) | |||
|  |             { | |||
|  |                 Model.Check_CheckControlApprove a = BLL.CheckControlApproveService.GetCheckControlApproveByCheckControlId(CheckControlCode.ToString()); | |||
|  |                 if (a != null) | |||
|  |                 { | |||
|  |                     if (a.ApproveMan != null) | |||
|  |                     { | |||
|  |                         var user = BLL.UserService.GetUserByUserId(a.ApproveMan); | |||
|  |                         return user.UserName + "$" + user.UserId; | |||
|  |                     } | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     return ""; | |||
|  |                 } | |||
|  |             } | |||
|  |             return ""; | |||
|  |         } | |||
|  |         public static void UpdateCheckControlForApi(Model.Check_CheckControl CheckControl) | |||
|  |         { | |||
|  | 
 | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 Model.Check_CheckControl newCheckControl = db.Check_CheckControl.First(e => e.CheckControlCode == CheckControl.CheckControlCode); | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.DocCode)) | |||
|  |                     newCheckControl.DocCode = CheckControl.DocCode; | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.UnitWorkId)) | |||
|  |                     newCheckControl.UnitWorkId = CheckControl.UnitWorkId; | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.UnitId)) | |||
|  |                     newCheckControl.UnitId = CheckControl.UnitId; | |||
|  |                 if (CheckControl.CheckDate.HasValue) | |||
|  |                     newCheckControl.CheckDate = CheckControl.CheckDate; | |||
|  |                 if (CheckControl.IsSubmit.HasValue) | |||
|  |                     newCheckControl.IsSubmit = CheckControl.IsSubmit; | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.SubmitMan)) | |||
|  |                     newCheckControl.SubmitMan = CheckControl.SubmitMan; | |||
|  |                 if (CheckControl.IsOK.HasValue) | |||
|  |                     newCheckControl.IsOK = CheckControl.IsOK; | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.CNProfessionalCode)) | |||
|  |                     newCheckControl.CNProfessionalCode = CheckControl.CNProfessionalCode; | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.QuestionType)) | |||
|  |                     newCheckControl.QuestionType = CheckControl.QuestionType; | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.CheckSite)) | |||
|  |                     newCheckControl.CheckSite = CheckControl.CheckSite; | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.QuestionDef)) | |||
|  |                     newCheckControl.QuestionDef = CheckControl.QuestionDef; | |||
|  |                 if (CheckControl.LimitDate.HasValue) | |||
|  |                     newCheckControl.LimitDate = CheckControl.LimitDate; | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.RectifyOpinion)) | |||
|  |                     newCheckControl.RectifyOpinion = CheckControl.RectifyOpinion; | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.AttachUrl)) | |||
|  |                     newCheckControl.AttachUrl = CheckControl.AttachUrl; | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.HandleWay)) | |||
|  |                     newCheckControl.HandleWay = CheckControl.HandleWay; | |||
|  |                 if (CheckControl.RectifyDate.HasValue) | |||
|  |                     newCheckControl.RectifyDate = CheckControl.RectifyDate; | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.ReAttachUrl)) | |||
|  |                     newCheckControl.ReAttachUrl = CheckControl.ReAttachUrl; | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.State)) | |||
|  |                     newCheckControl.State = CheckControl.State; | |||
|  |                 if (!string.IsNullOrEmpty(CheckControl.ProposeUnitId)) | |||
|  |                     newCheckControl.ProposeUnitId = CheckControl.ProposeUnitId; | |||
|  |                 db.SubmitChanges(); | |||
|  |             } | |||
|  |         } | |||
|  |         public static int GetListCount(string projectId) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 IQueryable<Model.Check_CheckControl> q = db.Check_CheckControl; | |||
|  |                 if (!string.IsNullOrEmpty(projectId)) | |||
|  |                 { | |||
|  |                     q = q.Where(e => e.ProjectId == projectId); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 return q.Count(); | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         // 项目质量验收一次合格率 | |||
|  |         public static string GetOneCount(string projectId) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 List<Model.View_Check_SoptCheckDetail> TotalCheckDetailOKLists = SpotCheckDetailService.GetTotalOKSpotCheckDetailListByTime1(projectId, DateTime.Now); | |||
|  |                 List<Model.View_Check_SoptCheckDetail> TotalCheckDetailLists = SpotCheckDetailService.GetTotalAllSpotCheckDetailListByTime(projectId, DateTime.Now); | |||
|  |                 double result = 0; | |||
|  |                 if (TotalCheckDetailOKLists.Count > 0 && TotalCheckDetailLists.Count > 0) | |||
|  |                 { | |||
|  |                     var a = Convert.ToDouble(TotalCheckDetailOKLists.Count); | |||
|  |                     var b = Convert.ToDouble(TotalCheckDetailLists.Count); | |||
|  |                     result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 return result.ToString(); | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         // 项目施工资料同步率 | |||
|  |         public static string GetConstruction(string projectId) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 List<Model.View_Check_SoptCheckDetail> totalCheckDetailDataOKLists = SpotCheckDetailService.GetAllDataOkSpotCheckDetailListByTime(projectId, DateTime.Now); | |||
|  |                 List<Model.View_Check_SoptCheckDetail> totalCheckDetailOKLists = SpotCheckDetailService.GetTotalOKSpotCheckDetailListByTime1(projectId, DateTime.Now); | |||
|  |                 totalCheckDetailOKLists = totalCheckDetailOKLists.Where(x => x.IsShow == true).ToList();  //需要上传资料的IsShow为true | |||
|  |                 double result = 0; | |||
|  |                 if (totalCheckDetailDataOKLists.Count > 0 && totalCheckDetailOKLists.Count > 0) | |||
|  |                 { | |||
|  |                     var a = Convert.ToDouble(totalCheckDetailDataOKLists.Count); | |||
|  |                     var b = Convert.ToDouble(totalCheckDetailOKLists.Count); | |||
|  |                     result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 return result.ToString(); | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         // 项目质量验收一次合格率 | |||
|  |         public static string GetQuSuccess(string projectId) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 List<Model.View_Check_JointCheckDetail> totalCheckLists = JointCheckDetailService.GetTotalJointCheckDetailListByTime(projectId, DateTime.Now); | |||
|  |                 int a = totalCheckLists.Where(x => x.OK == 1).Count(); | |||
|  |                 double result = 0; | |||
|  |                 if (a > 0 && totalCheckLists.Count > 0) | |||
|  |                 { | |||
|  |                     var b = Convert.ToDouble(totalCheckLists.Count); | |||
|  |                     result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 return result.ToString(); | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         // 项目质量控制点统计完成率 | |||
|  |         public static string GetConSuccess(string projectId) | |||
|  |         { | |||
|  |             using (var db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 Model.Num num = new Model.Num(); | |||
|  |                 var controlItemAndCycles = (from x in db.WBS_ControlItemAndCycle | |||
|  |                                             where x.ProjectId == projectId && x.IsApprove == true | |||
|  |                                             orderby x.ControlItemAndCycleCode | |||
|  |                                             select x).ToList(); | |||
|  |                 var oKSpotCheckDetails = (from x in db.Check_SpotCheckDetail | |||
|  |                                           join y in db.Check_SpotCheck | |||
|  |                                           on x.SpotCheckCode equals y.SpotCheckCode | |||
|  |                                           where x.IsOK == true && y.ProjectId == projectId | |||
|  |                                           select x).ToList(); | |||
|  |                 var a = Convert.ToDouble(oKSpotCheckDetails.Count); | |||
|  |                 var b = Convert.ToDouble(controlItemAndCycles.Count); | |||
|  |                 double result = 0; | |||
|  | 
 | |||
|  |                 if (a > 0 && b > 0) | |||
|  |                 { | |||
|  |                     result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 return result.ToString(); | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  |     } | |||
|  | } |