From d6284b6874941babb2c9883296594f83bc595239 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 10 10月 2025 15:17:37 +0800
Subject: [PATCH] 222
---
DEmon/iWareDataCore/BASE/Service/MaterialViewService.cs | 209 +++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 175 insertions(+), 34 deletions(-)
diff --git a/DEmon/iWareDataCore/BASE/Service/MaterialViewService.cs b/DEmon/iWareDataCore/BASE/Service/MaterialViewService.cs
index 28af57a..dd9aa1d 100644
--- a/DEmon/iWareDataCore/BASE/Service/MaterialViewService.cs
+++ b/DEmon/iWareDataCore/BASE/Service/MaterialViewService.cs
@@ -73,7 +73,7 @@
var codes = new List<string>();
List<MaterialEntity> materlst = new List<MaterialEntity>();
var materialSaves = new List<MaterialEntity>();
- var existMaterialcodes = dbModel.BASEMaterials.Select(x =>x.code).ToList();
+ var existMaterialcodes = dbModel.BASEMaterials.Select(x => x.code).ToList();
bool b1 = true;
foreach (MaterialViewEntity m in materials)
{
@@ -81,14 +81,14 @@
if (string.IsNullOrEmpty(m.Code))
{
msg = string.Format("鍦ㄧ{0}琛岋紝鐗╂枡鍙蜂笉鑳戒负绌猴紝璇蜂慨鏀瑰悗閲嶆柊瀵煎叆", i + 1);
- b1= false;
+ b1 = false;
break;
}
if (string.IsNullOrEmpty(m.Wide))
{
msg = string.Format("鍦ㄧ{0}琛岋紝瀹戒笉鑳戒负绌猴紝璇蜂慨鏀瑰悗閲嶆柊瀵煎叆", i + 1);
- b1= false;
+ b1 = false;
break;
}
var type = types.FirstOrDefault(x => x.name == m.TypeName);
@@ -96,7 +96,7 @@
{
m.MaterialType = 5;//鍏朵粬
}
- else
+ else
{
m.MaterialType = type.id;
}
@@ -107,8 +107,8 @@
codes.Add(m.Code);
if (string.IsNullOrEmpty(m.Name)) { m.Name = m.Description; }
if (string.IsNullOrEmpty(m.Version)) { m.Version = "00"; }
-
- MaterialEntity mt=new MaterialEntity()
+
+ MaterialEntity mt = new MaterialEntity()
{
ClassificationSociety = m.ClassificationSociety,
Code = m.Code,
@@ -135,41 +135,41 @@
VerticalPosition = m.VerticalPosition,
Wide = m.Wide
};
- materialSaves.Add(mt);
+ materialSaves.Add(mt);
}
- if (!b1)
+ if (!b1)
{
return b1;
}
var sql = string.Format("INSERT INTO BASEMaterial(status, name, code, materialno, version, typeid, guaranteeperiod, cost, classificationsociety, unit, serialno, description, remark, verticalposition, weight, issueprojectno, procurementprojectno, cuttingtype, pageno, thick, wide, length, markingpen, laneseparation) VALUES");
- for (var j = 0; j < materialSaves.Count ; j++)
+ for (var j = 0; j < materialSaves.Count; j++)
{
- sql += string.Format("({0}, '{1}', '{2}', '{3}', {4}, '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}','{16}' ,'{17}', '{18}', '{19}', '{20}', '{21}','{22}','{23}' ),",
- materialSaves[j].Status,
- StringHelper.RelpaceQuot(materialSaves[j].Name),
- StringHelper.RelpaceQuot(materialSaves[j].Code),
- StringHelper.RelpaceQuot(materialSaves[j].MaterialNo),
- StringHelper.RelpaceQuot(materialSaves[j].Version),
- materialSaves[j].TypeId,
- StringHelper.RelpaceQuot(materialSaves[j].GuaranteePeriod),
- materialSaves[j].Cost,
- StringHelper.RelpaceQuot(materialSaves[j].ClassificationSociety),
- StringHelper.RelpaceQuot(materialSaves[j].Unit),
- StringHelper.RelpaceQuot(materialSaves[j].SerialNo),
- StringHelper.RelpaceQuot(materialSaves[j].Description),
- StringHelper.RelpaceQuot(materialSaves[j].Remark),
- StringHelper.RelpaceQuot(materialSaves[j].VerticalPosition),
- StringHelper.RelpaceQuot(materialSaves[j].Weight),
- StringHelper.RelpaceQuot(materialSaves[j].IssueProjectNo),
- StringHelper.RelpaceQuot(materialSaves[j].ProcurementProjectNo),
- StringHelper.RelpaceQuot(materialSaves[j].CuttingType),
- StringHelper.RelpaceQuot(materialSaves[j].PageNo),
- StringHelper.RelpaceQuot(materialSaves[j].Thick),
- StringHelper.RelpaceQuot(materialSaves[j].Wide),
- StringHelper.RelpaceQuot(materialSaves[j].Length),
- StringHelper.RelpaceQuot(materialSaves[j].MarkingPen),
- StringHelper.RelpaceQuot(materialSaves[j].LaneSeparation));
+ sql += string.Format("({0}, '{1}', '{2}', '{3}', {4}, '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}','{16}' ,'{17}', '{18}', '{19}', '{20}', '{21}','{22}','{23}' ),",
+ materialSaves[j].Status,
+ StringHelper.RelpaceQuot(materialSaves[j].Name),
+ StringHelper.RelpaceQuot(materialSaves[j].Code),
+ StringHelper.RelpaceQuot(materialSaves[j].MaterialNo),
+ StringHelper.RelpaceQuot(materialSaves[j].Version),
+ materialSaves[j].TypeId,
+ StringHelper.RelpaceQuot(materialSaves[j].GuaranteePeriod),
+ materialSaves[j].Cost,
+ StringHelper.RelpaceQuot(materialSaves[j].ClassificationSociety),
+ StringHelper.RelpaceQuot(materialSaves[j].Unit),
+ StringHelper.RelpaceQuot(materialSaves[j].SerialNo),
+ StringHelper.RelpaceQuot(materialSaves[j].Description),
+ StringHelper.RelpaceQuot(materialSaves[j].Remark),
+ StringHelper.RelpaceQuot(materialSaves[j].VerticalPosition),
+ StringHelper.RelpaceQuot(materialSaves[j].Weight),
+ StringHelper.RelpaceQuot(materialSaves[j].IssueProjectNo),
+ StringHelper.RelpaceQuot(materialSaves[j].ProcurementProjectNo),
+ StringHelper.RelpaceQuot(materialSaves[j].CuttingType),
+ StringHelper.RelpaceQuot(materialSaves[j].PageNo),
+ StringHelper.RelpaceQuot(materialSaves[j].Thick),
+ StringHelper.RelpaceQuot(materialSaves[j].Wide),
+ StringHelper.RelpaceQuot(materialSaves[j].Length),
+ StringHelper.RelpaceQuot(materialSaves[j].MarkingPen),
+ StringHelper.RelpaceQuot(materialSaves[j].LaneSeparation));
}
if (sql.EndsWith(","))
{
@@ -190,7 +190,148 @@
}
+ /// <summary>
+ /// 瀵煎叆鐗╂枡鍩虹鏁版嵁锛屾潵婧怣ES 銆怑ditby shaocx,2025-09-17銆�
+ /// </summary>
+ /// <param name="materials"></param>
+ /// <param name="msg"></param>
+ /// <returns></returns>
+ public bool ImportExcelFromMes(List<MaterialViewEntity> materials, out string msg)
+ {
+ using (var dbModel = new DbModelCore())
+ {
+ try
+ {
+ msg = "";
+ if (materials.Count < 1)
+ {
+ msg = "鐗╂枡璁板綍鏁颁负0锛岃淇敼鍚庨噸鏂板鍏�";
+ return false;
+ }
+ var types = dbModel.BASEMaterialTypes.Where(x => 1 == 1).ToList();
+ var i = 0;
+ var codes = new List<string>();
+ List<MaterialEntity> materlst = new List<MaterialEntity>();
+ var materialSaves = new List<MaterialEntity>();
+ var existMaterialcodes = dbModel.BASEMaterials.Select(x => x.code).ToList();
+ bool b1 = true;
+ foreach (MaterialViewEntity m in materials)
+ {
+ i += 1;
+ if (string.IsNullOrEmpty(m.Code))
+ {
+ msg = string.Format("鍦ㄧ{0}琛岋紝鐗╂枡鍙蜂笉鑳戒负绌猴紝璇蜂慨鏀瑰悗閲嶆柊瀵煎叆", i + 1);
+ b1 = false;
+ break;
+ }
+ if (string.IsNullOrEmpty(m.Wide))
+ {
+ msg = string.Format("鍦ㄧ{0}琛岋紝瀹戒笉鑳戒负绌猴紝璇蜂慨鏀瑰悗閲嶆柊瀵煎叆", i + 1);
+ b1 = false;
+ break;
+ }
+ var type = types.FirstOrDefault(x => x.name == m.TypeName);
+ if (type == null)
+ {
+ m.MaterialType = 5;//鍏朵粬
+ }
+ else
+ {
+ m.MaterialType = type.id;
+ }
+ if (existMaterialcodes.Contains(m.Code))
+ {
+ continue;
+ }
+ codes.Add(m.Code);
+ if (string.IsNullOrEmpty(m.Name)) { m.Name = m.Description; }
+ if (string.IsNullOrEmpty(m.Version)) { m.Version = "00"; }
+
+ MaterialEntity mt = new MaterialEntity()
+ {
+ ClassificationSociety = m.ClassificationSociety,
+ Code = m.Code,
+ MaterialNo = m.MaterialNo,
+ Cost = m.Cost,
+ CuttingType = m.CuttingType,
+ Description = m.Description,
+ GuaranteePeriod = m.GuaranteePeriod,
+ IssueProjectNo = m.IssueProjectNo,
+ Length = m.Length,
+ SerialNo = m.SerialNo,
+ Name = m.Name,
+ LaneSeparation = m.Laneseparation,
+ MarkingPen = m.MarkingPen,
+ PageNo = m.PageNo,
+ Status = 1,
+ Thick = m.Thick,
+ Unit = m.Unit,
+ Remark = m.Remark,
+ ProcurementProjectNo = m.ProcurementProjectNo,
+ TypeId = m.MaterialType,
+ Version = m.Version,
+ Weight = m.Weight,
+ VerticalPosition = m.VerticalPosition,
+ Wide = m.Wide
+ };
+ materialSaves.Add(mt);
+
+ }
+ if (!b1)
+ {
+ return b1;
+ }
+ if (materialSaves?.Count == 0)
+ {//璇存槑杩欎簺鐗╂枡閮芥湁浜嗭紝涓嶉渶瑕佸啀瀵煎叆浜� 銆怑ditby shaocx,2025-09-17銆�
+ return true;
+ }
+ var sql = string.Format("INSERT INTO BASEMaterial(status, name, code, materialno, version, typeid, guaranteeperiod, cost, classificationsociety, unit, serialno, description, remark, verticalposition, weight, issueprojectno, procurementprojectno, cuttingtype, pageno, thick, wide, length, markingpen, laneseparation) VALUES");
+ for (var j = 0; j < materialSaves.Count; j++)
+ {
+ sql += string.Format("({0}, '{1}', '{2}', '{3}', {4}, '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}','{16}' ,'{17}', '{18}', '{19}', '{20}', '{21}','{22}','{23}' ),",
+ materialSaves[j].Status,
+ StringHelper.RelpaceQuot(materialSaves[j].Name),
+ StringHelper.RelpaceQuot(materialSaves[j].Code),
+ StringHelper.RelpaceQuot(materialSaves[j].MaterialNo),
+ StringHelper.RelpaceQuot(materialSaves[j].Version),
+ materialSaves[j].TypeId,
+ StringHelper.RelpaceQuot(materialSaves[j].GuaranteePeriod),
+ materialSaves[j].Cost,
+ StringHelper.RelpaceQuot(materialSaves[j].ClassificationSociety),
+ StringHelper.RelpaceQuot(materialSaves[j].Unit),
+ StringHelper.RelpaceQuot(materialSaves[j].SerialNo),
+ StringHelper.RelpaceQuot(materialSaves[j].Description),
+ StringHelper.RelpaceQuot(materialSaves[j].Remark),
+ StringHelper.RelpaceQuot(materialSaves[j].VerticalPosition),
+ StringHelper.RelpaceQuot(materialSaves[j].Weight),
+ StringHelper.RelpaceQuot(materialSaves[j].IssueProjectNo),
+ StringHelper.RelpaceQuot(materialSaves[j].ProcurementProjectNo),
+ StringHelper.RelpaceQuot(materialSaves[j].CuttingType),
+ StringHelper.RelpaceQuot(materialSaves[j].PageNo),
+ StringHelper.RelpaceQuot(materialSaves[j].Thick),
+ StringHelper.RelpaceQuot(materialSaves[j].Wide),
+ StringHelper.RelpaceQuot(materialSaves[j].Length),
+ StringHelper.RelpaceQuot(materialSaves[j].MarkingPen),
+ StringHelper.RelpaceQuot(materialSaves[j].LaneSeparation));
+ }
+ if (sql.EndsWith(","))
+ {
+ sql = sql.Substring(0, sql.Length - 1);
+ }
+ var num = dbModel.Database.ExecuteSqlCommand(sql);
+
+ return string.IsNullOrEmpty(msg);
+
+ }
+ catch (Exception ex)
+ {
+ msg = ex.Message;
+ LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "ImportExcel", ex.Message);
+ return false;
+ }
+ }
+ }
}
--
Gitblit v1.9.3