杨前锦
2025-07-07 c8f338feee0b6003d8f069b1d37fd9b90dd1b7f4
HH.WCS.Mobox3/HH.WCS.Mobox3.HD/core/Monitor.cs
@@ -224,18 +224,28 @@
                        if (locCntrRel != null)
                        {
                            LogHelper.Info("1111111", "输送线");
                            if (lineSignalInfo.faultMessage == 1)
                            {
                                // 回报车间控制器
                                LogHelper.Info("输送线,线体【" + line.code + "】调整为手动状态", "输送线");
                                continue;
                            }
                            WMSTask wmsTask = WMSHelper.GetWmsTaskByCntr(locCntrRel.S_CNTR_CODE);
                            if (wmsTask == null)
                            {
                                LogHelper.Info("没有正在执行的任务,货位:" + locCntrRel.S_LOC_CODE + " 容器:" + locCntrRel.S_CNTR_CODE, "输送线");
                                continue;
                            }
                            if (lineSignalInfo.faultMessage != 0)
                            {
                                // 回报车间控制器
                                WMSStatusInfo statusInfo = new WMSStatusInfo()
                                {
                                    wmsId = wmsTask.S_CODE,
                                    errMsg = $"{line.code}输送线故障,故障编码:{lineSignalInfo.faultMessage}"
                                };
                                ShopFloorControl.wmsUpdateStatus(statusInfo);
                                if (lineSignalInfo.faultMessage == 1)
                                {
                                    LogHelper.Info("输送线,线体【" + line.code + "】调整为手动状态", "输送线");
                                    continue;
                                }
                            }
                            var date = DateTime.Now.ToString("yyMMdd");
@@ -337,33 +347,40 @@
                                        }
                                        LogHelper.Info("堆垛机入库任务终点", "输送线");
                                        Location endLoc = WMSHelper.GetEndLocation(wmsTask.S_END_AREA, itemCode, originLocation.N_ROADWAY, originLocation.N_ROW);
                                        LogHelper.Info($"堆垛机入库任务终点:{endLoc.S_CODE}", "输送线");
                                        wmsTask.S_END_LOC = endLoc.S_CODE;
                                        WMSHelper.UpdateTask(wmsTask);
                                        string eqNo = ApiHelper.getEqNo(endLoc.S_AREA_CODE, endLoc.N_ROADWAY);
                                        if (endLoc != null)
                                        {
                                            LogHelper.Info($"堆垛机入库任务终点:{endLoc.S_CODE}", "输送线");
                                            wmsTask.S_END_LOC = endLoc.S_CODE;
                                            WMSHelper.UpdateTask(wmsTask);
                                            string eqNo = ApiHelper.getEqNo(endLoc.S_AREA_CODE, endLoc.N_ROADWAY);
                                        List<string> areaCdoes = Settings.getStoreAreaCodes(2, 1);
                                        WCSTask twoWcsTask = new WCSTask
                                            List<string> areaCdoes = Settings.getStoreAreaCodes(2, 1);
                                            WCSTask twoWcsTask = new WCSTask
                                            {
                                                S_OP_NAME = wmsTask.S_OP_DEF_NAME,
                                                S_OP_CODE = wmsTask.S_CODE,
                                                S_CODE = WCSHelper.GenerateTaskNo(),
                                                S_CNTR_CODE = wmsTask.S_CNTR_CODE,
                                                S_TYPE = wmsTask.S_TYPE + "-2",
                                                S_START_LOC = originLocation.S_CODE,
                                                S_START_AREA = originLocation.S_AREA_CODE,
                                                S_END_LOC = wmsTask.S_END_LOC,
                                                S_END_AREA = wmsTask.S_END_AREA,
                                                S_EQ_NO = eqNo,
                                                S_SCHEDULE_TYPE = "RB",
                                                T_START_TIME = DateTime.Now,
                                            };
                                            if (WCSHelper.CreateTask(twoWcsTask))
                                            {
                                                // 接驳位加出库锁,终点货位加入库锁
                                                LocationHelper.LockLoc(twoWcsTask.S_START_LOC, 2);
                                                LocationHelper.LockLoc(twoWcsTask.S_END_LOC, 1);
                                                LogHelper.Info("堆垛机入库任务已下发,任务信息:" + JsonConvert.SerializeObject(twoWcsTask), "输送线");
                                            }
                                        }
                                        else
                                        {
                                            S_OP_NAME = wmsTask.S_OP_DEF_NAME,
                                            S_OP_CODE = wmsTask.S_CODE,
                                            S_CODE = WCSHelper.GenerateTaskNo(),
                                            S_CNTR_CODE = wmsTask.S_CNTR_CODE,
                                            S_TYPE = wmsTask.S_TYPE + "-2",
                                            S_START_LOC = originLocation.S_CODE,
                                            S_START_AREA = originLocation.S_AREA_CODE,
                                            S_END_LOC = wmsTask.S_END_LOC,
                                            S_END_AREA = wmsTask.S_END_AREA,
                                            S_EQ_NO = eqNo,
                                            S_SCHEDULE_TYPE = "RB",
                                            T_START_TIME = DateTime.Now,
                                        };
                                        if (WCSHelper.CreateTask(twoWcsTask))
                                        {
                                            // 接驳位加出库锁,终点货位加入库锁
                                            LocationHelper.LockLoc(twoWcsTask.S_START_LOC, 2);
                                            LocationHelper.LockLoc(twoWcsTask.S_END_LOC, 1);
                                            LogHelper.Info("堆垛机入库任务已下发,任务信息:" + JsonConvert.SerializeObject(twoWcsTask), "输送线");
                                            LogHelper.Info($"堆垛机入库任务终点:null", "输送线");
                                        }
                                    }
                                    else {