| | |
| | | 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; |
| | |
| | | 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) |
| | |
| | | try |
| | | { |
| | | #region çæåºåºä»»å¡ |
| | | if (!OHTJob.oHTReadData.R_ZXJ_isWork) |
| | | { |
| | | throw new Exception($"æ´å½¢æºæå
¥ä½¿ç¨ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | var isout = _outStockRepository.QueryFirst(v => v.Id == 1); |
| | | if (isout.isout != 1) |
| | | { |
| | | throw new Exception($"å½åç³»ç»è®¾ç½®ä¸ºä¸åºåºæ¨¡å¼"); |
| | | } |
| | | if (!OHTJob.oHTReadData.R_ZXJ_isWork) |
| | | { |
| | | throw new Exception($"æ´å½¢æºæå
¥ä½¿ç¨ä¿¡å·ä¸ºfalse"); |
| | | } |
| | | if (!OHTJob.oHTReadData.R_ZXJ_TCMode || OHTJob.oHTReadData.R_HC_isReadyWork) |
| | | if (!OHTJob.oHTReadData.R_ZXJ_TCMode || !OHTJob.oHTReadData.R_HC_isReadyWork) |
| | | { |
| | | throw new Exception($"æ´å½¢æºä¸å±äºå¤©è½¦ä¸ææ¨¡å¼æå¤©è½¦æ¾æ¿ä¿¡å·ä¸º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(); |
| | | 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 == "æ´å½¢æºæ¾æä½"); |
| | | //å¼å§åå»ºä»»å¡ |
| | |
| | | outtask.TaskType = (int)TaskOutboundTypeEnum.Outbound; |
| | | outtask.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | outtask.SourceAddress = stocks[0].LocationCode; |
| | | outtask.TargetAddress = station.Row + "-" + station.Column + "-1"; ; |
| | | 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(); |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | _ErrormsginfoService.UpdateErrorMsg(ex.Message, 3); |
| | | } |
| | | } |