| MES.Service/Dto/webApi/ErpItemType.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| MES.Service/Dto/webApi/ErpItems.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| MES.Service/Dto/webApi/ErpSupplier.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| MES.Service/Modes/MesItemType.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| MES.Service/Modes/MesItems.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| MES.Service/service/BasicData/MesItemTypeManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| MES.Service/service/BasicData/MesItemsManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| MES.Service/service/BasicData/MesSupplierManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
MES.Service/Dto/webApi/ErpItemType.cs
@@ -3,10 +3,11 @@ public class ErpItemType { public string? Type { get; set; } public string Id { get; set; } public string? FParentId { get; set; } public string? Id { get; set; } public string? fParentGroup { get; set; } public string? FNumber { get; set; } public string? FName { get; set; } public string? MA011 { get; set; } public string? FDescription { get; set; } // public string? Fumbrella { get; set; } MES.Service/Dto/webApi/ErpItems.cs
@@ -2,7 +2,7 @@ public class ErpItems { public string Id { get; set; } public string? Id { get; set; } public string? FNumber { get; set; } public string? FName { get; set; } public string? FSpecification { get; set; } MES.Service/Dto/webApi/ErpSupplier.cs
@@ -3,14 +3,14 @@ public class ErpSupplier { public string? Type { get; set; } public string Id { get; set; } public string? FNumber { get; set; } public string? Id { get; set; } public string FNumber { get; set; } public string? FShortName { get; set; } public string? FName { get; set; } public string? FTContact { get; set; } public string? Fmobilephone { get; set; } public string? FStaffId { get; set; } public string? FForbidStatus { get; set; } public string? FForbidStatus { get; set; }//禁用状态 public string? FUseOrgId { get; set; } public string? FCreateOrgId { get; set; } } MES.Service/Modes/MesItemType.cs
@@ -95,5 +95,11 @@ [SugarColumn(ColumnName = "description")] public string? Description { get; set; } /// <summary> /// 有效码 /// </summary> [SugarColumn(ColumnName = "MA011")] public string? MA011 { get; set; } [SugarColumn(IsIgnore = true)] public string? Type { get; set; } } MES.Service/Modes/MesItems.cs
@@ -149,7 +149,7 @@ /// 物料ID /// </summary> [SugarColumn(ColumnName = "e_item_id")] public long? EItemId { get; set; } public decimal EItemId { get; set; } /// <summary> /// ERP料号 @@ -215,7 +215,7 @@ /// 采购单位 /// </summary> [SugarColumn(ColumnName = "fpurchaseunitid")] public decimal Fpurchaseunitid { get; set; } public string? Fpurchaseunitid { get; set; } /// <summary> /// 损耗率 @@ -299,7 +299,7 @@ /// 物料ID /// </summary> [SugarColumn(ColumnName = "item_id")] public long? ItemId { get; set; } public decimal ItemId { get; set; } /// <summary> /// 颜色 MES.Service/service/BasicData/MesItemTypeManager.cs
@@ -1,9 +1,14 @@ using MES.Service.DB; using MES.Service.Dto.webApi; using MES.Service.Modes; using AngleSharp.Dom; using SqlSugar; using Masuit.Tools; namespace MES.Service.service.BasicData; /// <summary> /// 物料类型信息 /// </summary> public class MesItemTypeManager : Repository<MesItemType> { //当前类已经继承了 Repository 增、删、查、改的方法 @@ -30,14 +35,55 @@ } } /// <summary> /// 添加物料类型信息new_0 /// </summary> /// <param name="entity"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> private bool InsertItemType(MesItemType entity) { var insert = base.Insert(entity); if (insert) return true; if (entity.Id == 0) { // 新增情况:生成新ID并插入 var newId = GenerateNewId(); entity.Id = newId; var insert = base.Insert(entity); if (insert) return true; } else { // 更新情况:删除后重新插入,保持原有ID var originalId = entity.Id; // 先删除原记录(如果存在) Db.Deleteable<MesItemType>().Where(s => s.Id == originalId).ExecuteCommand(); // 重新插入,保持原有ID entity.Id = originalId; var insert = base.Insert(entity); if (insert) return true; } throw new NotImplementedException("插入失败"); } /// <summary> /// 添加物料类型信息old_0 /// </summary> /// <param name="entity"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> //private bool InsertItemType(MesItemType entity) //{ // var insert = base.Insert(entity); // if (insert) // return true; // throw new NotImplementedException("插入失败"); //} private bool DeleteItemType(decimal id) { @@ -49,18 +95,47 @@ throw new NotImplementedException("删除失败"); } /// <summary> /// 生成新的ID,确保不重复 /// </summary> private decimal GenerateNewId() { // 处理空表的情况,从1开始 var maxId = Db.Queryable<MesItemType>().Max(x => (decimal?)x.Id) ?? 0; var newId = maxId + 1; // 双重检查,确保生成的ID不存在 while (Db.Queryable<MesItemType>().Where(x => x.Id == newId).Any()) { newId++; } return newId; } private MesItemType GetMesItemType(ErpItemType department) { // 查找是否已存在相同客户编码的记录。ID、create_date var existingCustomer = Db.Queryable<MesItemType>() .Where(s => s.Tcode == department.FNumber) .First(); return new MesItemType { Id = Convert.ToDecimal(department.Id), Pgroup = department.FParentId, // 如果存在,使用现有的ID,后续将删除后重新插入 // 如果不存在,设为0,InsertOrUpdate方法将生成新ID Id = existingCustomer?.Id ?? 0, Pgroup = department.fParentGroup, Tcode = department.FNumber, Tname = department.FName, Description = department.FDescription, MA011= department.MA011, //FSubsidiary = department.FSubsidiary, //Fumbrella = department.Fumbrella, CreateDate = DateTime.Now, // 如果存在,使用现有的CreateDate,后续将删除后重新插入 // 如果不存在,设为当前时间 CreateDate = existingCustomer?.CreateDate ?? DateTime.Now, LastupdateDate = DateTime.Now, Company = "1000", Factory = "1000" @@ -108,15 +183,32 @@ throw new NotImplementedException("接口执行失败"); } /// <summary> /// 批量添加物料类型信息new_0 /// </summary> /// <param name="db"></param> /// <param name="itemTypeList"></param> /// <returns></returns> private bool InsertItemTypeBatch(List<MesItemType> itemTypeList) { var insertRange = base.InsertRange(itemTypeList); if (insertRange) return true; throw new NotImplementedException("插入失败"); return itemTypeList.All(entity => InsertItemType(entity)); } /// <summary> /// 批量添加物料类型信息old_0 /// </summary> /// <param name="itemTypeList"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> //private bool InsertItemTypeBatch(List<MesItemType> itemTypeList) //{ // var insertRange = base.InsertRange(itemTypeList); // if (insertRange) // return true; // throw new NotImplementedException("插入失败"); //} private bool DeleteItemTypeBatch(List<MesItemType> itemTypeList) { var ids = itemTypeList.Select(it => it.Id).ToArray(); MES.Service/service/BasicData/MesItemsManager.cs
@@ -1,6 +1,8 @@ using MES.Service.DB; using AngleSharp.Dom; using MES.Service.DB; using MES.Service.Dto.webApi; using MES.Service.Modes; using SharpCompress.Common; using SqlSugar; namespace MES.Service.service.BasicData; @@ -113,11 +115,18 @@ private MesItems GetMesItems(ErpItems item) { return new MesItems // 查找是否已存在相同客户编码的记录。ID、create_date var existingCustomer = Db.Queryable<MesItems>() .Where(s => s.ItemNo == item.FNumber) .First(); var entity = new MesItems { Id = Convert.ToDecimal(item.Id), EItemId = long.Parse(item.Id), ItemId = long.Parse(item.Id), // 如果存在,使用现有的ID,后续将删除后重新插入 // 如果不存在,设为0,InsertOrUpdate方法将生成新ID Id = existingCustomer?.Id ?? 0, EItemId = existingCustomer?.Id ?? 0, ItemId = existingCustomer?.Id ?? 0, Type = item.Type, ItemNo = item.FNumber, ItemName = item.FName, @@ -134,10 +143,10 @@ Fissuetype = item.FIssueType, Fisbatchmanage = Convert.ToInt32(item.FIsBatchManage), Fpurchaserid = item.FPurchaserId, Fpurchaseunitid = Convert.ToDecimal(item.FPurchaseUnitId), Fpurchaseunitid = item.FPurchaseUnitId, Storeunit = item.FStoreUnitID, Saleunit = item.FSaleUnitId, Fforbidstatus = item.FForbidStatus, //Fforbidstatus = item.FForbidStatus, MaterialProperti = item.FErpClsID, ProductionWorkshop = item.FWorkShopId, ProduceUnit = item.FPRODUCEUNITID, @@ -145,11 +154,46 @@ FSubsidiary = item.FUseOrgId, Fumbrella = item.FCreateOrgId, LastupdateDate = DateTime.Now, CreateDate = DateTime.Now, // 如果存在,使用现有的CreateDate,后续将删除后重新插入 // 如果不存在,设为当前时间 CreateDate = existingCustomer?.CreateDate ?? DateTime.Now, MnemonicCode = item.FMnemonicCode, Company = "1000", Factory = "1000" }; // ERP: 0=未禁用, 1=禁用 // MES: A=未禁用, B=禁用 if (string.IsNullOrEmpty(item.FForbidStatus)) { entity.Fforbidstatus = "A"; } else { //我期望的值是A=否,B=是 //实际给我的值是0或1,我希望为我转换从A和B的方式 entity.Fforbidstatus = item.FForbidStatus == "1" ? "B" : "A"; } return entity; } /// <summary> /// 生成新的ID,确保不重复 /// </summary> private decimal GenerateNewId() { // 处理空表的情况,从1开始 var maxId = Db.Queryable<MesItems>().Max(x => (decimal?)x.Id) ?? 0; var newId = maxId + 1; // 双重检查,确保生成的ID不存在 while (Db.Queryable<MesItems>().Where(x => x.Id == newId).Any()) { newId++; } return newId; } private bool UpdateItemStatusBatch(SqlSugarScope db, @@ -186,15 +230,54 @@ throw new NotImplementedException("删除失败"); } /// <summary> /// 同步物料信息new_0/4 /// </summary> /// <param name="db"></param> /// <param name="entity"></param> /// <returns></returns> private bool InsertOrUpdate(SqlSugarScope db, MesItems entity) { db.Deleteable<MesItems>().Where(s => s.Id == entity.Id) .ExecuteCommand(); if (entity.Id == 0) { // 新增情况:生成新ID并插入 var newId = GenerateNewId(); entity.Id = newId; entity.EItemId = newId; entity.ItemId = newId; return db.Insertable(entity).ExecuteCommand() > 0; } else { // 更新情况:删除后重新插入,保持原有ID var originalId = entity.Id; var insert = db.Insertable(entity).ExecuteCommand(); return insert > 0; // 先删除原记录(如果存在) db.Deleteable<MesItems>().Where(s => s.Id == originalId).ExecuteCommand(); // 重新插入,保持原有ID entity.Id = originalId; entity.EItemId = originalId; entity.ItemId = originalId; return db.Insertable(entity).ExecuteCommand() > 0; } } /// <summary> /// 同步物料信息old_0/4 /// </summary> /// <param name="db"></param> /// <param name="entity"></param> /// <returns></returns> //private bool InsertOrUpdate(SqlSugarScope db, MesItems entity) //{ // db.Deleteable<MesItems>().Where(s => s.Id == entity.Id) // .ExecuteCommand(); // var insert = db.Insertable(entity).ExecuteCommand(); // return insert > 0; //} private bool InsertOrUpdateBatch(SqlSugarScope db, List<MesItems> itemList) { return itemList.All(entity => InsertOrUpdate(db, entity)); MES.Service/service/BasicData/MesSupplierManager.cs
@@ -1,7 +1,10 @@ using MES.Service.DB; using AngleSharp.Dom; using Castle.Core.Resource; using MES.Service.DB; using MES.Service.Dto.webApi; using MES.Service.Modes; using SqlSugar; using Masuit.Tools; namespace MES.Service.service.BasicData; @@ -114,24 +117,66 @@ private MesSupplier GetMesSupplier(ErpSupplier supplier) { return new MesSupplier // 查找是否已存在相同客户编码的记录。ID、create_date var existingCustomer = Db.Queryable<MesSupplier>() .Where(s => s.SuppNo == supplier.FNumber) .First(); var entity = new MesSupplier { Id = Convert.ToDecimal(supplier.Id), // 如果存在,使用现有的ID,后续将删除后重新插入 // 如果不存在,设为0,InsertOrUpdate方法将生成新ID Id = existingCustomer?.Id ?? 0, SuppNo = supplier.FNumber, SuppSname = supplier.FShortName, SuppName = supplier.FName, Lxr = supplier.FTContact, Telf1 = supplier.Fmobilephone, Fstaffid = supplier.FStaffId, Fforbidstatus = supplier.FForbidStatus, //Fforbidstatus = supplier.FForbidStatus, Type = supplier.Type, FSubsidiary = supplier.FUseOrgId, Fumbrella = supplier.FCreateOrgId, CreateDate = DateTime.Now, FSubsidiary = "1", Fumbrella = "1", // 如果存在,使用现有的CreateDate,后续将删除后重新插入 // 如果不存在,设为当前时间 CreateDate = existingCustomer?.CreateDate ?? DateTime.Now, LastupdateDate = DateTime.Now, Company = "1000", Factory = "1000" }; // ERP: 0=未禁用, 1=禁用 // MES: A=未禁用, B=禁用 if (supplier.FForbidStatus.IsNullOrEmpty()) { entity.Fforbidstatus = "A"; } else { //我期望的值是A=否,B=是 //实际给我的值是0或1,我希望为我转换从A和B的方式 entity.Fforbidstatus = supplier.FForbidStatus == "1" ? "B" : "A"; } return entity; } /// <summary> /// 生成新的ID,确保不重复 /// </summary> private decimal GenerateNewId() { // 处理空表的情况,从1开始 var maxId = Db.Queryable<MesSupplier>().Max(x => (decimal?)x.Id) ?? 0; var newId = maxId + 1; // 双重检查,确保生成的ID不存在 while (Db.Queryable<MesSupplier>().Where(x => x.Id == newId).Any()) { newId++; } return newId; } private bool UpdateSupplierStatusBatch(SqlSugarScope db, @@ -170,18 +215,53 @@ throw new NotImplementedException("删除失败"); } /// <summary> /// 同步供应商信息new_0/4 /// </summary> /// <param name="db"></param> /// <param name="entity"></param> /// <returns></returns> private bool InsertOrUpdate(SqlSugarScope db, MesSupplier entity) { db.Deleteable<MesSupplier>().Where(s => s.Id == entity.Id) .ExecuteCommand(); if (entity.Id == 0) { // 新增情况:生成新ID并插入 var newId = GenerateNewId(); entity.Id = newId; return db.Insertable(entity).ExecuteCommand() > 0; } else { // 更新情况:删除后重新插入,保持原有ID var originalId = entity.Id; var insert = db.Insertable(entity).ExecuteCommand(); if (insert > 0) return true; // 先删除原记录(如果存在) db.Deleteable<MesSupplier>().Where(s => s.Id == originalId).ExecuteCommand(); return false; // 重新插入,保持原有ID entity.Id = originalId; return db.Insertable(entity).ExecuteCommand() > 0; } } /// <summary> /// 同步供应商信息old_0/4 /// </summary> /// <param name="db"></param> /// <param name="supplierList"></param> /// <returns></returns> //private bool InsertOrUpdate(SqlSugarScope db, MesSupplier entity) //{ // db.Deleteable<MesSupplier>().Where(s => s.Id == entity.Id) // .ExecuteCommand(); // var insert = db.Insertable(entity).ExecuteCommand(); // if (insert > 0) // return true; // return false; //} private bool InsertOrUpdateBatch(SqlSugarScope db, List<MesSupplier> supplierList) {