123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using WCS.Data;
- using WCS.Data.Models;
- using WCS.Data.Utils;
- using WCS.PLC.Model.Equipment;
- using static WCS.PLC.Base_Conv;
- namespace WCS.PLC
- {
- public class ConveyorHelper
- {
- /// <summary>
- /// 获取输送线信号
- /// </summary>
- /// <param name="plc_name"></param>
- /// <param name="conveyorNo"></param>
- /// <returns></returns>
- public static ConvSignal GetConveyorSignal(string plc_name, string conveyorNo)
- {
- var plc = Current.PlcSet.FirstOrDefault(v => v.PLC_NAME == plc_name);
- var conveyor = plc.WCS_EquipmentInfoSet.FirstOrDefault(v => v.Equ_No == conveyorNo);
- if (conveyor == null)
- {
- Log4netHelper.Logger_Info.InfoFormat("plc:" + plc_name + "输送线:" + conveyorNo);
- return null;
- }
- return conveyor.EquSignal_Conv;
- }
- private static List<string> QuerySrmList(List<string> srms)
- {
- var result = new List<string>();
- Dictionary<string, int> dicsrm = new Dictionary<string, int>();
- foreach (var item in srms)
- {
- string srm = string.Format("srm0{0}", item);
- int taskcount = Current.TaskSet.Where(v => v.TASK_COMTYPE == 1 && v.TASK_WKSTATUS == 2 && v.TASK_SRMNO == srm).Count();
- dicsrm.Add(srm, taskcount);
- }
- result = dicsrm.OrderBy(v => v.Value).Select(t => t.Key).ToList();
- return result;
- }
- private static Dictionary<string, int> QueryDicList(List<string> srms)
- {
- Dictionary<string, int> dicsrm = new Dictionary<string, int>();
- foreach (var item in srms)
- {
- string srm = string.Format("srm0{0}", item);
- int taskcount = Current.TaskSet.Where(v => v.TASK_COMTYPE == 1 && v.TASK_WKSTATUS == 2 && v.TASK_SRMNO == srm).Count();
- dicsrm.Add(srm, taskcount);
- }
- return dicsrm;
- }
- /// <summary>
- /// 看板提示
- /// </summary>
- /// <param name="equipmentNo"></param>
- /// <param name="alaram"></param>
- /// <param name="writeCount"></param>
- public static void AddLedAlarmsMsg(string equipmentNo, string alaram, int writeCount = 100)
- {
- var time = SugarBase.DB.GetDate();//获取当前时间
- var alarmsmsgSet = SugarBase.DB.Queryable<WCS_LEDALARMSMSG>().Where(v => v.LED_CONVYORNO == equipmentNo).ToList();
- if (alarmsmsgSet.Count() < writeCount)
- {
- WCS_LEDALARMSMSG updateAlaram = null;
- var alarams = alarmsmsgSet.OrderByDescending(v => v.LED_UPDATETIME).ToList();
- if (alarams.Count > 0)
- {
- if (alarams[0].LED_ALARMSMSG == alaram)
- {
- updateAlaram = alarams[0];
- }
- }
- if (updateAlaram == null)
- {
- //添加
- var alarmsmsg = new WCS_LEDALARMSMSG();
- alarmsmsg.LED_ID = Guid.NewGuid().ToString();
- alarmsmsg.LED_ADDRESS = string.Empty;
- alarmsmsg.LED_CONVYORNO = equipmentNo;
- alarmsmsg.LED_NO = "1";
- alarmsmsg.LED_ALARMSMSG = alaram;
- alarmsmsg.LED_DEFAULTMESSAGE = Current.LED_DEFAULTMESSAGE;
- alarmsmsg.LED_UPDATETIME = time;
- alarmsmsg.LED_NOTES = string.Empty;
- SugarBase.DB.Insertable(alarmsmsg).ExecuteCommand();
- }
- else if (updateAlaram.LED_UPDATETIME.AddMilliseconds(3) < time)
- {
- //更新时间大于3秒,更新最新提示
- SugarBase.DB.Updateable<WCS_LEDALARMSMSG>(it => new WCS_LEDALARMSMSG() { LED_UPDATETIME = time })
- .Where(it => it.LED_ID == updateAlaram.LED_ID)
- .ExecuteCommand();
- }
- }
- else
- {
- var alaitem = alarmsmsgSet.OrderByDescending(v => v.LED_UPDATETIME).ToList()[0];
- if (alaitem.LED_ALARMSMSG != alaram)
- {
- var alaramsmsgitem = alarmsmsgSet.OrderBy(v => v.LED_UPDATETIME).ToList()[0];
- //更新最新提示
- SugarBase.DB.Updateable<WCS_LEDALARMSMSG>(it => new WCS_LEDALARMSMSG() { LED_ALARMSMSG = alaram, LED_UPDATETIME = time })
- .Where(it => it.LED_ID == alaramsmsgitem.LED_ID)
- .ExecuteCommand();
- }
- }
- }
- /// <summary>
- /// 入口是否报警
- /// </summary>
- public static bool ConvGoodsAlarms(string convNo, ConvSignal cs)
- {
- var alarmsMsg = new StringBuilder();
- if (cs.DB521_Goods_Err)
- {
- alarmsMsg.Append(string.Format("外形/条码等故障"));
- }
- if (cs.DB521_F_Outside)
- {
- if (alarmsMsg.Length > 0)
- {
- alarmsMsg.Append(";");
- }
- alarmsMsg.Append(string.Format("前超长故障"));
- }
- if (cs.DB521_B_Outside)
- {
- if (alarmsMsg.Length > 0)
- {
- alarmsMsg.Append(";");
- }
- alarmsMsg.Append(string.Format("后超长故障"));
- }
- if (cs.DB521_L_Outside)
- {
- if (alarmsMsg.Length > 0)
- {
- alarmsMsg.Append(";");
- }
- alarmsMsg.Append(string.Format("左超长故障"));
- }
- if (cs.DB521_R_Outside)
- {
- if (alarmsMsg.Length > 0)
- {
- alarmsMsg.Append(";");
- }
- alarmsMsg.Append(string.Format("右超长故障"));
- }
- if (cs.DB521_H_Outside)
- {
- if (alarmsMsg.Length > 0)
- {
- alarmsMsg.Append(";");
- }
- alarmsMsg.Append(string.Format("超高故障"));
- }
- if (cs.DB521_BCR_Noread)
- {
- if (alarmsMsg.Length > 0)
- {
- alarmsMsg.Append(";");
- }
- alarmsMsg.Append(string.Format("条码未读出"));
- }
- if (cs.DB521_Overload)
- {
- if (alarmsMsg.Length > 0)
- {
- alarmsMsg.Append(";");
- }
- alarmsMsg.Append(string.Format("超重"));
- }
- if (alarmsMsg.Length > 0)
- {
- string result = string.Format("输送线[{0}]货物[{1}]", convNo, alarmsMsg.ToString());
- Log4netHelper.Logger_Error.ErrorFormat(result);
- return true;
- }
- else
- {
- return false;
- }
- }
- internal static string QueryTunnel(string wmstaskno, string tunnelNum,out string srmNo)
- {
- string tunnelNo = string.Empty;
- srmNo = string.Empty;
- var tunnelList = tunnelNum.Split(',').ToList();
- //根据物料缓存状态统计堆垛机入库任务数量
- var SrmCacheInfoSet = QuerySrmInConvCacheInfoList(tunnelList);
- foreach (var item in tunnelList)
- {
- var srmitem = SrmCacheInfoSet.FirstOrDefault(v => v.SrmTunnel == item);
- if (srmitem.ConvCacheIsAvailable)
- {
- //var plctemp = Current.PlcSet.FirstOrDefault(v => v.PLC_NAME == srmitem.SrmNo);
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.DB521_Auto_status != (int)SrmModeEnum.远程) continue;
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.SrmDB541_Alarm) continue;
- tunnelNo = srmitem.SrmTunnel;
- srmNo = srmitem.SrmNo;
- break;
- }
- }
- if (string.IsNullOrWhiteSpace(tunnelNo))
- {
- var SrmCacheInfoList = SrmCacheInfoSet.OrderBy(v => v.ConvCacheInTaskCount).ToList();
- foreach (var tunnelInfo in SrmCacheInfoList)
- {
- //var plctemp = Current.PlcSet.FirstOrDefault(v => v.PLC_NAME == srm);
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.DB521_Auto_status != (int)SrmModeEnum.远程) continue;
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.SrmDB541_Alarm) continue;
- tunnelNo = tunnelInfo.SrmTunnel;
- srmNo = tunnelInfo.SrmNo;
- break;
- }
- }
- if (string.IsNullOrWhiteSpace(tunnelNo))
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道失败,WMS返回的巷道[{1}]在WCS系统中未找到。", wmstaskno, tunnelNum));
- }
- return tunnelNo;
- }
- internal static string AssignSrm(string convNo, string tunnelNum)
- {
- string srmno = string.Empty;
- var routeSet = EquRouteHelper.QueryRoute(convNo, "srm");
- var srmList = tunnelNum.Split(',').ToList();
- //根据物料缓存状态统计堆垛机入库任务数量
- //var dicsrm = QueryDicList(srmList);
- var SrmCacheInfoSet = QuerySrmInConvCacheInfoList(srmList);
- foreach (var item in srmList)
- {
- //if (srm == "srm03" || srm == "srm01" || srm == "srm04")
- //{
- var srmitem = SrmCacheInfoSet.FirstOrDefault(v => v.SrmTunnel == item);
- if (srmitem.ConvCacheIsAvailable)
- {
- var plctemp = Current.PlcSet.FirstOrDefault(v => v.PLC_NAME == srmitem.SrmNo);
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.DB521_Auto_status != (int)SrmModeEnum.远程) continue;
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.SrmDB541_Alarm) continue;
- var touteTo = routeSet.FirstOrDefault(v => v.ROUTE_SONPOS == srmitem.SrmNo);
- if (touteTo == null) continue;
- srmno = srmitem.SrmNo;
- break;
- }
- //}
- }
- if (string.IsNullOrWhiteSpace(srmno))
- {
- var result = SrmCacheInfoSet.OrderBy(v => v.ConvCacheInTaskCount).Select(t => t.SrmNo).ToList();
- foreach (var srm in result)
- {
- //if (srm == "srm03" || srm == "srm01" || srm == "srm04")
- //{
- var plctemp = Current.PlcSet.FirstOrDefault(v => v.PLC_NAME == srm);
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.DB521_Auto_status != (int)SrmModeEnum.远程) continue;
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.SrmDB541_Alarm) continue;
- var touteTo = routeSet.FirstOrDefault(v => v.ROUTE_SONPOS == srm);
- if (touteTo == null) continue;
- srmno = srm;
- break;
- //}
- }
- }
- return srmno;
- }
- internal static List<SrmInConvCacheInfo> QuerySrmInConvCacheInfoList(List<string> tunnels)
- {
- var srmList = new List<SrmInConvCacheInfo>();
- foreach (var tunnel in tunnels)
- {
- var syssetitem = Current.SysSets.Where(v => v.SET_ID.Contains("Tunnel")).FirstOrDefault(v => v.SET_VALUE == tunnel);
- int taskcount = Current.TaskSet.Where(v => v.TASK_COMTYPE == 1 && (v.TASK_WKSTATUS == 2 || v.TASK_WKSTATUS == 5) && v.TASK_EndTunnelNum == tunnel).Count();
- if (syssetitem.SET_TYPE == "srm01")
- {
- srmList.Add(new SrmInConvCacheInfo { SrmTunnel = tunnel, SrmNo = syssetitem.SET_TYPE, ConvCacheCount = 100, ConvCacheInTaskCount = taskcount });
- }
- else
- {
- srmList.Add(new SrmInConvCacheInfo { SrmTunnel = tunnel, SrmNo = syssetitem.SET_TYPE, ConvCacheCount = 2, ConvCacheInTaskCount = taskcount });
- }
- }
- return srmList;
- }
- /// <summary>
- /// 分配堆垛机(分配巷道)
- /// </summary>
- /// <param name="routeSet">路由轨迹清单</param>
- /// <param name="converywrite">要写入plc的信息</param>
- /// <param name="task_no">任务号</param>
- public static void AssignSrm(List<WCS_EQUIPMENTROUTE> routeSet, WCSWriteToConveyorSignal converywrite, int wmstaskNum)
- {
- var param = new GetTunnelListParam();
- param.WMSTaskNum = wmstaskNum.ToString();
- //分配巷道
- var tunnelListReply = Current.WmsInterface.I_WCS_GetTunnelList(param);
- if (tunnelListReply == null)
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道失败,原因[接口返回对象不正确,解析失败]", wmstaskNum));
- }
- else if (tunnelListReply.ResType)
- {
- if (string.IsNullOrWhiteSpace(tunnelListReply.TunnelNum))
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道失败,原因[没有返回巷道列表]", wmstaskNum));
- }
- var srmList = tunnelListReply.TunnelNum.Split(',').ToList();
- //根据物料缓存状态统计堆垛机入库任务数量
- //var dicsrm = QueryDicList(srmList);
- var SrmCacheInfoSet = QuerySrmInConvCacheInfoList(srmList);
- foreach (var item in srmList)
- {
- //string srm = string.Empty;
- //if (item.Length == 2)
- //{
- // srm = string.Format("srm{0}", item);
- //}
- //else
- //{
- // srm = string.Format("srm0{0}", item);
- //}
- //if (srm == "srm03" || srm == "srm01" || srm == "srm04")
- //{
- var srmitem = SrmCacheInfoSet.FirstOrDefault(v => v.SrmTunnel == item);
- if (srmitem.ConvCacheIsAvailable)
- {
- var plctemp = Current.PlcSet.FirstOrDefault(v => v.PLC_NAME == srmitem.SrmNo);
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.DB521_Auto_status != (int)SrmModeEnum.远程) continue;
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.SrmDB541_Alarm) continue;
- var touteTo = routeSet.FirstOrDefault(v => v.ROUTE_SONPOS == srmitem.SrmNo);
- if (touteTo == null) continue;
- converywrite.Goodsend = Convert.ToInt32(touteTo.ROUTE_STARTPOS);
- converywrite.Srmno = srmitem.SrmNo;
- break;
- }
- //}
- }
- if (converywrite.Goodsend <= 0)
- {
- var result = SrmCacheInfoSet.OrderBy(v => v.ConvCacheInTaskCount).Select(t => t.SrmNo).ToList();
- foreach (var srm in result)
- {
- //if (srm == "srm03" || srm == "srm01" || srm == "srm04")
- //{
- var plctemp = Current.PlcSet.FirstOrDefault(v => v.PLC_NAME == srm);
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.DB521_Auto_status != (int)SrmModeEnum.远程) continue;
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.SrmDB541_Alarm) continue;
- var touteTo = routeSet.FirstOrDefault(v => v.ROUTE_SONPOS == srm);
- if (touteTo == null) continue;
- converywrite.Goodsend = Convert.ToInt32(touteTo.ROUTE_STARTPOS);
- converywrite.Srmno = srm;
- break;
- //}
- }
- }
- }
- if (converywrite.Goodsend <= 0)
- {
- if (tunnelListReply.ResType)
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道失败,原因[WMS接口返回成功,设备信号因素导致失败]", wmstaskNum));
- }
- else
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道失败,原因[{1}]", wmstaskNum, tunnelListReply.ResMessage));
- }
- }
- else
- {
- var result = TryCachHelper.TryExecute((db) =>
- {
- var task = db.Queryable<WCS_TASK>().First(v => v.TASK_NO == converywrite.Tasknum);
- db.Updateable<WCS_TASK>(it => new WCS_TASK()
- {
- TASK_POSIDTO = converywrite.Srmno,
- TASK_SRMNO = converywrite.Srmno,
- TASK_EDITUSERNO = "WCS",
- TASK_EDITDATETIME = DateTime.Now
- })
- .Where(it => it.TASK_NO == task.TASK_NO)
- .ExecuteCommand();
- });
- if (!string.IsNullOrWhiteSpace(result))
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道更新任务失败,原因[{1}]", wmstaskNum, result));
- }
- }
- }
- public static void AssignSrm(WCS_TASK task)
- {
- try
- {
- var param = new GetTunnelListParam();
- param.WMSTaskNum = task.TASK_WMSNO;
- if (task.TASK_POSIDCUR == "1023" || task.TASK_POSIDNEXT == "1023")
- {
- var plctemp = Current.PlcSet.FirstOrDefault(v => v.PLC_NAME == "srm01");
- var srm = plctemp.WCS_EquipmentInfoSet.FirstOrDefault().EquSignal_Srm;
- if (srm.DB521_ToRowPos == 1 || srm.DB521_ToRowPos == 2)
- {
- param.Memo1 = "1";
- }
- else
- {
- param.Memo1 = "2";
- }
- }
- //分配巷道
- var tunnelListReply = Current.WmsInterface.I_WCS_GetTunnelList(param);
- if (tunnelListReply == null)
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道失败,原因[接口返回对象不正确,解析失败]", task.TASK_WMSNO));
- }
- if (tunnelListReply.ResType)
- {
- if (string.IsNullOrWhiteSpace(tunnelListReply.TunnelNum))
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道失败,原因[没有返回巷道列表]", task.TASK_WMSNO));
- }
- }
- else
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道失败,原因[{1}]", task.TASK_WMSNO, tunnelListReply.ResMessage));
- }
- string tunnelNo = string.Empty;
- string tunnelSrmNo = string.Empty;
- var srmList = tunnelListReply.TunnelNum.Split(',').ToList();
- //根据物料缓存状态统计堆垛机入库任务数量
- var SrmCacheInfoSet = QuerySrmInConvCacheInfoList(srmList);
- foreach (var item in srmList)
- {
- var srmitem = SrmCacheInfoSet.FirstOrDefault(v => v.SrmTunnel == item);
- if (srmitem.ConvCacheIsAvailable)
- {
- //var plctemp = Current.PlcSet.FirstOrDefault(v => v.PLC_NAME == srmitem.SrmNo);
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.DB521_Auto_status != (int)SrmModeEnum.远程) continue;
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.SrmDB541_Alarm) continue;
- tunnelNo = srmitem.SrmTunnel;
- tunnelSrmNo = srmitem.SrmNo;
- break;
- }
- }
- if (string.IsNullOrWhiteSpace(tunnelSrmNo))
- {
- var SrmCacheInfoList = SrmCacheInfoSet.OrderBy(v => v.ConvCacheInTaskCount).ToList();
- foreach (var tunnelInfo in SrmCacheInfoList)
- {
- //var plctemp = Current.PlcSet.FirstOrDefault(v => v.PLC_NAME == srm);
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.DB521_Auto_status != (int)SrmModeEnum.远程) continue;
- //if (plctemp.WCS_StackerDataSet[0].SrmSignalItem.SrmDB541_Alarm) continue;
- tunnelNo = tunnelInfo.SrmTunnel;
- tunnelSrmNo = tunnelInfo.SrmNo;
- break;
- }
- }
- if (string.IsNullOrWhiteSpace(tunnelSrmNo))
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道失败,WMS返回的巷道[{1}]在WCS系统中未找到。", task.TASK_WMSNO, tunnelListReply.TunnelNum));
- }
- if (task.TASK_POSIDFROM == "1004")
- {
- tunnelNo = "1";
- }
- else if (task.TASK_POSIDFROM == "1013")
- {
- tunnelNo = "2";
- }
- var result = TryCachHelper.TryExecute((db) =>
- {
- db.Updateable<WCS_TASK>(it => new WCS_TASK()
- {
- TASK_EndTunnelNum = tunnelNo,
- TASK_POSIDTO = tunnelSrmNo,
- TASK_SRMNO = tunnelSrmNo,
- TASK_EDITUSERNO = "WCS",
- TASK_EDITDATETIME = DateTime.Now
- })
- .Where(it => it.TASK_NO == task.TASK_NO)
- .ExecuteCommand();
- });
- if (string.IsNullOrWhiteSpace(result))
- {
- task.TASK_POSIDTO = tunnelSrmNo;
- task.TASK_EndTunnelNum = tunnelNo;
- task.TASK_SRMNO = tunnelSrmNo;
- }
- else
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道更新任务失败,原因[{1}]", task.TASK_WMSNO, result));
- }
- }
- catch (Exception ex)
- {
- LogMessageHelper.RecordLogMessage(ex);
- }
- }
- /// <summary>
- /// 预分配巷道
- /// </summary>
- public static void PreparatoryAssignSrmTunnel(WCS_TASK task)
- {
- try
- {
- var param = new GetTunnelListParam();
- param.WMSTaskNum = task.TASK_WMSNO;
- //分配巷道
- var tunnelListReply = Current.WmsInterface.I_WCS_GetTunnelList(param);
- if (tunnelListReply == null)
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道失败,原因[接口返回对象不正确,解析失败]", task.TASK_WMSNO));
- }
- if (tunnelListReply.ResType)
- {
- if (string.IsNullOrWhiteSpace(tunnelListReply.TunnelNum))
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道失败,原因[没有返回巷道列表]", task.TASK_WMSNO));
- }
- }
- else
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道失败,原因[{1}]", task.TASK_WMSNO, tunnelListReply.ResMessage));
- }
- var result = TryCachHelper.TryExecute((db) =>
- {
- db.Updateable<WCS_TASK>(it => new WCS_TASK()
- {
- TASK_ITEM7 = tunnelListReply.TunnelNum,
- TASK_EDITUSERNO = "WCS",
- TASK_EDITDATETIME = DateTime.Now
- })
- .Where(it => it.TASK_NO == task.TASK_NO)
- .ExecuteCommand();
- });
- if (!string.IsNullOrWhiteSpace(result))
- {
- throw new Exception(string.Format("WMS任务[{0}]分配巷道更新任务失败,原因[{1}]", task.TASK_WMSNO, result));
- }
- else
- {
- task.TASK_ITEM7 = tunnelListReply.TunnelNum;
- }
- }
- catch (Exception ex)
- {
- LogMessageHelper.RecordLogMessage(ex);
- }
- }
- }
- public struct SrmInConvCacheInfo
- {
- /// <summary>
- /// 巷道
- /// </summary>
- public string SrmTunnel { get; set; }
- /// <summary>
- /// 堆垛机
- /// </summary>
- public string SrmNo { get; set; }
- /// <summary>
- /// 输送线缓存数量
- /// </summary>
- public int ConvCacheCount { get; set;}
- /// <summary>
- /// 缓存中的入库任务数量
- /// </summary>
- public int ConvCacheInTaskCount { get; set; }
- /// <summary>
- /// 输送线缓存区是否够用
- /// </summary>
- public bool ConvCacheIsAvailable
- {
- get
- {
- return ConvCacheCount > ConvCacheInTaskCount;
- }
- }
- }
- }
|