using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; namespace BLL { public static class APITestPackageService { #region 获取试压包号 /// /// 获取试压包号 /// /// 单位工程 /// 是否完成 /// 试压包号 /// public static List getTestPackageNo(string unitWorkId, bool isFinish, string testPackageNo) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var dataList = from x in db.PTP_TestPackage where x.UnitWorkId == unitWorkId select x; if (!string.IsNullOrEmpty(testPackageNo)) { dataList = dataList.Where(e => e.TestPackageNo.Contains(testPackageNo)); } if (isFinish == true) { dataList = dataList.Where(e => e.AduditDate.HasValue == true); } else { dataList = dataList.Where(e => e.AduditDate.HasValue == false); } var getDataLists = (from x in dataList orderby x.TestPackageNo select new Model.BaseInfoItem { BaseInfoId = x.PTP_ID, BaseInfoCode = x.TestPackageNo, }).ToList(); return getDataLists; } } #endregion #region 获取尾项检查试压包号 /// /// 获取尾项检查试压包号 /// /// 单位工程 /// 是否完成 /// 试压包号 /// public static List getItemEndCheckTestPackageNo(string unitWorkId, string testPackageNo) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var dataList = from x in db.PTP_TestPackage where x.UnitWorkId == unitWorkId && x.AduditDate.HasValue select x; if (!string.IsNullOrEmpty(testPackageNo)) { dataList = dataList.Where(e => e.TestPackageNo.Contains(testPackageNo)); } var getDataLists = (from x in dataList orderby x.TestPackageNo select new Model.BaseInfoItem { BaseInfoId = x.PTP_ID, BaseInfoCode = x.TestPackageNo, }).ToList(); return getDataLists; } } #endregion #region public static List getItemEndCheckList(string pTP_ID, int index, int page) { using (var db = new Model.SGGLDB(Funs.ConnString)) { IQueryable q = db.View_PTP_ItemEndCheckList; List ids = new List(); if (!string.IsNullOrEmpty(pTP_ID)) { q = q.Where(e => e.PTP_ID == pTP_ID); } var qq1 = from x in q orderby x.CompileDate descending select new { x.ItemEndCheckListId, x.PTP_ID, x.CompileMan, x.CompileDate, x.State, x.AIsOK, x.BIsOK, x.AOKState, x.CompileManName, x.TestPackageNo, x.TestPackageName, AIsOKStr = BLL.ItemEndCheckListService.ConvertAState(x.ItemEndCheckListId), BIsOKStr = BLL.ItemEndCheckListService.ConvertBState(x.ItemEndCheckListId), x.StateStr, AuditManName = BLL.ItemEndCheckListService.ConvertMan(x.ItemEndCheckListId) }; var list = qq1.Skip(index * page).Take(page).ToList(); List listRes = new List(); for (int i = 0; i < list.Count; i++) { Model.View_PTP_ItemEndCheckList x = new Model.View_PTP_ItemEndCheckList(); x.ItemEndCheckListId = list[i].ItemEndCheckListId; x.PTP_ID = list[i].PTP_ID; x.CompileMan = list[i].CompileMan; x.CompileDate = list[i].CompileDate; x.State = list[i].State; x.AIsOK = list[i].AIsOK; x.BIsOK = list[i].BIsOK; x.AOKState = list[i].AOKState; x.CompileManName = list[i].CompileManName; x.TestPackageNo = list[i].TestPackageNo; x.TestPackageName = list[i].TestPackageName; x.AIsOKStr = list[i].AIsOKStr; x.BIsOKStr = list[i].BIsOKStr; x.StateStr = list[i].StateStr; x.AuditManName = list[i].AuditManName; listRes.Add(x); } return listRes; } } public static List getItemEndCheckPipeline(string pTP_ID) { using (var db = new Model.SGGLDB(Funs.ConnString)) { IQueryable q = from x in db.HJGL_Pipeline join y in db.PTP_PipelineList on x.PipelineId equals y.PipelineId where y.PTP_ID == pTP_ID select x; List ids = new List(); var list = (from x in q orderby x.PipelineCode select new { x.PipelineId, x.PipelineCode, }).ToList(); List listRes = new List(); for (int i = 0; i < list.Count; i++) { Model.HJGL_Pipeline x = new Model.HJGL_Pipeline(); x.PipelineId = list[i].PipelineId; x.PipelineCode = list[i].PipelineCode; listRes.Add(x); } return listRes; } } public static List getHandleType(string state) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var list = BLL.TestPackageEditService.GetHandleTypeByState(state); List dataList = new List(); foreach (var item in list) { Model.BaseInfoItem b = new Model.BaseInfoItem(); b.BaseInfoId = item.Value; b.BaseInfoName = item.Text; dataList.Add(b); } return dataList; } } public static List getHandleMan(string state, string projectId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List users = new List(); if (state == BLL.Const.TestPackage_Compile) { users = BLL.SitePerson_PersonService.GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(projectId, BLL.Const.ProjectUnitType_2, string.Empty); } else if (state == BLL.Const.TestPackage_Audit1 || state == BLL.Const.TestPackage_ReAudit2) { users = BLL.SitePerson_PersonService.GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(projectId, BLL.Const.ProjectUnitType_1, string.Empty); } else if (state == BLL.Const.TestPackage_Audit2) { users = BLL.SitePerson_PersonService.GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(projectId, BLL.Const.ProjectUnitType_3, string.Empty); } else if (state == BLL.Const.TestPackage_Audit3) { } List dataList = new List(); foreach (var item in users) { Model.BaseInfoItem b = new Model.BaseInfoItem { BaseInfoId = item.PersonId, BaseInfoName = item.PersonName }; dataList.Add(b); } return dataList; } } public static List getChangeStateHandleMan(string state, string projectId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List users = new List(); if (state == BLL.Const.TestPackage_ReAudit2) { users = BLL.SitePerson_PersonService.GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(projectId, BLL.Const.ProjectUnitType_2, string.Empty); } else if (state == BLL.Const.TestPackage_Audit3) { users = BLL.SitePerson_PersonService.GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(projectId, BLL.Const.ProjectUnitType_3, string.Empty); } List dataList = new List(); foreach (var item in users) { Model.BaseInfoItem b = new Model.BaseInfoItem { BaseInfoId = item.PersonId, BaseInfoName = item.PersonName }; dataList.Add(b); } return dataList; } } #endregion #region 根据试压包ID获取明细 /// /// 根据试压包ID获取明细 /// /// /// public static List GetTestPackageDetail(string ptp_Id) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getDataLists = (from x in db.View_PTP_TestPackageAudit where x.PTP_ID == ptp_Id orderby x.PipelineCode select new Model.TestPackageItem { PipelineCode = x.PipelineCode, WeldJointCount = x.WeldJointCount, WeldJointCountT = x.WeldJointCountT, CountS = x.CountS, CountU = x.CountU, NDTR_Name = x.NDTR_Name, Ratio = x.Ratio }).ToList(); return getDataLists; } } #endregion #region 获取具备试压条件的试压包提醒 /// /// 获取具备试压条件的试压包提醒 /// /// /// public static List GetCanTestPackageWarning(string projectId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List canTest = new List(); // 获取项目中未完成的试压包 var testPackage = from x in db.PTP_TestPackage where x.ProjectId == projectId && !x.FinishDate.HasValue select x; foreach (var t in testPackage) { string strSql = @"SELECT ProjectId,PTP_ID,WeldJointCount,WeldJointCountT,CountU FROM dbo.View_PTP_TestPackageAudit WHERE PTP_ID=@PTP_ID"; List listStr = new List(); listStr.Add(new SqlParameter("@PTP_ID", t.PTP_ID)); SqlParameter[] parameter = listStr.ToArray(); DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter); if (IsCanTest(dt)) { Model.BaseInfoItem item = new Model.BaseInfoItem(); item.BaseInfoId = t.PTP_ID; item.BaseInfoCode = "具备试压条件:" + t.TestPackageNo; canTest.Add(item); } } return canTest; } } private static bool IsCanTest(DataTable dt) { bool isPass = true; foreach (DataRow row in dt.Rows) { int totalJoint = Convert.ToInt32(row["WeldJointCount"]); int compJoint = Convert.ToInt32(row["WeldJointCountT"]); int noPassJoint = Convert.ToInt32(row["CountU"]); if (totalJoint != compJoint || noPassJoint != 0) { isPass = false; break; } } return isPass; } #endregion public static Model.View_PTP_ItemEndCheckList GetViewItemEndCheckList(string itemEndCheckListId) { using (var db = new Model.SGGLDB(Funs.ConnString)) { var res = db.View_PTP_ItemEndCheckList.FirstOrDefault(e => e.ItemEndCheckListId == itemEndCheckListId); res.PTP_ID = res.PTP_ID; res.CompileMan = res.CompileMan; res.CompileDate = res.CompileDate; res.State = res.State; res.AIsOK = res.AIsOK; res.BIsOK = res.BIsOK; res.AOKState = res.AOKState; res.TestPackageNo = res.TestPackageNo; res.TestPackageName = res.TestPackageName; return res; } } public static Model.PTP_ItemEndCheckList GetItemEndCheckList(string itemEndCheckListId) { using (var db = new Model.SGGLDB(Funs.ConnString)) { var res = db.PTP_ItemEndCheckList.FirstOrDefault(e => e.ItemEndCheckListId == itemEndCheckListId); res.PTP_ID = res.PTP_ID; res.CompileMan = res.CompileMan; res.CompileDate = res.CompileDate; res.State = res.State; res.AIsOK = res.AIsOK; res.BIsOK = res.BIsOK; res.AOKState = res.AOKState; return res; } } public static List getItemEndCheckDetail(string itemEndCheckListId) { using (var db = new Model.SGGLDB(Funs.ConnString)) { IQueryable q = db.View_PTP_ItemEndCheck; if (!string.IsNullOrEmpty(itemEndCheckListId)) { q = q.Where(e => e.ItemEndCheckListId == itemEndCheckListId); } var qres = from x in q orderby x.PipelineCode ascending select new { x.ItemCheckId, x.PipelineId, x.Content, x.ItemType, x.Result, x.ItemEndCheckListId, x.Remark, x.PipelineCode, }; var list = qres.ToList(); List res = new List(); foreach (var item in list) { Model.View_PTP_ItemEndCheck x = new Model.View_PTP_ItemEndCheck(); x.ItemCheckId = item.ItemCheckId; x.PipelineId = item.PipelineId; x.Content = item.Content; x.ItemType = item.ItemType; x.Result = item.Result; x.ItemEndCheckListId = item.ItemEndCheckListId; x.Remark = item.Remark; x.PipelineCode = item.PipelineCode; res.Add(x); } return res; } } public static List getTestPackageApprove(string itemEndCheckListId) { using (var db = new Model.SGGLDB(Funs.ConnString)) { IQueryable q = db.View_PTP_TestPackageApprove; if (!string.IsNullOrEmpty(itemEndCheckListId)) { q = q.Where(e => e.ItemEndCheckListId == itemEndCheckListId); } var qres = from x in q where x.ApproveDate != null orderby x.ADate ascending select new { x.ApproveId, x.ApproveDate, x.Opinion, x.ApproveMan, x.ApproveType, x.ItemEndCheckListId, x.ApproveManName, x.StateStr, }; var list = qres.ToList(); List res = new List(); foreach (var item in list) { Model.View_PTP_TestPackageApprove x = new Model.View_PTP_TestPackageApprove(); x.ApproveId = item.ApproveId; x.ApproveDate = item.ApproveDate; x.Opinion = item.Opinion; x.ApproveMan = item.ApproveMan; x.ApproveType = item.ApproveType; x.ItemEndCheckListId = item.ItemEndCheckListId; x.ApproveManName = item.ApproveManName; x.StateStr = item.StateStr; res.Add(x); } return res; } } #region 保存ItemEndCheckList /// /// 保存ItemEndCheckList /// /// 尾项记录 /// public static string SaveItemEndCheckList(Model.ItemEndCheckList newItem) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string message = string.Empty; string saveType = newItem.SaveOrSubmit; string oldState = newItem.OldState; string currUserId = newItem.CurrUserId; Model.PTP_ItemEndCheckList newItemEndCheckList = new Model.PTP_ItemEndCheckList { ItemEndCheckListId = newItem.ItemEndCheckListId, PTP_ID = newItem.PTP_ID, CompileMan = newItem.CompileMan, CompileDate = newItem.CompileDate, State = newItem.State, AIsOK = newItem.AIsOK, BIsOK = newItem.BIsOK, AOKState = newItem.AOKState, }; if (saveType == "save") { newItemEndCheckList.State = oldState; } var updateItemEndCheckList = db.PTP_ItemEndCheckList.FirstOrDefault(x => x.ItemEndCheckListId == newItem.ItemEndCheckListId); if (updateItemEndCheckList == null) { newItemEndCheckList.ItemEndCheckListId = SQLHelper.GetNewID(); db.PTP_ItemEndCheckList.InsertOnSubmit(newItemEndCheckList); db.SubmitChanges(); Model.PTP_TestPackageApprove approve1 = new Model.PTP_TestPackageApprove(); approve1.ApproveId = SQLHelper.GetNewID(typeof(Model.PTP_TestPackageApprove)); if (saveType == "submit") { approve1.ApproveDate = DateTime.Now; } approve1.ApproveMan = currUserId; approve1.ApproveType = BLL.Const.TestPackage_Compile; approve1.ItemEndCheckListId = newItemEndCheckList.ItemEndCheckListId; BLL.TestPackageApproveService.AddTestPackageApprove(approve1); } else { Model.PTP_TestPackageApprove approve1 = BLL.TestPackageApproveService.GetTestPackageApproveById(newItemEndCheckList.ItemEndCheckListId); if (approve1 != null && saveType == "submit") { approve1.ApproveDate = DateTime.Now; approve1.Opinion = newItem.TestPackageApproveItems[0].Opinion; BLL.TestPackageApproveService.UpdateTestPackageApprove(approve1); } var getItemEndCheck = BLL.AItemEndCheckService.GetItemEndCheckByItemEndCheckListId(newItemEndCheckList.ItemEndCheckListId); if (newItemEndCheckList.State == Const.TestPackage_Complete) { bool b = true; //B项是否全部整改完成 var BItems = getItemEndCheck.Where(x => x.ItemType == "B"); foreach (var item in BItems) { if (item.Result != "合格") { b = false; } } if (b) { newItemEndCheckList.State = Const.TestPackage_Complete; } else { newItemEndCheckList.State = BLL.Const.TestPackage_ReAudit2; var approve2 = db.PTP_TestPackageApprove.FirstOrDefault(x => x.ItemEndCheckListId == newItemEndCheckList.ItemEndCheckListId && x.ApproveType == BLL.Const.TestPackage_Audit1); Model.PTP_TestPackageApprove approveR = new Model.PTP_TestPackageApprove(); approveR.ApproveId = SQLHelper.GetNewID(typeof(Model.PTP_TestPackageApprove)); if (approve2 != null) { approveR.ApproveMan = approve2.ApproveMan; } approveR.ApproveType = BLL.Const.TestPackage_ReAudit2; approveR.ItemEndCheckListId = newItemEndCheckList.ItemEndCheckListId; BLL.TestPackageApproveService.AddTestPackageApprove(approveR); } } ItemEndCheckListService.UpdateItemEndCheckList(newItemEndCheckList); //// 删除检查明细项 AItemEndCheckService.DeleteAllItemEndCheckByID(newItemEndCheckList.ItemEndCheckListId); } if (newItem.ItemEndCheckItems != null && newItem.ItemEndCheckItems.Count() > 0) { bool flag = true; foreach (var item in newItem.ItemEndCheckItems) { if (item.Content != "/") { Model.PTP_ItemEndCheck newItemEndCheck = new Model.PTP_ItemEndCheck(); newItemEndCheck.ItemCheckId = SQLHelper.GetNewID(); newItemEndCheck.PipelineId = item.PipelineId; newItemEndCheck.Content = item.Content; newItemEndCheck.ItemType = item.ItemType; newItemEndCheck.Result = item.Result; newItemEndCheck.ItemEndCheckListId = newItemEndCheckList.ItemEndCheckListId; newItemEndCheck.Remark = item.Remark; BLL.AItemEndCheckService.AddAItemEndCheckForApi(newItemEndCheck); } else { Model.PTP_ItemEndCheck newItemEndCheck = new Model.PTP_ItemEndCheck(); newItemEndCheck.ItemCheckId = SQLHelper.GetNewID(); newItemEndCheck.ItemEndCheckListId = item.ItemEndCheckListId; newItemEndCheck.PipelineId = item.PipelineId; newItemEndCheck.Content = "/"; newItemEndCheck.ItemType = "/"; newItemEndCheck.Remark = item.Remark; AItemEndCheckService.AddAItemEndCheck(newItemEndCheck); } if (item.ItemType == "A" && item.Result != "合格") { flag = false; } } if (flag) { newItemEndCheckList.AOKState = true; } else { newItemEndCheckList.AOKState = null; } ItemEndCheckListService.UpdateItemEndCheckList(newItemEndCheckList); } if (newItem.TestPackageApproveItems != null && newItem.TestPackageApproveItems.Count() > 0) { if (saveType == "submit") { if (newItem.State != Const.TestPackage_Complete) { foreach (var item in newItem.TestPackageApproveItems) { Model.PTP_TestPackageApprove newTestPackageApprove = new Model.PTP_TestPackageApprove(); newTestPackageApprove.ApproveId = SQLHelper.GetNewID(); newTestPackageApprove.Opinion = item.Opinion; if (!string.IsNullOrEmpty(item.ApproveMan)) { newTestPackageApprove.ApproveMan = item.ApproveMan; } newTestPackageApprove.ApproveType = item.ApproveType; newTestPackageApprove.ItemEndCheckListId = newItemEndCheckList.ItemEndCheckListId; BLL.TestPackageApproveService.AddTestPackageApproveForApi(newTestPackageApprove); } } } } return message; } } #endregion } }