feat(hjgl): 完善管线预制与焊接业务

同步管线组件、材料和焊口关联数据,优化预制组件打印及焊接相关查询,减少业务台账与实际关联信息不一致。
This commit is contained in:
2026-09-16 15:49:02 +08:00
parent d090c174b9
commit 7b5b060ffc
13 changed files with 179 additions and 195 deletions
@@ -6,6 +6,42 @@ namespace BLL
public static class PipelineMatService
{
/// <summary>
/// 按焊口编号顺序,先左后右校准零数量材料的主编码。
/// </summary>
public static int CalibrateSharedMaterialCodes(string pipelineId)
{
Model.SGGLDB db = Funs.DB;
var materials = db.HJGL_PipeLineMat.Where(x => x.PipelineId == pipelineId).ToList();
var joints = db.HJGL_WeldJoint.Where(x => x.PipelineId == pipelineId)
.OrderBy(x => x.WeldJointCode).ToList();
int count = 0;
foreach (var material in materials.Where(x => x.Number == 0m))
{
int jointIndex = joints.FindIndex(x => x.WeldJointId == material.WeldJointId);
HJGL_PipeLineMat source = null;
if (jointIndex > 0)
{
source = materials.FirstOrDefault(x => x.WeldJointId == joints[jointIndex - 1].WeldJointId
&& x.MaterialCode2 == material.MaterialCode2 && x.MaterialCode != null);
}
if (source == null && jointIndex < joints.Count - 1)
{
source = materials.FirstOrDefault(x => x.WeldJointId == joints[jointIndex + 1].WeldJointId
&& x.MaterialCode2 == material.MaterialCode2 && x.MaterialCode != null);
}
if (source != null)
{
material.MaterialCode = source.MaterialCode;
count++;
}
}
db.SubmitChanges();
return count;
}
/// <summary>
///获取管线材料信息
/// </summary>