using HH.WCS.Hexafluo.util;
|
using System;
|
using System.Collections.Generic;
|
|
namespace HH.WCS.Hexafluo.wms
|
{
|
/// <summary>
|
/// 工单、设备状态管理
|
/// </summary>
|
public class WCSHelper
|
{
|
static WCSHelper()
|
{
|
}
|
|
/// <summary>
|
/// 查询工单
|
/// </summary>
|
/// <param name="lineNo"></param>
|
/// <returns></returns>
|
public static WorkOrder GetWorkOrder(string lineNo)
|
{
|
var order = new SqlHelper<WorkOrder>().Get(a => a.SQL_PLineNo == lineNo && (a.SQL_State == "执行中" || a.SQL_State == "暂停"), a => a.T_CREATE, true);
|
return order;
|
}
|
/// <summary>
|
/// 查询审核的工单
|
/// </summary>
|
/// <param name="lineNo"></param>
|
/// <returns></returns>
|
public static WorkOrder GetWorkOrderVerify(string lineNo)
|
{
|
var order = new SqlHelper<WorkOrder>().Get(a => a.SQL_PLineNo == lineNo && a.SQL_State == "审核中", a => a.T_CREATE, true);
|
return order;
|
}
|
public static WorkOrder GetWorkOrderByOrderNo(string orderNo)
|
{
|
var order = new SqlHelper<WorkOrder>().Get(a => a.SQL_WorkNo == orderNo);
|
return order;
|
}
|
internal static bool UpdateWorkOrderAutoCompleteFalse(WorkOrder workOrder)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
workOrder.SQL_AutoComplete = "否";
|
return db.Updateable(workOrder).UpdateColumns(it => new { it.SQL_AutoComplete }).ExecuteCommand() > 0;
|
}
|
/// <summary>
|
/// 更新工单数量
|
/// </summary>
|
/// <param name="workOrder"></param>
|
/// <param name="trayType"></param>
|
internal static void UpdateWorkOrder(WorkOrder workOrder, int trayType)
|
{
|
try
|
{
|
var qty = string.IsNullOrEmpty(workOrder.SQL_PCNumber) ? 0 : int.Parse(workOrder.SQL_PCNumber);
|
var total = string.IsNullOrEmpty(workOrder.SQL_Total) ? 0 : int.Parse(workOrder.SQL_Total);
|
var usingNowTotal = string.IsNullOrEmpty(workOrder.SQL_UsingNowTotal) ? 0 : int.Parse(workOrder.SQL_UsingNowTotal);
|
var current = string.IsNullOrEmpty(workOrder.SQL_Current) ? 0 : int.Parse(workOrder.SQL_Current);
|
var db = new SqlHelper<object>().GetInstance();
|
workOrder.SQL_Current = (current + qty).ToString();
|
//如果数量满了,并且没有切换过,可以结束,如果切换过,数量满了不结束,一直生产
|
if (current + qty == total && (string.IsNullOrEmpty(workOrder.SQL_AutoComplete) || workOrder.SQL_AutoComplete.Trim() == "是"))
|
{
|
//工单完成
|
workOrder.SQL_State = "已完成";
|
db.Updateable(workOrder).UpdateColumns(it => new { it.SQL_Current, it.SQL_State }).ExecuteCommand();
|
}
|
else
|
{
|
db.Updateable(workOrder).UpdateColumns(it => new { it.SQL_Current }).ExecuteCommand();
|
}
|
}
|
catch (Exception ex)
|
{
|
LogHelper.Error("UpdateWorkOrder fail " + ex.Message, ex);
|
}
|
|
}
|
internal static LinAreaInfo GetTipperCacheWorkOrderInfo(string connectArea)
|
{
|
//1.0 查货位容器表
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Queryable<LinAreaInfo>().Where(a => a.connectArea.Trim() == connectArea).First();
|
|
}
|
|
internal static bool AddTipperCacheWorkOrderInfo(LinAreaInfo info)
|
{
|
var db = new SqlHelper<LinAreaInfo>().GetInstance();
|
return db.Insertable(info).ExecuteCommand() > 0;
|
}
|
internal static bool UpdateTipperCacheWorkOrderInfo(string connectArea, int selected)
|
{
|
var result = false;
|
var db = new SqlHelper<object>().GetInstance();
|
var area = db.Queryable<LinAreaInfo>().Where(a => a.connectArea.Trim() == connectArea).First();
|
if (area != null)
|
{
|
area.selected = selected;
|
result = db.Updateable(area).UpdateColumns(it => new { it.selected }).ExecuteCommand() > 0;
|
}
|
return result;
|
|
}
|
|
internal static List<LineAreaRowMode> GetTipperAreaMode(string connectArea, int rowMode)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Queryable<LineAreaRowMode>().Where(a => a.connectArea.Trim() == connectArea && a.rowMode == rowMode).ToList();
|
|
}
|
internal static LineAreaRowMode GetOneTipperAreaMode(string connectArea, int row)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Queryable<LineAreaRowMode>().Where(a => a.connectArea.Trim() == connectArea && a.row == row).First();
|
|
}
|
internal static bool UpdateTipperAreaRowMode(LineAreaRowMode model, int rowMode)
|
{
|
var db = new SqlHelper<LineAreaRowMode>().GetInstance();
|
model.rowMode = rowMode;
|
return db.Updateable(model).UpdateColumns(it => new { it.rowMode }).ExecuteCommand() > 0;
|
|
}
|
|
internal static bool AddElevatorTaskInfo(ElevatorTaskInfo info)
|
{
|
var db = new SqlHelper<ElevatorTaskInfo>().GetInstance();
|
return db.Insertable(info).ExecuteCommand() > 0;
|
}
|
/// <summary>
|
/// 获取一个执行中的电梯任务
|
/// </summary>
|
/// <returns></returns>
|
internal static ElevatorTaskInfo GetOneWorkingElevatorTask()
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Queryable<ElevatorTaskInfo>().Where(a => a.state > 0).First();
|
|
}
|
/// <summary>
|
/// 获取一个已经分配电梯缓存位的任务
|
/// </summary>
|
/// <returns></returns>
|
internal static ElevatorTaskInfo GetOneAssignedElevatorTask()
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Queryable<ElevatorTaskInfo>().Where(a => !string.IsNullOrEmpty(a.elevatorCacheBit.Trim())).First();
|
|
}
|
/// <summary>
|
/// 获取一个待处理的电梯任务
|
/// </summary>
|
/// <returns></returns>
|
internal static ElevatorTaskInfo GetOnePendingElevatorTask()
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Queryable<ElevatorTaskInfo>().Where(a => a.state == 0 && string.IsNullOrEmpty(a.elevatorCacheBit.Trim())).First();
|
|
}
|
internal static ElevatorTaskInfo GetElevatorTaskByBit(string bit)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Queryable<ElevatorTaskInfo>().Where(a => a.elevatorCacheBit.Trim() == bit.Trim()).First();
|
|
}
|
/// <summary>
|
/// 获取同类型的电梯任务
|
/// </summary>
|
/// <param name="taskNo"></param>
|
/// <param name="actionType"></param>
|
/// <returns></returns>
|
internal static List<ElevatorTaskInfo> GetOtherElevatorTask(string taskNo, int actionType)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Queryable<ElevatorTaskInfo>().Where(a => a.actionType == actionType && a.sourceNo.Trim() != taskNo.Trim()).ToList();
|
}
|
internal static ElevatorTaskInfo GetElevatorTask(string taskNo)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Queryable<ElevatorTaskInfo>().Where(a => a.sourceNo.Trim() != taskNo.Trim()).First();
|
}
|
internal static bool UpdateElevatorTask(string bit, int currState, int state)
|
{
|
var result = false;
|
var db = new SqlHelper<ElevatorTaskInfo>().GetInstance();
|
var model = db.Queryable<ElevatorTaskInfo>().Where(a => a.elevatorCacheBit == bit && a.state == currState).First();
|
if (model != null)
|
{
|
model.state = state;
|
result = db.Updateable(model).UpdateColumns(it => new { it.state }).ExecuteCommand() > 0;
|
}
|
return result;
|
|
}
|
internal static bool UpdateElevatorTask(ElevatorTaskInfo model, string cacheBit, int state)
|
{
|
var result = false;
|
var db = new SqlHelper<ElevatorTaskInfo>().GetInstance();
|
model.elevatorCacheBit = cacheBit;
|
model.state = state;
|
result = db.Updateable(model).UpdateColumns(it => new { it.elevatorCacheBit, it.state }).ExecuteCommand() > 0;
|
return result;
|
|
}
|
internal static bool UpdateElevatorTask(string taskNo, int state)
|
{
|
var result = false;
|
var db = new SqlHelper<ElevatorTaskInfo>().GetInstance();
|
var model = db.Queryable<ElevatorTaskInfo>().Where(a => a.sourceNo.Trim() == taskNo).First();
|
if (model != null)
|
{
|
model.state = state;
|
result = db.Updateable(model).UpdateColumns(it => new { it.state }).ExecuteCommand() > 0;
|
}
|
return result;
|
|
}
|
internal static bool DeleteElevatorTaskByState(int state)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Deleteable<ElevatorTaskInfo>().Where(a => a.state == state).ExecuteCommand() > 0;
|
|
}
|
internal static bool DeleteElevatorTask(ElevatorTaskInfo taskInfo)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Deleteable<ElevatorTaskInfo>().Where(a => a.S_ID == taskInfo.S_ID).ExecuteCommand() > 0;
|
|
}
|
internal static bool DeleteElevatorTask(string no)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Deleteable<ElevatorTaskInfo>().Where(a => a.sourceNo.Trim() == no).ExecuteCommand() > 0;
|
|
}
|
internal static List<OutgoPlan> GetAllOutgoPlan()
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Queryable<OutgoPlan>().ToList();
|
}
|
internal static OutgoPlan GetOutgoPlan(string itemCode)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
return db.Queryable<OutgoPlan>().Where(a => a.itemCode.Trim() == itemCode).First();
|
}
|
internal static bool AddOutgoPlan(OutgoPlan info)
|
{
|
var db = new SqlHelper<OutgoPlan>().GetInstance();
|
return db.Insertable(info).ExecuteCommand() > 0;
|
}
|
}
|
}
|