feat(hjgl): 完善图纸识别与材料管段信息管理
扩展图纸识别结果模型和保存流程,按管线及页码替换识别明细, 避免重复导入造成数据累积;同时自动补充材料编码库数据, 新增材料总览、管段长度总览及 PDF 焊口标记功能,提升识别数据 的查询、复核和后续使用效率。
This commit is contained in:
@@ -147,6 +147,60 @@
|
||||
db.SubmitChanges();
|
||||
}
|
||||
}
|
||||
|
||||
public static void AddListByDraw(List<Tw_InputDataIn> list)
|
||||
{
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
// 图纸材料编码同时作为材料库主键和业务编码,不能为空且同批次只允许新增一次。
|
||||
var existingMaterials = db.HJGL_MaterialCodeLib
|
||||
.Select(x => new { x.MaterialCode, x.Code })
|
||||
.ToList();
|
||||
var materialCodes = new HashSet<string>(System.StringComparer.OrdinalIgnoreCase);
|
||||
foreach (var existingMaterial in existingMaterials)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(existingMaterial.MaterialCode))
|
||||
{
|
||||
materialCodes.Add(existingMaterial.MaterialCode);
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(existingMaterial.Code))
|
||||
{
|
||||
materialCodes.Add(existingMaterial.Code);
|
||||
}
|
||||
}
|
||||
List<Model.HJGL_MaterialCodeLib> details = new List<Model.HJGL_MaterialCodeLib>();
|
||||
foreach (var item in list)
|
||||
{
|
||||
if (item == null || string.IsNullOrWhiteSpace(item.MaterialCode))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
string materialCode = item.MaterialCode.Trim();
|
||||
if (!materialCodes.Add(materialCode))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
Model.HJGL_MaterialCodeLib table = new Model.HJGL_MaterialCodeLib
|
||||
{
|
||||
MaterialCode = materialCode,
|
||||
MaterialName = item.MaterialName,
|
||||
MaterialSpec = item.MaterialSpec,
|
||||
MaterialUnit = item.MaterialUnit,
|
||||
MaterialDef = item.MaterialDef,
|
||||
Code = materialCode
|
||||
};
|
||||
details.Add(table);
|
||||
}
|
||||
|
||||
if (details.Count > 0)
|
||||
{
|
||||
db.HJGL_MaterialCodeLib.InsertAllOnSubmit(details);
|
||||
db.SubmitChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class MaterialCodeLibDtoIn
|
||||
|
||||
Reference in New Issue
Block a user