using HH.WCS.QingXigongchang.util; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; namespace HH.WCS.QingXigongchang.wms { /// /// 工单、设备状态管理 /// public class WCSHelper { static WCSHelper() { } /// /// 查询工单 /// /// /// public static WorkOrder GetWorkOrder(string lineNo) { //|| a.SQL_State == "暂停" var order = new SqlHelper().Get(a => a.SQL_PLineNo == lineNo && (a.SQL_State == "执行中"), a => a.T_CREATE, true); return order; } /// /// 半成品区域表 /// /// /// public static List BcpQyOrderList(string lineNo) { var order = new SqlHelper().GetList(a => a.SQL_PLineNo == lineNo && (a.C_ENABLE == "Y")).OrderByDescending(c => c.N_PRI).ToList(); return order; } public static List GetWorkOrder(Expression> expression) { //|| a.SQL_State == "暂停" var order = new SqlHelper().GetInstance().Queryable().Where(expression); return order.ToList(); } /// /// 查询PG工单 /// /// /// public static PGWorkOrder GetPGWorkOrder(string lineNo) { var order = new SqlHelper().Get(a => a.SQL_PLineNo == lineNo && (a.SQL_State == "执行中"), a => a.T_CREATE, true); return order; } public static List GetPGWorkOrder(Expression> expression) { var order = new SqlHelper().GetInstance().Queryable().Where(expression); return order.ToList(); } public static List GetWorkOrder2(string lineNo = "") { //|| a.SQL_State == "暂停" //var order = new SqlHelper().GetInstance().Queryable().Where(a => a.Turn_Type == "手动移库" && (a.SQL_State == "执行中" || (a.SQL_State == "完成" && a.Note == "执行中。。。"))); var order = new SqlHelper().GetInstance().Queryable().Where(a => (a.SQL_State == "执行中" || (a.SQL_State == "完成" && a.Note == "执行中。。。"))); //var order = new SqlHelper().GetInstance().Queryable().Where(a => a.Turn_Type == "手动移库" && a.SQL_State == "执行中"); return order.OrderBy(x => x.SQL_State == "完成" ? 0 : 1).ToList(); } public static void Do(Action action) { action(new SqlHelper().GetInstance()); } public static List GetWorkOrder2(Expression> expression) { //|| a.SQL_State == "暂停" var order = new SqlHelper().GetInstance().Queryable().Where(expression); return order.ToList(); } /// /// 查询审核的工单 /// /// /// public static WorkOrder GetWorkOrderVerify(string lineNo) { var order = new SqlHelper().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().Get(a => a.SQL_WorkNo == orderNo); return order; } internal static bool UpdateWorkOrderAutoCompleteFalse(WorkOrder workOrder) { var db = new SqlHelper().GetInstance(); workOrder.SQL_AutoComplete = "否"; return db.Updateable(workOrder).UpdateColumns(it => new { it.SQL_AutoComplete }).ExecuteCommand() > 0; } /// /// 更新工单数量 /// /// /// 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().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); } } } }