新增管道颜色标识导入功能及API控制器
更新了多个服务和页面,增加了导入管道颜色标识数据的功能,并实现了包装管理、车次管理、管道组件和焊口信息的API控制器。修正了文件路径错误,优化了分页和排序逻辑,删除了不再使用的API方法。
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user