using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using HH.WCS.JingyuNongfu.wms; using Newtonsoft.Json; namespace HH.WCS.JingyuNongfu.process { /// /// 流程通用代码 /// internal class ProcessHelper { /// /// 瓶盖机满托下线设置物料信息和托盘状态 /// /// /// internal static bool SetTrayInfoFull(WorkOrder workOrder, Container cntr, bool isPg = false) { //托盘信息已存在,将托盘物料表更新 //设置容器用途 var dest = workOrder.S_LinkLineNO.Trim(); if (workOrder.S_Area != null && workOrder.S_Area.Trim() == "v8") { dest = "v8"; //Console.WriteLine(workOrder.SQL_Area); } //if (workOrder.S_Out != null && workOrder.S_Out.Trim() == "Y") { // dest = "外调"; // //Console.WriteLine(workOrder.SQL_Out); //} cntr.S_DEST = dest; cntr.S_SRC = workOrder.S_PLineNo.Trim(); var num = workOrder.S_PCNumber; if (isPg && cntr.S_TYPE == "塑料托盘") { num = workOrder.S_PCNumber1; } Console.WriteLine($"绑定容器{cntr.S_CNTR_CODE}来源{cntr.S_SRC}"); Console.WriteLine($"绑定容器{cntr.S_CNTR_CODE}目的地{cntr.S_DEST}"); //itemcode 要改成itemname return ContainerHelper.BindCntrItem(cntr, workOrder.S_ItemName, $"{DateTime.Now.ToString("yyMMdd")}{workOrder.S_PLineNo.Trim()}", num, workOrder.S_WorkNo); } internal static bool SetTrayInfoZone(Container cntr, string start, string end) { //托盘信息已存在,将托盘物料表更新 //设置容器用途 cntr.S_DEST = end; cntr.S_SRC = start; Console.WriteLine($"绑定容器{cntr.S_CNTR_CODE}来源{cntr.S_SRC}"); Console.WriteLine($"绑定容器{cntr.S_CNTR_CODE}目的地{cntr.S_DEST}"); LogHelper.Info($"绑定容器:{cntr.S_CNTR_CODE}绑定目的地:{cntr.S_DEST}", "托盘绑定"); //itemcode 要改成itemname return ContainerHelper.BindCntr(cntr); } private static List freeLineInfos = new List(); internal static freeLineBit GetFreeLineBit(string area, int row, int col) { if (freeLineInfos.Count == 0) { freeLineInfos = LocationHelper.GetAllFreeLineInfo(); } var size = freeLineInfos.Count; Console.WriteLine($"freeLineInfos.Count:{size}"); var res = freeLineInfos.Where(a => a.S_AREA_CODE == area && a.N_ROW == row && col >= a.S_START_COL && col <= a.S_END_COL).FirstOrDefault(); LogHelper.Info("自由线段信息:" + JsonConvert.SerializeObject(res), "HosttoagvTask"); if (res != null) { return new freeLineBit { S_AREA_CODE = area, N_ROW = row, S_START_COL = res.S_START_COL, S_END_COL = res.S_END_COL, S_First_Bit = res.S_First_Bit, S_Second_Bit = res.S_Second_Bit, S_Three_Bit = res.S_Three_Bit }; } return null; } public class freeLineBit { public string S_AREA_CODE { get; set; } public int N_ROW { get; set; } public int S_START_COL { get; set; } public int S_END_COL { get; set; } public int S_First_Bit { get; set; } public int S_Second_Bit { get; set; } public int S_Three_Bit { get; set; } } } }