using Confluent.Kafka;
|
using Newtonsoft.Json;
|
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
|
using OfficeOpenXml.FormulaParsing.Excel.Operators;
|
using WIDESEA_Comm.LogInfo;
|
using WIDESEA_Comm.MES_Info;
|
using WIDESEA_Comm.MES_Info.Request;
|
using WIDESEA_Common;
|
using WIDESEA_Core.EFDbContext;
|
using WIDESEA_Core.FreeDB;
|
using WIDESEA_Entity.DomainModels;
|
using WIDESEA_Entity.ToAGV;
|
using WIDESEA_WMS.IRepositories;
|
using WIDESEA_WMS.Repositories;
|
using static WIDESEA_Comm.MES_Info.BasicSN;
|
|
namespace WIDESEA_WMS.Common.AGVTask
|
{
|
public class HandleTask_Mes
|
{
|
static FreeDB FreeDB = new FreeDB();
|
/// <summary>
|
/// 向MES反馈出入库信息
|
/// </summary>
|
/// <param name="task"></param>
|
/// <exception cref="Exception"></exception>
|
public static void UploadMESInfo(dt_agvtask task)
|
{
|
object obj = new object(); //上传MES数据
|
string ActionName = ""; //调用MES方法名
|
string name = "";
|
MES_Response requestMes = new MES_Response();
|
try
|
{
|
List<detail> list = new List<detail>(); //车轮信息
|
if (task == null)
|
{
|
throw new Exception("无任务数据");
|
}
|
VOLContext context = new VOLContext();
|
IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context);
|
Idt_info_to_mesRepository mesRepository = new dt_info_to_mesRepository(context);
|
if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString())
|
{
|
if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString())
|
{
|
foreach (var item in task.bindSN.Split(","))
|
{
|
var work = workinfoRepository.Find(x => x.SN == item && x.processCode == task.agv_worktype.ToString()).FirstOrDefault();
|
detail detail = new detail();
|
detail.sn = item;
|
detail.jobID = work.jobID;
|
detail.processCode = work.processCode;
|
list.Add(detail);
|
}
|
}
|
else
|
{
|
foreach (var item in task.bindSN.Split(","))
|
{
|
detail detail = new detail();
|
detail.sn = item;
|
detail.jobID = task.jobID;
|
detail.processCode = task.agv_worktype.ToString();
|
list.Add(detail);
|
}
|
}
|
|
agvInWarehousePara outWarehousePara = new agvInWarehousePara()
|
{
|
WorkOrder = task.jobID,
|
zoneID = task.agv_fromaddress,
|
details = list,
|
layerNo = 1,
|
stackID = "1",
|
warehouseName = "Agv库",
|
Operator = "AGV自动",
|
};
|
obj = outWarehousePara;
|
ActionName = "agvOutWarehouse";//AGV->MES车轮出库
|
name = "AGV同步MES车轮出库";
|
}
|
else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString())
|
{
|
foreach (var item in task.bindSN.Split(","))
|
{
|
var work = workinfoRepository.Find(x => x.SN == item && x.processCode == task.agv_worktype.ToString()).FirstOrDefault();
|
detail detail = new detail();
|
detail.sn = item;
|
detail.jobID = work.jobID;
|
detail.processCode = work.processCode;
|
list.Add(detail);
|
}
|
agvInWarehousePara inWarehousePara = new agvInWarehousePara()
|
{
|
WorkOrder = task.jobID,
|
zoneID = task.agv_toaddress,
|
details = list,
|
layerNo = 1,
|
stackID = "1",
|
warehouseName = "Agv库",
|
Operator = "AGV自动",
|
};
|
obj = inWarehousePara;
|
ActionName = "agvInWarehouse";//AGV->MES车轮入库
|
name = "AGV同步MES车轮入库";
|
}
|
else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Carry.ToString()) //移库区分 库内移库
|
{
|
List<detail1> list1 = new List<detail1>(); //车轮信息
|
foreach (var item in task.bindSN.Split(","))
|
{
|
detail1 detail = new detail1();
|
detail.sn = item;
|
list1.Add(detail);
|
}
|
agvMoveWarehousePara moveWarehousePara = new agvMoveWarehousePara()
|
{
|
fromZoneID = task.agv_fromaddress,
|
toZoneID = task.agv_toaddress,
|
details = list1,
|
fromLayerNo = "1",
|
fromStackID = "1",
|
fromWarehouseName = "Agv库",
|
toLayerNo = "1",
|
toStackID = "1",
|
toWarehouseName = "Agv库",
|
Operator = "AGV自动",
|
};
|
obj = moveWarehousePara;
|
ActionName = "agvMoveWarehouse";//AGV->MES车轮移库
|
name = "AGV同步MES车轮AB库移库";
|
}
|
var postJson = JsonConvert.SerializeObject(obj);
|
if (!string.IsNullOrEmpty(ActionName))
|
{
|
dt_info_to_mes info_To_Mes = new dt_info_to_mes()
|
{
|
Info = postJson,
|
ActionName = ActionName,
|
Createtime = DateTime.Now,
|
Remark = name,
|
State = false
|
};
|
mesRepository.Add(info_To_Mes, true);
|
}
|
}
|
catch (Exception ex)
|
{
|
|
}
|
}
|
}
|
}
|