feat(clgl): 增加入库申请编辑与明细导入

支持入库申请信息维护、入库明细批量导入及模板下载,
完善材料入库业务流程,减少人工录入和明细维护成本。
增加焊口流转区段信息,并统一相关单位工程列表排序
This commit is contained in:
2026-07-13 09:17:00 +08:00
parent 1da7910305
commit 3185461755
73 changed files with 1774 additions and 145 deletions
@@ -258,6 +258,7 @@ namespace FineUIPro.Web.HJGL.InfoQuery
&& x.SuperUnitWork == null
&& x.UnitId != null
&& x.ProjectType != null
orderby x.UnitWorkCode
select x).ToList();
// 优化2: 批量获取所有相关管线数据,避免N+1查询问题
@@ -913,8 +914,12 @@ namespace FineUIPro.Web.HJGL.InfoQuery
var jointIds = weldJointList.Select(x => x.WeldJointId).Where(x => !string.IsNullOrEmpty(x)).Distinct().ToList();
var pipelineIds = weldJointList.Select(x => x.PipelineId).Where(x => !string.IsNullOrEmpty(x)).Distinct().ToList();
var materialRows = (from x in Funs.DB.HJGL_PipeLineMat
join y in Funs.DB.HJGL_MaterialCodeLib on x.MaterialCode equals y.MaterialCode
where jointIds.Contains(x.WeldJointId) && pipelineIds.Contains(x.PipelineId)
orderby x.WeldJointId, x.Number, x.PipeLineMatId
orderby
y.MaterialUnit == "米" ? 1 :
y.MaterialUnit == "个" ? 2 :
y.MaterialUnit == "片" ? 3 : 4
select x).ToList();
var materialCodes = materialRows.Where(x => !string.IsNullOrEmpty(x.MaterialCode)).Select(x => x.MaterialCode).Distinct().ToList();
@@ -952,7 +957,7 @@ namespace FineUIPro.Web.HJGL.InfoQuery
dr["WeldJointNo"] = weldJointNo;
dr["MaterialText"] = string.IsNullOrEmpty(joint.Material1Code) ? joint.Material2Code : joint.Material1Code;
dr["Spec"] = joint.Specification;
dr["DesignTemperature"] = joint.PreTemperature;
dr["DesignTemperature"] = joint.DesignTemperature;
dr["MaterialCode1"] = GetMaterialDisplayCode(row1, lib1);
dr["HeatNo1"] = lib1 == null ? string.Empty : lib1.HeatNo;
dr["BatchNo1"] = lib1 == null ? string.Empty : lib1.BatchNo;