检验批委托速度优化

This commit is contained in:
2024-07-18 14:51:16 +08:00
parent d985c413b3
commit 98012f9450
38 changed files with 941 additions and 145 deletions
@@ -72,20 +72,22 @@ namespace FineUIPro.Web.common.ProjectSet
{
//string unitid = this.tvUnit.SelectedNodeID;
string strSql = @"SELECT WED_ID,WED_Code, WED_Name FROM dbo.HJGL_BS_Welder
WHERE WED_ID NOT IN(SELECT WED_ID FROM Project_Welder WHERE ProjectId =@ProjectId)
AND IsOAM=1";
string strSql = @"SELECT W.WED_ID, W.WED_Code, W.WED_Name
FROM dbo.HJGL_BS_Welder W
LEFT JOIN Project_Welder PW ON W.WED_ID = PW.WED_ID AND PW.ProjectId = @ProjectId
WHERE PW.WED_ID IS NULL
AND W.IsOAM = 1 ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", ProjectId));
if (!string.IsNullOrEmpty(txtWeldCode.Text))
{
strSql += " AND WED_Code LIKE @WED_Code";
strSql += " AND W.WED_Code LIKE @WED_Code";
listStr.Add(new SqlParameter("@WED_Code", "%" + this.txtWeldCode.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.txtWeldName.Text))
{
strSql += " AND WED_Name LIKE @WED_Name";
strSql += " AND W.WED_Name LIKE @WED_Name";
listStr.Add(new SqlParameter("@WED_Name", "%" + this.txtWeldName.Text.Trim() + "%"));
}
SqlParameter[] parameter = listStr.ToArray();
+97 -29
View File
@@ -8,6 +8,7 @@ using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using System.Text;
using System.Threading.Tasks;
namespace FineUIPro.Web.common
{
@@ -24,40 +25,49 @@ namespace FineUIPro.Web.common
this.drpProject.DataBind();
Funs.FineUIPleaseSelect(this.drpProject);
this.drpProject.SelectedValue = this.CurrUser.LoginProjectId;
//更新要求完成日期
List<Model.HJGL_BO_Batch> batchLists = (from x in Funs.DB.HJGL_BO_Batch
where x.ProjectId == this.drpProject.SelectedValue && !x.AskCompleteDate.HasValue
select x).ToList();
//委托单不为null且 对应批明细的委托单明细状态为2
List<Model.HJGL_BO_Batch> Allbatch = (from x in Funs.DB.HJGL_BO_Batch
where x.ProjectId == this.drpProject.SelectedValue && !x.AskCompleteDate.HasValue
select x).ToList();
var batchdetails = from x in Funs.DB.HJGL_BO_BatchDetail
join y in Funs.DB.HJGL_BO_Batch on x.BatchId equals y.BatchId
where y.ProjectId == this.drpProject.SelectedValue
select x;
where y.ProjectId == this.drpProject.SelectedValue && !y.AskCompleteDate.HasValue
select x; //获取所以批明细
var trustdetails = from x in Funs.DB.HJGL_CH_TrustItem
join y in Funs.DB.HJGL_BO_BatchDetail on x.BatchDetailId equals y.BatchDetailId
join z in Funs.DB.HJGL_BO_Batch on y.BatchId equals z.BatchId
where z.ProjectId == this.drpProject.SelectedValue
select x;
foreach (var item in batchLists)
{
bool isCheck = true;
var batchdetail = from x in batchdetails where x.BatchId == item.BatchId select x.BatchDetailId;
var trust = BLL.HJGL_TrustManageEditService.GetTrustByBatchId(item.BatchId);
var ndtr = BLL.HJGL_DetectionService.GetNDTRateByNDTRID(item.NDTR_ID);
join z in Funs.DB.HJGL_BO_Batch on y.BatchId equals z.BatchId
where z.ProjectId == this.drpProject.SelectedValue && !z.AskCompleteDate.HasValue
select x; //获取所有批明细对应委托明细
List<Model.HJGL_BO_Batch> batchLists2 = (from x in Allbatch
join m in Funs.DB.HJGL_BS_NDTRate on x.NDTR_ID equals m.NDTR_ID
join n in Funs.DB.HJGL_CH_Trust on x.BatchId equals n.BatchId into g
from t in g.DefaultIfEmpty()
where m.NDTR_Rate.Value==0 && t==null
select x).Distinct().ToList(); //获取委托单为null且检测比例是0的
var batchLists = (from x in Allbatch
join n in Funs.DB.HJGL_CH_Trust on x.BatchId equals n.BatchId into g
select x).Distinct().ToList();
var batchdetailsList = batchdetails.ToList();
var trustdetailsList = trustdetails.ToList();
var batchLists4 = (
from x in batchLists
join y in batchdetailsList on x.BatchId equals y.BatchId
join m in trustdetailsList on y.BatchDetailId equals m.BatchDetailId
group new { x, m } by x into g
where g.All(item => item.m.States == "2")
select g.First().x
).Distinct().ToList();
batchLists2.AddRange(batchLists4);
batchLists2= batchLists2.Distinct().ToList();
foreach (var item in batchLists2)
{
var batchdetail = from x in batchdetails where x.BatchId == item.BatchId select x.BatchDetailId; //获取批次详情ID
var trustdetail = from x in trustdetails where batchdetail.Contains(x.BatchDetailId) orderby x.FeedbackDate descending select x;
if (trust == null && ndtr.NDTR_Rate.Value != 0)
{
isCheck = false;
}
else
{
if (trustdetail.Where(x => x.States != "2").Count() > 0)
{
isCheck = false;
}
}
//检测合格,更新要求完成日期
if (isCheck && item.BatchIsClosed == true)
if ( item.BatchIsClosed == true)
{
DateTime date = DateTime.Now;
if (trustdetail.Count() > 0)
{
@@ -70,6 +80,65 @@ namespace FineUIPro.Web.common
BLL.HJGL_BO_BatchService.UpdateBatch(item);
}
}
#region
//List<Model.HJGL_BO_Batch> batchLists3= new List<Model.HJGL_BO_Batch>();
//List<Model.HJGL_BO_Batch> batchLists = (from x in Funs.DB.HJGL_BO_Batch
// where x.ProjectId == this.drpProject.SelectedValue && !x.AskCompleteDate.HasValue
// select x).ToList();
//var batchdetails = from x in Funs.DB.HJGL_BO_BatchDetail
// join y in Funs.DB.HJGL_BO_Batch on x.BatchId equals y.BatchId
// where y.ProjectId == this.drpProject.SelectedValue
// select x; //获取所以批明细
//var trustdetails = from x in Funs.DB.HJGL_CH_TrustItem
// join y in Funs.DB.HJGL_BO_BatchDetail on x.BatchDetailId equals y.BatchDetailId
// join z in Funs.DB.HJGL_BO_Batch on y.BatchId equals z.BatchId
// where z.ProjectId == this.drpProject.SelectedValue
// select x; //获取所有批明细对应委托明细
//foreach (var item in batchLists)
//{
// bool isCheck = true;
// var batchdetail = from x in batchdetails where x.BatchId == item.BatchId select x.BatchDetailId; //获取批次详情ID
// //var trust = BLL.HJGL_TrustManageEditService.GetTrustByBatchId(item.BatchId); //根据批Id获取委托信息
// var trust = Funs.DB.HJGL_CH_Trust.FirstOrDefault(x => x.BatchId == item.BatchId); //根据批Id获取委托信息
// var ndtr = Funs.DB.HJGL_BS_NDTRate.FirstOrDefault(x => x.NDTR_ID == item.NDTR_ID); //根据探伤比例Id获取探伤比例
// var trustdetail = from x in trustdetails where batchdetail.Contains(x.BatchDetailId) orderby x.FeedbackDate descending select x;
// if (trust == null && ndtr.NDTR_Rate.Value != 0)
// {
// isCheck = false;
// }
// else
// {
// if (trustdetail.Any(x => x.States != "2"))
// {
// isCheck = false;
// }
// }
// if (isCheck)
// {
// batchLists3.Add(item);
// }
// //检测合格,更新要求完成日期
// if (isCheck && item.BatchIsClosed == true)
// {
// DateTime date = DateTime.Now;
// if (trustdetail.Count() > 0)
// {
// if (trustdetail.FirstOrDefault().FeedbackDate != null)
// {
// date = trustdetail.FirstOrDefault().FeedbackDate.Value;
// }
// }
// item.AskCompleteDate = date;
// BLL.HJGL_BO_BatchService.UpdateBatch(item);
// }
//}
#endregion
BindProject();
BindBatch();
//BindGetWelder();
@@ -80,8 +149,7 @@ namespace FineUIPro.Web.common
//BindCheckNoAudit();
}
}
#region
#region
/// <summary>
/// 绑定项目数据
/// </summary>