|
|
|
|
@ -9,6 +9,7 @@ using Microsoft.Extensions.Hosting;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using System.Windows;
|
|
|
|
|
using System.Windows.Controls;
|
|
|
|
|
|
|
|
|
|
@ -73,62 +74,61 @@ namespace Khd.Core.Wpf.TaskForm
|
|
|
|
|
{
|
|
|
|
|
using var scope = _host.Services.CreateScope();
|
|
|
|
|
var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
|
|
|
|
|
if (StartPoint.SelectedItem is EquipMessage startEquip && EndPoint.SelectedItem is EquipMessage endEquip && !string.IsNullOrEmpty(EmptyCount.SelectedItem?.ToString()))
|
|
|
|
|
if (StartPoint.SelectedItem is EquipMessage startEquip && EndPoint.SelectedItem is EquipMessage endEquip)
|
|
|
|
|
{
|
|
|
|
|
if (startEquip.equipType == 1)
|
|
|
|
|
{
|
|
|
|
|
BasePlcpoint basePlcpoint = SystemData.BasePlcpoints.First(t => t.plcpointNo == $"RFID00{startEquip.floorNo}");
|
|
|
|
|
string? rfid = SystemData.PlcDic[0].ReadRFID(basePlcpoint.plcpointAddress);
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(rfid))
|
|
|
|
|
BasePlcpoint linesignal = SystemData.BasePlcpoints.First(t => t.plcpointNo == $"linesignal0{startEquip.floorNo}");
|
|
|
|
|
var linesignalValue = SystemData.PlcDic[0].Read(linesignal.plcpointAddress);
|
|
|
|
|
if (linesignalValue != null && Convert.ToInt32(linesignalValue) == 1)
|
|
|
|
|
{
|
|
|
|
|
BasePlcpoint basePlcpoint = SystemData.BasePlcpoints.First(t => t.plcpointNo == $"RFID00{startEquip.floorNo}");
|
|
|
|
|
string? rfid = SystemData.PlcDic[0].ReadRFID(basePlcpoint.plcpointAddress);
|
|
|
|
|
MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.Where(t => t.palletInfoCode == rfid).FirstOrDefault();
|
|
|
|
|
if (mesBasePalletInfo != null)
|
|
|
|
|
WcsTask? task = dbContext.WcsTask.FirstOrDefault(t => t.containerNo == rfid);
|
|
|
|
|
if (task == null)
|
|
|
|
|
{
|
|
|
|
|
WcsTask? task = dbContext.WcsTask.FirstOrDefault(t => t.containerNo == rfid);
|
|
|
|
|
if (task == null)
|
|
|
|
|
int qty = 1;
|
|
|
|
|
if (int.TryParse(EmptyCount.SelectedIndex.ToString(), out int emptyCount))
|
|
|
|
|
{
|
|
|
|
|
BaseEquip baseEquip = baseEquips.First(t => t.equipType == 2);//提升机
|
|
|
|
|
WcsTask wcsTask = new()
|
|
|
|
|
{
|
|
|
|
|
objid = FormBoardT._jcSnowId.NextId(),
|
|
|
|
|
taskType = 99,
|
|
|
|
|
currPointId = startEquip.Id,
|
|
|
|
|
currPointNo = startEquip.equipNo,
|
|
|
|
|
nextPointId = baseEquip.objid,
|
|
|
|
|
nextPointNo = baseEquip.equipNo,
|
|
|
|
|
endPointId = endEquip.Id,
|
|
|
|
|
endPointNo = endEquip.equipNo,
|
|
|
|
|
fromFloorNo = startEquip.floorNo,
|
|
|
|
|
floorNo = endEquip.floorNo,
|
|
|
|
|
materialBarcode = mesBasePalletInfo.materialBarcode,
|
|
|
|
|
materialId = mesBasePalletInfo.materialId,
|
|
|
|
|
taskStatus = 0,
|
|
|
|
|
createBy = "人工",
|
|
|
|
|
createTime = DateTime.Now,
|
|
|
|
|
equipmentNo = startEquip.equipNo,
|
|
|
|
|
useFlag = 0,
|
|
|
|
|
qty = Convert.ToInt32(EmptyCount.SelectedIndex)+1,
|
|
|
|
|
isEmpty = "1"
|
|
|
|
|
};
|
|
|
|
|
dbContext.Add(wcsTask);
|
|
|
|
|
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
|
|
|
|
|
dbContext.Add(wcsTaskLog);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
qty = emptyCount + 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
BaseEquip baseEquip = baseEquips.First(t => t.equipType == 2);//提升机
|
|
|
|
|
WcsTask wcsTask = new()
|
|
|
|
|
{
|
|
|
|
|
MessageBox.Show("该RFID的任务已经存在!");
|
|
|
|
|
}
|
|
|
|
|
objid = FormBoardT._jcSnowId.NextId(),
|
|
|
|
|
taskType = 99,
|
|
|
|
|
currPointId = startEquip.Id,
|
|
|
|
|
currPointNo = startEquip.equipNo,
|
|
|
|
|
nextPointId = baseEquip.objid,
|
|
|
|
|
nextPointNo = baseEquip.equipNo,
|
|
|
|
|
endPointId = endEquip.Id,
|
|
|
|
|
endPointNo = endEquip.equipNo,
|
|
|
|
|
fromFloorNo = startEquip.floorNo,
|
|
|
|
|
floorNo = endEquip.floorNo,
|
|
|
|
|
materialBarcode = mesBasePalletInfo?.materialBarcode,
|
|
|
|
|
materialId = mesBasePalletInfo?.materialId,
|
|
|
|
|
taskStatus = 0,
|
|
|
|
|
createBy = "人工",
|
|
|
|
|
createTime = DateTime.Now,
|
|
|
|
|
equipmentNo = startEquip.equipNo,
|
|
|
|
|
useFlag = 0,
|
|
|
|
|
qty = qty,
|
|
|
|
|
isEmpty = "1"
|
|
|
|
|
};
|
|
|
|
|
dbContext.Add(wcsTask);
|
|
|
|
|
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
|
|
|
|
|
dbContext.Add(wcsTaskLog);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MessageBox.Show("未找到该托盘信息!");
|
|
|
|
|
MessageBox.Show("该RFID的任务已经存在!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
MessageBox.Show("未读取到RFID");
|
|
|
|
|
MessageBox.Show("未检测到起始地楼层的到位信号");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.Close();
|
|
|
|
|
@ -144,9 +144,12 @@ namespace Khd.Core.Wpf.TaskForm
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
SystemData.PlcDic[0] = new Plc.S7.Plc(SystemData.PlcDic[0].CPU, SystemData.PlcDic[0].IP, SystemData.PlcDic[0].Port, SystemData.PlcDic[0].Rack, SystemData.PlcDic[0].Slot);
|
|
|
|
|
SystemData.PlcDic[0].Open();
|
|
|
|
|
AddTaskBtn_Click(AddTaskBtn, null);
|
|
|
|
|
MessageBox.Show("PLC断开连接,正在重连");
|
|
|
|
|
Task.Run(() =>
|
|
|
|
|
{
|
|
|
|
|
SystemData.PlcDic[0] = new Plc.S7.Plc(SystemData.PlcDic[0].CPU, SystemData.PlcDic[0].IP, SystemData.PlcDic[0].Port, SystemData.PlcDic[0].Rack, SystemData.PlcDic[0].Slot);
|
|
|
|
|
SystemData.PlcDic[0].Open();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
|