using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using yunneiPda.EnumDefine;
using yunneiPda.orm;
namespace yunneiPda
{
///
/// 增补创建的扩展帮助类 【EditBy shaocx,2022-02-05】
///
public class MyExtendHelper
{
public static void SetPlcTaskNoAgvTaskNo(ref task newTask)
{
//记录PLC任务号和AGV任务号 【EditBy shaocx,2022-03-28】
yunneiPda.WCSserver.DeviceTaskNoEntity deviceTaskNoEntity = MyExtendHelper.CreateTaskId();
newTask.PlcTaskNo = deviceTaskNoEntity.PlcTaskNo;
newTask.AgvTaskNo = deviceTaskNoEntity.AgvTaskNo;
}
///
/// 生成设备任务号
///
///
///
///
public static yunneiPda.WCSserver.DeviceTaskNoEntity CreateTaskId()
{
yunneiPda.WCSserver.DeviceTaskNoEntity entity = null;
using (WCSserver.IyunneiWcfClient client = new WCSserver.IyunneiWcfClient())
{
entity = client.CreateTaskId();
}
if (entity == null)
{
throw new Exception("创建任务号失败");
}
return entity;
}
///
/// 通过站点ID获取库存
///
///
///
///
public static productStock GetProductStockById(dbmodel mod, long positionId)
{
productStock stock = mod.productStock.FirstOrDefault(x => x.positionId == positionId);
return stock;
}
///
/// 通过站点名字获取库存
///
///
///
///
public static productStock GetProductStockByName(dbmodel mod, string positionName)
{
var place = mod.position.FirstOrDefault(x => x.positionName == positionName);
if (place == null)
{
throw new Exception("根据名字" + positionName + "没有找到库位");
}
productStock stock = GetProductStockById(mod, place.positionId);
return stock;
}
///
/// 根据站点,是否存在未完成的任务
///
///
///
/// true:存在,false:不存在
public static bool IsExistNoFinishedTask(dbmodel mod, string positionName, ref task _task)
{
var queryStatus = (int)taskStatus.完成;
var queryStatus2 = (int)taskStatus.作废;
_task = mod.task.FirstOrDefault(x => x.taskStatus != queryStatus
&& x.taskStatus != queryStatus2
&& (
x.sourcePlace == positionName || x.toPlace == positionName
));
if (_task == null)
{
return false;
}
return true;
}
}
}