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