111
cjs
4 天以前 99004292e20a9e1efa4e3b11b8c319bfd796912c
HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
@@ -635,7 +635,11 @@
            var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == plc.deviceName).First();
            if (workInfo != null && workInfo.S_WorkState == "执行中")
            {
                LogHelper.Info($"查询到执行中的工单,工单类型:{workInfo.S_PLineNo}");
                if (workInfo.S_ItemName == "小包装盖")
                {
                    return;
                }
                LogHelper.Info($"查询到执行中的工单,工单类型:{workInfo.S_PLineNo},物料编码:{workInfo.S_ItemCode},物料类型:{workInfo.S_ITEM_TYPE}");
                string startArea = "";
                string fullTaskType = "";
                string emptyTaskType = "";
@@ -718,7 +722,8 @@
                            if(itemInfo != null)
                            {
                                LogHelper.Info($"getFDSXArea:查询到物料编码:{itemInfo.S_ITEM_CODE}");
                                if (itemInfo.S_ITEM_CODE == workInfo.S_ItemCode)
                                LogHelper.Info($"getFDSXArea:查询到物料批次:{itemInfo.S_BATCH_NO}");
                                if (itemInfo.S_ITEM_CODE + itemInfo.S_BATCH_NO == workInfo.S_ItemCode + workInfo.S_ITEM_TYPE)
                                {
                                    result = a;
                                    break;
@@ -754,20 +759,6 @@
            LogHelper.Info($"{plc.deviceName}-{plc.address}-{data}", "瓶坯机");
            var db = new SqlHelper<object>().GetInstance();
            LogHelper.Info($"瓶坯机,查询任务终点:{plc.TN_Location[0]}");
            if (LineState.Keys.Contains(plc.TN_Location[0]))
            {
                LogHelper.Info("瓶坯机包含该任务终点");
                LineState[plc.TN_Location[0]].status = data;
                LineState[plc.TN_Location[0]].modify = DateTime.Now;
            }
            else
            {
                LogHelper.Info("瓶坯机未包含该任务终点");
                LineState.Add(plc.TN_Location[0], new statemodel { status = data, modify = DateTime.Now });
            }
            var workInfo = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_PLineNo == plc.deviceName).First();
            if (workInfo != null && workInfo.S_WorkState == "执行中")
            {
@@ -787,9 +778,9 @@
                //endArea = Settings.GetLinJiangBCPAreaList().Where(a => a.AreaName == "瓶坯满托" && a.Enable == "1").FirstOrDefault().AreaNo;
                if (data.Length == 8)
                {
                    if (data.Substring(0,2) == "12") LinZhialysisBottleCapAndPreformTwo(plc, db, workInfo, endArea, taskType, plc.TN_Location[0], "瓶坯机");
                    if (data.Substring(0, 2) == "12") LinZhialysisBottleCapAndPreformTwo(plc, db, workInfo, endArea, taskType, plc.TN_Location[0], "瓶坯机", data);
                    if (data.Substring(2,2) == "22") LinZhialysisBottleCapAndPreformTwo(plc, db, workInfo, endArea, taskType, plc.TN_Location[1], "瓶坯机");
                    if (data.Substring(2, 2) == "22") LinZhialysisBottleCapAndPreformTwo(plc, db, workInfo, endArea, taskType, plc.TN_Location[1], "瓶坯机", data);
                }
            }
            else LogHelper.Info($"瓶坯机:{plc.deviceName} 未开启工单,不可触发满托下线", "瓶坯机");
@@ -806,9 +797,22 @@
        /// <param name="taskType"></param>
        /// <param name="deviceBit"></param>
        /// <param name="type"></param>
        private static void LinZhialysisBottleCapAndPreformTwo(Settings.deviceInfo plc, SqlSugar.SqlSugarClient db, LinZhiBCPWorkOrder workInfo, string endArea, string taskType, string deviceBit, string type)
        private static void LinZhialysisBottleCapAndPreformTwo(Settings.deviceInfo plc, SqlSugar.SqlSugarClient db, LinZhiBCPWorkOrder workInfo, string endArea, string taskType, string deviceBit, string type,string data)
        {
            LogHelper.Info($"{type}注塑机任务处理开始");
            LogHelper.Info($"瓶坯机,查询任务终点:{deviceBit}");
            if (LineState.Keys.Contains(deviceBit))
            {
                LogHelper.Info("瓶坯机包含该任务终点");
                LineState[deviceBit].status = data;
                LineState[deviceBit].modify = DateTime.Now;
            }
            else
            {
                LogHelper.Info("瓶坯机未包含该任务终点");
                LineState.Add(deviceBit, new statemodel { status = data, modify = DateTime.Now });
            }
            //再次判断信号
            if (LocationHelper.CheckLocFree(deviceBit))
            {
@@ -862,12 +866,12 @@
                            {
                                LogHelper.Info($"{type}注塑机上未绑定托盘,自动绑定托盘");
                                TaskProcess.BindLocCntr(deviceBit, cntrCode, workInfo.S_ItemCode, "");
                                TaskProcess.BindLocCntr(deviceBit, cntrCode, workInfo.S_ItemCode, "","","",workInfo.S_ItemName);
                            }
                            else
                            {
                                cntrCode = cntrInfo.S_CNTR_CODE;
                                TaskProcess.BindCntrItem(cntrCode, workInfo.S_ItemCode, "", "");
                                TaskProcess.BindCntrItem(cntrCode, workInfo.S_ItemCode, "", "",workInfo.S_ItemName);
                            }
                            //创建作业
                            WMSHelper.CreateOpTask(deviceBit, "", "入库", taskType, cntrCode,"","",workInfo.S_WorkNo);