using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using yunneiPda.EnumDefine;
|
using yunneiPda.orm;
|
|
|
namespace yunneiPda
|
{
|
/// <summary>
|
/// 增补创建的扩展帮助类 【EditBy shaocx,2022-02-05】
|
/// </summary>
|
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;
|
}
|
|
/// <summary>
|
/// 生成设备任务号
|
/// </summary>
|
/// <param name="mod"></param>
|
/// <param name="positionId"></param>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>
|
/// 通过站点ID获取库存
|
/// </summary>
|
/// <param name="mod"></param>
|
/// <param name="positionId"></param>
|
/// <returns></returns>
|
public static productStock GetProductStockById(dbmodel mod, long positionId)
|
{
|
productStock stock = mod.productStock.FirstOrDefault(x => x.positionId == positionId);
|
return stock;
|
}
|
/// <summary>
|
/// 通过站点名字获取库存
|
/// </summary>
|
/// <param name="mod"></param>
|
/// <param name="positionId"></param>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>
|
/// 根据站点,是否存在未完成的任务
|
/// </summary>
|
/// <param name="mod"></param>
|
/// <param name="positionName"></param>
|
/// <returns>true:存在,false:不存在</returns>
|
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;
|
}
|
}
|
}
|