czw
7 天以前 92a558e9ebfdf05d2536aa6b3fa93b1bd7f08e30
HH.WCS.QingXiNongfu/process/DeviceProcess.cs
@@ -98,7 +98,22 @@
                        //翻斗机 -  瓶坯
                        else if (plc.deviceType == 5)
                        {
                            var info = data.Length > 2 ? data.Substring(0, 2) : "12";
                            info += data.Length > 5 ? data.Substring(4, 2) : "01";
                            if (doorStatus.ContainsKey(plc.location[0]))
                            {
                                doorStatus[plc.location[0]].info = info;
                                doorStatus[plc.location[0]].modify = DateTime.Now;
                            }
                            else
                            {
                                doorStatus.Add(plc.location[0], new signalInfo
                                {
                                    info = info,
                                    modify = DateTime.Now
                                });
                            }
                            data = data.Substring(0, 2);
                            PpFdjData(data, plc);
                            // AnalysisBottleCapTipper(data, plc);
                        }
@@ -334,7 +349,7 @@
                            }
                            else
                            {
                                if (DateTime.Now.Subtract(_clrel0.T_CREATE).TotalSeconds < 3 || !string.IsNullOrEmpty(_clrel0.S_TYPE))
                                if (!string.IsNullOrEmpty(_clrel0.S_TYPE))
                                    goto ballll;
                            }
                        }
@@ -2312,7 +2327,7 @@
                        }
                        //获取指定库区 指定排 满的货位 然后排除 比最大列还小的空货位
                        var Mhw = locationInLock.FindAll(e => e.N_CURRENT_NUM > 0).ToList();
                        var Mhw = locationInLock.FindAll(e => e.N_CURRENT_NUM > 0 && e.S_LOCK_STATE == "无").ToList();
                        if (Mhw.Count() > 0)
                        {
                            var RowLis = Mhw.GroupBy(e => e.N_ROW).Select(f => f.First()).ToList();
@@ -4219,6 +4234,13 @@
                    }
                    if (hojs.N_CURRENT_NUM == 0)//上托盘 否则下托盘
                    {
                        List<string> TaskState = new List<string>() { "完成", "取消" };
                        var TaskListNum = LocationHelper.GetList<WMSTask>(x => x.S_START_LOC == location && !TaskState.Contains(x.S_B_STATE));
                        if (TaskListNum.Count() > 0)
                        {
                            throw new Exception("只能生成一个任务 进出");
                        }
                        //上托盘 满托
                        var jcjykk = bcpList.FindAll(e => e.S_CNTR_TYPE == "满托").OrderByDescending(g => g.N_PRI).ToList();
                        var AreaList = jcjykk.Select(e => e.S_AREA_CODE).Distinct().ToList();
@@ -4277,11 +4299,17 @@
                    {
                        var time = LocationHelper.GetT_FULL_TIME(location);
                        LogHelper.Info(location + ":托盘放置时间:(" + time + ") 货位托盘数量(" + hojs.N_CURRENT_NUM + ")");
                        if (DateTime.Now.Subtract(time ?? DateTime.Now).TotalMinutes < 1)
                        if (DateTime.Now.Subtract(time ?? DateTime.Now).TotalSeconds < 10)
                        {
                            PlcHelper.SendHex(plc.address, "3F00110D0A");
                            return false;
                        }
                        List<string> TaskState = new List<string>() { "完成", "取消", "推送异常" };
                        var TaskListNum = LocationHelper.GetList<WMSTask>(x => x.S_END_LOC == location && !TaskState.Contains(x.S_B_STATE));
                        if (TaskListNum.Count() > 0)
                        {
                            throw new Exception("只能生成一个任务 进出");
                        }
                        LocCntrRel _clrel = LocationHelper.GetLocCntrRel(hojs.S_LOC_CODE).FirstOrDefault();
                        //下托盘 空框
                        var jcjykk = bcpList.FindAll(e => e.S_CNTR_TYPE == "空托").OrderByDescending(g => g.N_PRI).ToList();