| | |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using System.Reflection.Metadata; |
| | | |
| | | namespace WIDESEAWCS_TaskInfoService |
| | | { |
| | |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_HKLocationInfo? hKLocationInfo = null; |
| | | Dt_StationInfo? stationInfo = null; |
| | | Dt_StationManger? stationInfo = null; |
| | | Dt_Task dt_Task = null; |
| | | //å
¥åº å°ä¸æ¥¼ä¸ä¸ªç«å°çä½ç½® |
| | | if (taskType == (int)TaskTypeEnum.Q3RK) |
| | | if (taskType == (int)TaskTypeEnum.Q3RK)//6-1楼 |
| | | { |
| | | //读åå
çµä¿¡å· |
| | | var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "F1") as OtherDevice; |
| | | if (device == null) throw new Exception("æªæ¾å°1楼质æ£é¨è®¾å¤ä¿¡æ¯"); |
| | | if (!device.IsConnected) throw new Exception("PLC1楼质æ£é¨è®¾å¤è¿æ¥å¤±è´¥"); |
| | | bool value = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_StockAvailableSymbol, taskDTO.toLocationCode); |
| | | if (value) |
| | | { |
| | | content.Error($"{taskDTO.toLocationCode}ç«å°æè´§ï¼æ æ³å
¥åº"); |
| | | } |
| | | var ionInfo = _stationMangerService.Repository.QueryFirst(x => x.StationCode == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°ç»ç¹ç«å°ã{taskDTO.toLocationCode}ãï¼"); |
| | | var StationInfo = _stationInfo.Repository.QueryFirst(x => x.StationCode == taskDTO.fromLocationCode ) ?? throw new Exception($"æªæ¾å°{taskDTO.fromLocationCode}èµ·ç¹è´§ä½"); |
| | | if (StationInfo.PalletCode != taskDTO.containerCode) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãç»å®æç®±å·ã{StationInfo.PalletCode}ãä¸ä»»å¡æç®±å·ã{taskDTO.containerCode}ãä¸å¹é
ï¼"); |
| | | if (StationInfo.StationStatus != (int)LocationStatusEnum.InStock) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãå½åç¶æä¸å¯ä»¥åºåº"); |
| | | if (StationInfo.FloorNumber != "FF") throw new Exception($"ã{taskDTO.fromLocationCode}ãçæ¥¼å±åä»»å¡ç±»å楼å±ä¸å¹é
"); |
| | | |
| | | dt_Task = new Dt_Task() |
| | | { |
| | | TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | | WMSTaskNum = taskDTO.taskCode, |
| | | Grade = taskDTO.taskPriority, |
| | | PalletCode = taskDTO.containerCode, |
| | | Roadway = hKLocationInfo.RoadwayNo, |
| | | Roadway = "1", |
| | | TaskState = (int)TaskStatusEnum.New, |
| | | TaskType = taskType, |
| | | SourceAddress = taskDTO.fromLocationCode, |
| | |
| | | TargetAddress = taskDTO.toLocationCode, |
| | | Creater = "WMS", |
| | | }; |
| | | |
| | | } |
| | | //åºåº |
| | | if (taskType == (int)TaskTypeEnum.Q3CK) |
| | | if (taskType == (int)TaskTypeEnum.Q3CK)//1-6楼 |
| | | { |
| | | stationInfo = _stationInfo.Repository.QueryFirst(x => x.StationName == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°èµ·ç¹åºä½ã{taskDTO.toLocationCode}ãï¼"); |
| | | if (stationInfo.StationName != LocationStatusEnum.InStock.ToString()) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.toLocationCode}ãå½ååºä½ç¶æä¸å¯åºåºï¼"); |
| | | if (stationInfo.PalletCode != taskDTO.containerCode) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.toLocationCode}ãç»å®æç®±å·ã{stationInfo.PalletCode}ãä¸ä»»å¡æç®±å·ã{taskDTO.containerCode}ãä¸å¹é
ï¼"); |
| | | dt_Task = new Dt_Task() |
| | | var StationInfo = _stationInfo.Repository.QueryFirst(x => x.StationCode == taskDTO.toLocationCode) ?? throw new Exception($"æª{taskDTO.toLocationCode}ç»ç¹è´§ä½"); |
| | | if (StationInfo.StationStatus != (int)LocationStatusEnum.Free) throw new Exception($"ç»ç¹åºä½ã{taskDTO.toLocationCode}ãå½åç¶æä¸å¯ä»¥æ¾è´§"); |
| | | if (StationInfo.FloorNumber != "FF") throw new Exception($"ç»ç¹åºä½ã{taskDTO.toLocationCode}ãçæ¥¼å±ä¸ä»»å¡ç±»å楼å±ä¸å¹é
"); |
| | | |
| | | var ionInfo = _stationMangerService.Repository.QueryFirst(x => x.StationCode == taskDTO.fromLocationCode) ?? throw new Exception($"æªæ¾å°èµ·ç¹ç«å°ã{taskDTO.fromLocationCode}ãï¼"); |
| | | if (ionInfo.Remark != taskDTO.containerCode) throw new Exception($"èµ·ç¹ç«å°ã{taskDTO.fromLocationCode}ãç»å®æç®±å·ã{ionInfo.Remark}ãä¸ä»»å¡æç®±å·ã{taskDTO.containerCode}ãä¸å¹é
ï¼"); |
| | | |
| | | dt_Task = new Dt_Task() |
| | | { |
| | | TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | | WMSTaskNum = taskDTO.taskCode, |
| | | //WMSId = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | | Grade = taskDTO.taskPriority, |
| | | PalletCode = taskDTO.containerCode, |
| | | Roadway = hKLocationInfo.RoadwayNo, |
| | | Roadway = "1", |
| | | TaskState = (int)TaskStatusEnum.New, |
| | | TaskType = taskType, |
| | | SourceAddress = taskDTO.fromLocationCode, |
| | |
| | | { |
| | | Db.Ado.BeginTran(); |
| | | BaseDal.AddData(dt_Task); |
| | | _hKLocationInfoService.Repository.UpdateData(hKLocationInfo); |
| | | _stationInfo.Repository.UpdateData(stationInfo); |
| | | Db.Ado.CommitTran(); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | public WebResponseContent CJCarryTaske(TaskDTO taskDTO, int taskType) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | Dt_StationInfo? stationInfo = null; |
| | | try |
| | | { |
| | | #region æ¯å¦éè¦å¤æå¹³åºåºä½ç¶æ |
| | | if (taskType == (int)TaskTypeEnum.CK3F|| taskType == (int)TaskTypeEnum.F03) |
| | | { |
| | | stationInfo = _stationInfo.Repository.QueryFirst(x => x.StationName == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°ç»ç¹åºä½ã{taskDTO.toLocationCode}ãï¼"); |
| | | if (stationInfo.StationName != LocationStatusEnum.Free.ToString()) throw new Exception($"ç»ç¹åºä½ã{taskDTO.toLocationCode}ãåºä½ç¶æä¸å¯å
¥åºï¼"); |
| | | } |
| | | else if (taskType == (int)TaskTypeEnum.RK3F || taskType == (int)TaskTypeEnum.F04) |
| | | { |
| | | stationInfo = _stationInfo.Repository.QueryFirst(x => x.StationName == taskDTO.fromLocationCode) ?? throw new Exception($"æªæ¾å°èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãï¼"); |
| | | if (stationInfo.StationName != LocationStatusEnum.InStock.ToString()) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãå½ååºä½ç¶æä¸å¯åºåºï¼"); |
| | | if (stationInfo.PalletCode != taskDTO.containerCode) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãç»å®æç®±å·ã{stationInfo.PalletCode}ãä¸ä»»å¡æç®±å·ã{taskDTO.containerCode}ãä¸å¹é
ï¼"); |
| | | } |
| | | else if(taskType==(int)TaskTypeEnum.F02) |
| | | { |
| | | stationInfo = _stationInfo.Repository.QueryFirst(x => x.StationName == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°ç»ç¹åºä½ã{taskDTO.toLocationCode}ãï¼"); |
| | | if (stationInfo.StationName != LocationStatusEnum.Free.ToString()) throw new Exception($"ç»ç¹åºä½ã{taskDTO.toLocationCode}ãåºä½ç¶æä¸å¯å
¥åºï¼"); |
| | | stationInfo = _stationInfo.Repository.QueryFirst(x => x.StationName == taskDTO.fromLocationCode) ?? throw new Exception($"æªæ¾å°èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãï¼"); |
| | | if (stationInfo.StationName != LocationStatusEnum.InStock.ToString()) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãå½ååºä½ç¶æä¸å¯åºåºï¼"); |
| | | if (stationInfo.PalletCode != taskDTO.containerCode) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãç»å®æç®±å·ã{stationInfo.PalletCode}ãä¸ä»»å¡æç®±å·ã{taskDTO.containerCode}ãä¸å¹é
ï¼"); |
| | | } |
| | | #endregion |
| | | |
| | | Dt_Task dt_Task = new Dt_Task() |
| | | { |
| | | TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | |
| | | return content; |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #region 5ç©ºè½¦è½¬è¿ |
| | | public WebResponseContent HKF01Transport(TaskDTO taskDTO, int taskType) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | var stationInfo = _stationInfo.Repository.QueryFirst(x => x.StationName == taskDTO.fromLocationCode) ?? throw new Exception($"æªæ¾å°èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãï¼"); |
| | | if (stationInfo.StationStatus != (int)LocationStatusEnum.InStock) throw new Exception($"èµ·ç¹åºä½ã{taskDTO.fromLocationCode}ãå½ååºä½ç¶æä¸æ¯æè´§ï¼"); |
| | | if (stationInfo.PalletCode != taskDTO.containerCode) throw new Exception($"å½ååºä½ã{taskDTO.fromLocationCode}ãç»å®æç®±å·ã{stationInfo.PalletCode}ãä¸ä»»å¡çæç®±å·ã{taskDTO.containerCode}ãä¸å¹é
"); |
| | | |
| | | |
| | | var stationInfo2 = _stationInfo.Repository.QueryFirst(x => x.StationName == taskDTO.toLocationCode) ?? throw new Exception($"æªæ¾å°ç»ç¹åºä½ã{taskDTO.toLocationCode}ãï¼"); |
| | | if (stationInfo2.StationStatus != (int)LocationStatusEnum.Free) throw new Exception($"ç»ç¹åºä½ã{taskDTO.toLocationCode}ãå½ååºä½ç¶æä¸æ¯ç©ºé²ï¼"); |
| | | |
| | | var dt_Task = new Dt_Task() |
| | | { |
| | | TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | | WMSTaskNum = taskDTO.taskCode, |
| | | //WMSId = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | | Grade = taskDTO.taskPriority, |
| | | PalletCode = taskDTO.containerCode, |
| | | Roadway = "1", |
| | | TaskState = (int)TaskStatusEnum.New, |
| | | TaskType = taskType, |
| | | SourceAddress = taskDTO.fromLocationCode, |
| | | CurrentAddress = taskDTO.fromLocationCode, |
| | | NextAddress = taskDTO.toLocationCode, |
| | | TargetAddress = taskDTO.toLocationCode, |
| | | Creater = "WMS", |
| | | }; |
| | | content = SendHIKROBOTTask(dt_Task); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | dt_Task.Dispatchertime = DateTime.Now; |
| | | BaseDal.AddData(dt_Task); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | #endregion |
| | | } |
| | | } |