杨前锦
22 小时以前 06a8b6963d6d4f229d4e196b4b09ce57e2cbf2dd
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 {
@@ -418,7 +435,7 @@
                                                N_PRIORITY = wmsTask.N_PRIORITY,
                                                T_START_TIME = DateTime.Now,
                                            };
                                            if (wmsTask.S_TYPE.Equals("半成品/成品出库") || wmsTask.S_TYPE.Equals("叫托盘出库"))
                                            if (wmsTask.S_TYPE.Equals("半成品/成品出库") || wmsTask.S_TYPE.Equals("叫托盘出库") || (wmsTask.S_OP_DEF_CODE != null && wmsTask.S_OP_DEF_CODE != ""))
                                            {
                                                twoWcsTask.S_SCHEDULE_TYPE = "LD-AUTO";
                                            }
@@ -427,23 +444,28 @@
                                                LocationHelper.LockLoc(twoWcsTask.S_START_LOC, 2);
                                                LocationHelper.LockLoc(twoWcsTask.S_END_LOC, 1);
                                                var notificationResult = ShopFloorControl.notificationCreateTransportOrder(new TransferTiledData() { logisticsTaskId = wmsTask.S_OP_DEF_CODE });
                                                if (notificationResult)
                                                if (twoWcsTask.S_SCHEDULE_TYPE == "LD-AUTO")
                                                {
                                                    WCSHelper.UpdateStatus(twoWcsTask,"已推送");
                                                    LogHelper.Info("灵动AGV出库任务已下发,并通知车间下发灵动AGV任务,任务信息:" + JsonConvert.SerializeObject(twoWcsTask), "输送线");
                                                }
                                                else
                                                {
                                                    NotificationInfo notificationInfo = new NotificationInfo() {
                                                        logisticsTaskId = wmsTask.S_OP_DEF_CODE,
                                                        locCode = originLocation.S_CODE
                                                    };
                                                    LogHelper.Info("物流任务信息:" + JsonConvert.SerializeObject(notificationInfo), "输送线");
                                                    if (notificationInfo.logisticsTaskId != null && notificationInfo.locCode != null) {
                                                        logisticsTaskIdDict.Add(notificationInfo, 0);
                                                    var notificationResult = ShopFloorControl.notificationCreateTransportOrder(new TransferTiledData() { logisticsTaskId = wmsTask.S_OP_DEF_CODE });
                                                    if (notificationResult)
                                                    {
                                                        WCSHelper.UpdateStatus(twoWcsTask, "已推送");
                                                        LogHelper.Info("灵动AGV出库任务已下发,并通知车间下发灵动AGV任务,任务信息:" + JsonConvert.SerializeObject(twoWcsTask), "输送线");
                                                    }
                                                    LogHelper.Info("通知车间下发灵动AGV任务失败,任务信息:" + JsonConvert.SerializeObject(twoWcsTask), "输送线");
                                                    else
                                                    {
                                                        NotificationInfo notificationInfo = new NotificationInfo()
                                                        {
                                                            logisticsTaskId = wmsTask.S_OP_DEF_CODE,
                                                            locCode = originLocation.S_CODE
                                                        };
                                                        LogHelper.Info("物流任务信息:" + JsonConvert.SerializeObject(notificationInfo), "输送线");
                                                        if (notificationInfo.logisticsTaskId != null && notificationInfo.locCode != null)
                                                        {
                                                            logisticsTaskIdDict.Add(notificationInfo, 0);
                                                        }
                                                        LogHelper.Info("通知车间下发灵动AGV任务失败,任务信息:" + JsonConvert.SerializeObject(twoWcsTask), "输送线");
                                                    }
                                                }
                                            }
                                        }