using HH.WCS.JingyuNongfu.util;
using SqlSugar;
using System;
using System.Collections.Generic;
namespace HH.WCS.JingyuNongfu.wms
{
///
/// 涉及到设备任务调度的,例如提升机、堆垛机、输送线相关表的读写
///
public class WCSHelper
{
static WCSHelper() {
}
internal static bool AddElevatorTaskInfo(ElevatorTaskInfo info) {
var db = new SqlHelper().GetInstance();
return db.Insertable(info).ExecuteCommand() > 0;
}
///
/// 获取一个执行中的电梯任务
///
///
internal static ElevatorTaskInfo GetOneWorkingElevatorTask() {
var db = new SqlHelper().GetInstance();
return db.Queryable().Where(a => a.state > 0).First();
}
///
/// 获取一个已经分配电梯缓存位的任务
///
///
internal static ElevatorTaskInfo GetOneAssignedElevatorTask() {
var db = new SqlHelper().GetInstance();
return db.Queryable().Where(a => !string.IsNullOrEmpty(a.elevatorCacheBit.Trim())).First();
}
///
/// 获取一个待处理的电梯任务
///
///
internal static ElevatorTaskInfo GetOnePendingElevatorTask() {
var db = new SqlHelper().GetInstance();
return db.Queryable().Where(a => a.state == 0 && string.IsNullOrEmpty(a.elevatorCacheBit.Trim())).First();
}
internal static ElevatorTaskInfo GetElevatorTaskByBit(string bit) {
var db = new SqlHelper().GetInstance();
return db.Queryable().Where(a => a.elevatorCacheBit.Trim() == bit.Trim()).First();
}
///
/// 获取同类型的电梯任务
///
///
///
///
internal static List GetOtherElevatorTask(string taskNo, int actionType) {
var db = new SqlHelper().GetInstance();
return db.Queryable().Where(a => a.actionType == actionType && a.sourceNo.Trim() != taskNo.Trim()).ToList();
}
internal static ElevatorTaskInfo GetElevatorTask(string taskNo) {
var db = new SqlHelper().GetInstance();
return db.Queryable().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().GetInstance();
var model = db.Queryable().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().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().GetInstance();
var model = db.Queryable().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().GetInstance();
return db.Deleteable().Where(a => a.state == state).ExecuteCommand() > 0;
}
internal static bool DeleteElevatorTask(ElevatorTaskInfo taskInfo) {
var db = new SqlHelper().GetInstance();
return db.Deleteable().Where(a => a.S_ID == taskInfo.S_ID).ExecuteCommand() > 0;
}
internal static bool DeleteElevatorTask(string no) {
var db = new SqlHelper().GetInstance();
return db.Deleteable().Where(a => a.sourceNo.Trim() == no).ExecuteCommand() > 0;
}
}
}