| | |
| | | // è·åæ°çåºä½çä»»å¡ |
| | | var internalTransferTask = await _taskRepository.QueryFirstAsync(x => x.SourceAddress == newLocationID && x.Roadway == outboundTask.Roadway && x.TaskState == (int)TaskOutStatusEnum.OutNew); |
| | | |
| | | |
| | | |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,è·åæ°åºä½çä»»å¡", $"æ°åºä½ä»»å¡ï¼{internalTransferTask}"); |
| | | |
| | | |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,æªè·åå°æ°åºä½ä»»å¡", $""); |
| | | return await HandleNoTaskAtLocation(outboundTask.SourceAddress, newLocationID, outboundTask); |
| | | // 妿æ°çåºä½æ²¡ææ¾å°å¯¹åºçä»»å¡ |
| | | if (internalTransferTask == null) |
| | | /*if (internalTransferTask == null) |
| | | { |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,æªè·åå°æ°åºä½ä»»å¡", $""); |
| | | return await HandleNoTaskAtLocation(outboundTask.SourceAddress, newLocationID, outboundTask); |
| | | } |
| | | |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,è·åå°æ°åºä½ä»»å¡ç´æ¥è¿å", $"æ°åºä½ä»»å¡ï¼{internalTransferTask}"); |
| | | // ç´æ¥è¿å䏿·±ä½åºåºä»»å¡ |
| | | return internalTransferTask; |
| | | return internalTransferTask;*/ |
| | | } |
| | | |
| | | // è¿åå½ååºä½çåºåºä»»å¡ |
| | |
| | | #endregion å¯ç¨ç¦ç¨è´§ä½ |
| | | |
| | | #region 大å±åºä½ç¶æè·å |
| | | public WebResponseContent LocationStatus() |
| | | public WebResponseContent LocationStatuskt() |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | |
| | | // è·åææåºä½æ°æ® |
| | | List<DtLocationInfo> locations = BaseDal.QueryData(); |
| | | |
| | | // å®ä¹ææå¯è½çç¶æåå
¶å¯¹åºçæ¾ç¤ºææ¬ |
| | | var allStatuses = new Dictionary<int, string> |
| | | { |
| | | { 0, "空货ä½" }, |
| | | { 1, "éå®" }, |
| | | { 2, "æè´§" }, |
| | | { 3, "æè´§ç¦ç¨" } |
| | | }; |
| | | |
| | | // æLocationStatusåç»ç»è®¡ |
| | | var statusGroups = locations |
| | | .GroupBy(l => l.LocationStatus) |
| | | .Select(g => new |
| | | { |
| | | Status = g.Key==0?"空货ä½": g.Key == 1 ? "éå®": g.Key == 2 ? "æè´§": "æè´§ç¦ç¨", |
| | | Count = g.Count(), |
| | | }) |
| | | var statusGroups = allStatuses |
| | | .GroupJoin(locations.GroupBy(l => l.LocationStatus), |
| | | status => status.Key, |
| | | group => group.Key, |
| | | (status, groups) => new |
| | | { |
| | | Status = status.Value, |
| | | Count = groups.SelectMany(g => g).Any() ? groups.First().Count() : 0 |
| | | }) |
| | | .ToList(); |
| | | |
| | | // å°ç»è®¡ç»ææ¾å
¥ååºå
容 |
| | |
| | | /// <returns>çæçç§»åºä»»å¡æåå§åºåºä»»å¡</returns> |
| | | private async Task<Dt_Task> HandleNoTaskAtLocation(string originalLocationID, string newLocationID, Dt_Task outboundTask) |
| | | { |
| | | // å¤æè¯¥ä½ç½®æ¯å¦æåºå |
| | | var stockInfo = await _WheelsStockRepository.QueryFirstAsync(x => x.Wheels_Location == newLocationID); |
| | | |
| | | // å¤æè¯¥ä½ç½®æ¯å¦æåºå |
| | | var zdpInfo = await _zdpStockRepository.QueryFirstAsync(x => x.Zdp_Location == newLocationID); |
| | | |
| | | |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,æªè·åå°æ°åºä½ä»»å¡", $"该ä½ç½®æ¯å¦æåºåï¼{stockInfo}"); |
| | | if (stockInfo == null && zdpInfo==null) |
| | | try |
| | | { |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,æªè·åå°åºåæ°æ®", $"ç´æ¥è¿ååå
åºåºä»»å¡ï¼{outboundTask}"); |
| | | // å¦ææ²¡æåºåï¼ç´æ¥è¿åå½ååºåºä»»å¡ |
| | | return outboundTask; |
| | | } |
| | | else |
| | | { |
| | | // 妿æåºåï¼çæç§»åºä»»å¡ |
| | | var emptyLocation = RequestLocation("SC1"); |
| | | if (emptyLocation == null) throw new Exception("ææ ç©ºåº"); |
| | | // å¤æè¯¥ä½ç½®æ¯å¦æåºå |
| | | var stockInfo = await _WheelsStockRepository.QueryFirstAsync(x => x.Wheels_Location == newLocationID); |
| | | |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,æ¥æ¾è½ç§»åºè´§ä½", $"è´§ä½æ°æ®ï¼{emptyLocation}"); |
| | | var taskNo = await _taskRepository.GetTaskNo(); |
| | | Dt_Task newTransferTask = new Dt_Task() |
| | | // å¤æè¯¥ä½ç½®æ¯å¦æåºå |
| | | var zdpInfo = await _zdpStockRepository.QueryFirstAsync(x => x.Zdp_Location == newLocationID); |
| | | |
| | | |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "è·åçåºåä¿¡æ¯", $"æ ¹æ®è´§ä½ç¼å·ï¼{newLocationID}ï¼è¯¥ä½ç½®æ¯å¦æåºåï¼{stockInfo.ToJson()}"); |
| | | if (stockInfo == null && zdpInfo == null) |
| | | { |
| | | CreateDate = DateTime.Now, |
| | | Creater = App.User.UserName == null ? "admin" : App.User.UserName, |
| | | CurrentAddress = stockInfo != null ?stockInfo.Wheels_Location: zdpInfo.Zdp_Location, |
| | | Grade = 99, |
| | | MaterialNo = stockInfo != null ? stockInfo.Wheels_Type: "2", |
| | | NextAddress = emptyLocation.LocationCode, |
| | | PalletCode = stockInfo != null ? stockInfo.Wheels_Num : zdpInfo.Zdp_code, |
| | | Remark = "ç§»åº", |
| | | Roadway = "SC1", |
| | | SourceAddress = stockInfo != null ? stockInfo.Wheels_Location : zdpInfo.Zdp_Location, |
| | | TaskNum = taskNo, |
| | | TargetAddress = emptyLocation.LocationCode, |
| | | TaskState = (int)TaskStatus.Created, |
| | | TaskType = (int)TaskTypeEnum.Relocation, |
| | | Dispatchertime = DateTime.Now, |
| | | }; |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,æ°å»ºç§»åºä»»å¡", $"ç§»åºä»»å¡æ°æ®ï¼{newTransferTask}"); |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,æªè·åå°åºåæ°æ®", $"ç´æ¥è¿ååå
åºåºä»»å¡ï¼{outboundTask}"); |
| | | // å¦ææ²¡æåºåï¼ç´æ¥è¿åå½ååºåºä»»å¡ |
| | | return outboundTask; |
| | | } |
| | | else |
| | | { |
| | | // 妿æåºåï¼çæç§»åºä»»å¡ |
| | | var emptyLocation = RequestLocation("SC1"); |
| | | if (emptyLocation == null) throw new Exception("ææ ç©ºåº"); |
| | | |
| | | //ä¿®æ¹åºä½ç¶æ |
| | | emptyLocation.LocationStatus = (int)LocationEnum.FreeDisable; |
| | | BaseDal.UpdateData(emptyLocation); |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,æ¥æ¾è½ç§»åºè´§ä½", $"è´§ä½æ°æ®ï¼{emptyLocation}"); |
| | | var taskNo = await _taskRepository.GetTaskNo(); |
| | | Dt_Task newTransferTask = new Dt_Task() |
| | | { |
| | | CreateDate = DateTime.Now, |
| | | Creater = App.User.UserName == null ? "admin" : App.User.UserName, |
| | | CurrentAddress = stockInfo != null ? stockInfo.Wheels_Location : zdpInfo.Zdp_Location, |
| | | Grade = 99, |
| | | MaterialNo = stockInfo != null ? stockInfo.Wheels_Type : "2", |
| | | NextAddress = emptyLocation.LocationCode, |
| | | PalletCode = stockInfo != null ? stockInfo.Wheels_Num : zdpInfo.Zdp_code, |
| | | Remark = "ç§»åº", |
| | | Roadway = "SC1", |
| | | SourceAddress = stockInfo != null ? stockInfo.Wheels_Location : zdpInfo.Zdp_Location, |
| | | TaskNum = taskNo, |
| | | TargetAddress = emptyLocation.LocationCode, |
| | | TaskState = (int)TaskStatus.Created, |
| | | TaskType = (int)TaskTypeEnum.Relocation, |
| | | Dispatchertime = DateTime.Now, |
| | | }; |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,æ°å»ºç§»åºä»»å¡", $"ç§»åºä»»å¡æ°æ®ï¼{newTransferTask.ToJson()}"); |
| | | |
| | | return await _taskRepository.Create(newTransferTask); |
| | | // è·åæ°çåºä½çä»»å¡ |
| | | var internalTransferTask = await _taskRepository.QueryFirstAsync(x => x.SourceAddress == newLocationID && x.Roadway == outboundTask.Roadway && x.TaskState == (int)TaskOutStatusEnum.OutNew); |
| | | if (internalTransferTask != null) |
| | | { |
| | | internalTransferTask.SourceAddress = emptyLocation.LocationCode; |
| | | internalTransferTask.CurrentAddress = emptyLocation.LocationCode; |
| | | await _taskRepository.Update(internalTransferTask); |
| | | } |
| | | |
| | | //ä¿®æ¹åºä½ç¶æ |
| | | emptyLocation.LocationStatus = (int)LocationEnum.FreeDisable; |
| | | BaseDal.UpdateData(emptyLocation); |
| | | |
| | | return await _taskRepository.Create(newTransferTask); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "æ¹æ³ï¼HandleNoTaskAtLocation", $"åºéï¼åå ï¼{ex.ToJson()}"); |
| | | throw; |
| | | } |
| | | } |
| | | |