using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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.FinishDate.HasValue == true);
}
else
{
dataList = dataList.Where(e => e.FinishDate.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 根据试压包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;
return new List();
}
}
#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
}
}