feat(hjgl): 完善管线预制与焊接业务
同步管线组件、材料和焊口关联数据,优化预制组件打印及焊接相关查询,减少业务台账与实际关联信息不一致。
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user