1.移植盟讯的盘点下架功能

This commit is contained in:
hehaibing-1996
2024-05-29 18:02:46 +08:00
parent d1914bb2d1
commit aecc1dc4db
19 changed files with 821 additions and 18 deletions

View File

@ -81,6 +81,12 @@ namespace WCS.BLL.DbModels
[SugarColumn(ColumnName = "create_user", Length = 100, IsNullable = true, ColumnDescription = "操作员")]
public string CreateUser { get; set; }
/// <summary>
/// 是否是盟讯公司盘点生成的出库单
/// </summary>
[SugarColumn(ColumnName = "is_MXPD", IsNullable = true, ColumnDescription = "是否是盟讯公司盘点生成的出库单")]
public bool? IsMXPD { get; set; } = false;
/// <summary>
/// 用于绑定DataGrid中是否选择
/// </summary>

View File

@ -127,6 +127,12 @@ namespace WCS.BLL.DbModels
[SugarColumn(ColumnName = "create_user", Length = 100, IsNullable = true, ColumnDescription = "操作员")]
public string CreateUser { get; set; }
/// <summary>
/// 是否是盟讯公司盘点生成的出库单
/// </summary>
[SugarColumn(ColumnName = "is_MXPD", IsNullable = true, ColumnDescription = "是否是盟讯公司盘点生成的出库单")]
public bool? IsMXPD { get; set; } = false;
/// <summary>
/// 用于绑定中显示序号
/// </summary>

View File

@ -1456,7 +1456,7 @@ namespace WCS.BLL.HardWare
MatSupplier = inventoryDetail.MatSupplier,
OrderNumber = orderMatDetails.OrderNumber,
Direction = DirectionEnum.,
Direction = orderMatDetails.IsMXPD == false ? DirectionEnum. : DirectionEnum.,
};
//库位表 修改
storeInfo.CurrentMatSn = string.Empty;
@ -1509,6 +1509,7 @@ namespace WCS.BLL.HardWare
var isExsistOut = CurrentOutStoreMatSNs.Any();
var tempOrder = CurrentOutOrder;
var isMXPD = orderMatDetails.IsMXPD == true;
//通知前台刷新
Task.Run(() =>
{
@ -1519,7 +1520,7 @@ namespace WCS.BLL.HardWare
{
IsWarning = false,
ClientIp = WebSocketIpAddress,
WarningType = WarningTypeEnum.
WarningType = isMXPD ? WarningTypeEnum. : WarningTypeEnum.
};
WarningManager.SendWarning(messageMode);
});

View File

@ -15,5 +15,7 @@ namespace WCS.BLL.Services.IService
public Task<string> generateStockTakingNumber();
public Task<string> generateOutOrderNumber();
public Task<string> generateMXPDOutOrderNumber();
}
}

View File

@ -134,6 +134,15 @@ namespace WCS.BLL.Services.Service
}
}
public async Task<string> generateMXPDOutOrderNumber()
{
lock (stockTakingFlag)
{
var serialNumber = GetSerialNumber(DocumentTypeEnum.);
return "PDOUT" + DateTime.Now.ToString("yyyyMMdd") + serialNumber.ToString().PadLeft(4, '0');
}
}
public int GetSerialNumber(DocumentTypeEnum documentType)
{
var documentSerialNumber = DbHelp.db.Queryable<DocumentSerialNumber>()

View File

@ -131,6 +131,7 @@ namespace WCS.BLL.Services.Service
{
Code = 200,
Message = $"出库单据同步成功!\r\n出库单据号为{request.OrderNumber}",
Data = request.OrderNumber
}; ;
}
catch (Exception ex)
@ -231,7 +232,7 @@ namespace WCS.BLL.Services.Service
MatQty = t.MatQty,
MatSupplier = t.MatSupplier,
MatCustomer = t.MatCustomer,
CreateUser = request.UserName
CreateUser = request.UserName,
};
await DbHelp.db.Insertable(orderMatDetail).ExecuteCommandAsync();
}).ToList();
@ -289,12 +290,14 @@ namespace WCS.BLL.Services.Service
outOrder = new OutOrder()
{
OrderNumber = request.OrderNumber,
OrderType = request.OrderType,
OutOrderExeStatus = OutOrderExeStatus.,
OrderSource = "WCS前端",
SyncType = SyncTypeEnum.ByMatSn,
ShelfTypeName = "智能货架",
ShelfTypeId = 0,
GroupName = LocalFile.Config.GroupName,
IsMXPD = request.IsMXPD,
};
outOrder.Id = await DbHelp.db.Insertable(outOrder).ExecuteReturnIdentityAsync();
outOrder = await DbHelp.db.Queryable<OutOrder>().Where(t => t.OrderNumber == request.OrderNumber)
@ -327,7 +330,8 @@ namespace WCS.BLL.Services.Service
MatQty = item.MatQty,
MatSupplier = item.MatSupplier,
MatCustomer = item.MatCustomer,
CreateUser = request.UserName
CreateUser = request.UserName,
IsMXPD = request.IsMXPD,
};
await DbHelp.db.Insertable(orderMatDetail).ExecuteCommandAsync();
}
@ -362,7 +366,8 @@ namespace WCS.BLL.Services.Service
MatQty = item.MatQty,
MatSupplier = item.MatSupplier,
MatCustomer = item.MatCustomer,
CreateUser = request.UserName
CreateUser = request.UserName,
IsMXPD = request.IsMXPD,
};
await DbHelp.db.Insertable(orderMatDetail).ExecuteCommandAsync();
}
@ -396,7 +401,7 @@ namespace WCS.BLL.Services.Service
return new ResponseCommon()
{
Code = 200,
Message = $"Success",
Message = outOrder.OrderNumber,
Data = request.SnList
};
@ -466,7 +471,10 @@ namespace WCS.BLL.Services.Service
};
}
//直接查询
var recordsQueryable = DbHelp.db.Queryable<OutOrder>().Where(t => request.OrderExeStatus.Contains(t.OutOrderExeStatus));
var recordsQueryable = DbHelp.db.Queryable<OutOrder>()
.Where(t => request.OrderExeStatus.Contains(t.OutOrderExeStatus))
.WhereIF(request.IsMXPD != null, t => t.IsMXPD == request.IsMXPD)
.WhereIF(LocalFile.Config.IsMx, t => t.CreateTime > DateTime.Now.AddDays(-3));
var totalCount = await recordsQueryable.CountAsync();
var records = await recordsQueryable
@ -693,7 +701,7 @@ namespace WCS.BLL.Services.Service
var matCode = outOrderDetailCount.First().bb.Key;
outOrderMatDetails = outOrderMatDetails.Where(t => t.MatCode == matCode)
.ToList();
Logs.Write($"出库单{order.OrderNumber},本次亮灯物料{matCode}",LogsType.Outstore);
Logs.Write($"出库单{order.OrderNumber},本次亮灯物料{matCode}", LogsType.Outstore);
//分批次亮灯再计算一次出哪些货架 以免亮大灯不亮小灯
shelfIds = outOrderMatDetails.Select(t => t.StoreInfo.ShelfId)
@ -843,7 +851,7 @@ namespace WCS.BLL.Services.Service
Dictionary<string, List<int>> dict = new Dictionary<string, List<int>>();
foreach (OutOrderMatDetail oomd in outOrderMatDetails)
{
List<ModuleInfo> mi= DbHelp.db.Queryable<ModuleInfo>().Where(it => it.ModuleCode == oomd.StoreCode).ToList();
List<ModuleInfo> mi = DbHelp.db.Queryable<ModuleInfo>().Where(it => it.ModuleCode == oomd.StoreCode).ToList();
if (mi.Count != 0)
{
if (!StoreCode.Contains(oomd.StoreCode))
@ -875,7 +883,7 @@ namespace WCS.BLL.Services.Service
{
string sendIP = v.Key;
TCPClient tCPClient = TCPClientManager.GetTCPClientByIPHost(sendIP);
byte[] lightOn = Helper.OutstoreLight(v.Value, LightColor,1);
byte[] lightOn = Helper.OutstoreLight(v.Value, LightColor, 1);
tCPClient.Send(lightOn);
Thread.Sleep(100);
}
@ -895,12 +903,12 @@ namespace WCS.BLL.Services.Service
foreach (string shelfcode in WarnLightShelfCode)
{
List<ShelfInfo> si = DbHelp.db.Queryable<ShelfInfo>().Where(it => it.ShelfCode == shelfcode).ToList();
if (si.Count != 0)
if (si.Count != 0)
{
for (int i = 0; i < si.Count; i++)
{
TCPClient tCPClient = TCPClientManager.GetTCPClientByIPHost(si[i].ClientIp);
byte[] warnlightOn = Helper.OutstoreWarnLight(si[i].LightId,LightColor,1,0);
byte[] warnlightOn = Helper.OutstoreWarnLight(si[i].LightId, LightColor, 1, 0);
tCPClient.Send(warnlightOn);
Thread.Sleep(100);
}
@ -1199,7 +1207,7 @@ namespace WCS.BLL.Services.Service
}
catch (Exception ee)
{
Logs.Write("查询出库单据:"+request.OrderNumber+"对应库位灯颜色失败,"+ ee.Message);
Logs.Write("查询出库单据:" + request.OrderNumber + "对应库位灯颜色失败," + ee.Message);
}
Dictionary<string, List<int>> dict = new Dictionary<string, List<int>>();
foreach (OutOrderMatDetail oomd in outOrderMatDetails)
@ -1236,7 +1244,7 @@ namespace WCS.BLL.Services.Service
{
string sendIP = v.Key;
TCPClient tCPClient = TCPClientManager.GetTCPClientByIPHost(sendIP);
byte[] lightOn = Helper.OutstoreLight(v.Value, LightColor,0);
byte[] lightOn = Helper.OutstoreLight(v.Value, LightColor, 0);
tCPClient.Send(lightOn);
Thread.Sleep(100);
}