diff --git a/ZR.Model/MES/wms/ERP_WMS_interactiveModel.cs b/ZR.Model/MES/wms/ERP_WMS_interactiveModel.cs index 48d5dbe9..46e62184 100644 --- a/ZR.Model/MES/wms/ERP_WMS_interactiveModel.cs +++ b/ZR.Model/MES/wms/ERP_WMS_interactiveModel.cs @@ -29,7 +29,7 @@ namespace ZR.Model.MES.wms public string Qty { get; set; } /// - /// + /// 批次 /// public string LotNo { get; set; } diff --git a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs index caf9a52d..3a6176e9 100644 --- a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs +++ b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs @@ -7,6 +7,7 @@ using SqlSugar; using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; using ZR.Service.mes.wms.IService; +using ZR.Service.mes.wms_u8; using ZR.Service.Utils; namespace ZR.Service.mes.wms @@ -59,7 +60,7 @@ namespace ZR.Service.mes.wms if (resultionPackage == null) { Context.Ado.RollbackTran(); - throw new Exception("其中一箱外标签解析失败,第" + (i + 1) + "箱"); + throw new Exception($"其中一箱外标签解析失败,第{i + 1}编码:{packageArray[i]}"); } // 入库时查出此批次号箱已入库,则报警提示 bool hasWarehouse = Context @@ -168,6 +169,56 @@ namespace ZR.Service.mes.wms Context.Ado.RollbackTran(); throw new Exception("操作记录插入失败"); } + + // 入库信息转发U8 + + //1.构建信息 + List u8PackageList = new(); + foreach (var item in preparegoodsList) + { + string dateString = DateTime.Now.ToString("yyyyMMdd"); + // 使用正则表达式匹配日期模式 + string pattern = @"(\d{2})(\d{2})(\d{2})"; + Match match = Regex.Match(item.PackageCodeClient, pattern); + + if (match.Success) + { + // 提取匹配的年份、月份和日期 + string year = match.Groups[1].Value; + string month = match.Groups[2].Value; + string day = match.Groups[3].Value; + // 转换为四位数年份(假设2000年代) + string fullYear = "20" + year; + // 组合为yyyyMMdd格式 + dateString = fullYear + month + day; + } + else + { + logger.Warn($"未找到匹配的日期模式:{item.PackageCodeClient}"); + } + ERP_WMS_interactiveModelQuery u8PackageItem = + new() + { + materialCode = item.Partnumber, + location = item.LocationCode, + Qty = item.GoodsNumLogic.ToString(), + // 批次号 + LotNo = dateString, + createTime = DateTime.Now, + userID = createName, + guid = Guid.NewGuid().ToString(), + lineno = "涂装生产线" + }; + u8PackageList.Add(u8PackageItem); + } + string urlBase = "http://gam.com.cn:8054/"; + ERP_WMS_interactiveService _eRP_WMS_InteractiveService = new(); + ERP_WMS_interactiveModelResult u8ErpResult = _eRP_WMS_InteractiveService.inbounded( + urlBase, + u8PackageList + ); + //TODO 对U8返回结果进行解析 + logger.Warn(u8ErpResult); Context.Ado.CommitTran(); return result; } @@ -412,9 +463,7 @@ namespace ZR.Service.mes.wms .Where(it => it.WorkOrderNum == resultionPackage.WorkoderID) // .Where(it => it.PackingCode.EndsWith(packingCode)) // .Where(it => packingCode == int.Parse(it.PackingCode.Substring(7)).ToString()) - .Where(it => - package_no == int.Parse(SqlFunc.Right(it.PackingCode, 5)) - ) + .Where(it => package_no == int.Parse(SqlFunc.Right(it.PackingCode, 5))) .Where(it => it.BFilled == true) .First(); if (recourd == null) @@ -425,9 +474,7 @@ namespace ZR.Service.mes.wms var inspect = Context .Queryable() .Where(it => it.Workorder == resultionPackage.WorkoderID) - .Where(it => - package_no == int.Parse(SqlFunc.Right(it.Packcode, 5)) - ) + .Where(it => package_no == int.Parse(SqlFunc.Right(it.Packcode, 5))) //.Where(it => it.Packcode.EndsWith(package_no)) .OrderByDescending(it => it.CreatedTime) .First(); diff --git a/ZR.Service/mes/wms/WmGoodsOutProductionService.cs b/ZR.Service/mes/wms/WmGoodsOutProductionService.cs index 4cd83eba..b47cd2c4 100644 --- a/ZR.Service/mes/wms/WmGoodsOutProductionService.cs +++ b/ZR.Service/mes/wms/WmGoodsOutProductionService.cs @@ -1,10 +1,13 @@ using System; +using System.Text.RegularExpressions; +using Aliyun.OSS; using Infrastructure.Attribute; using Microsoft.AspNetCore.Http.HttpResults; using SqlSugar; using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; using ZR.Service.mes.wms.IService; +using ZR.Service.mes.wms_u8; namespace ZR.Service.mes.wms { @@ -19,6 +22,7 @@ namespace ZR.Service.mes.wms : BaseService, IWmGoodsOutProductionService { + private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); /// /// 查询出库货物记录表列表 /// @@ -136,6 +140,61 @@ namespace ZR.Service.mes.wms .IgnoreColumns(ignoreAllNullColumns: true) .ExecuteCommand(); } + + // 出库信息转发U8 + + //1.构建信息 + List outPackagelist = new() + { + model + }; + List u8PackageList = new(); + foreach (var item in outPackagelist) + { + string dateString = DateTime.Now.ToString("yyyyMMdd"); + // 使用正则表达式匹配日期模式 + string pattern = @"(\d{2})(\d{2})(\d{2})"; + Match match = Regex.Match(item.PackageCodeClient, pattern); + + if (match.Success) + { + // 提取匹配的年份、月份和日期 + string year = match.Groups[1].Value; + string month = match.Groups[2].Value; + string day = match.Groups[3].Value; + // 转换为四位数年份(假设2000年代) + string fullYear = "20" + year; + // 组合为yyyyMMdd格式 + dateString = fullYear + month + day; + } + else + { + logger.Warn($"未找到匹配的日期模式:{item.PackageCodeClient}"); + } + ERP_WMS_interactiveModelQuery u8PackageItem = + new() + { + materialCode = item.Partnumber, + location = item.LocationCode, + Qty = item.GoodsNumLogic.ToString(), + // 批次号 + LotNo = dateString, + createTime = DateTime.Now, + userID = model.CreatedBy ?? "手动单箱出库", + guid = Guid.NewGuid().ToString(), + lineno = "涂装生产线" + }; + u8PackageList.Add(u8PackageItem); + } + string urlBase = "http://gam.com.cn:8054/"; + ERP_WMS_interactiveService _eRP_WMS_InteractiveService = new(); + ERP_WMS_interactiveModelResult u8ErpResult = _eRP_WMS_InteractiveService.outbounded( + urlBase, + u8PackageList + ); + //TODO 对U8返回结果进行解析 + logger.Warn(u8ErpResult); + return Context.Insertable(model).ExecuteReturnEntity(); } @@ -176,6 +235,7 @@ namespace ZR.Service.mes.wms int totalPackage = 0; int totalPartnumber = 0; List packageCodeRemark = new(); + List< WmGoodsOutRecord > outRecordList = new(); if (type == 1) { var list = parm.Ids; @@ -208,6 +268,7 @@ namespace ZR.Service.mes.wms CreatedBy = parm.CreatedBy ?? "batch", CreatedTime = time, }; + outRecordList.Add(outRecord); // 记录统计 totalPackage++; if (!partnumbers.Contains(nowProduction.Partnumber)) @@ -221,6 +282,7 @@ namespace ZR.Service.mes.wms .Deleteable() .Where(it => it.Id == nowProduction.Id) .ExecuteCommand(); + } } else if (type == 2) @@ -268,6 +330,7 @@ namespace ZR.Service.mes.wms CreatedBy = parm.CreatedBy ?? "batch", CreatedTime = time, }; + outRecordList.Add(outRecord); // 记录统计 totalPackage++; if (!partnumbers.Contains(nowProduction.Partnumber)) @@ -313,6 +376,55 @@ namespace ZR.Service.mes.wms CreatedTime = DateTime.Now, }; int recordNum = Context.Insertable(wmGoodsRecord).ExecuteCommand(); + // 出库信息转发U8 + + //1.构建信息 + List u8PackageList = new(); + foreach (var item in outRecordList) + { + string dateString = DateTime.Now.ToString("yyyyMMdd"); + // 使用正则表达式匹配日期模式 + string pattern = @"(\d{2})(\d{2})(\d{2})"; + Match match = Regex.Match(item.PackageCodeClient, pattern); + + if (match.Success) + { + // 提取匹配的年份、月份和日期 + string year = match.Groups[1].Value; + string month = match.Groups[2].Value; + string day = match.Groups[3].Value; + // 转换为四位数年份(假设2000年代) + string fullYear = "20" + year; + // 组合为yyyyMMdd格式 + dateString = fullYear + month + day; + } + else + { + logger.Warn($"未找到匹配的日期模式:{item.PackageCodeClient}"); + } + ERP_WMS_interactiveModelQuery u8PackageItem = + new() + { + materialCode = item.Partnumber, + location = item.LocationCode, + Qty = item.GoodsNumLogic.ToString(), + // 批次号 + LotNo = dateString, + createTime = DateTime.Now, + userID = parm.CreatedBy ?? "手动批量出库", + guid = Guid.NewGuid().ToString(), + lineno = "涂装生产线" + }; + u8PackageList.Add(u8PackageItem); + } + string urlBase = "http://gam.com.cn:8054/"; + ERP_WMS_interactiveService _eRP_WMS_InteractiveService = new(); + ERP_WMS_interactiveModelResult u8ErpResult = _eRP_WMS_InteractiveService.outbounded( + urlBase, + u8PackageList + ); + //TODO 对U8返回结果进行解析 + logger.Warn(u8ErpResult); return "ok"; } } diff --git a/ZR.Service/mes/wms/WmOutOrderService.cs b/ZR.Service/mes/wms/WmOutOrderService.cs index 27545d60..99871b93 100644 --- a/ZR.Service/mes/wms/WmOutOrderService.cs +++ b/ZR.Service/mes/wms/WmOutOrderService.cs @@ -10,6 +10,7 @@ using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; using ZR.Repository; using ZR.Service.mes.wms.IService; +using ZR.Service.mes.wms_u8; using ZR.Service.Utils; namespace ZR.Service.mes.wms @@ -578,6 +579,55 @@ namespace ZR.Service.mes.wms Context.Ado.RollbackTran(); throw new Exception("记录插入失败"); } + // 出库信息转发U8 + + //1.构建信息 + List u8PackageList = new(); + foreach (var item in insertList) + { + string dateString = DateTime.Now.ToString("yyyyMMdd"); + // 使用正则表达式匹配日期模式 + string pattern = @"(\d{2})(\d{2})(\d{2})"; + Match match = Regex.Match(item.PackageCodeClient, pattern); + + if (match.Success) + { + // 提取匹配的年份、月份和日期 + string year = match.Groups[1].Value; + string month = match.Groups[2].Value; + string day = match.Groups[3].Value; + // 转换为四位数年份(假设2000年代) + string fullYear = "20" + year; + // 组合为yyyyMMdd格式 + dateString = fullYear + month + day; + } + else + { + logger.Warn($"未找到匹配的日期模式:{item.PackageCodeClient}"); + } + ERP_WMS_interactiveModelQuery u8PackageItem = + new() + { + materialCode = item.Partnumber, + location = item.LocationCode, + Qty = item.GoodsNumLogic.ToString(), + // 批次号 + LotNo = dateString, + createTime = DateTime.Now, + userID = Createby, + guid = Guid.NewGuid().ToString(), + lineno = "涂装生产线" + }; + u8PackageList.Add(u8PackageItem); + } + string urlBase = "http://gam.com.cn:8054/"; + ERP_WMS_interactiveService _eRP_WMS_InteractiveService = new(); + ERP_WMS_interactiveModelResult u8ErpResult = _eRP_WMS_InteractiveService.outbounded( + urlBase, + u8PackageList + ); + //TODO 对U8返回结果进行解析 + logger.Warn(u8ErpResult); Context.Ado.CommitTran(); return (sum_delete, sum_insert); }