cjs
cjs
2025-05-20 067c69928ce6d3d3ed5710fd9652af7b3380dcd5
HH.WCS.Mobox3.NongFuLinZhi/process/DeviceProcess.cs
@@ -150,7 +150,7 @@
                                        if (startLoca == null)
                                        {
                                            LogHelper.Info($"瓶坯即产即用A库区未找到满托,去瓶坯即产即用B库区查找");
                                            startLoca = TaskProcess.BCPInOrOut(db, false, "", "瓶坯即产即用B", workInfo);
                                            startLoca = TaskProcess.BCPInOrOut(db, true, "瓶坯即产即用B", workInfo.S_ItemCode);
                                        }
                                    }
                                    else
@@ -248,10 +248,7 @@
                            }
                            if (flag)
                            {
                                //判断当前翻斗机是否有送过满托 S_NOTE 字段默认空字符串,满托卸货完成之后会标记为满托,空托取货完成复位为空字符串
                                bool result = false;
                                Location startLoca = null;
                                Location endLoca = null;
                                var locCode = plc.TN_Location[0];
                                var plcLoca = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == locCode).ToList();
@@ -282,7 +279,7 @@
            else LogHelper.Info($"瓶盖翻斗机:{plc.deviceName} 未开启工单,不可触发满托下线", "瓶盖翻斗机");
        }
        private static Location getFDSXArea(SqlSugar.SqlSugarClient db, LinZhiBCPWorkOrder workInfo, string startArea)
        public static Location getFDSXArea(SqlSugar.SqlSugarClient db, LinZhiBCPWorkOrder workInfo, string startArea)
        {
            Location result = null;
            var locList = db.Queryable<Location>().Where(a => a.S_AREA_CODE == startArea && a.N_CURRENT_NUM > 0).Includes(a => a.LocCntrRel).ToList();
@@ -474,5 +471,69 @@
        internal static void Traffic(string forkliftNo, string lockNo, bool v) {
        }
        internal static void quliao(WCSTask mst)
        {
            LogHelper.Info($"安全交互开始 任务号={mst.S_CODE}", "安全交互");
            //NDCHelper.ChangeParam(mst.S_TASK_NO.Trim(), 1101, 18);
            if (LineState.Keys.Contains(mst.S_START_LOC.Trim()))
            {
                LogHelper.Info($"任务类型:{mst.S_TYPE}");
                if (mst.S_TYPE.Contains("翻斗机"))
                {
                    LogHelper.Info($"查询翻斗机允许取空信号 允许取空信号={LineState[mst.S_START_LOC.Trim()].status} 时间间隔={DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds}", "安全交互");
                    if (LineState[mst.S_START_LOC.Trim()].status == "112100" && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10)
                    {
                        NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                        TaskProcess.sendSing(mst, 1101);
                    }
                }
                else
                {
                    LogHelper.Info($"查询输送线允许取满信号 允许取满信号={LineState[mst.S_START_LOC.Trim()].status} 时间间隔={DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds}", "安全交互");
                    if (LineState[mst.S_START_LOC.Trim()].status == "1220" && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10)
                    {
                        NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18);
                        TaskProcess.sendSing(mst, 1101);
                    }
                }
            }
            else LogHelper.Info($"字典中未找到该key的数据,key:{mst.S_START_LOC}");
        }
        internal static void Xieliao(WCSTask mst)
        {
            try
            {
                LogHelper.Info($"安全交互开始 任务号={mst.S_CODE},任务终点:{mst.S_END_LOC}", "安全交互");
                if (LineState.Keys.Contains(mst.S_END_LOC.Trim()))
                {
                    LogHelper.Info($"查询到字典中包含终点的关键字,任务类型:{mst.S_TYPE}");
                    if (mst.S_TYPE.Contains("翻斗机"))
                    {
                        LogHelper.Info($"查询翻斗机允许上满信号 允许上满信号={LineState[mst.S_END_LOC.Trim()].status} 时间间隔={DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds}", "安全交互");
                        if (LineState[mst.S_END_LOC.Trim()].status == "112100" && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                        {
                            NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                            TaskProcess.sendSing(mst, 1103);
                        }
                    }
                    else
                    {
                        LogHelper.Info($"查询输送线允许补空信号 允许补空信号={LineState[mst.S_END_LOC.Trim()].status} 时间间隔={DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds}", "安全交互");
                        if (LineState[mst.S_END_LOC.Trim()].status == "1021" && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10)
                        {
                            NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18);
                            TaskProcess.sendSing(mst, 1103);
                        }
                    }
                }
                else LogHelper.Info($"字典中未包含终点的关键字,终点货位:{mst.S_END_LOC}");
            }
            catch (Exception ex)
            {
                LogHelper.Info("Xieliao err :" + ex.Message);
            }
        }
    }
}