2024-01-10

This commit is contained in:
2024-01-10 19:41:14 +08:00
parent 62fd72edf7
commit 396611a39d
4 changed files with 645 additions and 205 deletions
@@ -18,23 +18,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
{
public int pageSize = PipelineService.pageSize;
public static List<Model.HJGL_WeldJoint> WeldJointlist = new List<Model.HJGL_WeldJoint>();
/// <summary>
/// 预制口总达因
/// </summary>
public static string ShopSumSize = "0";
/// <summary>
/// 安装口总达因
/// </summary>
public static string FieldSumSize = "0";
/// <summary>
/// 预制口总数量
/// </summary>
public static string ShopSum = "0";
/// <summary>
/// 安装口总数量
/// </summary>
public static string FieldSum = "0";
protected void Page_Load(object sender, EventArgs e)
{
@@ -241,30 +224,41 @@ namespace FineUIPro.Web.HJGL.WeldingManage
if (pipeline != null)
{
this.hdUnitWorkId.Text = this.tvControlItem.SelectedNode.ParentNode.NodeID;
TbPipeline.Hidden = false;
TbUnitWork.Hidden = true;
TbUnitWork2.Hidden = true;
this.BindGrid1(this.tvControlItem.SelectedNodeID);
this.BindGrid2(this.tvControlItem.SelectedNodeID);
this.BindGrid3(this.tvControlItem.SelectedNodeID);
this.lbSinglePreRate.Label = "图纸预制率(达因)";
this.lbSinglePreRate.Text = GetRateByPipelineid(this.tvControlItem.SelectedNodeID);
this.lbSinglePreRateByWeldJoint.Label = "图纸预制率(焊口)";
this.lbSinglePreRateByWeldJoint.Text = GetWeldJointRateByPipelineid(this.tvControlItem.SelectedNodeID);
lbPipeSinglePreRate.Text = GetRateByPipelineid(this.tvControlItem.SelectedNodeID);
lbPipeShopSize.Text = GetShopSumDinByPipelineid(this.tvControlItem.SelectedNodeID).ToString();
lbPipeFiledSize.Text = GetFieldSumDinByPipelineid(this.tvControlItem.SelectedNodeID).ToString();
lbPipeSinglePreRateByWeldJoint.Text = GetWeldJointRateByPipelineid(this.tvControlItem.SelectedNodeID);
lbPipeShopSum.Text = GetShopSumByPipelineid(this.tvControlItem.SelectedNodeID).ToString();
lbPipeFiledSum.Text = GetFieldSumByPipelineid(this.tvControlItem.SelectedNodeID).ToString();
}
else
{
this.hdUnitWorkId.Text = this.tvControlItem.SelectedNodeID;
this.lbSinglePreRate.Label = "主项预制率(达因)";
this.lbSinglePreRate.Text = GetRateByUnitWork(this.tvControlItem.SelectedNodeID);
this.lbSinglePreRateByWeldJoint.Label = "主项预制率(焊口)";
this.lbSinglePreRateByWeldJoint.Text = GetWeldJointRateByUnitWork(this.tvControlItem.SelectedNodeID);
TbPipeline.Hidden = true;
TbUnitWork.Hidden = false;
TbUnitWork2.Hidden = false;
lbUWTotalDin.Text= GetSumDinByUnitWorkId(this.tvControlItem.SelectedNodeID).ToString();
lbUWPreRate.Text = GetRateByUnitWork(this.tvControlItem.SelectedNodeID);
lbUWShopSize.Text = GetShopSumDinByUnitWork(this.tvControlItem.SelectedNodeID).ToString();
lbUWFiledSize.Text = GetFieldSumDinByUnitWork2(this.tvControlItem.SelectedNodeID).ToString();
lbUWSinglePreRateByDin.Text = GetShopRateByUnitWork(this.tvControlItem.SelectedNodeID).ToString();
lbUWShopSizeByLineShop.Text= GetShopSumDinByUnitWork(this.tvControlItem.SelectedNodeID).ToString();
lbUWFiledSizeByLineShop.Text= GetFieldSumDinByUnitWork(this.tvControlItem.SelectedNodeID).ToString();
lbUWSinglePreRateByWeldJoint.Text = GetWeldJointRateByUnitWork(this.tvControlItem.SelectedNodeID).ToString();
lbUWShopSum.Text = GetShopSumByUnitWork(this.tvControlItem.SelectedNodeID).ToString();
lbUWFiledSum.Text = GetFieldSumByUnitWork(this.tvControlItem.SelectedNodeID).ToString();
}
this.lbShopSize.Text = ShopSumSize;
this.lbFiledSize.Text = FieldSumSize;
this.lbShopSum.Text = ShopSum;
this.lbFiledSum.Text = FieldSum;
}
}
@@ -411,90 +405,18 @@ namespace FineUIPro.Web.HJGL.WeldingManage
#endregion
#endregion
#region
private string GetRateByUnitWork(string unitworkid)
{
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.UnitWorkId == unitworkid select x;
string rate = "";
ShopSumSize = "0";
FieldSumSize = "0";
if (q != null && q.Count() > 0)
{
var proSum = (from x in q
where x.JointAttribute == "预制口"
group x by x.UnitWorkId into g
select new
{
SizeSum = g.Sum(x => x.Size)
}).FirstOrDefault()?.SizeSum;
var FieldSum = (from x in q
where x.JointAttribute == "安装口"
group x by x.UnitWorkId into g
select new
{
SizeSum = g.Sum(x => x.Size)
}).FirstOrDefault()?.SizeSum;
var AllSum = (from x in q
group x by x.UnitWorkId into g
select new
{
SizeSum = g.Sum(x => x.Size)
}).FirstOrDefault()?.SizeSum;
proSum = (proSum != null) ? proSum : 0;
FieldSum = (FieldSum != null) ? FieldSum : 0;
ShopSumSize = proSum.ToString();
FieldSumSize = FieldSum.ToString();
if (AllSum > 0)
{
var a = (decimal)100 * proSum / AllSum;
rate = Math.Round((decimal)a, 1).ToString() + "%";
}
return rate;
}
return "0%";
}
private string GetWeldJointRateByUnitWork(string unitworkid)
{
string rate = "";
int shopNum = 0;
int fieldNum = 0;
int AllNum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.UnitWorkId == unitworkid select x;
if (q != null && q.Count() > 0)
{
shopNum = (from x in q
where x.JointAttribute == "预制口"
select x
).Count();
fieldNum = (from x in q
where x.JointAttribute == "安装口"
select x
).Count();
ShopSum = shopNum.ToString();
FieldSum = fieldNum.ToString();
AllNum = shopNum + fieldNum;
if (AllNum > 0)
{
var a = (decimal)100 * shopNum / AllNum;
rate = Math.Round((decimal)a, 1).ToString() + "%";
}
return rate;
}
return "0%";
}
#region 线
/// <summary>
/// 图纸预制率(达因)(预制口总达因/主项总达因数)
/// </summary>
/// <param name="pipelineid"></param>
/// <returns></returns>
private string GetRateByPipelineid(string pipelineid)
{
string rate = "";
ShopSumSize = "0";
FieldSumSize = "0";
string rate = "";
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.PipelineId == pipelineid select x;
var q = from x in db.View_HJGL_WeldJoint where x.PipelineId == pipelineid && x.IsTwoJoint == null select x;
if (q != null && q.Count() > 0)
{
var proSumModel = (from x in q
@@ -505,14 +427,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
SizeSum = g.Sum(x => x.Size)
}).FirstOrDefault();
var proSum = (proSumModel != null) ? proSumModel.SizeSum : 0;
var FieldSumModel = (from x in q
where x.JointAttribute == "安装口"
group x by x.PipelineId into g
select new
{
SizeSum = g.Sum(x => x.Size)
}).FirstOrDefault();
var FieldSum = (FieldSumModel != null) ? FieldSumModel.SizeSum : 0;
var AllSumModel = (from x in q
group x by x.PipelineId into g
select new
@@ -522,9 +437,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
var AllSum = (AllSumModel != null) ? AllSumModel.SizeSum : 0;
proSum = (proSum != null) ? proSum : 0;
FieldSum = (FieldSum != null) ? FieldSum : 0;
ShopSumSize = proSum.ToString();
FieldSumSize = FieldSum.ToString();
if (AllSum > 0)
{
var a = (decimal)100 * proSum / AllSum;
@@ -535,8 +447,60 @@ namespace FineUIPro.Web.HJGL.WeldingManage
}
return "0%";
}
/// <summary>
/// 获取预制率(焊口) 预制口数量/总焊口数量
/// 管线预制口总达因
/// </summary>
/// <param name="pipelineid"></param>
/// <returns></returns>
private decimal GetShopSumDinByPipelineid(string pipelineid)
{
decimal sum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.PipelineId == pipelineid && x.IsTwoJoint == null select x;
if (q != null && q.Count() > 0)
{
var ShopSum = (from x in q
where x.JointAttribute == "预制口"
group x by x.PipelineId into g
select new
{
SizeSum = g.Sum(x => x.Size)
}).FirstOrDefault()?.SizeSum;
ShopSum = (ShopSum != null) ? ShopSum : 0;
sum = (decimal)ShopSum;
return sum;
}
return 0;
}
/// <summary>
/// 管线安装口总达因
/// </summary>
/// <param name="pipelineid"></param>
/// <returns></returns>
private decimal GetFieldSumDinByPipelineid(string pipelineid)
{
decimal sum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.PipelineId == pipelineid && x.IsTwoJoint == null select x;
if (q != null && q.Count() > 0)
{
var FieldSum = (from x in q
where x.JointAttribute == "安装口"
group x by x.PipelineId into g
select new
{
SizeSum = g.Sum(x => x.Size)
}).FirstOrDefault()?.SizeSum;
FieldSum = (FieldSum != null) ? FieldSum : 0;
sum = (decimal)FieldSum;
return sum;
}
return 0;
}
/// <summary>
/// 图纸预制率(焊口) 预制口数量/总焊口数量
/// </summary>
/// <param name="pipelineid"></param>
/// <returns></returns>
@@ -547,7 +511,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
int fieldNum = 0;
int AllNum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.PipelineId == pipelineid select x;
var q = from x in db.View_HJGL_WeldJoint where x.PipelineId == pipelineid && x.IsTwoJoint == null select x;
if (q != null && q.Count() > 0)
{
shopNum = (from x in q
@@ -558,8 +522,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
where x.JointAttribute == "安装口"
select x
).Count();
ShopSum = shopNum.ToString();
FieldSum = fieldNum.ToString();
AllNum = shopNum + fieldNum;
if (AllNum > 0)
@@ -573,6 +536,344 @@ namespace FineUIPro.Web.HJGL.WeldingManage
return "0%";
}
/// <summary>
/// 管线预制口总数量
/// </summary>
/// <param name="pipelineid"></param>
/// <returns></returns>
private int GetShopSumByPipelineid(string pipelineid)
{
int sum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.PipelineId == pipelineid && x.IsTwoJoint == null select x;
if (q != null && q.Count() > 0)
{
sum = (from x in q
where x.JointAttribute == "预制口"
select x
).Count();
return sum;
}
return 0;
}
/// <summary>
/// 管线安装口总数量
/// </summary>
/// <param name="pipelineid"></param>
/// <returns></returns>
private int GetFieldSumByPipelineid(string pipelineid)
{
int sum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.PipelineId == pipelineid && x.IsTwoJoint == null select x;
if (q != null && q.Count() > 0)
{
sum = (from x in q
where x.JointAttribute == "安装口"
select x
).Count();
return sum;
}
return 0;
}
/// <summary>
///管线总达因(根据管线id获取达因之和)
/// </summary>
/// <param name="pipelineid"></param>
/// <returns></returns>
private decimal GetSumDinByPipelineId(string pipelineid)
{
decimal sum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.PipelineId == pipelineid && x.IsTwoJoint == null select x;
if (q != null && q.Count() > 0)
{
sum = (from x in q
select x.Size
).Sum() ?? 0;
return sum;
}
return 0;
}
#endregion
#region
/// <summary>
/// 主项预制率(达因) 主项预制口总达因/主项总达因数
/// </summary>
/// <param name="unitworkid"></param>
/// <returns></returns>
private string GetRateByUnitWork(string unitworkid)
{
string rate = "";
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.UnitWorkId == unitworkid && x.IsTwoJoint == null select x;
if (q != null && q.Count() > 0)
{
var proSumModel = (from x in q
where x.JointAttribute == "预制口" && x.PipeArea == PipelineService.PipeArea_SHOP
group x by x.UnitWorkId into g
select new
{
SizeSum = g.Sum(x => x.Size)
}).FirstOrDefault();
var proSum = (proSumModel != null) ? proSumModel.SizeSum : 0;
var AllSumModel = (from x in q
group x by x.UnitWorkId into g
select new
{
SizeSum = g.Sum(x => x.Size)
}).FirstOrDefault();
var AllSum = (AllSumModel != null) ? AllSumModel.SizeSum : 0;
proSum = (proSum != null) ? proSum : 0;
if (AllSum > 0)
{
var a = (decimal)100 * proSum / AllSum;
rate = Math.Round((decimal)a, 1).ToString() + "%";
}
return rate;
}
return "0%";
}
/// <summary>
///主项预制口总达因《管线划分工厂预制下的所有预制口达因数》
/// </summary>
/// <param name="unitworkid"></param>
/// <returns></returns>
private decimal GetShopSumDinByUnitWork(string unitworkid)
{
decimal sum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.UnitWorkId == unitworkid && x.IsTwoJoint == null && x.PipeArea == PipelineService.PipeArea_SHOP select x;
if (q != null && q.Count() > 0)
{
var ShopSum = (from x in q
where x.JointAttribute == "预制口"
group x by x.UnitWorkId into g
select new
{
SizeSum = g.Sum(x => x.Size)
}).FirstOrDefault()?.SizeSum;
ShopSum = (ShopSum != null) ? ShopSum : 0;
sum = (decimal)ShopSum;
return sum;
}
return 0;
}
/// <summary>
/// 主项安装口总达因数《管线划分工厂预制下的安装口达因数+管线划分现场安装下所有焊口达因数》
/// </summary>
/// <param name="unitworkid"></param>
/// <returns></returns>
private decimal GetFieldSumDinByUnitWork2(string unitworkid)
{
decimal sum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.UnitWorkId == unitworkid && x.IsTwoJoint == null && x.PipeArea == PipelineService.PipeArea_SHOP select x;
if (q != null && q.Count() > 0)
{
var FieldSum = (from x in q
where x.JointAttribute == "安装口"
group x by x.UnitWorkId into g
select new
{
SizeSum = g.Sum(x => x.Size)
}).FirstOrDefault()?.SizeSum;
FieldSum = (FieldSum != null) ? FieldSum : 0;
sum = (decimal)FieldSum;
}
var q2 = from x in db.View_HJGL_WeldJoint where x.UnitWorkId == unitworkid && x.IsTwoJoint == null && x.PipeArea == PipelineService.PipeArea_FIELD select x;
if (q2 != null && q2.Count() > 0)
{
var FieldSum2 = (from x in q2
group x by x.UnitWorkId into g
select new
{
SizeSum = g.Sum(x => x.Size)
}).FirstOrDefault()?.SizeSum;
FieldSum2 = (FieldSum2 != null) ? FieldSum2 : 0;
sum = sum + (decimal)FieldSum2;
}
return sum;
}
/// <summary>
/// 主项预制率(焊口) 预制口数量/总焊口数量
/// </summary>
/// <param name="unitworkid"></param>
/// <returns></returns>
private string GetWeldJointRateByUnitWork(string unitworkid)
{
string rate = "";
int shopNum = 0;
int fieldNum = 0;
int AllNum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.UnitWorkId == unitworkid && x.IsTwoJoint == null select x;
if (q != null && q.Count() > 0)
{
shopNum = (from x in q
where x.JointAttribute == "预制口" && x.PipeArea == PipelineService.PipeArea_SHOP
select x
).Count();
fieldNum = (from x in q
where x.JointAttribute == "安装口"
select x
).Count();
AllNum = shopNum + fieldNum;
if (AllNum > 0)
{
var a = (decimal)100 * shopNum / AllNum;
rate = Math.Round((decimal)a, 1).ToString() + "%";
}
return rate;
}
return "0%";
}
/// <summary>
///主项预制口数量(工厂):《管线划分工厂预制下的所有预制口个数》
/// </summary>
/// <param name="unitworkid"></param>
/// <returns></returns>
private int GetShopSumByUnitWork(string unitworkid)
{
int sum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.UnitWorkId == unitworkid && x.IsTwoJoint == null && x.PipeArea == PipelineService.PipeArea_SHOP select x;
if (q != null && q.Count() > 0)
{
sum = (from x in q
where x.JointAttribute == "预制口"
select x
).Count();
return sum;
}
return 0;
}
/// <summary>
/// //主项安装口数量(工厂):《管线划分工厂预制下的所有安装口个数》
/// </summary>
/// <param name="unitworkid"></param>
/// <returns></returns>
private int GetFieldSumByUnitWork(string unitworkid)
{
int sum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.UnitWorkId == unitworkid && x.IsTwoJoint == null && x.PipeArea == PipelineService.PipeArea_SHOP select x;
if (q != null && q.Count() > 0)
{
sum = (from x in q
where x.JointAttribute == "安装口"
select x
).Count();
return sum;
}
return 0;
}
/// <summary>
/// 工厂主项预制率(达因)
/// </summary>
/// <param name="unitworkid"></param>
/// <returns></returns>
private string GetShopRateByUnitWork(string unitworkid)
{
string rate = "0%";
int shopNum = 0;
int fieldNum = 0;
int AllNum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.UnitWorkId == unitworkid && x.IsTwoJoint == null && x.PipeArea == PipelineService.PipeArea_SHOP select x;
if (q != null && q.Count() > 0)
{
shopNum = (from x in q
where x.JointAttribute == "预制口"
select x
).Count();
fieldNum = (from x in q
where x.JointAttribute == "安装口"
select x
).Count();
AllNum = shopNum + fieldNum;
if (AllNum > 0)
{
var a = (decimal)100 * shopNum / AllNum;
rate = Math.Round((decimal)a, 1).ToString() + "%";
}
return rate;
}
return "0%";
}
/// <summary>
///安装口达因数(工厂)《管线划分工厂预制下的所有安装口达因数》
/// </summary>
/// <param name="unitworkid"></param>
/// <returns></returns>
private decimal GetFieldSumDinByUnitWork(string unitworkid)
{
decimal sum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.UnitWorkId == unitworkid && x.IsTwoJoint == null && x.PipeArea == PipelineService.PipeArea_SHOP select x;
if (q != null && q.Count() > 0)
{
var FieldSum = (from x in q
where x.JointAttribute == "安装口"
group x by x.UnitWorkId into g
select new
{
SizeSum = g.Sum(x => x.Size)
}).FirstOrDefault()?.SizeSum;
FieldSum = (FieldSum != null) ? FieldSum : 0;
sum = (decimal)FieldSum;
return sum;
}
return 0;
}
/// <summary>
/// 主项总达因(根据主项id获取达因之和)
/// </summary>
/// <param name="unitworkid"></param>
/// <returns></returns>
private decimal GetSumDinByUnitWorkId(string unitworkid)
{
decimal sum = 0;
var db = Funs.DB;
var q = from x in db.View_HJGL_WeldJoint where x.UnitWorkId == unitworkid && x.IsTwoJoint==null select x;
if (q != null && q.Count() > 0)
{
sum = (from x in q
select x.Size
).Sum() ?? 0;
return sum;
}
return 0;
}
#endregion
#region