| | |
| | | return content; |
| | | } |
| | | /// <summary> |
| | | /// æ 纺å¸åºåº |
| | | /// </summary> |
| | | /// <param name="Count"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent RequestWFBWMSTaskOut(int Count) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | List<Dt_AGVStationInfo> aGVStationInfos = _agvStationInfoRepository.QueryData(x => x.StationArea == AGVStationAreaEnum.AreaC.ObjToInt() && x.IsOccupied == WhetherEnum.False.ObjToInt()); |
| | | if (aGVStationInfos.Count < Count) |
| | | { |
| | | return content.Error($"å¯ç¨ç¼åæ°ä¸è¶³"); |
| | | } |
| | | List<Dt_ProStockInfo> stockInfos = _stockRepository.ProStockInfoRepository.QueryData(x => x.ProStockAttribute == ProStockAttributeEnum.空æ.ObjToInt() && x.StockStatus == StockStatusEmun.å
¥åºå®æ.ObjToInt()).OrderBy(x => x.CreateDate).Take(Count).ToList(); |
| | | List<Dt_LocationInfo> locationInfos = _basicRepository.LocationInfoRepository.QueryData(x => stockInfos.Select(x => x.LocationCode).Contains(x.LocationCode)); |
| | | if (stockInfos.Count < Count) |
| | | { |
| | | return content.Error($"åºåæ°éä¸è¶³"); |
| | | } |
| | | foreach (var item in stockInfos) |
| | | { |
| | | Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.LocationCode == item.LocationCode); |
| | | if (locationInfo != null && (locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && locationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt()) |
| | | { |
| | | item.StockStatus = StockStatusEmun.åºåºéå®.ObjToInt(); |
| | | } |
| | | else |
| | | { |
| | | return content.Error($"è´§ä½ç¶æä¸æ£ç¡®"); |
| | | } |
| | | } |
| | | List<Dt_Task> tasks = GetTasks(stockInfos, TaskTypeEnum.OutWFB); |
| | | if (tasks == null || tasks.Count <= 0) |
| | | { |
| | | return content.Error($"çæä»»å¡å¤±è´¥"); |
| | | } |
| | | for (int i = 0; i < tasks.Count; i++) |
| | | { |
| | | aGVStationInfos[i].IsOccupied = WhetherEnum.True.ObjToInt(); |
| | | tasks[i].TargetAddress = aGVStationInfos[i].AGVStationCode; |
| | | } |
| | | //夿æ¯å¦æåºåºåä¿¡æ¯ |
| | | _unitOfWorkManage.BeginTran(); |
| | | //æ´æ°åºåç¶æ |
| | | _stockRepository.ProStockInfoRepository.UpdateData(stockInfos); |
| | | _agvStationInfoRepository.UpdateData(aGVStationInfos); |
| | | //æ´æ°è´§ä½ç¶æ |
| | | _basicRepository.LocationInfoRepository.UpdateLocationStatus(locationInfos, LocationStatusEnum.Lock); |
| | | //å å
¥è´§ä½åå¨è®°å½ |
| | | _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfos, LocationStatusEnum.Lock, LocationChangeType.OutboundAssignLocation, taskNums: tasks.Select(x => x.TaskNum).ToList()); |
| | | //æ°å»ºä»»å¡ |
| | | BaseDal.AddData(tasks); |
| | | _unitOfWorkManage.CommitTran(); |
| | | PushTasksToWCS(tasks); |
| | | content.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | /// <summary> |
| | | /// åæåºåºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="materielCode">ç©æä»£ç </param> |
| | | /// <param name="materielWide">ç©æå¹
宽</param> |
| | | /// <param name="Count">å·æ°</param> |
| | | /// <returns></returns> |
| | | public WebResponseContent RequestYLWMSTaskOut(string materielCode, int materielWide, int Count) |
| | | public WebResponseContent RequestYLWMSTaskOut(string materielCode, int materielWide, int Count, string address = "") |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | |
| | | TaskTypeEnum taskTypeEnum = new(); |
| | | if (stockInfos.FirstOrDefault()?.MaterielInvOrgId==MaterielInvOrgEnum.èå.ObjToInt()) |
| | | { |
| | | taskTypeEnum = TaskTypeEnum.OldOutbound; |
| | | taskTypeEnum = TaskTypeEnum.OldYLOutbound; |
| | | } |
| | | else |
| | | { |
| | | taskTypeEnum = TaskTypeEnum.Outbound; |
| | | taskTypeEnum = TaskTypeEnum.PrintYLOutbound; |
| | | } |
| | | List<Dt_Task> tasks = GetTasks(stockInfos, taskTypeEnum); |
| | | if (tasks == null || tasks.Count <= 0) |
| | | { |
| | | return content.Error($"çæä»»å¡å¤±è´¥"); |
| | | } |
| | | if (!string.IsNullOrEmpty(address)) |
| | | { |
| | | tasks.ForEach(x => |
| | | { |
| | | x.TargetAddress= address; |
| | | }); |
| | | } |
| | | //夿æ¯å¦æåºåºåä¿¡æ¯ |
| | | _unitOfWorkManage.BeginTran(); |
| | | //æ´æ°åºåç¶æ |