using HH.WCS.QingXigongchang.util;
|
using SqlSugar;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq.Expressions;
|
|
namespace HH.WCS.QingXigongchang.wms
|
{
|
/// <summary>
|
/// 工单、设备状态管理
|
/// </summary>
|
public class WCSHelper
|
{
|
static WCSHelper()
|
{
|
}
|
|
/// <summary>
|
/// 查询工单
|
/// </summary>
|
/// <param name="lineNo"></param>
|
/// <returns></returns>
|
public static WorkOrder GetWorkOrder(string lineNo)
|
{
|
//|| a.SQL_State == "暂停"
|
var order = new SqlHelper<WorkOrder>().Get(a => a.SQL_PLineNo == lineNo && (a.SQL_State == "执行中"), a => a.T_CREATE, true);
|
return order;
|
}
|
|
public static List<WorkOrder> GetWorkOrder(Expression<Func<WorkOrder, bool>> expression)
|
{
|
//|| a.SQL_State == "暂停"
|
var order = new SqlHelper<WorkOrder>().GetInstance().Queryable<WorkOrder>().Where(expression);
|
return order.ToList();
|
}
|
/// <summary>
|
/// 查询PG工单
|
/// </summary>
|
/// <param name="lineNo"></param>
|
/// <returns></returns>
|
public static PGWorkOrder GetPGWorkOrder(string lineNo)
|
{
|
var order = new SqlHelper<PGWorkOrder>().Get(a => a.SQL_PLineNo == lineNo && (a.SQL_State == "执行中"), a => a.T_CREATE, true);
|
return order;
|
}
|
|
public static List<PGWorkOrder> GetPGWorkOrder(Expression<Func<PGWorkOrder, bool>> expression)
|
{
|
var order = new SqlHelper<PGWorkOrder>().GetInstance().Queryable<PGWorkOrder>().Where(expression);
|
return order.ToList();
|
}
|
|
public static List<TurnWorkOrder> GetWorkOrder2(string lineNo = "")
|
{
|
//|| a.SQL_State == "暂停"
|
//var order = new SqlHelper<TurnWorkOrder>().GetInstance().Queryable<TurnWorkOrder>().Where(a => a.Turn_Type == "手动移库" && (a.SQL_State == "执行中" || (a.SQL_State == "完成" && a.Note == "执行中。。。")));
|
var order = new SqlHelper<TurnWorkOrder>().GetInstance().Queryable<TurnWorkOrder>().Where(a => (a.SQL_State == "执行中" || (a.SQL_State == "完成" && a.Note == "执行中。。。")));
|
//var order = new SqlHelper<TurnWorkOrder>().GetInstance().Queryable<TurnWorkOrder>().Where(a => a.Turn_Type == "手动移库" && a.SQL_State == "执行中");
|
return order.OrderBy(x => x.SQL_State == "完成" ? 0 : 1).ToList();
|
}
|
|
public static void Do(Action<SqlSugarClient> action)
|
{
|
action(new SqlHelper<TurnWorkOrder>().GetInstance());
|
}
|
public static List<TurnWorkOrder> GetWorkOrder2(Expression<Func<TurnWorkOrder, bool>> expression)
|
{
|
//|| a.SQL_State == "暂停"
|
var order = new SqlHelper<TurnWorkOrder>().GetInstance().Queryable<TurnWorkOrder>().Where(expression);
|
return order.ToList();
|
}
|
/// <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);
|
}
|
|
}
|
}
|
}
|