using HH.WCS.NongFuChaYuan.OtherService;
using SqlSugar;
using System;
using System.Collections.Generic;
namespace HH.WCS.NongFuChaYuan.WmsService
{
///
/// 工单、设备状态管理
///
public class WCSHelper
{
static WCSHelper()
{
}
#region 大明山WCS业务处理
///
/// 大明上-查询工单信息--执行中
///
///
///
public static List GetDaMingShanAnalysisOrderWork(string orderType)
{
var order = new SqlHelper().GetList(a => a.S_ORDER_TYPE == orderType && a.S_WorkState == "执行中");
return order;
}
///
/// 大明山-查询工单信息
///
///
///
public static List GetDaMingShanAnalysisOrderWorkType(string orderType, string newbatch, string deviceName)
{
var order = new SqlHelper().GetList(a => a.S_ORDER_TYPE == orderType && a.S_BatchNo == newbatch && a.S_PLineNo == deviceName);
return order;
}
///
/// 插入工单信息
///
///
///
internal static bool DaMingShanInsertWork(WorkOrder wmsTask)
{
var db = new SqlHelper().GetInstance();
return db.Insertable(wmsTask).ExecuteCommand() > 0;
}
///
/// 更改工单信息:托规、批次号、物料层数
///
///
///
///
internal static bool UpdateWorkInfo(WorkOrder task, string batchNo = "", string itemLayer = "")
{
var res = false;
var db = new SqlHelper().GetInstance();
//task.S_TrayRules = trayRule;
task.S_BatchNo = batchNo;
task.S_ItemLayer = itemLayer;
db.Updateable(task).UpdateColumns(it => new { it.S_BatchNo, it.S_ItemLayer }).ExecuteCommand();
return res;
}
///
/// 查询托盘信息-全部-为了对比当前是否为正常下线
///
///
///
public static List GetDaMingShanTrayInfoAllList(string deviceName)
{
var order = new SqlHelper().GetList(a => a.deviceName == deviceName);
return order;
}
///
/// 创建数据中间表表
///
///
public static void CreateMiddleTable()
{
//var order = new SqlHelper().CreateTable();//富勒传输托盘信息表
//var order1 = new SqlHelper().CreateTable();//设备信号时间中间表
var order2 = new SqlHelper().CreateTable();//成品下线库位中间表
}
///
/// 淳安-插入设备信息
///
///
///
internal static bool DaMingShangInsertDeviceState(DaMingShanDeviceState deviceState)
{
var db = new SqlHelper().GetInstance();
return db.Insertable(deviceState).ExecuteCommand() > 0;
}
///
/// 淳安-更改设备状态:时间-状态
///
///
/// 0-默认无动作 1-第一次收到下线信号
/// 第一次收到信号时更新时间;取货完成复位时间
///
internal static bool UpdateDaMingShanDeviceState(DaMingShanDeviceState deviceInfo, string status, string dateTime, string extData = "")
{
var res = false;
var db = new SqlHelper().GetInstance();
deviceInfo.DeviceState = status;
deviceInfo.DeviceTime = dateTime;
db.Updateable(deviceInfo).UpdateColumns(it => new { it.DeviceState, it.DeviceTime }).ExecuteCommand();
return res;
}
///
/// 查询当前设备信息
///
///
///
public static DaMingShanDeviceState GetDaMingShanDeviceState(string deviceName)
{
var order = new SqlHelper().Get(a => a.DeviceName == deviceName, a => a.DeviceTime, true);
return order;
}
///
/// 查询托盘信息-下线时间之前的数据
///
///
///
public static List GetDaMingShanTrayInfoList(string positionCode, string deviceName)
{
var exp = Expressionable.Create();
exp.And(it => it.deviceName == deviceName);
exp.AndIF(!string.IsNullOrEmpty(positionCode), it => it.positionCode == positionCode);
//var order = new SqlHelper().GetList(a => Convert.ToDateTime(a.dateTime.Trim()) < Convert.ToDateTime(dateTime) && a.deviceName == deviceName);
var order = new SqlHelper().GetList(exp.ToExpression());
return order;
}
///
/// 大明山-查询工单信息--执行中或者暂停
///
///
///
public static WorkOrder GetWorkOrder(string lineNo)
{
var order = new SqlHelper().Get(a => a.S_PLineNo.Trim() == lineNo && (a.S_WorkState == "执行中"), a => a.T_CREATE, true);
return order;
}
///
/// 大明山-查询工单信息--执行中或者暂停
///
///
///
public static PGWorkOrder GetPGWorkOrder(string lineNo)
{
var order = new SqlHelper().Get(a => a.S_PLineNo.Trim() == lineNo && (a.S_WorkState == "执行中"), a => a.T_CREATE, true);
return order;
}
public static List GetWorkOrder1(string lineNo)
{
var db = new SqlHelper().GetInstance();
var order = db.Queryable().Where(a => a.S_PLineNo.Trim() == lineNo && a.S_WorkState == "执行中").ToList();
return order;
}
public static ItemRel GetItemrel(string itemcode, string itemmodel)
{
var db = new SqlHelper().GetInstance();
var order = db.Queryable().Where(a => a.S_ITEM_CODE == itemcode && a.S_ITEM_MODEL == itemmodel).First();
return order;
}
internal static bool DaMingShanInsertAnalysisMoveLib(DaMingShanAnalysisMoveLib info)
{
var db = new SqlHelper().GetInstance();
var oldinfo = db.Queryable().Where(a => a.DeviceName == info.DeviceName && a.Batch == info.Batch && a.RowNo == info.RowNo).First();
if (oldinfo == null)
{
return db.Insertable(info).ExecuteCommand() > 0;
}
else
{
return true;
}
}
///
/// 通过产线号结束自动移库工单 并删除中间表信息
///
///
internal void EndYiKuWorkOrder(string S_PLineNo, string BatchNo, string oldbatch)
{
var db = new SqlHelper