U8对接WMS出入库(001:包含PDA入库,PDA出库,web批量出库,web单次出库)
This commit is contained in:
@@ -29,7 +29,7 @@ namespace ZR.Model.MES.wms
|
||||
public string Qty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// 批次
|
||||
/// </summary>
|
||||
public string LotNo { get; set; }
|
||||
|
||||
|
||||
@@ -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<ERP_WMS_interactiveModelQuery> 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<WmFgentryInspect>()
|
||||
.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();
|
||||
|
||||
@@ -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<WmGoodsOutRecord>,
|
||||
IWmGoodsOutProductionService
|
||||
{
|
||||
private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
||||
/// <summary>
|
||||
/// 查询出库货物记录表列表
|
||||
/// </summary>
|
||||
@@ -136,6 +140,61 @@ namespace ZR.Service.mes.wms
|
||||
.IgnoreColumns(ignoreAllNullColumns: true)
|
||||
.ExecuteCommand();
|
||||
}
|
||||
|
||||
// 出库信息转发U8
|
||||
|
||||
//1.构建信息
|
||||
List<WmGoodsOutRecord> outPackagelist = new()
|
||||
{
|
||||
model
|
||||
};
|
||||
List<ERP_WMS_interactiveModelQuery> 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<string> 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<WmGoodsNowProduction>()
|
||||
.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<ERP_WMS_interactiveModelQuery> 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";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<ERP_WMS_interactiveModelQuery> 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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user