qinchulong
2025-03-07 557f8dcdcb3178260bf04921fb361db401235568
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs
@@ -85,22 +85,23 @@
                try
                {
                    #region ç”Ÿæˆå…¥åº“任务
                    if (!OHTJob.oHTReadData.R_GZJ_isWork)
                    {
                        throw new Exception($"规整机投入使用信号为false");
                    }
                    //if (!OHTJob.oHTReadData.R_GZJ_isWork)
                    //{
                    //    throw new Exception($"规整机投入使用信号为false");
                    //}
                    var Inisout = _outStockRepository.QueryFirst(v => v.Id == 1);
                    //入库
                    if (Inisout.InOut==1)
                    {
                        Dt_Task task = new Dt_Task();
                        var storagemode = _storagemodeRepository.QueryFirst(v => v.Id == 1);
                        if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_DK_isready)//RGV上料模式,且东跨架子有上料信号
                        if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready)//RGV上料模式,且东跨架子有上料信号
                        {
                            
                            var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "东跨架子");
                            var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                            task.SourceAddress = station.Row + "-" + station.Column + "-1";
                            var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
                            if (oldhtytask !=null)
                            if (oldhtytask ==null)
                            {
                                task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
                                task.Grade = 1;
@@ -126,15 +127,15 @@
                                _dt_taskRepositiry.AddData(task);
                            }
                        }
                        if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready)//RGV上料模式,且西跨架子有上料信号
                        if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_DK_isready)//RGV上料模式,且西跨架子有上料信号
                        {
                            var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                            var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "东跨架子");
                            task.SourceAddress = station.Row + "-" + station.Column + "-1";
                            var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
                            if (oldhtytask!=null)
                            if (oldhtytask==null)
                            {
                                task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
                                var DKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "东跨架子");
                                var DKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                                string address = DKstation.Row + "-" + DKstation.Column + "-1";
                                var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == address);
                                if (oldtask != null && oldtask.TaskState == (int)TaskInStatusEnum.InNew)
@@ -167,12 +168,12 @@
                                _dt_taskRepositiry.AddData(task);
                            }
                        }
                        if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_XK_isready)//人工叉车上料模式,且西跨架子有上料信号
                        if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready)//人工叉车上料模式,且西跨架子有上料信号
                        {
                            var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                            var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "东跨架子");
                            task.SourceAddress = station.Row + "-" + station.Column + "-1";
                            var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
                            if (oldhtytask!=null)
                            if (oldhtytask==null)
                            {
                                task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
                                task.Grade = 1;
@@ -198,15 +199,15 @@
                                _dt_taskRepositiry.AddData(task);
                            }
                        }
                        if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready)//人工叉车上料模式,且东跨架子有上料信号
                        if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_XK_isready)//人工叉车上料模式,且东跨架子有上料信号
                        {
                            var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "东跨架子");
                            var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                            task.SourceAddress = station.Row + "-" + station.Column + "-1";
                            var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
                            if (true)
                            if (oldhtytask == null)
                            {
                                task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
                                var XKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                                var XKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "东跨架子");
                                string address = XKstation.Row + "-" + XKstation.Column + "-1";
                                var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == address);
                                if (oldtask != null && oldtask.TaskState == (int)TaskInStatusEnum.InNew)
@@ -241,6 +242,7 @@
                        }
                        
                    }
                    //直接出库
                    else if(Inisout.InOut == 2)
                    {
                        if (!OHTJob.oHTReadData.R_ZXJ_TCMode || !OHTJob.oHTReadData.R_HC_isReadyWork)
@@ -248,15 +250,22 @@
                            throw new Exception($"整形机不属于天车上料模式或天车放板信号为false");
                        }
                        Dt_Task outtask = new Dt_Task();
                        if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_DK_isready )
                        //小车上料
                        if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready )
                        {
                            var Stastation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "东跨架子");
                            var Stastation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                            outtask.SourceAddress = Stastation.Row + "-" + Stastation.Column + "-1";
                        }
                        else if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready)
                        else if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_DK_isready)
                        {
                            var Stastation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                            var Stastation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "东跨架子");
                            outtask.SourceAddress = Stastation.Row + "-" + Stastation.Column + "-1";
                        }
                        //人工上料
                        else if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready)
                        {
                            var Stastation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "东跨架子");
                            outtask.SourceAddress = Stastation.Row + "-" + Stastation.Column + "-1";
                        }
                        else if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_XK_isready)
@@ -264,13 +273,9 @@
                            var Stastation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                            outtask.SourceAddress = Stastation.Row + "-" + Stastation.Column + "-1";
                        }
                        else if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready)
                        {
                            var Stastation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "东跨架子");
                            outtask.SourceAddress = Stastation.Row + "-" + Stastation.Column + "-1";
                        }
                        
                        var Endstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "整形机放料位");
                        //添加任务信息
                        outtask.TargetAddress = Endstation.Row + "-" + Endstation.Column + "-1";
                        outtask.Grade = 1;
                        outtask.NextAddress = Endstation.Row + "-" + Endstation.Column + "-1";
@@ -280,9 +285,11 @@
                        outtask.WMSId = 3;
                        outtask.PalletCode = "text";
                        outtask.CurrentAddress = "text";
                        var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == outtask.SourceAddress &&v.TargetAddress== outtask.SourceAddress);
                        //防止重复任务
                        var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == outtask.SourceAddress &&v.TargetAddress== outtask.TargetAddress);
                        if (oldtask == null) 
                        {
                            //生成任务
                            _dt_taskRepositiry.AddData(outtask);
                        }
                    }