新增管道颜色标识导入功能及API控制器

更新了多个服务和页面,增加了导入管道颜色标识数据的功能,并实现了包装管理、车次管理、管道组件和焊口信息的API控制器。修正了文件路径错误,优化了分页和排序逻辑,删除了不再使用的API方法。
This commit is contained in:
2025-10-24 10:04:03 +08:00
parent 55b798135c
commit c23d113eae
55 changed files with 1502 additions and 817 deletions
@@ -1,5 +1,8 @@
using EmitMapper;
using FineUIPro;
using MiniExcelLibs;
using Model;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
@@ -190,5 +193,96 @@ namespace BLL
}
public static ResponeData ImportData( string path, string projectid)
{
var responeData = new ResponeData();
try
{
List<BaseMaterialcolorDataIn> temeplateDtoIns = MiniExcel.Query<BaseMaterialcolorDataIn>(path, startCell: "A1").ToList();
if (temeplateDtoIns == null || temeplateDtoIns.Count ==0)
{
responeData.code =0;
responeData.message = "导入数据为空!";
return responeData;
}
// 提取材质编码并验证非空
var materialCodes = new List<string>();
foreach (var row in temeplateDtoIns)
{
var code = (row.MaterialCode ?? string.Empty).Trim();
if (string.IsNullOrWhiteSpace(code))
{
responeData.code =0;
responeData.message = "导入数据中材质列不能为空!";
return responeData;
}
materialCodes.Add(code);
}
var materialCodeList = materialCodes.Distinct().ToList();
// 从数据库验证这些材质编码是否存在
var existMaterials = (from m in Funs.DB.Base_Material
where materialCodeList.Contains(m.MaterialCode)
select new { m.MaterialCode, m.MaterialId }).ToList();
var existCodes = existMaterials.Select(x => x.MaterialCode).ToList();
var notExist = materialCodeList.Except(existCodes).ToList();
if (notExist.Count >0)
{
responeData.code =0;
responeData.message = string.Join(",", notExist) + " 材质不存在!";
return responeData;
}
// 插入数据
foreach (var row in temeplateDtoIns)
{
var code = (row.MaterialCode ?? string.Empty).Trim();
var mat = existMaterials.FirstOrDefault(x => x.MaterialCode == code);
if (mat == null)
{
responeData.code =0;
responeData.message = code + " 材质不存在!";
return responeData;
}
var colorName = string.IsNullOrWhiteSpace(row.ColorName) ? "—" : row.ColorName.Trim();
var colorCardNo = string.IsNullOrWhiteSpace(row.ColorCardNo) ? "—" : row.ColorCardNo.Trim();
var rgb = string.IsNullOrWhiteSpace(row.RGB) ? null : row.RGB.Trim();
var remark = string.IsNullOrWhiteSpace(row.Remark) ? null : row.Remark.Trim();
Model.Base_MaterialColor table = new Model.Base_MaterialColor
{
MaterialColorId = BLL.SQLHelper.GetNewID(typeof(Model.Base_MaterialColor)),
UnitId = string.Empty,
ProjectId = projectid,
MaterialId = mat.MaterialId,
ColorName = colorName,
ColorCardNo = colorCardNo,
RGB = rgb,
Remark = remark
};
Funs.DB.Base_MaterialColor.InsertOnSubmit(table);
}
Funs.DB.SubmitChanges();
responeData.code =1;
responeData.message = "导入成功!";
responeData.data = temeplateDtoIns.Count;
return responeData;
}
catch (Exception ex)
{
responeData.code =0;
responeData.message = "导入失败:" + ex.ToString();
return responeData;
}
}
}
}