焊接任务单生成出库申请单逻辑修改
This commit is contained in:
@@ -51,11 +51,11 @@ namespace FineUIPro.Web.common
|
||||
this.tvControlItem.Nodes.Add(rootNode2);
|
||||
|
||||
// 优化:一次性获取所有管线统计数据,避免 N+1 查询
|
||||
var pipelineCountByUnitWork = (from x in Funs.DB.HJGL_Pipeline
|
||||
var pipelineCountByUnitWork = (from x in Funs.DB.View_HJGL_Pipeline
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId
|
||||
group x by x.UnitWorkId into g
|
||||
select new { UnitWorkId = g.Key, Count = g.Count() })
|
||||
.ToDictionary(x => x.UnitWorkId, x => x.Count);
|
||||
select new { UnitWorkId = g.Key, Count = g.Count(), TotalDin = g.Sum(x => x.TotalDin) })
|
||||
.ToDictionary(x => x.UnitWorkId, x => new { x.Count, x.TotalDin });
|
||||
|
||||
var pUnits = (from x in Funs.DB.Project_ProjectUnit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
|
||||
// 获取当前用户所在单位
|
||||
@@ -74,14 +74,15 @@ namespace FineUIPro.Web.common
|
||||
|
||||
if (unitWork1.Count() > 0)
|
||||
{
|
||||
foreach (var q in unitWork1)
|
||||
foreach (var q in unitWork1)
|
||||
{
|
||||
// 优化:从内存字典中获取管线数量,避免数据库查询
|
||||
int a = pipelineCountByUnitWork.ContainsKey(q.UnitWorkId) ? pipelineCountByUnitWork[q.UnitWorkId] : 0;
|
||||
int a = pipelineCountByUnitWork.ContainsKey(q.UnitWorkId) ? pipelineCountByUnitWork[q.UnitWorkId].Count : 0;
|
||||
decimal totalDia = pipelineCountByUnitWork.ContainsKey(q.UnitWorkId) ? pipelineCountByUnitWork[q.UnitWorkId].TotalDin ?? 0 : 0;
|
||||
var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId);
|
||||
TreeNode tn1 = new TreeNode();
|
||||
tn1.NodeID = q.UnitWorkId;
|
||||
tn1.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线";
|
||||
tn1.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线" + "(总达因:" + totalDia.ToString() + ")";
|
||||
tn1.ToolTip = "施工单位:" + unitNamesUnitIds;
|
||||
tn1.EnableClickEvent = true;
|
||||
rootNode1.Nodes.Add(tn1);
|
||||
@@ -92,11 +93,13 @@ namespace FineUIPro.Web.common
|
||||
foreach (var q in unitWork2)
|
||||
{
|
||||
// 优化:从内存字典中获取管线数量,避免数据库查询
|
||||
int a = pipelineCountByUnitWork.ContainsKey(q.UnitWorkId) ? pipelineCountByUnitWork[q.UnitWorkId] : 0;
|
||||
int a = pipelineCountByUnitWork.ContainsKey(q.UnitWorkId) ? pipelineCountByUnitWork[q.UnitWorkId].Count : 0;
|
||||
decimal totalDia = pipelineCountByUnitWork.ContainsKey(q.UnitWorkId) ? pipelineCountByUnitWork[q.UnitWorkId].TotalDin??0 : 0;
|
||||
|
||||
var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId);
|
||||
TreeNode tn2 = new TreeNode();
|
||||
tn2.NodeID = q.UnitWorkId;
|
||||
tn2.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线";
|
||||
tn2.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线" + "(总达因:" + totalDia.ToString() + ")";
|
||||
tn2.ToolTip = "施工单位:" + unitNamesUnitIds;
|
||||
tn2.EnableClickEvent = true;
|
||||
rootNode2.Nodes.Add(tn2);
|
||||
|
||||
Reference in New Issue
Block a user