diff --git a/WCS.BLL/DbModels/Task/CurrentTask.cs b/WCS.BLL/DbModels/Task/CurrentTask.cs
index babd6f9..6924eb5 100644
--- a/WCS.BLL/DbModels/Task/CurrentTask.cs
+++ b/WCS.BLL/DbModels/Task/CurrentTask.cs
@@ -50,17 +50,14 @@ namespace WCS.BLL.DbModels
///
/// 入库的库位表ID
///
- [SugarColumn(ColumnName = "store_id", IsNullable = false, ColumnDescription = "库位ID")]
+ [SugarColumn(ColumnName = "store_id", IsNullable = true, ColumnDescription = "库位ID")]
public int StoreId { get; set; }
///
/// 入库的库位编码
///
- [SugarColumn(ColumnName = "store_code", Length = 50, IsNullable = false, ColumnDescription = "库位编码")]
+ [SugarColumn(ColumnName = "store_code", Length = 50, IsNullable = true, ColumnDescription = "库位编码")]
public string StoreCode { get; set; }
-
- [Navigate(NavigateType.OneToOne, nameof(StoreId))]
- public StoreInfo StoreInfo { get; set; }
#endregion
#region 任务属性
@@ -70,6 +67,10 @@ namespace WCS.BLL.DbModels
[SugarColumn(ColumnName = "task_id", IsNullable = false, ColumnDescription = "任务Id,同一个库位只支持1-7")]
public int TaskID { get; set; } = 0;
+ ///真主键
+ [SugarColumn(ColumnName = "item_no", Length = 128, IsNullable = false, ColumnDescription = "出库单据号")]
+ public string ItemNo { get; set; } = string.Empty;
+
///
/// Guid
///
@@ -85,7 +86,7 @@ namespace WCS.BLL.DbModels
///
/// 出库单据号
///
- [SugarColumn(ColumnName = "order_number", Length = 50, IsNullable = false, ColumnDescription = "出库单据号")]
+ [SugarColumn(ColumnName = "order_number", Length = 128, IsNullable = false, ColumnDescription = "出库单据号")]
public string OrderNumber { get; set; }
///
diff --git a/WCS.BLL/DbModels/Task/FinishedTask.cs b/WCS.BLL/DbModels/Task/FinishedTask.cs
index d322da4..9127cd9 100644
--- a/WCS.BLL/DbModels/Task/FinishedTask.cs
+++ b/WCS.BLL/DbModels/Task/FinishedTask.cs
@@ -48,17 +48,14 @@ namespace WCS.BLL.DbModels
///
/// 入库的库位表ID
///
- [SugarColumn(ColumnName = "store_id", IsNullable = false, ColumnDescription = "库位ID")]
+ [SugarColumn(ColumnName = "store_id", IsNullable = true, ColumnDescription = "库位ID")]
public int StoreId { get; set; }
///
/// 入库的库位编码
///
- [SugarColumn(ColumnName = "store_code", Length = 50, IsNullable = false, ColumnDescription = "库位编码")]
+ [SugarColumn(ColumnName = "store_code", Length = 50, IsNullable = true, ColumnDescription = "库位编码")]
public string StoreCode { get; set; }
-
- [Navigate(NavigateType.OneToOne, nameof(StoreId))]
- public StoreInfo StoreInfo { get; set; }
#endregion
#region 任务属性
@@ -68,6 +65,10 @@ namespace WCS.BLL.DbModels
[SugarColumn(ColumnName = "task_id", IsNullable = false, ColumnDescription = "任务Id,同一个库位只支持1-7")]
public int TaskID { get; set; }
+ ///真主键
+ [SugarColumn(ColumnName = "item_no", Length = 128, IsNullable = false, ColumnDescription = "出库单据号")]
+ public string ItemNo { get; set; } = string.Empty;
+
///
/// Guid
///
@@ -83,7 +84,7 @@ namespace WCS.BLL.DbModels
///
/// 出库单据号
///
- [SugarColumn(ColumnName = "order_number", Length = 50, IsNullable = false, ColumnDescription = "出库单据号")]
+ [SugarColumn(ColumnName = "order_number", Length = 128, IsNullable = false, ColumnDescription = "出库单据号")]
public string OrderNumber { get; set; }
///
diff --git a/WCS.BLL/DbModels/Task/UploadedTask.cs b/WCS.BLL/DbModels/Task/UploadedTask.cs
index 7d520e8..fee2a6d 100644
--- a/WCS.BLL/DbModels/Task/UploadedTask.cs
+++ b/WCS.BLL/DbModels/Task/UploadedTask.cs
@@ -49,17 +49,14 @@ namespace WCS.BLL.DbModels
///
/// 入库的库位表ID
///
- [SugarColumn(ColumnName = "store_id", IsNullable = false, ColumnDescription = "库位ID")]
+ [SugarColumn(ColumnName = "store_id", IsNullable = true, ColumnDescription = "库位ID")]
public int StoreId { get; set; }
///
/// 入库的库位编码
///
- [SugarColumn(ColumnName = "store_code", Length = 50, IsNullable = false, ColumnDescription = "库位编码")]
+ [SugarColumn(ColumnName = "store_code", Length = 50, IsNullable = true, ColumnDescription = "库位编码")]
public string StoreCode { get; set; }
-
- [Navigate(NavigateType.OneToOne, nameof(StoreId))]
- public StoreInfo StoreInfo { get; set; }
#endregion
#region 任务属性
@@ -69,6 +66,10 @@ namespace WCS.BLL.DbModels
[SugarColumn(ColumnName = "task_id", IsNullable = false, ColumnDescription = "任务Id,同一个库位只支持1-7")]
public int TaskID { get; set; }
+ ///真主键
+ [SugarColumn(ColumnName = "item_no", Length = 128, IsNullable = false, ColumnDescription = "出库单据号")]
+ public string ItemNo { get; set; } = string.Empty;
+
///
/// Guid
///
@@ -84,7 +85,7 @@ namespace WCS.BLL.DbModels
///
/// 出库单据号
///
- [SugarColumn(ColumnName = "order_number", Length = 50, IsNullable = false, ColumnDescription = "出库单据号")]
+ [SugarColumn(ColumnName = "order_number", Length = 128, IsNullable = false, ColumnDescription = "出库单据号")]
public string OrderNumber { get; set; }
///
diff --git a/WCS.BLL/HardWare/MXL4Shelf.cs b/WCS.BLL/HardWare/MXL4Shelf.cs
index 3b6c6f3..9a286a9 100644
--- a/WCS.BLL/HardWare/MXL4Shelf.cs
+++ b/WCS.BLL/HardWare/MXL4Shelf.cs
@@ -45,7 +45,7 @@ namespace WCS.BLL.HardWare
ModuleCode = module.ModuleCode,
BoardId = module.BoardId,
IsEnable = module.IsEnable,
- CurrentMode = module.CurrentMode
+ CurrentMode = TaskModeEnum.待机模式
});
}
ModulesStr = string.Join(";", MXL4Modules.Select(t => t.ModuleCode));
@@ -70,73 +70,129 @@ namespace WCS.BLL.HardWare
await Task.Delay(2000);
continue;
}
+
+ //查询属于本货架的任务
+ var currentShelfTasks = DbHelp.db.Queryable()
+ .Where(t => t.ShelfId == this.ShelfId)
+ .Where(t => t.IsSended == false)
+ .OrderBy(t => t.CreateTime)
+ .ToList();
+ //获取因为任务需要刷新的module
+ var haveTaskModules = currentShelfTasks.Select(t => t.ModuleId).Distinct().ToList();
+ MXL4Modules.ForEach(t =>
+ {
+ if (haveTaskModules.Contains(t.ModuleId))
+ { t.IsNeedRefresh = true; }
+ });
+
//查询是否有需要刷新的
var needRefreshModules = MXL4Modules.Where(t => t.IsNeedRefresh)
.ToList();
foreach (var module in needRefreshModules)
{
- //查询当前是否有任务
- var currentTasks = DbHelp.db.Queryable()
- .Where(t => t.ModuleId == module.ModuleId)
- .Where(t => t.IsSended == false)
- .OrderBy(t => t.CreateTime)
- .ToList();
- //入库、出库、盘点等任务
- if (currentTasks != null && currentTasks.Count > 0)
+ try
{
- var firstTask = currentTasks.First();
- var taskMode = currentTasks.First().TaskMode;
- #region 处理模组的模式 没有Continue
- if (module.CurrentMode == TaskModeEnum.待机模式)
+ //查询当前是否有任务
+ var currentTasks = currentShelfTasks.Where(t => t.ModuleId == module.ModuleId)
+ .OrderBy(t => t.CreateTime)
+ .ToList();
+ //入库、出库、盘点等任务
+ if (currentTasks != null && currentTasks.Count > 0)
{
- //进入对应模式
- switch (taskMode)
+ var firstTask = currentTasks.First();
+ var taskMode = currentTasks.First().TaskMode;
+ #region 处理模组的模式 没有Continue
+ if (module.CurrentMode == TaskModeEnum.待机模式)
{
- case (TaskModeEnum.入库模式):
- module.GoInInstoreMode(TcpCleint);
- break;
- case (TaskModeEnum.出库模式):
- module.GoInOutstoreMode(TcpCleint);
- break;
- case (TaskModeEnum.盘点模式):
- module.GoInStocktakingMode(TcpCleint);
- break;
- default:
- break;
+ //进入对应模式
+ switch (taskMode)
+ {
+ case (TaskModeEnum.入库模式):
+ module.GoInInstoreMode(TcpCleint);
+ break;
+ case (TaskModeEnum.出库模式):
+ module.GoInOutstoreMode(TcpCleint);
+ break;
+ case (TaskModeEnum.盘点模式):
+ module.GoInStocktakingMode(TcpCleint);
+ break;
+ default:
+ break;
+ }
+ //等待10ms这边将状态成功更新了来
+ await Task.Delay(10);
}
- //等待10ms这边将状态成功更新了来
- await Task.Delay(10);
- }
- else
- {
- taskMode = module.CurrentMode;
- }
- #endregion
-
- //只显示当前模式的任务
- currentTasks = currentTasks.Where(t => t.TaskMode == taskMode).ToList();
- //这个分支应该很少跑到 有刷新必然有新任务
- if (currentTasks == null || currentTasks.Count == 0)
- {
- Logs.Write($"【后台发送线程】{module.ModuleCode}当前模式{module.CurrentMode},需要刷新!但是没有对应的新任务!");
- var tasks = DbHelp.db.Queryable()
- .Where(t => t.ModuleId == module.ModuleId)
- .Where(t => t.IsSended == true)
- .Where(t => t.TaskMode == taskMode)
- .OrderBy(t => t.CreateTime)
- .ToList();
- if (tasks != null && tasks.Count > 0)
- {
- Logs.Write($"【后台发送线程】{module.ModuleCode}当前模式{module.CurrentMode},需要刷新!但是没有对应的新任务!有已发送的任务未完成故不处理!");
- module.IsNeedRefresh = false;
- continue;
- }
- //退出对应模式到待机模式! 后续持续刷新数据!
else
{
- Logs.Write($"【后台发送线程】{module.ModuleCode}当前模式{module.CurrentMode},需要刷新!但是没有对应的新任务!没有已发送未完成的任务!退出当前模式!");
+ taskMode = module.CurrentMode;
+ }
+ #endregion
+
+ //只显示当前模式的任务
+ currentTasks = currentTasks.Where(t => t.TaskMode == taskMode).ToList();
+ //这个分支应该很少跑到 有刷新必然有新任务
+ if (currentTasks == null || currentTasks.Count == 0)
+ {
+ Logs.Write($"【后台发送线程】{module.ModuleCode}当前模式{module.CurrentMode},需要刷新!但是没有对应的新任务!");
+ var tasks = DbHelp.db.Queryable()
+ .Where(t => t.ModuleId == module.ModuleId)
+ .Where(t => t.IsSended == true)
+ .Where(t => t.TaskMode == taskMode)
+ .OrderBy(t => t.CreateTime)
+ .ToList();
+ if (tasks != null && tasks.Count > 0)
+ {
+ Logs.Write($"【后台发送线程】{module.ModuleCode}当前模式{module.CurrentMode},需要刷新!但是没有对应的新任务!有已发送的任务未完成故不处理!");
+ module.IsNeedRefresh = false;
+ continue;
+ }
+ //退出对应模式到待机模式! 后续持续刷新数据!
+ else
+ {
+ Logs.Write($"【后台发送线程】{module.ModuleCode}当前模式{module.CurrentMode},需要刷新!但是没有对应的新任务!没有已发送未完成的任务!退出当前模式!");
+ // 退出对应模式
+ switch (taskMode)
+ {
+ case (TaskModeEnum.入库模式):
+ module.GoOutInstoreMode(TcpCleint);
+ break;
+ case (TaskModeEnum.出库模式):
+ module.GoOutOutstoreMode(TcpCleint);
+ break;
+ case (TaskModeEnum.盘点模式):
+ module.GoOutStocktakingMode(TcpCleint);
+ break;
+ default:
+ break;
+ }
+ continue;
+ }
+ }
+ //按照任务顺序给其发送数据
+ foreach (var currentTask in currentTasks)
+ {
+ module.SendTaskId(currentTask.TaskID, TcpCleint);
+ module.SendMatCode(currentTask.MatCode, TcpCleint);
+ module.SendMatName(currentTask.MatName, TcpCleint);
+ module.SendMatSpec(currentTask.MatSpec, TcpCleint);
+ module.SendMatBatch(currentTask.MatBatch, TcpCleint);
+ module.SendMatQty(currentTask.Qty, TcpCleint);
+
+ currentTask.IsSended = true;
+ DbHelp.db.Updateable(currentTask).ExecuteCommand();
+ }
+ //发送完毕后就不刷新了
+ module.IsNeedRefresh = false;
+ continue;
+ }
+ //不存在入库、出库、盘点等任务 应该变成待机
+ else
+ {
+ //退出对应模式到待机模式! 后续持续刷新数据!
+ if (module.CurrentMode != TaskModeEnum.待机模式)
+ {
// 退出对应模式
- switch (taskMode)
+ switch (module.CurrentMode)
{
case (TaskModeEnum.入库模式):
module.GoOutInstoreMode(TcpCleint);
@@ -152,57 +208,23 @@ namespace WCS.BLL.HardWare
}
continue;
}
- }
- //按照任务顺序给其发送数据
- foreach (var currentTask in currentTasks)
- {
- module.SendTaskId(currentTask.TaskID, TcpCleint);
- module.SendMatCode(currentTask.MatCode, TcpCleint);
- module.SendMatName(currentTask.MatName, TcpCleint);
- module.SendMatSpec(currentTask.MatSpec, TcpCleint);
- module.SendMatBatch(currentTask.MatBatch, TcpCleint);
- module.SendMatQty(currentTask.Qty, TcpCleint);
- currentTask.IsSended = true;
- DbHelp.db.Updateable(currentTask).ExecuteCommand();
+ //向上层系统获取数据
+
+ //获取成功 有数据 绑定对应数据
+
+ //获取成功 无数据
+ module.StandbyNoInfoDisplay(TcpCleint);
+ module.IsNeedRefresh = false;//未获取到库存数据 回没有库位显示信息给硬件
+ //获取失败 跳过此次循环后继续获取
}
- //发送完毕后就不刷新了
- module.IsNeedRefresh = false;
- continue;
}
- //不存在入库、出库、盘点等任务 应该变成待机
- else
+ catch (Exception ex)
{
- //退出对应模式到待机模式! 后续持续刷新数据!
- if (module.CurrentMode != TaskModeEnum.待机模式)
- {
- // 退出对应模式
- switch (module.CurrentMode)
- {
- case (TaskModeEnum.入库模式):
- module.GoOutInstoreMode(TcpCleint);
- break;
- case (TaskModeEnum.出库模式):
- module.GoOutOutstoreMode(TcpCleint);
- break;
- case (TaskModeEnum.盘点模式):
- module.GoOutStocktakingMode(TcpCleint);
- break;
- default:
- break;
- }
- continue;
- }
- //向上层系统获取数据
-
- //获取成功 有数据 绑定对应数据
-
- //获取成功 无数据
- module.StandbyNoInfoDisplay(TcpCleint);
- module.IsNeedRefresh = false;//未获取到库存数据 回没有库位显示信息给硬件
- //获取失败 跳过此次循环后继续获取
+ Logs.Write($"【后台发送线程】遇到异常{ex.Message},{ex.StackTrace}");
}
+
}
}
catch (Exception ex)
@@ -429,13 +451,14 @@ namespace WCS.BLL.HardWare
.FirstOrDefault();
if (module != null)
{
+ module.SetCurrentMode(TaskModeEnum.待机模式);
module.IsNeedRefresh = true;
}
else
{
Logs.Write($"【回到待机模式】货架【{ShelfCode}】通过板子ID【{boardId}】未找到对应模组!");
}
-
+ //TO DO 所有退出后货架才待机
SetCurrentMode(TaskModeEnum.待机模式);
}
///
@@ -526,6 +549,7 @@ namespace WCS.BLL.HardWare
StoreCode = task.StoreCode,
TaskID = task.TaskID,
Guid = task.Guid,
+ ItemNo = task.ItemNo,
TaskMode = task.TaskMode,
OrderNumber = task.OrderNumber,
ButtonColor = task.ButtonColor,
@@ -583,6 +607,7 @@ namespace WCS.BLL.HardWare
StoreCode = task.StoreCode,
TaskID = task.TaskID,
Guid = task.Guid,
+ ItemNo = task.ItemNo,
TaskMode = task.TaskMode,
OrderNumber = task.OrderNumber,
ButtonColor = task.ButtonColor,
@@ -640,6 +665,7 @@ namespace WCS.BLL.HardWare
StoreCode = task.StoreCode,
TaskID = task.TaskID,
Guid = task.Guid,
+ ItemNo = task.ItemNo,
TaskMode = task.TaskMode,
OrderNumber = task.OrderNumber,
ButtonColor = task.ButtonColor,
diff --git a/WCS.BLL/HardWare/MXL4ShelfModule.cs b/WCS.BLL/HardWare/MXL4ShelfModule.cs
index 59d49bd..06239d6 100644
--- a/WCS.BLL/HardWare/MXL4ShelfModule.cs
+++ b/WCS.BLL/HardWare/MXL4ShelfModule.cs
@@ -87,7 +87,7 @@ namespace WCS.BLL.HardWare
public string ModuleCode { get; set; }
public int BoardId { get; set; }
public bool IsEnable { get; set; }
- public TaskModeEnum CurrentMode { get; set; }
+ public TaskModeEnum CurrentMode { get; set; } = TaskModeEnum.待机模式;
public bool IsNeedRefresh { get; set; } = true;
diff --git a/WCS.BLL/Manager/DbInit.cs b/WCS.BLL/Manager/DbInit.cs
index dae313c..59a6c93 100644
--- a/WCS.BLL/Manager/DbInit.cs
+++ b/WCS.BLL/Manager/DbInit.cs
@@ -62,7 +62,7 @@ namespace WCS.BLL.Manager
}
//手动修改后台配置后再进行CodeFirst 数据库的生成、表的生成
//如果不配置此参数 每次启动都会持续几十秒才能成功启动后端
- if (LocalFile.Config.IsResetDBOrTable)
+ if (true)
{
#region 建库建表 只在表有变动时运行
DbHelp.db.DbMaintenance.CreateDatabase();
diff --git a/WCS.BLL/Manager/MKYBackgroundThread.cs b/WCS.BLL/Manager/MKYBackgroundThread.cs
new file mode 100644
index 0000000..6513378
--- /dev/null
+++ b/WCS.BLL/Manager/MKYBackgroundThread.cs
@@ -0,0 +1,234 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WCS.BLL.DbModels.Task;
+using WCS.BLL.DbModels;
+using WCS.BLL.HardWare;
+using WCS.DAL.Db.AuthDb;
+using WCS.DAL.Db;
+using WCS.DAL;
+using WCS.Model.ApiModel.InOutRecord;
+using WCS.Model.ApiModel.MXBackgroundThread;
+using WCS.Model;
+using WCS.BLL.Tool;
+using SqlSugar;
+using WCS.BLL.Config;
+using WCS.Model.ApiModel.MKYBackgroundThread;
+using System.Text.RegularExpressions;
+using System.Reflection;
+
+namespace WCS.BLL.Manager
+{
+ public static class MKYBackgroundThread
+ {
+ public static void InitBackgroundThread()
+ {
+ #region 调用WMS接口获取具体的库存列表并展示在液晶标签上
+ Task.Run(() =>
+ {
+ while (true)
+ {
+ //每5秒同步一次
+ Thread.Sleep(5000);
+ try
+ {
+
+ }
+ catch (Exception ex)
+ {
+ Logs.Write("【定时任务】刷新库存显示时发生异常!" + ex.Message);
+ }
+ }
+ });
+ #endregion
+
+ #region 定时任务:回传数据至WMS系统
+ Task.Run(() =>
+ {
+ while (true)
+ {
+ //回传数据的时间间隔
+ Thread.Sleep(2000);
+ try
+ {
+ //获取已完成未提交的任务
+ var finsishedTaks = DbHelp.db.Queryable()
+ .Where(t => t.FinishTime > DateTime.Now.AddDays(-1))//只上传1天内的 后续调整
+ .OrderBy(t => t.FinishTime)
+ .ToList();
+ //循环进行上传
+ for (int i = 0; i < finsishedTaks.Count; i++)
+ {
+ var finishedTask = finsishedTaks[i];
+ try
+ {
+ //////上传单据
+ ////#region 上传单据
+ ////var request = new SysOrderRequest()
+ ////{
+ //// guid = finishedTask.Guid.ToString(),
+ //// itemNo = finishedTask.ItemNo,
+ //// matCode = finishedTask.MatCode,
+ //// matBatch = finishedTask.MatBatch,
+ //// matSN = finishedTask.MatSN,
+ //// orderNumber = finishedTask.OrderNumber,
+ //// orderType = (int)finishedTask.TaskMode,
+ //// storeCode = finishedTask.StoreCode,
+ //// qty = finishedTask.Qty,
+ ////};
+ ////var result = ApiHelp.GetDataFromHttp(@"http://172.16.129.8:8989/ztwcs/stockBillBack", request, "POST", true);
+ ////if (result != null && (result.code == 200))
+ ////{
+ //// //上传成功
+ //// var uploadedTask = new UploadededTask()
+ //// {
+ //// ShelfId = finishedTask.ShelfId,
+ //// ShelfCode = finishedTask.ShelfCode,
+ //// ModuleId = finishedTask.ModuleId,
+ //// ModuleCode = finishedTask.ModuleCode,
+ //// StoreId = finishedTask.StoreId,
+ //// StoreCode = finishedTask.StoreCode,
+ //// TaskID = finishedTask.TaskID,
+ //// ItemNo = finishedTask.ItemNo,
+ //// Guid = finishedTask.Guid,
+ //// TaskMode = finishedTask.TaskMode,
+ //// OrderNumber = finishedTask.OrderNumber,
+ //// ButtonColor = finishedTask.ButtonColor,
+ //// MatCode = finishedTask.MatCode,
+ //// MatName = finishedTask.MatName,
+ //// MatSpec = finishedTask.MatSpec,
+ //// MatBatch = finishedTask.MatBatch,
+ //// MatSN = finishedTask.MatSN,
+ //// Qty = finishedTask.Qty,
+ //// CreateTime = finishedTask.CreateTime,
+ //// FinishQty = finishedTask.FinishQty,
+ //// FinishTime = finishedTask.FinishTime,
+ //// UploadTime = DateTime.Now,
+ //// };
+ //// DbHelp.db.Insertable(uploadedTask).ExecuteCommand();
+ //// DbHelp.db.Deleteable(finishedTask).ExecuteCommand();
+ ////}
+ ////#endregion
+
+ //为了调试
+ Random random = new Random();
+ int number = random.Next(1 , 100);
+ if (number <= 30)
+ {
+ //上传成功
+ var uploadedTask = new UploadededTask()
+ {
+ ShelfId = finishedTask.ShelfId,
+ ShelfCode = finishedTask.ShelfCode,
+ ModuleId = finishedTask.ModuleId,
+ ModuleCode = finishedTask.ModuleCode,
+ StoreId = finishedTask.StoreId,
+ StoreCode = finishedTask.StoreCode,
+ TaskID = finishedTask.TaskID,
+ ItemNo = finishedTask.ItemNo,
+ Guid = finishedTask.Guid,
+ TaskMode = finishedTask.TaskMode,
+ OrderNumber = finishedTask.OrderNumber,
+ ButtonColor = finishedTask.ButtonColor,
+ MatCode = finishedTask.MatCode,
+ MatName = finishedTask.MatName,
+ MatSpec = finishedTask.MatSpec,
+ MatBatch = finishedTask.MatBatch,
+ MatSN = finishedTask.MatSN,
+ Qty = finishedTask.Qty,
+ CreateTime = finishedTask.CreateTime,
+ FinishQty = finishedTask.FinishQty,
+ FinishTime = finishedTask.FinishTime,
+ UploadTime = DateTime.Now,
+ };
+ DbHelp.db.Insertable(uploadedTask).ExecuteCommand();
+ DbHelp.db.Deleteable(finishedTask).ExecuteCommand();
+ }
+
+ }
+ catch (Exception ex)
+ {
+ Logs.Write($"【定时任务:回传数据至WMS系统】{finishedTask.ItemNo}发生异常," + ex.Message, LogsType.Info);
+ Logs.Write($"【定时任务:回传数据至WMS系统】{finishedTask.ItemNo}发生异常" + ex.StackTrace, LogsType.Info);
+ }
+ Thread.Sleep(500);
+ }
+ }
+ catch (Exception e)
+ {
+ Logs.Write("【定时任务:回传数据至WMS系统】发生异常" + e.Message, LogsType.Info);
+ Logs.Write("【定时任务:回传数据至WMS系统】发生异常" + e.StackTrace, LogsType.Info);
+ }
+ }
+ });
+ #endregion
+
+
+
+ //#region 定时任务:监测警示灯关灯机制
+ ////判断灯颜色和模式是否对应
+ //Task.Run(() =>
+ //{
+ // while (true)
+ // {
+ // //间隔5秒查询一次
+ // Thread.Sleep(5000);
+ // try
+ // {
+ // //待机模式未关灯
+ // var shelves = ShelfManager.Shelves.Where(t => t.CurrentMode == TaskModeEnum.待机模式 && t.LightColor != WarningLight.LightColorEnum.关闭)
+ // .Where(t => t.SetCurrentModeTime < DateTime.Now.AddSeconds(-5))
+ // .ToList();
+ // foreach (var shelf in shelves)
+ // {
+ // try
+ // {
+ // if (shelf is SmartShelf)
+ // {
+ // var smartShelf = (SmartShelf)shelf;
+ // if (smartShelf.IsWarning == false)
+ // {
+ // smartShelf?.WarningLight.CloseLight(smartShelf.TcpCleint);
+ // Logs.Write($"【定时任务】:监测警示灯关灯机制,关【{shelf.ShelfCode}】灯发送指令成功!");
+ // }
+ // }
+ // }
+ // catch (Exception ex)
+ // {
+ // Logs.Write($"【定时任务】:监测警示灯关灯机制,关【{shelf.ShelfCode}】灯发生异常" + ex.Message);
+ // }
+ // }
+
+ // //出库模式未亮灯
+ // var outShelves = ShelfManager.Shelves.Where(t => t.CurrentMode == TaskModeEnum.出库模式 && t.LightColor == WarningLight.LightColorEnum.关闭)
+ // .Where(t => t.SetCurrentModeTime < DateTime.Now.AddSeconds(-5))
+ // .ToList();
+ // foreach (var shelf in outShelves)
+ // {
+ // try
+ // {
+ // if (shelf is SmartShelf)
+ // {
+ // var smartShelf = (SmartShelf)shelf;
+ // smartShelf?.WarningLight.GreenLight(smartShelf.TcpCleint);
+ // Logs.Write($"【定时任务】:监测警示灯关灯机制,出库开灯【{shelf.ShelfCode}】发送指令成功!");
+ // }
+ // }
+ // catch (Exception ex)
+ // {
+ // Logs.Write($"【定时任务】:监测警示灯关灯机制,出库开灯【{shelf.ShelfCode}】发生异常" + ex.Message);
+ // }
+ // }
+ // }
+ // catch (Exception ex)
+ // {
+ // Logs.Write("【定时任务】:监测警示灯关灯机制发生异常" + ex.Message);
+ // }
+ // }
+ //});
+ //#endregion
+ }
+ }
+}
diff --git a/WCS.BLL/Services/Service/MXL4Service.cs b/WCS.BLL/Services/Service/MXL4Service.cs
index 293ccec..79e66a8 100644
--- a/WCS.BLL/Services/Service/MXL4Service.cs
+++ b/WCS.BLL/Services/Service/MXL4Service.cs
@@ -39,15 +39,15 @@ namespace WCS.BLL.Services.Service
var storeCodeList = request.List.Select(t => t.StoreCode)
.Distinct()
.ToList();
- var stores = DbHelp.db.Queryable()
+ var moduleInfo = DbHelp.db.Queryable()
.LeftJoin((si, sti) => si.ShelfTypeId == sti.Id)
- .Where((si, sti) => sti.ShelfTypeName == "液晶货架")
- .Where((si, sti) => storeCodeList.Contains(si.StoreCode))
- .Select((st, sti) => st)
+ .Where((si, sti) => sti.ShelfTypeName == "液晶标签货架")
+ .Where((si, sti) => storeCodeList.Contains(si.ModuleCode))
+ .Select((si, sti) => si)
.ToList();
- if (stores.Count < storeCodeList.Count)
+ if (moduleInfo.Count < storeCodeList.Count)
{
- var storeCodesInDB = stores.Select(t => t.StoreCode).ToList();
+ var storeCodesInDB = moduleInfo.Select(t => t.ModuleCode).ToList();
storeCodeList.RemoveAll(t => storeCodesInDB.Contains(t));
return new ResponseCommon