235 lines
12 KiB
C#
235 lines
12 KiB
C#
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<FinishedTask>()
|
||
.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<SysOrderResponse>(@"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
|
||
}
|
||
}
|
||
}
|