后台线程配置

This commit is contained in:
hehaibing-1996
2025-03-10 10:15:58 +08:00
parent ddc0b13813
commit f8fe33c32b
2 changed files with 180 additions and 177 deletions

View File

@ -18,105 +18,105 @@ namespace WCS.BLL.Manager
{ {
public static void InitBackgroundThread() public static void InitBackgroundThread()
{ {
#region :Mes入库出库 //#region 定时任务:回传Mes入库出库
Task.Run(() => //Task.Run(() =>
{ //{
while (true) // while (true)
{ // {
//每5秒同步一次 // //每5秒同步一次
Thread.Sleep(5000); // Thread.Sleep(5000);
try // try
{ // {
var records = DbHelp.db.Queryable<InOutRecord>() // var records = DbHelp.db.Queryable<InOutRecord>()
.Where(t => t.OperateTime > DateTime.Now.AddDays(-3)) //只查询回传三天内数据 // .Where(t => t.OperateTime > DateTime.Now.AddDays(-3)) //只查询回传三天内数据
.Where(t => t.IsUpload == false) // .Where(t => t.IsUpload == false)
.Includes(t => t.StoreInfo) // .Includes(t => t.StoreInfo)
.OrderBy(t => t.Id) // .OrderBy(t => t.Id)
.ToList(); // .ToList();
//入库记录上传 // //入库记录上传
var inventoryDetails = records.Where(t => t.Direction == DirectionEnum.) // var inventoryDetails = records.Where(t => t.Direction == DirectionEnum.入库)
.WhereIF(!string.IsNullOrEmpty(LocalFile.Config.GroupName), t => t.GroupName == LocalFile.Config.GroupName) // .WhereIF(!string.IsNullOrEmpty(LocalFile.Config.GroupName), t => t.GroupName == LocalFile.Config.GroupName)
.ToList(); // .ToList();
if (inventoryDetails != null && inventoryDetails.Count > 0) // if (inventoryDetails != null && inventoryDetails.Count > 0)
{ // {
for (int i = 0; i < inventoryDetails.Count; i++) // for (int i = 0; i < inventoryDetails.Count; i++)
{ // {
try // try
{ // {
//请求WMS上传入库记录 // //请求WMS上传入库记录
var data = new InputStockInRequest // var data = new InputStockInRequest
{ // {
materialBar = inventoryDetails[i].MatSN, // materialBar = inventoryDetails[i].MatSN,
shelfCode = inventoryDetails[i].BigShelfCode, // shelfCode = inventoryDetails[i].BigShelfCode,
shelfX = "R" + inventoryDetails[i].R, // shelfX = "R" + inventoryDetails[i].R,
shelfY = "C" + inventoryDetails[i].C, // shelfY = "C" + inventoryDetails[i].C,
shelfZ = inventoryDetails[i].Wei, // shelfZ = inventoryDetails[i].Wei,
inUser = inventoryDetails[i].OperateUser, // inUser = inventoryDetails[i].OperateUser,
inTime = inventoryDetails[i].OperateTime.ToString("yyyy-MM-dd HH:mm:ss"), // inTime = inventoryDetails[i].OperateTime.ToString("yyyy-MM-dd HH:mm:ss"),
}; // };
Guid guid = Guid.NewGuid(); // Guid guid = Guid.NewGuid();
var result = ApiHelp.GetDataFromHttp<ResponseCommon>(LocalFile.Config.InputStockInStr, data, "POST", true); // var result = ApiHelp.GetDataFromHttp<ResponseCommon>(LocalFile.Config.InputStockInStr, data, "POST", true);
if (result != null && (result.Code == 200)) // if (result != null && (result.Code == 200))
{ // {
//上传成功 更改上传状态 // //上传成功 更改上传状态
inventoryDetails[i].IsUpload = true; // inventoryDetails[i].IsUpload = true;
DbHelp.db.Updateable(inventoryDetails[i]).ExecuteCommand(); // DbHelp.db.Updateable(inventoryDetails[i]).ExecuteCommand();
} // }
} // }
catch (Exception ex) // catch (Exception ex)
{ // {
} // }
Thread.Sleep(200); // Thread.Sleep(200);
} // }
} // }
//出库记录上传 // //出库记录上传
var outRecord = records.Where(t => t.Direction == DirectionEnum.) // var outRecord = records.Where(t => t.Direction == DirectionEnum.出库)
.Where(t => !string.IsNullOrEmpty(t.OrderNumber)) // .Where(t => !string.IsNullOrEmpty(t.OrderNumber))
.WhereIF(!string.IsNullOrEmpty(LocalFile.Config.GroupName), t => t.GroupName == LocalFile.Config.GroupName) // .WhereIF(!string.IsNullOrEmpty(LocalFile.Config.GroupName), t => t.GroupName == LocalFile.Config.GroupName)
.ToList(); // .ToList();
if (outRecord != null && outRecord.Count > 0) // if (outRecord != null && outRecord.Count > 0)
{ // {
for (int i = 0; i < outRecord.Count; i++) // for (int i = 0; i < outRecord.Count; i++)
{ // {
try // try
{ // {
var retString = string.Empty; // var retString = string.Empty;
var data = new BunkerOutRequest() // var data = new BunkerOutRequest()
{ // {
materialBar = outRecord[i].MatSN, // materialBar = outRecord[i].MatSN,
outType = 0, // outType = 0,
pickBillNumber = outRecord[i].OrderNumber, // pickBillNumber = outRecord[i].OrderNumber,
qty = outRecord[i].MatQty, // qty = outRecord[i].MatQty,
}; // };
var result = ApiHelp.GetDataFromHttp<ResponseCommon>(LocalFile.Config.BunkerOutStr, data, "POST", true); // var result = ApiHelp.GetDataFromHttp<ResponseCommon>(LocalFile.Config.BunkerOutStr, data, "POST", true);
//请求成功 // //请求成功
if (result != null && result.Code == 200) // if (result != null && result.Code == 200)
{ // {
//上传成功 更改上传状态 // //上传成功 更改上传状态
outRecord[i].IsUpload = true; // outRecord[i].IsUpload = true;
DbHelp.db.Updateable(outRecord[i]).ExecuteCommand(); // DbHelp.db.Updateable(outRecord[i]).ExecuteCommand();
} // }
} // }
catch (Exception ex) // catch (Exception ex)
{ // {
} // }
Thread.Sleep(200); // Thread.Sleep(200);
} // }
} // }
} // }
catch (Exception ex) // catch (Exception ex)
{ // {
Logs.Write("【定时任务】上传异常:" + ex.Message); // Logs.Write("【定时任务】上传异常:" + ex.Message);
} // }
} // }
}); //});
#endregion //#endregion
#region 退 #region 退
Task.Run(() => Task.Run(() =>
@ -169,97 +169,97 @@ namespace WCS.BLL.Manager
}); });
#endregion #endregion
#region //#region 定时任务:海康未扫物料码的物料更新数
Task.Run(() => //Task.Run(() =>
{ //{
while (true) // while (true)
{ // {
//间隔20秒同步一次 // //间隔20秒同步一次
Thread.Sleep(20000); // Thread.Sleep(20000);
try // try
{ // {
var inventoryDetails = DbHelp.db.Queryable<InventoryDetail>() // var inventoryDetails = DbHelp.db.Queryable<InventoryDetail>()
.Where(t => t.MatName == "暂时未知") // .Where(t => t.MatName == "暂时未知")
.Where(t => t.InstoreTime > DateTime.Now.AddDays(-3)) // .Where(t => t.InstoreTime > DateTime.Now.AddDays(-3))
.ToList(); // .ToList();
if (inventoryDetails != null && inventoryDetails.Count > 0) // if (inventoryDetails != null && inventoryDetails.Count > 0)
{ // {
for (int i = 0; i < inventoryDetails.Count; i++) // for (int i = 0; i < inventoryDetails.Count; i++)
{ // {
try // try
{ // {
//请求WMS获取物料的信息 // //请求WMS获取物料的信息
var request = new QueryBybarRequest() // var request = new QueryBybarRequest()
{ // {
materialBar = inventoryDetails[i].MatSN // materialBar = inventoryDetails[i].MatSN
}; // };
var result = ApiHelp.GetDataFromHttp<QueryBybarResponse>(LocalFile.Config.QueryBybar, request, "POST", true); // var result = ApiHelp.GetDataFromHttp<QueryBybarResponse>(LocalFile.Config.QueryBybar, request, "POST", true);
if (result != null && (result.code == 200) && result.data != null && result.data.Count() > 0) // if (result != null && (result.code == 200) && result.data != null && result.data.Count() > 0)
{ // {
//查询成功 更改数值 // //查询成功 更改数值
var instoreDto = result.data.FirstOrDefault(); // var instoreDto = result.data.FirstOrDefault();
inventoryDetails[i].MatCode = instoreDto.materialCode; // inventoryDetails[i].MatCode = instoreDto.materialCode;
inventoryDetails[i].MatName = instoreDto.materialName; // inventoryDetails[i].MatName = instoreDto.materialName;
inventoryDetails[i].MatBatch = instoreDto.batchNo; // inventoryDetails[i].MatBatch = instoreDto.batchNo;
inventoryDetails[i].MatSpec = instoreDto.materialSpec; // inventoryDetails[i].MatSpec = instoreDto.materialSpec;
inventoryDetails[i].MatQty = (int)instoreDto.materialQty; // inventoryDetails[i].MatQty = (int)instoreDto.materialQty;
DbHelp.db.Updateable(inventoryDetails[i]).ExecuteCommand(); // DbHelp.db.Updateable(inventoryDetails[i]).ExecuteCommand();
} // }
} // }
catch (Exception ex) // catch (Exception ex)
{ // {
} // }
Thread.Sleep(500); // Thread.Sleep(500);
} // }
} // }
} // }
catch (Exception ex) // catch (Exception ex)
{ // {
Logs.Write("【定时任务】更新海康物料信息异常:" + ex.Message); // Logs.Write("【定时任务】更新海康物料信息异常:" + ex.Message);
} // }
Thread.Sleep(3000); // Thread.Sleep(3000);
try // try
{ // {
var inventoryDetails = DbHelp.db.Queryable<InventoryDetail>() // var inventoryDetails = DbHelp.db.Queryable<InventoryDetail>()
.Where(t => t.WarehouseCode == null) // .Where(t => t.WarehouseCode == null)
.Where(t => t.InstoreTime > DateTime.Now.AddDays(-30)) // .Where(t => t.InstoreTime > DateTime.Now.AddDays(-30))
.ToList(); // .ToList();
if (inventoryDetails != null && inventoryDetails.Count > 0) // if (inventoryDetails != null && inventoryDetails.Count > 0)
{ // {
for (int i = 0; i < inventoryDetails.Count; i++) // for (int i = 0; i < inventoryDetails.Count; i++)
{ // {
try // try
{ // {
var url = $"http://192.168.2.23:9213/integrate/hkwsInventoryDetail/selectMaterialBar?materialBar={inventoryDetails[i].MatSN}"; // var url = $"http://192.168.2.23:9213/integrate/hkwsInventoryDetail/selectMaterialBar?materialBar={inventoryDetails[i].MatSN}";
var result = ApiHelp.GetDataFromHttp<SelectMaterialBarResponse>(url, null, "POST", false); // var result = ApiHelp.GetDataFromHttp<SelectMaterialBarResponse>(url, null, "POST", false);
if (result != null && result.code == 200 && result.data != null && !string.IsNullOrEmpty(result.data.warehouseCode)) // if (result != null && result.code == 200 && result.data != null && !string.IsNullOrEmpty(result.data.warehouseCode))
{ // {
//查询成功 更改数值 // //查询成功 更改数值
inventoryDetails[i].WarehouseCode = result.data.warehouseCode; // inventoryDetails[i].WarehouseCode = result.data.warehouseCode;
DbHelp.db.Updateable(inventoryDetails[i]).ExecuteCommand(); // DbHelp.db.Updateable(inventoryDetails[i]).ExecuteCommand();
} // }
} // }
catch (Exception ex) // catch (Exception ex)
{ // {
Logs.Write("【定时任务】更新仓库代码异常:" + ex.Message); // Logs.Write("【定时任务】更新仓库代码异常:" + ex.Message);
} // }
Thread.Sleep(500); // Thread.Sleep(500);
} // }
} // }
} // }
catch (Exception ex) // catch (Exception ex)
{ // {
} // }
} // }
}); //});
#endregion //#endregion
#region #region
//判断灯颜色和模式是否对应 //判断灯颜色和模式是否对应

View File

@ -39,6 +39,9 @@ namespace WebApi
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ط<EFBFBD><D8B7>߳<EFBFBD> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ط<EFBFBD><D8B7>߳<EFBFBD>
WarningManager.StartWarningMessageThread(); WarningManager.StartWarningMessageThread();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2>״̬<D7B4>߳<EFBFBD> <20><>ʱ<EFBFBD>˳<EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD>عصƵȻ<C6B5><C8BB><EFBFBD>
MXBackgroundThread.InitBackgroundThread();
//<2F><>Ѷ<EFBFBD><D1B6>˾<EFBFBD><CBBE>̨<EFBFBD>߳<EFBFBD> //<2F><>Ѷ<EFBFBD><D1B6>˾<EFBFBD><CBBE>̨<EFBFBD>߳<EFBFBD>
if (LocalFile.Config.IsMx) if (LocalFile.Config.IsMx)
{ {