From ee94d6b5b5719159370c5e0055957d2dffb3f815 Mon Sep 17 00:00:00 2001
From: Zhang-Hong-Lin <a3219986988@163.com>
Date: 星期五, 07 三月 2025 09:49:49 +0800
Subject: [PATCH] 天车移动

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs |  220 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 160 insertions(+), 60 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs"
index 8326550..a680bba 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs"
@@ -96,84 +96,150 @@
                         var storagemode = _storagemodeRepository.QueryFirst(v => v.Id == 1);
                         if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_DK_isready)//RGV涓婃枡妯″紡锛屼笖涓滆法鏋跺瓙鏈変笂鏂欎俊鍙�
                         {
+                            
                             var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "涓滆法鏋跺瓙");
                             task.SourceAddress = station.Row + "-" + station.Column + "-1";
-                            task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
-
-                            task.Grade = 1;
-                            task.Remark = (int)MateTypeEnum.ZiChan;
+                            var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
+                            if (oldhtytask !=null) 
+                            {
+                                task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
+                                task.Grade = 1;
+                                task.Remark = (int)MateTypeEnum.ZiChan;
+                                //鏌ユ壘鐩搁偦鐨勫簱浣�
+                                Dt_LocationInfo Towlocation = new Dt_LocationInfo();
+                                var Onelocation = _LocationInfoRepository.QueryFirst(v => v.LocationCode == task.TargetAddress);
+                                if (Onelocation.Depth == 1)
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2);
+                                }
+                                else
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1);
+                                }
+                                task.NextAddress = Towlocation.LocationCode;
+                                task.Roadway = "TC01";
+                                task.TaskType = (int)TaskInboundTypeEnum.Inbound;
+                                task.TaskState = (int)TaskInStatusEnum.InNew;
+                                task.PalletCode = "text";
+                                task.CurrentAddress = "text";
+                                task.WMSId = 3;
+                                _dt_taskRepositiry.AddData(task);
+                            }
                         }
-                        else if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready)//RGV涓婃枡妯″紡锛屼笖瑗胯法鏋跺瓙鏈変笂鏂欎俊鍙�
+                        if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready)//RGV涓婃枡妯″紡锛屼笖瑗胯法鏋跺瓙鏈変笂鏂欎俊鍙�
                         {
                             var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "瑗胯法鏋跺瓙");
                             task.SourceAddress = station.Row + "-" + station.Column + "-1";
-                            task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
-                            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)
+                            var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
+                            if (oldhtytask!=null)
                             {
-                                task.Grade = 2;
+                                task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
+                                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)
+                                {
+                                    task.Grade = 2;
+                                }
+                                else
+                                {
+                                    task.Grade = 1;
+                                }
+                                task.Remark = (int)MateTypeEnum.ZiChan;
+                                //鏌ユ壘鐩搁偦鐨勫簱浣�
+                                Dt_LocationInfo Towlocation = new Dt_LocationInfo();
+                                var Onelocation = _LocationInfoRepository.QueryFirst(v => v.LocationCode == task.TargetAddress);
+                                if (Onelocation.Depth == 1)
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2);
+                                }
+                                else
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1);
+                                }
+                                task.NextAddress = Towlocation.LocationCode;
+                                task.Roadway = "TC01";
+                                task.TaskType = (int)TaskInboundTypeEnum.Inbound;
+                                task.TaskState = (int)TaskInStatusEnum.InNew;
+                                task.PalletCode = "text";
+                                task.CurrentAddress = "text";
+                                task.WMSId = 3;
+                                _dt_taskRepositiry.AddData(task);
                             }
-                            else
-                            {
-                                task.Grade = 1;
-                            }
-                            task.Remark = (int)MateTypeEnum.ZiChan;
                         }
-                        else if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_XK_isready)//浜哄伐鍙夎溅涓婃枡妯″紡锛屼笖瑗胯法鏋跺瓙鏈変笂鏂欎俊鍙�
+                        if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_XK_isready)//浜哄伐鍙夎溅涓婃枡妯″紡锛屼笖瑗胯法鏋跺瓙鏈変笂鏂欎俊鍙�
                         {
                             var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "瑗胯法鏋跺瓙");
                             task.SourceAddress = station.Row + "-" + station.Column + "-1";
-                            task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
-                            task.Grade = 1;
-                            task.Remark = (int)MateTypeEnum.WaiGou;
+                            var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
+                            if (oldhtytask!=null)
+                            {
+                                task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
+                                task.Grade = 1;
+                                task.Remark = (int)MateTypeEnum.WaiGou;
+                                //鏌ユ壘鐩搁偦鐨勫簱浣�
+                                Dt_LocationInfo Towlocation = new Dt_LocationInfo();
+                                var Onelocation = _LocationInfoRepository.QueryFirst(v => v.LocationCode == task.TargetAddress);
+                                if (Onelocation.Depth == 1)
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2);
+                                }
+                                else
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1);
+                                }
+                                task.NextAddress = Towlocation.LocationCode;
+                                task.Roadway = "TC01";
+                                task.TaskType = (int)TaskInboundTypeEnum.Inbound;
+                                task.TaskState = (int)TaskInStatusEnum.InNew;
+                                task.PalletCode = "text";
+                                task.CurrentAddress = "text";
+                                task.WMSId = 3;
+                                _dt_taskRepositiry.AddData(task);
+                            }
                         }
-                        else if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready)//浜哄伐鍙夎溅涓婃枡妯″紡锛屼笖涓滆法鏋跺瓙鏈変笂鏂欎俊鍙�
+                        if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready)//浜哄伐鍙夎溅涓婃枡妯″紡锛屼笖涓滆法鏋跺瓙鏈変笂鏂欎俊鍙�
                         {
                             var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "涓滆法鏋跺瓙");
                             task.SourceAddress = station.Row + "-" + station.Column + "-1";
-                            task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
-                            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)
+                            var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
+                            if (true)
                             {
-                                task.Grade = 2;
+                                task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
+                                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)
+                                {
+                                    task.Grade = 2;
+                                }
+                                else
+                                {
+                                    task.Grade = 1;
+                                }
+                                task.Remark = (int)MateTypeEnum.WaiGou;
+                                //鏌ユ壘鐩搁偦鐨勫簱浣�
+                                Dt_LocationInfo Towlocation = new Dt_LocationInfo();
+                                var Onelocation = _LocationInfoRepository.QueryFirst(v => v.LocationCode == task.TargetAddress);
+                                if (Onelocation.Depth == 1)
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2);
+                                }
+                                else
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1);
+                                }
+                                task.NextAddress = Towlocation.LocationCode;
+                                task.Roadway = "TC01";
+                                task.TaskType = (int)TaskInboundTypeEnum.Inbound;
+                                task.TaskState = (int)TaskInStatusEnum.InNew;
+                                task.PalletCode = "text";
+                                task.CurrentAddress = "text";
+                                task.WMSId = 3;
+                                _dt_taskRepositiry.AddData(task);
                             }
-                            else
-                            {
-                                task.Grade = 1;
-                            }
-                            task.Remark = (int)MateTypeEnum.WaiGou;
                         }
-                        else
-                        {
-                            throw new Exception($"瑙勬暣鏈哄綋鍓嶄俊鍙蜂笉婊¤冻鍏ュ簱浠诲姟鐢熸垚鏉′欢");
-                        }
-                        //鏌ユ壘鐩搁偦鐨勫簱浣�
-                        Dt_LocationInfo Towlocation = new Dt_LocationInfo();
-                        var Onelocation = _LocationInfoRepository.QueryFirst(v => v.LocationCode == task.TargetAddress);
-                        if (Onelocation.Depth == 1)
-                        {
-                            Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2);
-                        }
-                        else
-                        {
-                            Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1);
-                        }
-                        task.NextAddress = Towlocation.LocationCode;
-                        task.Roadway = "TC01";
-                        task.TaskType = (int)TaskInboundTypeEnum.Inbound;
-                        task.TaskState = (int)TaskInStatusEnum.InNew;
-                        task.PalletCode = "text";
-                        task.CurrentAddress = "text";
-                        task.WMSId = 3;
-                        var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
-                        if (oldhtytask == null)
-                        {
-                            _dt_taskRepositiry.AddData(task);
-                        }
+                        
                     }
                     else if(Inisout.InOut == 2)
                     {
@@ -220,7 +286,6 @@
                             _dt_taskRepositiry.AddData(outtask);
                         }
                     }
-                    
                     #endregion
                 }
                 catch (Exception ex)
@@ -307,6 +372,41 @@
                     _unitOfWorkManage.RollbackTran();
                     _ErrormsginfoService.UpdateErrorMsg(ex.Message, 3);
                 }
+
+                
+                try
+                {
+                    #region 鐢熸垚澶╄溅绉诲姩浠诲姟
+                    if (!OHTJob.oHTReadData.R_ZXJ_isWork || !OHTJob.oHTReadData.R_HC_isReady)
+                    {
+                        throw new Exception($"鏁村舰鏈烘姇鍏ヤ娇鐢ㄤ俊鍙蜂负false鎴栬�呰杞﹀彲鍑嗗鍙栨澘涓篺alse");
+                    }
+                    //鏌ヨ褰撳墠闇�瑕佸嚭搴撶殑鎵规鍙凤紝浠ュ強鍑哄簱鐗╂枡绫诲瀷
+                    var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1);
+                    //鏌ヨ搴撳瓨鐗╂枡搴撳瓨淇℃伅
+                    var stocks = _StockInfoRepository.QueryData(v => v.Remark == batch.materType && v.BatchNo == batch.OutBatch && v.StockStatus == 0)
+                        .OrderBy(v => v.CreateDate).ToList();
+                    
+                    //寮�濮嬪垱寤轰换鍔�
+                    Dt_Task outtask = new Dt_Task();
+                    outtask.Roadway = "TC01";
+                    outtask.TaskType = (int)TaskMoveEnum.Mowe;
+                    outtask.TaskState = (int)TaskMoveStatusEnum.OutNewMove;
+                    outtask.SourceAddress = "text";
+                    outtask.TargetAddress = stocks[0].LocationCode;
+                    outtask.NextAddress = "text";
+                    outtask.Grade = 1;
+                    outtask.WMSId = 3;
+                    outtask.Remark = batch.materType;
+                    outtask.PalletCode = "text";
+                    outtask.CurrentAddress = "text";
+                    _dt_taskRepositiry.AddData(outtask);
+                    #endregion
+                }
+                catch (Exception ex)
+                {
+                    _ErrormsginfoService.UpdateErrorMsg(ex.Message, 4);
+                }
             }
             return Task.CompletedTask;
         }

--
Gitblit v1.9.3