using Furion;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common;
using WIDESEA_Common.DBHelper;
using WIDESEA_Common.EquipmentEnum;
using WIDESEA_Core.Extensions;
using WIDESEA_Core.Utilities;
using WIDESEA_Entity.DomainModels;
using WIDESEA_Services.Repositories;
using WIDESEA_WCS.WCSClient;
using static FreeSql.Internal.GlobalFilter;
namespace WIDESEA_WCS
{
public class AGVData
{
///
/// AGV车辆信息显示
///
///
///
public static WebResponseContent GetAgvStatusData(SaveModel model)
{
var response = new WebResponseContent();
try
{
if (WCSService.Clients == null)
{
return response.Error("");
}
string AGVName = model.MainData["AGVName"].ToString();
PLCClient client = WCSService.Clients.Find(X => X.PLCName == AGVName);
if (client == null) return response.Error("AGVPLC未连接");
//agv类型:0-潜伏型,1 - 牵引型,2 - 承载型,3 - 举升型,4 -辊道型,5 - 叉车型,6 - 其他
int agvType = 0;
//agv编号
int agvCode = 2;
//agv上下线状态,0-下线,1 - 上线
int agvOnline = 4;
//agv当前地标号
int agvRfidLabel = 6;
//agv当前x坐标值
int agvXcoordinate = 8;
//agv当前y坐标值
int agvYcoordinate = 12;
//agv运行状态 :0-停止,1 - 行驶,2 - 暂停
int agvStatus = 16;
//agv当前运行速度(mm / s)
int agvSpeed = 18;
//agv报警代码(按位状态提取,最多可表示32种报警
int agvAlarmCode = 20;
bool isFirst = true;
List statusList = new List();
while (true)
{
if (!isFirst)
{
agvType = agvType + 44;
agvCode = agvCode + 44;
agvOnline = agvOnline + 44;
agvRfidLabel = agvRfidLabel + 44;
agvXcoordinate = agvXcoordinate + 44;
agvYcoordinate = agvYcoordinate + 44;
agvStatus = agvStatus + 44;
agvSpeed = agvSpeed + 44;
agvAlarmCode = agvAlarmCode + 44;
}
AGVStatus aGVStatus = new AGVStatus();
aGVStatus.agvCode = client.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1001." + agvCode.ToString()).Content;
if (aGVStatus.agvCode > 0)
{
aGVStatus.agvType = client.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1001." + agvType.ToString()).Content;
aGVStatus.agvOnline = client.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1001." + agvOnline.ToString()).Content == true ? "上 线" : "下 线";
aGVStatus.agvRfidLabel = client.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1001." + agvRfidLabel.ToString()).Content;
aGVStatus.agvXcoordinate = client.SiemensPLCClient.SiemensS7NetClient.ReadInt32("DB1001." + agvXcoordinate.ToString()).Content;
aGVStatus.agvYcoordinate = client.SiemensPLCClient.SiemensS7NetClient.ReadInt32("DB1001." + agvYcoordinate.ToString()).Content;
aGVStatus.agvStatus = client.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1001." + agvStatus.ToString()).Content;
aGVStatus.agvSpeed = client.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1001." + agvSpeed.ToString()).Content;
aGVStatus.agvAlarmCode = 0; //client.SiemensPLCClient.SiemensS7NetClient.Read("DB1001." + agvAlarmCode.ToString(), 32).Content;
statusList.Add(aGVStatus);
isFirst = false;
}
else
break;
}
//string data = string.Empty;
//foreach (var item in statusList)
//{
// data = JsonConvert.SerializeObject(new
// {
// title = item.agvCode,
// number = new
// {
// number = '[' + 120 + '}',
// toFixed = 1,
// textAlign = "left",
// content = "{nt}",
// style = new
// {
// fontSize = 26
// }
// }
// });
//}
response.OK(data: statusList);
}
catch (Exception ex)
{
response.Error(ex.Message);
}
return response;
}
///
/// 任务完成量组装
///
///
///
public static WebResponseContent GetAgvTaskInfozz(SaveModel model)
{
FreeDB freeDB = new FreeDB();
var response = new WebResponseContent();
try
{
string AGVName = model.MainData["AGVName"].ToString();
//Console.WriteLine(AGVName+"---"+DateTime.Now);
//Expression> upExpression = AGVName switch
//{
// "正极AGV调度" => x => x.agv_code.Contains("正极AGV调度"),
// "负极AGV调度" => x => x.agv_code.Contains("负极AGV调度"),
// "组装AGV调度" => x => x.agv_code.Contains("组装AGV调度"),
// _ => throw new NotImplementedException(),
//};
#region MyRegion
#endregion
List strings1 = new List();
List tocount = new List();
for (int i = 14; i >= 0; i--)
{
String time1 = DateTime.Now.Date.AddDays(-i).ToString("yyyy-MM-dd");
//DateTime time = DateTime.Now.Date.AddDays(-i + 1);
//Console.WriteLine($"time1:{time1}");
int upHty = freeDB.Select()
.Where(x => x.agv_code.Contains(AGVName) && x.agv_createtime.ToString().Contains(time1) && x.agv_taskstate.Contains("TaskState_Finished")).ToList().Count();
//int upHty = dt_agvtask_htyRepository.Instance.Find(x => x.agv_code.Contains(AGVName)&& x.agv_createtime.ToString().Contains(time1) && x.agv_taskstate.Contains("TaskState_Finished")).ToList().Count;
tocount.Add(upHty);
//Console.WriteLine(AGVName + $"--{i}-");
strings1.Add(DateTime.Now.AddDays(-i).ToString("MM-dd"));
}
//for (int i = 14; i >= 0; i--)
//{
// //Console.WriteLine(AGVName + $"--{i}-" );
// strings1.Add(DateTime.Now.AddDays(-i).ToString("MM-dd"));
// DateTime time = DateTime.Now.Date.AddDays(-i + 1);
// DateTime time1 = DateTime.Now.Date.AddDays(-i);
// int upHty = dt_agvtask_htyRepository.Instance.Find(x => x.agv_code.Contains(AGVName)).Where(x => x.agv_createtime < time && x.agv_createtime > time1 && x.agv_taskstate == "TaskState_Finished").ToList().Count;
// //Console.WriteLine(AGVName + $"-数量{upHty}--" + DateTime.Now);
//}
//Console.WriteLine(AGVName + "-4321--" + DateTime.Now);
return response.OK(data: new
{
upNum = tocount,
//upNum = ints,
//downNum = ints1,
//totalNum = ints2,
totalNum = strings1
});
}
catch (Exception ex)
{
//Console.WriteLine( "-errrr--" + DateTime.Now);
response.Error(ex.Message);
}
return response;
}
///
/// 任务完成量正极
///
///
///
public static WebResponseContent GetAgvTaskInfozj(SaveModel model)
{
FreeDB freeDB = new FreeDB();
var response = new WebResponseContent();
try
{
string AGVName = model.MainData["AGVName"].ToString();
//Console.WriteLine(AGVName + "---" + DateTime.Now);
//Expression> upExpression = AGVName switch
//{
// "正极AGV调度" => x => x.agv_code.Contains("正极AGV调度"),
// "负极AGV调度" => x => x.agv_code.Contains("负极AGV调度"),
// "组装AGV调度" => x => x.agv_code.Contains("组装AGV调度"),
// _ => throw new NotImplementedException(),
//};
#region MyRegion
#endregion
List strings1 = new List();
List tocount = new List();
for (int i = 14; i >= 0; i--)
{
String time1 = DateTime.Now.Date.AddDays(-i).ToString("yyyy-MM-dd");
//DateTime time = DateTime.Now.Date.AddDays(-i + 1);
//Console.WriteLine($"time1:{time1}");
int upHty = freeDB.Select()
.Where(x => x.agv_code.Contains(AGVName) && x.agv_createtime.ToString().Contains(time1) && x.agv_taskstate.Contains("TaskState_Finished")).ToList().Count();
//int upHty = dt_agvtask_htyRepository.Instance.Find(x => x.agv_code.Contains(AGVName)&& x.agv_createtime.ToString().Contains(time1) && x.agv_taskstate.Contains("TaskState_Finished")).ToList().Count;
tocount.Add(upHty);
//Console.WriteLine(AGVName + $"--{i}-");
strings1.Add(DateTime.Now.AddDays(-i).ToString("MM-dd"));
}
//for (int i = 14; i >= 0; i--)
//{
// //Console.WriteLine(AGVName + $"--{i}-" );
// strings1.Add(DateTime.Now.AddDays(-i).ToString("MM-dd"));
// DateTime time = DateTime.Now.Date.AddDays(-i + 1);
// DateTime time1 = DateTime.Now.Date.AddDays(-i);
// int upHty = dt_agvtask_htyRepository.Instance.Find(x => x.agv_code.Contains(AGVName)).Where(x => x.agv_createtime < time && x.agv_createtime > time1 && x.agv_taskstate == "TaskState_Finished").ToList().Count;
// //Console.WriteLine(AGVName + $"-数量{upHty}--" + DateTime.Now);
//}
//Console.WriteLine(AGVName + "-4321--" + DateTime.Now);
return response.OK(data: new
{
upNum = tocount,
//upNum = ints,
//downNum = ints1,
//totalNum = ints2,
totalNum = strings1
});
}
catch (Exception ex)
{
//Console.WriteLine("-errrr--" + DateTime.Now);
response.Error(ex.Message);
}
return response;
} ///
/// 任务完成量负极
///
///
///
public static WebResponseContent GetAgvTaskInfofj(SaveModel model)
{
FreeDB freeDB = new FreeDB();
var response = new WebResponseContent();
try
{
string AGVName = model.MainData["AGVName"].ToString();
//Console.WriteLine(AGVName + "---" + DateTime.Now);
//Expression> upExpression = AGVName switch
//{
// "正极AGV调度" => x => x.agv_code.Contains("正极AGV调度"),
// "负极AGV调度" => x => x.agv_code.Contains("负极AGV调度"),
// "组装AGV调度" => x => x.agv_code.Contains("组装AGV调度"),
// _ => throw new NotImplementedException(),
//};
#region MyRegion
#endregion
List strings1 = new List();
List tocount = new List();
for (int i = 14; i >= 0; i--)
{
String time1 = DateTime.Now.Date.AddDays(-i).ToString("yyyy-MM-dd");
//DateTime time = DateTime.Now.Date.AddDays(-i + 1);
//Console.WriteLine($"time1:{time1}");
int upHty = freeDB.Select()
.Where(x => x.agv_code.Contains(AGVName) && x.agv_createtime.ToString().Contains(time1) && x.agv_taskstate.Contains("TaskState_Finished")).ToList().Count();
//int upHty = dt_agvtask_htyRepository.Instance.Find(x => x.agv_code.Contains(AGVName)&& x.agv_createtime.ToString().Contains(time1) && x.agv_taskstate.Contains("TaskState_Finished")).ToList().Count;
tocount.Add(upHty);
//Console.WriteLine(AGVName + $"--{i}-");
strings1.Add(DateTime.Now.AddDays(-i).ToString("MM-dd"));
}
//for (int i = 14; i >= 0; i--)
//{
// //Console.WriteLine(AGVName + $"--{i}-" );
// strings1.Add(DateTime.Now.AddDays(-i).ToString("MM-dd"));
// DateTime time = DateTime.Now.Date.AddDays(-i + 1);
// DateTime time1 = DateTime.Now.Date.AddDays(-i);
// int upHty = dt_agvtask_htyRepository.Instance.Find(x => x.agv_code.Contains(AGVName)).Where(x => x.agv_createtime < time && x.agv_createtime > time1 && x.agv_taskstate == "TaskState_Finished").ToList().Count;
// //Console.WriteLine(AGVName + $"-数量{upHty}--" + DateTime.Now);
//}
//Console.WriteLine(AGVName + "-4321--" + DateTime.Now);
return response.OK(data: new
{
upNum = tocount,
//upNum = ints,
//downNum = ints1,
//totalNum = ints2,
totalNum = strings1
});
}
catch (Exception ex)
{
//Console.WriteLine("-errrr--" + DateTime.Now);
response.Error(ex.Message);
}
return response;
}
///
/// 圆形统计图
///
///
///
public static WebResponseContent GetLocationEmptyOrStored(SaveModel model)
{
WebResponseContent response = new WebResponseContent();
try
{
string AGVName = model.MainData["AGVName"].ToString();
if (AGVName == "正极AGV调度")
{
int tbEmptyNum = base_ware_locationRepository.Instance.Find(x => x.equipment_type.Contains("ZJ-TBHCJ") && x.location_state == LocationStateEnum.LocationState_Empty.ToString()).Count;
int tbStoredNum = base_ware_locationRepository.Instance.Find(x => x.equipment_type.Contains("ZJ-TBHCJ") && x.location_state == LocationStateEnum.LocationState_Stored.ToString()).Count;
int bcEmptyNum = base_ware_locationRepository.Instance.Find(x => x.equipment_type.Contains("ZJ-BCHCJ") && x.location_state == LocationStateEnum.LocationState_Empty.ToString()).Count;
int bcStoredNum = base_ware_locationRepository.Instance.Find(x => x.equipment_type.Contains("ZJ-BCHCJ") && x.location_state == LocationStateEnum.LocationState_Stored.ToString()).Count;
response.OK(data: new { tbEmptyNum, tbStoredNum, bcEmptyNum, bcStoredNum });
}
else if (AGVName == "负极AGV调度")
{
int tbEmptyNum = base_ware_locationRepository.Instance.Find(x => x.equipment_type.Contains("FJ-TBHCJ") && x.location_state == LocationStateEnum.LocationState_Empty.ToString()).Count;
int tbStoredNum = base_ware_locationRepository.Instance.Find(x => x.equipment_type.Contains("FJ-TBHCJ") && x.location_state == LocationStateEnum.LocationState_Stored.ToString()).Count;
int bcEmptyNum = base_ware_locationRepository.Instance.Find(x => x.equipment_type.Contains("FJ-BCHCJ") && x.location_state == LocationStateEnum.LocationState_Empty.ToString()).Count;
int bcStoredNum = base_ware_locationRepository.Instance.Find(x => x.equipment_type.Contains("FJ-BCHCJ") && x.location_state == LocationStateEnum.LocationState_Stored.ToString()).Count;
response.OK(data: new { tbEmptyNum, tbStoredNum, bcEmptyNum, bcStoredNum });
}
else if (AGVName == "组装AGV调度")
{
int gfEmptyNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJ-GFHCJ") || x.equipment_type.Contains("FJ-GFHCJ")) && x.location_state == LocationStateEnum.LocationState_Empty.ToString()).Count;
int gfStoredNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJ-GFHCJ") || x.equipment_type.Contains("FJ-GFHCJ")) && x.location_state == LocationStateEnum.LocationState_Stored.ToString()).Count;
int jkEmptyNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJK") || x.equipment_type.Contains("FJK")) && x.location_state == LocationStateEnum.LocationState_Empty.ToString()).Count;
int jkStoredNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJK") || x.equipment_type.Contains("FJK")) && x.location_state == LocationStateEnum.LocationState_Stored.ToString()).Count;
int qjEmptyNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJ-QJHCJ") || x.equipment_type.Contains("FJ-QJHCJ")) && x.location_state == LocationStateEnum.LocationState_Empty.ToString()).Count;
int qjStoredNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJ-QJHCJ") || x.equipment_type.Contains("FJ-QJHCJ")) && x.location_state == LocationStateEnum.LocationState_Stored.ToString()).Count;
response.OK(data: new { gfEmptyNum, gfStoredNum, jkEmptyNum, jkStoredNum, qjEmptyNum, qjStoredNum });
}
}
catch (Exception ex)
{
response.Error(ex.Message);
}
return response;
}
///
/// 空,满,掉线,执行货架数量统计
///
///
///
public static WebResponseContent GetLocationData(SaveModel model)
{
WebResponseContent response = new WebResponseContent();
try
{
string AGVName = model.MainData["AGVName"].ToString();
string area = string.Empty;
if (AGVName == "正极AGV调度")
{
int totalEmptyNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJ-TBHCJ") || x.equipment_type.Contains("ZJ-BCHCJ")) && x.location_state == LocationStateEnum.LocationState_Empty.ToString()).Count;
int totalStoredNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJ-TBHCJ") || x.equipment_type.Contains("ZJ-BCHCJ")) && x.location_state == LocationStateEnum.LocationState_Stored.ToString()).Count;
int totalNGNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJ-TBHCJ") || x.equipment_type.Contains("ZJ-BCHCJ")) && x.task == 1).Count;
int totalWaitedNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJ-TBHCJ") || x.equipment_type.Contains("ZJ-BCHCJ")) && x.location_state == LocationStateEnum.LocationState_Close.ToString()).Count;
response.OK(data: new { totalEmptyNum, totalStoredNum, totalNGNum, totalWaitedNum });
}
else if (AGVName == "负极AGV调度")
{
int totalEmptyNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("FJ-TBHCJ") || x.equipment_type.Contains("FJ-BCHCJ")) && x.location_state == LocationStateEnum.LocationState_Empty.ToString()).Count;
int totalStoredNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("FJ-TBHCJ") || x.equipment_type.Contains("FJ-BCHCJ")) && x.location_state == LocationStateEnum.LocationState_Stored.ToString()).Count;
int totalNGNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("FJ-TBHCJ") || x.equipment_type.Contains("FJ-BCHCJ")) && x.task == 1).Count;
int totalWaitedNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("FJ-TBHCJ") || x.equipment_type.Contains("FJ-BCHCJ")) && x.location_state == LocationStateEnum.LocationState_Close.ToString()).Count;
response.OK(data: new { totalEmptyNum, totalStoredNum, totalNGNum, totalWaitedNum });
}
else if (AGVName == "组装AGV调度")
{
area = "ZJ";
int totalEmptyNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJ-GFHCJ") || x.equipment_type.Contains("FJ-GFHCJ") | x.equipment_type.Contains("ZJK") | x.equipment_type.Contains("FJK") | x.equipment_type.Contains("FJ-QJHCJ") | x.equipment_type.Contains("ZJ-QJHCJ")) && x.location_state == LocationStateEnum.LocationState_Empty.ToString()).Count;
int totalStoredNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJ-GFHCJ") || x.equipment_type.Contains("FJ-GFHCJ") | x.equipment_type.Contains("ZJK") | x.equipment_type.Contains("FJK") | x.equipment_type.Contains("FJ-QJHCJ") | x.equipment_type.Contains("ZJ-QJHCJ")) && x.location_state == LocationStateEnum.LocationState_Stored.ToString()).Count;
int totalNGNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJ-GFHCJ") || x.equipment_type.Contains("FJ-GFHCJ") | x.equipment_type.Contains("ZJK") | x.equipment_type.Contains("FJK") | x.equipment_type.Contains("FJ-QJHCJ") | x.equipment_type.Contains("ZJ-QJHCJ")) && x.task == 1).Count;
int totalWaitedNum = base_ware_locationRepository.Instance.Find(x => (x.equipment_type.Contains("ZJ-GFHCJ") || x.equipment_type.Contains("FJ-GFHCJ") | x.equipment_type.Contains("ZJK") | x.equipment_type.Contains("FJK") | x.equipment_type.Contains("FJ-QJHCJ") | x.equipment_type.Contains("ZJ-QJHCJ")) && x.location_state == LocationStateEnum.LocationState_Close.ToString()).Count;
response.OK(data: new { totalEmptyNum, totalStoredNum, totalNGNum, totalWaitedNum });
}
}
catch (Exception ex)
{
response.Error(ex.Message);
}
return response;
}
///
/// 任务列表信息
///
///
///
public static WebResponseContent GetAGVTaskData(SaveModel model)
{
WebResponseContent response = new WebResponseContent();
try
{
string AGVName = model.MainData["AGVName"].ToString();
string area = string.Empty;
List agvtasks = new List();
Expression> Expression = x => x.agv_code.Contains(AGVName);
agvtasks = dt_agvtaskRepository.Instance.Find(Expression).ToList();
//if (AGVName == "正极AGV调度")
//{
// area = "ZJ";
// Expression> Expression = x => x.agv_code .Contains("正极AGV调度") ;
// agvtasks = dt_agvtaskRepository.Instance.Find(Expression).ToList();
//Expression> Expression = x => x.agv_fromaddress.Contains("TB") || x.agv_fromaddress.Contains("GY") || x.agv_fromaddress.Contains("FQ") || x.agv_toaddress.Contains("TB") || x.agv_toaddress.Contains("GY") || x.agv_toaddress.Contains("FQ");
// agvtasks = dt_agvtaskRepository.Instance.Find(Expression).Where(x => x.agv_fromaddress.Contains(area)).ToList();
//}
//else if (AGVName == "负极AGV调度")
//{
// area = "FJ";
// Expression> Expression = x => x.agv_fromaddress.Contains("TB") || x.agv_fromaddress.Contains("GY") || x.agv_fromaddress.Contains("FQ") || x.agv_toaddress.Contains("TB") || x.agv_toaddress.Contains("GY") || x.agv_toaddress.Contains("FQ");
// agvtasks = dt_agvtaskRepository.Instance.Find(Expression).Where(x => x.agv_fromaddress.Contains(area)).ToList();
//}
//else if (AGVName == "组装AGV调度")
//{
// area = "ZZ";
// Expression> Expression = x => x.agv_fromaddress.Contains("XL-FQHCJ") || x.agv_toaddress.Contains("CDHCJ");
// agvtasks = dt_agvtaskRepository.Instance.Find(Expression).Where(x => x.agv_fromaddress.Contains(area)).ToList();
//}
//else if (AGVName == "负极极卷库")
//{
// area = "FJ";
// Expression> Expression = x => x.agv_fromaddress.Contains("XL-FQHCJ") || x.agv_toaddress.Contains("CDHCJ");
// agvtasks = dt_agvtaskRepository.Instance.Find(Expression).Where(x => x.agv_fromaddress.Contains(area)).ToList();
//}
//else if (AGVName == "一楼冲叠")
//{
// Expression> Expression = x => x.agv_fromaddress.Contains("JJHCJ") || x.agv_fromaddress.Contains("1-ZJSL-CDHCJ") || x.agv_fromaddress.Contains("1-FJSL-CDHCJ");
// agvtasks = dt_agvtaskRepository.Instance.Find(Expression).ToList();
//}
//else if (AGVName == "二楼冲叠")
//{
// Expression> Expression = x => x.agv_fromaddress.Contains("JJHCJ") || x.agv_fromaddress.Contains("2-ZJSL-CDHCJ") || x.agv_fromaddress.Contains("2-FJSL-CDHCJ");
// agvtasks = dt_agvtaskRepository.Instance.Find(Expression).ToList();
//}
if (agvtasks.Count <= 0) return response.Error("未找到任务");
List tempConfig = new List();
//tempConfig = App.GetConfig>("location");
foreach (var item in agvtasks)
{
//item.agv_fromaddress = tempConfig.Where(x => x.Code == item.agv_fromaddress).Select(x => x.Name).First().ToString();
//item.agv_toaddress = tempConfig.Where(x => x.Code == item.agv_toaddress).Select(x => x.Name).First().ToString();
item.agv_taskstate = item.agv_taskstate == AGVTaskStateEnum.Create.ToString() ? "已创建" : item.agv_taskstate == AGVTaskStateEnum.SendOut.ToString() ? "已下发" : item.agv_taskstate == AGVTaskStateEnum.Executing.ToString() ? "起点执行中" : item.agv_taskstate == AGVTaskStateEnum.Complete.ToString() ? "起点已完成" : item.agv_taskstate == AGVTaskStateEnum.Executing1.ToString() ? "终点执行中" : item.agv_taskstate == AGVTaskStateEnum.Complete1.ToString() ? "终点已完成" : "其他";
}
response.OK(data: agvtasks);
}
catch (Exception ex)
{
response.Error(ex.Message);
}
return response;
}
//提升机信息对接显示
public static WebResponseContent GetTSJInfo(SaveModel model)
{
WebResponseContent response = new WebResponseContent();
try
{
if (WCSService.Clients == null)
{
return response.Error("");
}
string AGVName = model.MainData["TSJName"].ToString();
PLCClient client = WCSService.Clients.Find(X => X.PLCName == AGVName);
if (client != null)
{
#region 提升机运行状态
string status = "未通讯";
bool status1 = client.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB51.92.1").Content;//准备好
if (status1)
{
status = "准备好";
}
bool status2 = client.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB51.92.2").Content;//运行
if (status2)
{
status = "运行";
}
bool status3 = client.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB51.92.3").Content;//完成
if (status3)
{
status = "完成";
}
#endregion
int agverror = client.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.192").Content.ToInt();//agv报警
bool tsjerror = client.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB51.92").Content;//提升机报警
int error = client.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB51.90").Content.ToInt();//提升机反馈步骤
int floor = client.SiemensPLCClient.SiemensS7NetClient.ReadInt16("DB1002.190").Content.ToInt();//AGV反馈步骤
response.OK(data: new { status, agverror, tsjerror, error, floor });
}
}
catch (Exception ex)
{
response.Error(ex.Message);
}
return response;
}
public static WebResponseContent GetTSJInfos(SaveModel model)
{
WebResponseContent response = new WebResponseContent();
try
{
List AGVName = model.DelKeys.ConvertAll(x => { return x.ToString(); });
List