| | |
| | | using Microsoft.Extensions.Hosting; |
| | | using Microsoft.VisualBasic.FileIO; |
| | | using Newtonsoft.Json; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; |
| | | using Quartz; |
| | | using SixLabors.ImageSharp.PixelFormats; |
| | | using System; |
| | |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Common.LocationEnum; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Communicator; |
| | | using WIDESEAWCS_Core.BaseRepository; |
| | |
| | | using WIDESEAWCS_QuartzJob.StackerCrane.Enum; |
| | | using WIDESEAWCS_TaskInfoService; |
| | | using WIDESEAWCS_Tasks.OHT; |
| | | using static System.Collections.Specialized.BitVector32; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | |
| | | private readonly IRepository<dt_outstockinfo> _outStockRepository; |
| | | private readonly IRepository<dt_batchInfo> _batchInfoRepository; |
| | | private readonly IRepository<Dt_StockInfo> _StockInfoRepository; |
| | | private readonly IRepository<Dt_LocationInfo> _LocationInfoRepository; |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | |
| | | WebSocketServer _webSocketServer; |
| | | public GZJJob(ITaskService taskService, WebSocketServer webSocketServer, Idt_ErrormsginfoService errormsginfoService, |
| | |
| | | IRepository<dt_outstockinfo> outStockRepository, |
| | | IRepository<dt_storagemode> storagemodeRepository, |
| | | IRepository<dt_batchInfo> batchInfoRepository, |
| | | IRepository<Dt_StockInfo> StockInfoRepository) |
| | | IRepository<Dt_StockInfo> StockInfoRepository, |
| | | IRepository<Dt_LocationInfo> LocationInfoRepository, |
| | | IUnitOfWorkManage unitOfWorkManage) |
| | | { |
| | | _taskService = taskService;//注å
¥ |
| | | _webSocketServer = webSocketServer; |
| | |
| | | _outStockRepository = outStockRepository; |
| | | _batchInfoRepository = batchInfoRepository; |
| | | _StockInfoRepository = StockInfoRepository; |
| | | _LocationInfoRepository = LocationInfoRepository; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | |
| | | Console.WriteLine("1"); |
| | | //return Task.CompletedTask; |
| | | bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value); |
| | | if (flag && value != null) |
| | | { |
| | | OtherDevice device = (OtherDevice)value; |
| | | |
| | | try |
| | | { |
| | | #region çæåé¤è´§ä½å
¥åºä»»å¡ |
| | | //夿æ´å½¢æºä¿¡å· |
| | | //if (!OHTJob.oHTReadData.R_ZXJ_TC_isready && !OHTJob.oHTReadData.R_TCMode_TC) |
| | | //{ |
| | | // throw new Exception($"æ´å½¢æºæå
¥ä½¿ç¨ä¿¡å·ä¸ºfalse"); |
| | | //} |
| | | //Dt_Task task = new Dt_Task(); |
| | | //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) |
| | | //{ |
| | | // task.TargetAddress = _locationInfoService.GetInLocation(6).LocationCode; |
| | | // task.Grade = 1; |
| | | // task.Remark = (int)MateTypeEnum.ZiChan; |
| | | // task.NextAddress = "text"; |
| | | // task.Roadway = "TC01"; |
| | | // task.TaskType = (int)TaskInboundTypeEnum.Inbound; |
| | | // task.TaskState = (int)TaskInStatusEnum.InNew; |
| | | // task.PalletCode = "text"; |
| | | // task.CurrentAddress = "text"; |
| | | // task.WMSId = 2; |
| | | // _dt_taskRepositiry.AddData(task); |
| | | //} |
| | | |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _ErrormsginfoService.UpdateErrorMsg(ex.Message, 5); |
| | | } |
| | | |
| | | try |
| | | { |
| | | #region çæåé¤è´§ä½åºåºä»»å¡ |
| | | //if (!OHTJob.oHTReadData.R_TCMode && !OHTJob.oHTReadData.R_TC_isready) |
| | | //{ |
| | | // throw new Exception($"è§æ´æºå餿¶å坿¾æ¿æåé¤ä¸ææ¨¡å¼ä¿¡å·ä¸ºfalse"); |
| | | //} |
| | | ////æ¥è¯¢å½å任塿± 䏿¯å¦åå¨åºåºä»»å¡ï¼åºåºä»»å¡åªè½åå¨ä¸æ¡ |
| | | //var oldtask = _dt_taskRepositiry.QueryFirst(v => v.TaskType == (int)TaskOutboundTypeEnum.Outbound); |
| | | //if (oldtask != null) |
| | | //{ |
| | | // throw new Exception($"å½å任塿± ä¸å·²åå¨ä¸æ¡åºåºä»»å¡"); |
| | | //} |
| | | ////æ¥è¯¢å½åéè¦åºåºçæ¹æ¬¡å·ï¼ä»¥ååºåºç©æç±»å |
| | | //var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1); |
| | | ////æ¥è¯¢åºåç©æåºåä¿¡æ¯ |
| | | //var stocks = _StockInfoRepository.QueryData(v => v.Remark == 3 && v.BatchNo == batch.OutBatch && v.StockStatus == 0) |
| | | // .OrderBy(v => v.CreateDate).ToList(); |
| | | //if (stocks.Count <= 0) |
| | | //{ |
| | | // throw new Exception($"å½ååºå䏿²¡æã{batch.materType}ãï¼0èªäº§ 1å¤è´ï¼ä¸æ¹æ¬¡ä¸ºã{batch.OutBatch}ãçç©æ"); |
| | | //} |
| | | ////æ¥è¯¢è´§ä½ |
| | | //var locaOne = _LocationInfoRepository.QueryFirst(v => v.LocationCode == stocks[0].LocationCode); |
| | | //locaOne.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | //stocks[0].StockStatus = 1; |
| | | ////æ¥è¯¢ç»ç¹ç«å°ä¿¡æ¯ |
| | | //var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨æ¶å"); |
| | | ////å¼å§åå»ºä»»å¡ |
| | | //Dt_Task outtask = new Dt_Task(); |
| | | //outtask.Roadway = "TC01"; |
| | | //outtask.TaskType = (int)TaskOutboundTypeEnum.Outbound; |
| | | //outtask.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | //outtask.SourceAddress = stocks[0].LocationCode; |
| | | //outtask.TargetAddress = station.Row + "-" + station.Column + "-1"; |
| | | //outtask.NextAddress = "text"; |
| | | //outtask.Grade = 1; |
| | | //outtask.WMSId = 2; |
| | | //outtask.Remark = 3; |
| | | //outtask.PalletCode = "text"; |
| | | //outtask.CurrentAddress = "text"; |
| | | |
| | | //_unitOfWorkManage.BeginTran(); |
| | | //_LocationInfoRepository.UpdateData(locaOne); |
| | | //_dt_taskRepositiry.AddData(outtask); |
| | | //_StockInfoRepository.UpdateData(stocks[0]); |
| | | //_unitOfWorkManage.CommitTran(); |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | _ErrormsginfoService.UpdateErrorMsg(ex.Message, 6); |
| | | } |
| | | |
| | | try |
| | | { |
| | | #region çæå
¥åºä»»å¡ |
| | | if (!OHTJob.oHTReadData.R_GZJ_isWork) |
| | | { |
| | | throw new Exception($"è§æ´æºæå
¥ä½¿ç¨ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | 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ä¸ææ¨¡å¼ï¼ä¸ä¸è·¨æ¶åæä¸æä¿¡å· |
| | | { |
| | | 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; |
| | | } |
| | | else 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) |
| | | { |
| | | task.Grade = 2; |
| | | } |
| | | else |
| | | { |
| | | task.Grade = 1; |
| | | } |
| | | task.Remark = (int)MateTypeEnum.ZiChan; |
| | | } |
| | | else 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; |
| | | } |
| | | else 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) |
| | | { |
| | | task.Grade = 2; |
| | | } |
| | | else |
| | | { |
| | | task.Grade = 1; |
| | | } |
| | | task.Remark = (int)MateTypeEnum.WaiGou; |
| | | } |
| | | else |
| | | { |
| | | throw new Exception($"è§æ´æºå½åä¿¡å·ä¸æ»¡è¶³å
¥åºä»»å¡çææ¡ä»¶"); |
| | | } |
| | | task.Roadway = "TC01"; |
| | | task.TaskType = (int)TaskInboundTypeEnum.Inbound; |
| | | task.TaskState = (int)TaskInStatusEnum.InNew; |
| | | |
| | | _dt_taskRepositiry.AddData(task); |
| | | |
| | | //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_XK_isready)//RGVä¸ææ¨¡å¼ï¼ä¸ä¸è·¨æ¶åæä¸æä¿¡å· |
| | | { |
| | | |
| | | 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) |
| | | { |
| | | task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode; |
| | | if (OHTJob.oHTReadData.R_DK_isready) |
| | | { |
| | | 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); |
| | | } |
| | | } |
| | | 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"; |
| | | 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); |
| | | } |
| | | } |
| | | 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"; |
| | | var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress); |
| | | if (oldhtytask == null) |
| | | { |
| | | task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode; |
| | | if (OHTJob.oHTReadData.R_XK_isready) |
| | | { |
| | | 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); |
| | | } |
| | | } |
| | | 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"; |
| | | var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress); |
| | | if (oldhtytask == null) |
| | | { |
| | | 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.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(Inisout.InOut == 2) |
| | | { |
| | | if (!OHTJob.oHTReadData.R_ZXJ_TCMode) |
| | | { |
| | | throw new Exception($"æ´å½¢æºä¸å±äºå¤©è½¦ä¸ææ¨¡å¼æå¤©è½¦æ¾æ¿ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | if (!OHTJob.oHTReadData.R_HC_isReadyWork) |
| | | { |
| | | throw new Exception($"æ´å½¢æºå¤©è½¦æ¾æ¿ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | Dt_Task outtask = new Dt_Task(); |
| | | //å°è½¦ä¸æ |
| | | if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready ) |
| | | { |
| | | var Stastation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨æ¶å"); |
| | | outtask.SourceAddress = Stastation.Row + "-" + Stastation.Column + "-1"; |
| | | |
| | | } |
| | | else if (OHTJob.oHTReadData.R_RGVMode && 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_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) |
| | | { |
| | | 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"; |
| | | outtask.Roadway = "TC01"; |
| | | outtask.TaskType = (int)TaskOutboundTypeEnum.OutInventory; |
| | | outtask.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | outtask.WMSId = 3; |
| | | outtask.PalletCode = "text"; |
| | | outtask.CurrentAddress = "text"; |
| | | //鲿¢éå¤ä»»å¡ |
| | | var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == outtask.SourceAddress &&v.TargetAddress== outtask.TargetAddress); |
| | | if (oldtask == null) |
| | | { |
| | | //çæä»»å¡ |
| | | _dt_taskRepositiry.AddData(outtask); |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | |
| | | try |
| | | { |
| | | #region çæåºåºä»»å¡ |
| | | //if (!OHTJob.oHTReadData.R_ZXJ_isWork) |
| | | //{ |
| | | // throw new Exception($"æ´å½¢æºæå
¥ä½¿ç¨ä¿¡å·ä¸ºfalse"); |
| | | //} |
| | | var isout = _outStockRepository.QueryFirst(v => v.Id == 1); |
| | | if (isout.isout != 1) |
| | | if (isout.isout == 1) |
| | | { |
| | | throw new Exception($"å½åç³»ç»è®¾ç½®ä¸ºä¸åºåºæ¨¡å¼"); |
| | | if (!OHTJob.oHTReadData.R_ZXJ_TCMode) |
| | | { |
| | | throw new Exception($"æ´å½¢æºä¸å±äºå¤©è½¦ä¸ææ¨¡å¼æå¤©è½¦æ¾æ¿ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | if (!OHTJob.oHTReadData.R_HC_isReadyWork) |
| | | { |
| | | throw new Exception($"æ´å½¢æºå¤©è½¦æ¾æ¿ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | //æ¥è¯¢å½å任塿± 䏿¯å¦åå¨åºåºä»»å¡ï¼åºåºä»»å¡åªè½åå¨ä¸æ¡ |
| | | var oldtask = _dt_taskRepositiry.QueryFirst(v => v.TaskType == (int)TaskOutboundTypeEnum.Outbound); |
| | | if (oldtask != null) |
| | | { |
| | | throw new Exception($"å½å任塿± ä¸å·²åå¨ä¸æ¡åºåºä»»å¡"); |
| | | } |
| | | //æ¥è¯¢å½åéè¦åºåºçæ¹æ¬¡å·ï¼ä»¥ååºåºç©æç±»å |
| | | 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(); |
| | | if (stocks.Count <= 0) |
| | | { |
| | | throw new Exception($"å½ååºå䏿²¡æã{batch.materType}ãï¼0èªäº§ 1å¤è´ï¼ä¸æ¹æ¬¡ä¸ºã{batch.OutBatch}ãçç©æ"); |
| | | } |
| | | //æ¥è¯¢è´§ä½ |
| | | var locaOne = _LocationInfoRepository.QueryFirst(v => v.LocationCode == stocks[0].LocationCode); |
| | | //æ¥è¯¢ç¸é»çè´§ä½ |
| | | Dt_LocationInfo locaTow = new Dt_LocationInfo(); |
| | | if (locaOne.Depth == 1) |
| | | { |
| | | locaTow = _LocationInfoRepository.QueryFirst(v => v.Row == locaOne.Row && v.Column == locaOne.Column && v.Depth == 2); |
| | | } |
| | | else |
| | | { |
| | | locaTow = _LocationInfoRepository.QueryFirst(v => v.Row == locaOne.Row && v.Column == locaOne.Column && v.Depth == 1); |
| | | } |
| | | locaOne.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | locaTow.LocationStatus = (int)LocationStatusEnum.Lock; |
| | | //æ¥è¯¢ç¸é»çåºå |
| | | var BBstock = _StockInfoRepository.QueryFirst(v => v.LocationCode == locaTow.LocationCode); |
| | | BBstock.StockStatus = 1; |
| | | stocks[0].StockStatus = 1; |
| | | //æ¥è¯¢ç»ç¹ç«å°ä¿¡æ¯ |
| | | var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "æ´å½¢æºæ¾æä½"); |
| | | //å¼å§åå»ºä»»å¡ |
| | | Dt_Task outtask = new Dt_Task(); |
| | | outtask.Roadway = "TC01"; |
| | | outtask.TaskType = (int)TaskOutboundTypeEnum.Outbound; |
| | | outtask.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | outtask.SourceAddress = stocks[0].LocationCode; |
| | | outtask.TargetAddress = station.Row + "-" + station.Column + "-1"; |
| | | outtask.NextAddress = locaTow.LocationCode; |
| | | outtask.Grade = 1; |
| | | outtask.WMSId = 3; |
| | | outtask.Remark = batch.materType; |
| | | outtask.PalletCode = "text"; |
| | | outtask.CurrentAddress = "text"; |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | _LocationInfoRepository.UpdateData(locaOne); |
| | | _LocationInfoRepository.UpdateData(locaTow); |
| | | _StockInfoRepository.UpdateData(BBstock); |
| | | _dt_taskRepositiry.AddData(outtask); |
| | | _StockInfoRepository.UpdateData(stocks[0]); |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | if (!OHTJob.oHTReadData.R_ZXJ_isWork) |
| | | |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | _ErrormsginfoService.UpdateErrorMsg(ex.Message, 3); |
| | | } |
| | | |
| | | |
| | | try |
| | | { |
| | | #region çæå¤©è½¦ç§»å¨ä»»å¡ |
| | | if (!OHTJob.oHTReadData.R_ZXJ_isWork || !OHTJob.oHTReadData.R_HC_isReady) |
| | | { |
| | | throw new Exception($"æ´å½¢æºæå
¥ä½¿ç¨ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | if (!OHTJob.oHTReadData.R_ZXJ_TCMode || OHTJob.oHTReadData.R_HC_isReadyWork) |
| | | { |
| | | throw new Exception($"æ´å½¢æºä¸å±äºå¤©è½¦ä¸ææ¨¡å¼æå¤©è½¦æ¾æ¿ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | //æ¥è¯¢å½å任塿± 䏿¯å¦åå¨åºåºä»»å¡ï¼åºåºä»»å¡åªè½åå¨ä¸æ¡ |
| | | var oldtask = _dt_taskRepositiry.QueryFirst(v => v.TaskType == (int)TaskOutboundTypeEnum.Outbound); |
| | | if (oldtask != null) |
| | | { |
| | | throw new Exception($"å½å任塿± ä¸å·²åå¨ä¸æ¡åºåºä»»å¡"); |
| | | throw new Exception($"æ´å½¢æºæå
¥ä½¿ç¨ä¿¡å·ä¸ºfalseæè
è¡è½¦å¯åå¤åæ¿ä¸ºfalse"); |
| | | } |
| | | //æ¥è¯¢å½åéè¦åºåºçæ¹æ¬¡å·ï¼ä»¥ååºåºç©æç±»å |
| | | var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1); |
| | | //æ¥è¯¢åºåç©æåºåä¿¡æ¯ |
| | | var stocks = _StockInfoRepository.QueryData(v => v.Remark == batch.materType && v.BatchNo == batch.OutBatch).OrderBy(v => v.CreateDate).ToList(); |
| | | if (stocks.Count <= 0) |
| | | { |
| | | throw new Exception($"å½ååºå䏿²¡æã{batch.materType}ãï¼0èªäº§ 1å¤è´ï¼ä¸æ¹æ¬¡ä¸ºã{batch.OutBatch}ãçç©æ"); |
| | | } |
| | | //æ¥è¯¢ç»ç¹ç«å°ä¿¡æ¯ |
| | | var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "æ´å½¢æºæ¾æä½"); |
| | | 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)TaskOutboundTypeEnum.Outbound; |
| | | outtask.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | outtask.SourceAddress = stocks[0].LocationCode; |
| | | outtask.TargetAddress = station.Row + "-" + station.Column + "-1"; ; |
| | | 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, 3); |
| | | _ErrormsginfoService.UpdateErrorMsg(ex.Message, 4); |
| | | } |
| | | } |
| | | return Task.CompletedTask; |