1.增加手动自检功能,主页增加状态显示
This commit is contained in:
@ -20,7 +20,7 @@ namespace WCS.BLL.DbModels
|
||||
/// <summary>
|
||||
/// 出库单据号
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "order_number", Length = 50, IsNullable = false, ColumnDescription = "出库单据号")]
|
||||
[SugarColumn(ColumnName = "order_number", Length = 50, IsNullable = true, ColumnDescription = "出库单据号")]
|
||||
public string OrderNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
@ -67,7 +67,7 @@ namespace WCS.BLL.DbModels
|
||||
/// 货架的组别、区域(区分单个软件管哪些货架的,前端的配置文件配置一个组别,查询时只显示当前组别的货架)
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "group_name", Length = 50, IsNullable = false, DefaultValue = "0", ColumnDescription = "货架的组别、区域(区分单个软件管哪些货架的,前端的配置文件配置一个组别,查询时只显示当前组别的货架)")]
|
||||
public string GroupName { get; set; }
|
||||
public string GroupName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
|
@ -458,7 +458,7 @@ namespace WCS.BLL.HardWare
|
||||
var isOuting = ShelfManager.Shelves.Where(t => t.CurrentMode == Mode.出库模式 && t.OrderNumber == OrderNumber)
|
||||
.Any();
|
||||
//WebSocket通知前台以更新左侧出库单列表的状态
|
||||
if (!isOuting )
|
||||
if (!isOuting)
|
||||
{
|
||||
#region WebSocket
|
||||
var messageMode = new WebSocketMessageModel()
|
||||
@ -706,9 +706,21 @@ namespace WCS.BLL.HardWare
|
||||
|
||||
public void ShelfCheck()
|
||||
{
|
||||
foreach (var module in Modules.Where(t => t.IsEnable).ToList())
|
||||
try
|
||||
{
|
||||
module.ShelfCheck(TcpCleint);
|
||||
OrderNumber = "自检中...";
|
||||
foreach (var module in Modules.Where(t => t.IsEnable).ToList())
|
||||
{
|
||||
module.ShelfCheck(TcpCleint);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logs.Write("自检发现异常:" + ex);
|
||||
}
|
||||
finally
|
||||
{
|
||||
OrderNumber = string.Empty;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
@ -794,6 +806,9 @@ namespace WCS.BLL.HardWare
|
||||
case 0x19://电压值3
|
||||
QueryVoltageProcess(data, boardId, lightNumber);
|
||||
break;
|
||||
case 0x0B://自检结果反馈
|
||||
SelfCheckProcess(data, boardId, lightNumber);
|
||||
break;
|
||||
default:
|
||||
;
|
||||
break;
|
||||
@ -1977,6 +1992,164 @@ namespace WCS.BLL.HardWare
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void SelfCheckProcess(byte[] data, int boardId, int lightNumber)
|
||||
{
|
||||
if (data[TcpCleint.PreFixLength + 3] == 0x01)
|
||||
{
|
||||
//比对结果相同
|
||||
}
|
||||
//比对结果不同
|
||||
else if (data[TcpCleint.PreFixLength + 3] == 0x00)
|
||||
{
|
||||
//获取当前板所有库位
|
||||
var storeInfos = DbHelp.db.Queryable<StoreInfo>()
|
||||
.Where(t => t.BoardId == boardId)
|
||||
.ToList();
|
||||
//当前设置的板库位数
|
||||
var boardStoreNumber = storeInfos.Count();
|
||||
|
||||
List<char> dataTemp = new List<char>();
|
||||
int index11 = 0;
|
||||
while (boardStoreNumber > 0)
|
||||
{
|
||||
if (boardStoreNumber >= 4)
|
||||
{
|
||||
dataTemp.AddRange(Convert.ToString(data[TcpCleint.PreFixLength + 4 + index11], 2).PadLeft(8, '0').Reverse().ToList());
|
||||
boardStoreNumber = boardStoreNumber - 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
dataTemp.AddRange(Convert.ToString(data[TcpCleint.PreFixLength + 4 + index11], 2).PadLeft(2 * boardStoreNumber, '0').Reverse().ToList());
|
||||
boardStoreNumber = 0;
|
||||
}
|
||||
index11++;
|
||||
}
|
||||
|
||||
boardStoreNumber = storeInfos.Count();
|
||||
for (int index = 0; index <= boardStoreNumber - 1; index++)
|
||||
{
|
||||
//当前库位异常
|
||||
if (dataTemp[2 * index + 1] == '1')
|
||||
{
|
||||
if (dataTemp[2 * index] == '1')
|
||||
{
|
||||
var storeInfo = storeInfos.Where(t => t.LightNumber == index + 1).First();
|
||||
if (storeInfo != null)
|
||||
{
|
||||
|
||||
#region 不处理、WebSocket通知前台
|
||||
var exceptionMessage = storeInfo.StoreCode + $"自检发现物料{storeInfo.CurrentMatSn}丢失,请确认是否删除?";
|
||||
var warningModel = new WebSocketMessageModel()
|
||||
{
|
||||
WarningType = WarningTypeEnum.自检丢失,
|
||||
StoreId = storeInfo.Id,
|
||||
StoreCode = storeInfo.StoreCode,
|
||||
ModuleId = storeInfo.ModuleId,
|
||||
ModuleCode = storeInfo.ModuleCode,
|
||||
ShelfCode = ShelfCode,
|
||||
ShelfId = ShelfId,
|
||||
WarningMessage = exceptionMessage,
|
||||
ClientIp = WebSocketIpAddress
|
||||
};
|
||||
WarningManager.SendWarning(warningModel);
|
||||
#endregion
|
||||
|
||||
//#region 【后台】丢失的数据处理
|
||||
//Task.Run(() =>
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// DbHelp.db.BeginTran();
|
||||
// //库位表字段清空
|
||||
// storeInfo.CurrentMatSN = string.Empty;
|
||||
// DbHelp.db.Updateable(storeInfo).ExecuteCommand();
|
||||
// //库存表记录删除、插入出入记录
|
||||
// var inventoryDetail = DbHelp.db.Queryable<InventoryDetail>().Where(t => t.StoreCode == storeInfo.StoreCode).First();
|
||||
// if (inventoryDetail != null)
|
||||
// {
|
||||
// var inOutRecord = new InOutRecord()
|
||||
// {
|
||||
// StoreCode = storeInfo.StoreCode,
|
||||
// StoreId = storeInfo.Id,
|
||||
// StoreInfo = storeInfo,
|
||||
|
||||
// R = storeInfo.R,
|
||||
// C = storeInfo.C,
|
||||
// Wei = storeInfo.Wei,
|
||||
// WarehouseCode = inventoryDetail.WarehouseCode,
|
||||
|
||||
// MatSN = inventoryDetail.MatSN,
|
||||
// MatCode = inventoryDetail.MatCode,
|
||||
// MatName = inventoryDetail.MatName,
|
||||
// MatBatch = inventoryDetail.MatBatch,
|
||||
// MatQty = inventoryDetail.MatQty,
|
||||
// MatSpec = inventoryDetail.MatSpec,
|
||||
|
||||
// OrderNumber = inventoryDetail.OrderNumber,
|
||||
// OrderProdNumber = inventoryDetail.OrderProdNumber,
|
||||
// OrderMaterialCode = inventoryDetail.OrderMaterialCode,
|
||||
// OrderMaterialName = inventoryDetail.OrderMaterialName,
|
||||
// OrderMaterialSpec = inventoryDetail.OrderMaterialSpec,
|
||||
|
||||
// GroupName = LocalFile.Config.GroupName,
|
||||
|
||||
// Direction = DirectionEnum.丢失,
|
||||
// };
|
||||
// DbHelp.db.Insertable(inOutRecord).ExecuteCommand();
|
||||
// DbHelp.db.Deleteable(inventoryDetail).ExecuteCommand();
|
||||
// }
|
||||
// DbHelp.db.CommitTran();
|
||||
// }
|
||||
// catch (Exception e)
|
||||
// {
|
||||
// DbHelp.db.RollbackTran();
|
||||
// }
|
||||
//});
|
||||
//#endregion
|
||||
}
|
||||
//库位未配置、返回数据异常
|
||||
else
|
||||
{
|
||||
Logs.Write($"[进入入库模式异常]板Id{boardId},库位号{index + 1}找不到对应库位!");
|
||||
}
|
||||
}
|
||||
else if (dataTemp[2 * index] == '0')
|
||||
{
|
||||
var storeInfo = storeInfos.Where(t => t.LightNumber == index + 1).First();
|
||||
if (storeInfo != null)
|
||||
{
|
||||
#region 不处理、WebSocket通知前台
|
||||
var exceptionMessage = $"自检发现库位{storeInfo.StoreCode}存在物料未扫描上架,请拿下后点击【确认】消除报警";
|
||||
var warningModel = new WebSocketMessageModel()
|
||||
{
|
||||
WarningType = WarningTypeEnum.自检未扫描上架,
|
||||
StoreId = storeInfo.Id,
|
||||
StoreCode = storeInfo.StoreCode,
|
||||
ModuleId = storeInfo.ModuleId,
|
||||
ModuleCode = storeInfo.ModuleCode,
|
||||
ShelfCode = ShelfCode,
|
||||
ShelfId = ShelfId,
|
||||
WarningMessage = exceptionMessage,
|
||||
ClientIp = WebSocketIpAddress
|
||||
};
|
||||
WarningManager.SendWarning(warningModel);
|
||||
#endregion
|
||||
//#region 【记录缓存异常信息】
|
||||
//var shelfStatus = LocalStatic.ShelfStatuses.Where(t => t.ShelfCode == storeInfo.ShelfCode).First();
|
||||
//LocalStatic.CheckErr.Add($"库位{storeInfo.StoreCode}:存在物料未扫描上架,请取出后重新扫描上架!");
|
||||
//#endregion
|
||||
//WaringLightAlwaysRed(shelfStatus.ClientIp, shelfStatus.LightId);
|
||||
}
|
||||
else
|
||||
{
|
||||
Logs.Write($"[进入入库模式异常]板Id{boardId},库位号{index + 1}找不到对应库位!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
@ -72,7 +72,7 @@ namespace WCS.BLL.Manager
|
||||
, typeof(InventoryDetail), typeof(OutOrder), typeof(OutOrderDetail), typeof(OutOrderMatDetail)
|
||||
, typeof(ShelfTypeInfo), typeof(MatBaseInfo), typeof(MatInfo)
|
||||
, typeof(StockTakingOrder), typeof(StockTakingOrderMatDetail), typeof(InOutRecord)
|
||||
, typeof(DocumentSerialNumber)
|
||||
, typeof(DocumentSerialNumber),typeof(OrderLight)
|
||||
);
|
||||
Logs.Write("【初始化数据库】db建表", LogsType.StartBoot);
|
||||
|
||||
|
@ -75,8 +75,15 @@ namespace WCS.BLL.Manager
|
||||
case WarningTypeEnum.出库自检丢失:
|
||||
SolveLoss(warningInManager);
|
||||
break;
|
||||
case WarningTypeEnum.自检丢失:
|
||||
SolveLoss(warningInManager);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (solveType == SolveTypeEnum.忽略)
|
||||
{
|
||||
//不发指令了
|
||||
}
|
||||
|
||||
//消除报警缓存信息
|
||||
lock (flag)
|
||||
|
@ -3,6 +3,6 @@ namespace WCS.BLL.Services.IService
|
||||
{
|
||||
public interface IHomerService
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ namespace WCS.BLL.Services.IService
|
||||
public Task<ResponseBase> GetOutOrderListByStatus(GetOutOrderListByStatusRequest request);
|
||||
|
||||
public Task<ResponseBase> GetOutOrderDetail(GetOutOrderDetailRequest request);
|
||||
public Task<ResponseBase> GetOutOrderDetailSingleLight(GetOutOrderDetailRequest request);
|
||||
|
||||
public Task<ResponseBase> GetOutOrderMatDetail(GetOutOrderDetailRequest request);
|
||||
|
||||
|
@ -12,5 +12,7 @@ namespace WCS.BLL.Services.IService
|
||||
public interface ISelfCheckService
|
||||
{
|
||||
public Task<ResponseBase> StartSelfCheckByShelfCode(StartSelfCheckByShelfCodeRequest request);
|
||||
|
||||
public Task<ResponseBase> StartSelfCheckByGroupName(List<string> GroupNames);
|
||||
}
|
||||
}
|
||||
|
@ -562,6 +562,74 @@ namespace WCS.BLL.Services.Service
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单灯查询物料明细 PDA要求返回数据种data需要增加一层details
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ResponseBase> GetOutOrderDetailSingleLight(GetOutOrderDetailRequest request)
|
||||
{
|
||||
OutOrder outOrder = null;
|
||||
|
||||
#region 查询出库单
|
||||
if (request.OrderId != 0)
|
||||
{
|
||||
outOrder = await DbHelp.db.Queryable<OutOrder>().Where(t => t.Id == request.OrderId).FirstAsync();
|
||||
if (outOrder == null)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"查询失败:不存在Id为{request.OrderId}的出库单!",
|
||||
};
|
||||
}
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(request.OrderNumber))
|
||||
{
|
||||
outOrder = await DbHelp.db.Queryable<OutOrder>().Where(t => t.OrderNumber == request.OrderNumber)
|
||||
.FirstAsync();
|
||||
if (outOrder == null)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"查询失败:不存在出库单据号为{request.OrderNumber}的出库单!",
|
||||
};
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"查询失败:缺少必要参数!",
|
||||
};
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 查询出库单明细
|
||||
var orderDetailTask = DbHelp.db.Queryable<OutOrderDetail>()
|
||||
.Where(t => t.OrderId == outOrder.Id)
|
||||
.ToListAsync();
|
||||
var orderDetail = await orderDetailTask;
|
||||
//生成序号
|
||||
for (int i = 0; i < orderDetail.Count; i++)
|
||||
{
|
||||
orderDetail[i].RowNumber = i + 1;
|
||||
}
|
||||
#endregion
|
||||
|
||||
return new ResponseCommonModify<OutOrderDetail>()
|
||||
{
|
||||
Code = 200,
|
||||
Message = "Success",
|
||||
Data = new ResponseCommonDataDetail<OutOrderDetail>
|
||||
{
|
||||
Details = orderDetail
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public async Task<ResponseBase> GetOutOrderMatDetail(GetOutOrderDetailRequest request)
|
||||
{
|
||||
OutOrder outOrder = null;
|
||||
@ -925,7 +993,7 @@ namespace WCS.BLL.Services.Service
|
||||
return new OutResponseCommonSingle()
|
||||
{
|
||||
Code = 200,
|
||||
Message = "Success",
|
||||
Message = LightColor,
|
||||
Data = orcs.Data
|
||||
};
|
||||
}
|
||||
@ -1296,48 +1364,92 @@ namespace WCS.BLL.Services.Service
|
||||
|
||||
public async Task<ResponseBase> SingleLightConfirmOutstore(OutOrderMatDetailModelSingle request)
|
||||
{
|
||||
InOutRecord ior = new InOutRecord();
|
||||
List<InventoryDetail> id = DbHelp.db.Queryable<InventoryDetail>().Where(it => it.MatSN == request.MatSn).ToList();
|
||||
if (id.Count == 0)
|
||||
try
|
||||
{
|
||||
//单据校验
|
||||
var order = await DbHelp.db.Queryable<OutOrder>()
|
||||
.Where(it => it.Id == request.OrderId)
|
||||
.Where(it => it.OrderNumber == request.OrderNumber)
|
||||
.FirstAsync();
|
||||
if (order == null)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"系统不存在单据[{request.OrderNumber}]!",
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
//物料校验
|
||||
var invetoryDetail = await DbHelp.db.Queryable<InventoryDetail>()
|
||||
.Where(it => it.Id == request.MatId)
|
||||
.Where(it => it.MatSN == request.MatSn)
|
||||
.FirstAsync();
|
||||
|
||||
if (invetoryDetail == null)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"库存中不存在物料[{request.MatSn}]!",
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
|
||||
//物料需求明细校验
|
||||
var outOrderDetail = await DbHelp.db.Queryable<OutOrderDetail>().Where(it => it.OrderNumber == request.OrderNumber)
|
||||
.Where(it => it.MatCode == invetoryDetail.MatCode)
|
||||
.FirstAsync();
|
||||
if (outOrderDetail == null)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"单据[{request.OrderNumber}]需求不包含物料[{invetoryDetail.MatCode}]!",
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
|
||||
var inOutRecord = new InOutRecord();
|
||||
inOutRecord.StoreId = invetoryDetail.StoreId;
|
||||
inOutRecord.StoreCode = invetoryDetail.StoreCode;
|
||||
inOutRecord.MatSN = invetoryDetail.MatSN;
|
||||
inOutRecord.MatCode = invetoryDetail.MatCode;
|
||||
inOutRecord.MatName = invetoryDetail.MatName;
|
||||
inOutRecord.MatSpec = invetoryDetail.MatSpec;
|
||||
inOutRecord.MatBatch = invetoryDetail.MatBatch;
|
||||
inOutRecord.MatQty = invetoryDetail.MatQty;
|
||||
inOutRecord.MatSupplier = invetoryDetail.MatSupplier;
|
||||
inOutRecord.MatCustomer = invetoryDetail.MatCustomer;
|
||||
inOutRecord.OrderNumber = order.OrderNumber;
|
||||
inOutRecord.Direction = DirectionEnum.出库;
|
||||
inOutRecord.OperateUser = request.UserName;
|
||||
inOutRecord.OperateTime = DateTime.Now;
|
||||
//保存出库记录
|
||||
int count = DbHelp.db.Insertable(inOutRecord).ExecuteCommand();
|
||||
//删除库存
|
||||
DbHelp.db.Deleteable<InventoryDetail>().Where(it => it.MatSN == request.MatSn).ExecuteCommand();
|
||||
//更新需求表
|
||||
outOrderDetail.OutQty += invetoryDetail.MatQty;
|
||||
DbHelp.db.Updateable(outOrderDetail).ExecuteCommand();
|
||||
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"此SN不在库存中{request.MatSn}!",
|
||||
Code = 200,
|
||||
Message = $"出库成功",
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
ior.StoreId = id[0].StoreId;
|
||||
ior.StoreCode = id[0].StoreCode;
|
||||
ior.MatSN = request.MatSn;
|
||||
ior.MatCode = request.MatCode;
|
||||
ior.MatName = request.MatName;
|
||||
ior.MatSpec = request.MatSpec;
|
||||
ior.MatBatch = request.MatBatch;
|
||||
ior.MatQty = request.Qty;
|
||||
ior.MatSupplier = request.MatSupplier;
|
||||
ior.MatCustomer = request.MatCustomer;
|
||||
ior.OrderNumber = request.orderNumber;
|
||||
ior.Direction = DirectionEnum.出库;
|
||||
ior.OperateUser = request.userName;
|
||||
ior.OperateTime = DateTime.Now;
|
||||
//保存出库记录
|
||||
int count = DbHelp.db.Insertable(ior).ExecuteCommand();
|
||||
//删除库存
|
||||
DbHelp.db.Deleteable<InventoryDetail>().Where(it => it.MatSN == request.MatSn).ExecuteCommand();
|
||||
//更新需求表
|
||||
List<OutOrderDetail> odd = DbHelp.db.Queryable<OutOrderDetail>().Where(it => it.OrderNumber == request.orderNumber).Where(it => it.MatCode == request.MatCode).ToList();
|
||||
odd[0].OutQty += request.Qty;
|
||||
DbHelp.db.Updateable(odd[0]).ExecuteCommand();
|
||||
|
||||
return new ResponseCommon()
|
||||
catch (Exception ex)
|
||||
{
|
||||
Code = 200,
|
||||
Message = $"出库成功",
|
||||
Data = null
|
||||
};
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 300,
|
||||
Message = $"出库发生异常!",
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ using WCS.BLL.Manager;
|
||||
using WCS.BLL.Services.IService;
|
||||
using WCS.Model;
|
||||
using WCS.Model.ApiModel.SelfCheck;
|
||||
using WCS.Model.WebSocketModel;
|
||||
|
||||
namespace WCS.BLL.Services.Service
|
||||
{
|
||||
@ -42,5 +43,76 @@ namespace WCS.BLL.Services.Service
|
||||
Message = $"货架{string.Join(",", request.ShelfCodes)}已开始自检!",
|
||||
};
|
||||
}
|
||||
|
||||
public async Task<ResponseBase> StartSelfCheckByGroupName(List<string> GroupNames)
|
||||
{
|
||||
if (GroupNames == null || GroupNames.Count == 0)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"参数为空!",
|
||||
};
|
||||
}
|
||||
//获取货架
|
||||
var shelfs = ShelfManager.Shelves
|
||||
.Where(t => GroupNames.Contains(t.GroupName))
|
||||
.ToList();
|
||||
var cleintIps = shelfs.Select(t => t.ClientIp).Distinct().ToList();
|
||||
|
||||
foreach (var ip in cleintIps)
|
||||
{
|
||||
var currentIdShelfs = shelfs.Where(t => t.ClientIp == ip)
|
||||
.ToList();
|
||||
Task.Run(() =>
|
||||
{
|
||||
foreach(var shelf in currentIdShelfs)
|
||||
{
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
var warningModel = new WebSocketMessageModel()
|
||||
{
|
||||
IsWarning = false,
|
||||
ClientIsReceived = true,
|
||||
WarningType = WarningTypeEnum.通知自检进度,
|
||||
StoreId = 0,
|
||||
StoreCode = "",
|
||||
ShelfCode = shelf.ShelfCode,
|
||||
ShelfId = shelf.ShelfId,
|
||||
ClientIp = shelf.WebSocketIpAddress,
|
||||
WarningMessage = $"货架【{shelf.ShelfCode}】开始自检"
|
||||
};
|
||||
WarningManager.SendWarning(warningModel);
|
||||
});
|
||||
|
||||
shelf.ShelfCheck();
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
var warningModel = new WebSocketMessageModel()
|
||||
{
|
||||
IsWarning = false,
|
||||
ClientIsReceived = true,
|
||||
WarningType = WarningTypeEnum.通知自检进度,
|
||||
StoreId = 0,
|
||||
StoreCode = "",
|
||||
ShelfCode = shelf.ShelfCode,
|
||||
ShelfId = shelf.ShelfId,
|
||||
ClientIp = shelf.WebSocketIpAddress,
|
||||
WarningMessage = $"货架【{shelf.ShelfCode}】已完成自检"
|
||||
};
|
||||
WarningManager.SendWarning(warningModel);
|
||||
});
|
||||
Thread.Sleep(10);
|
||||
}
|
||||
});
|
||||
}
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 200,
|
||||
Message = $"已成功开始自检!",
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user