| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ£æ¥å¹¶çæç§»åºä»»å¡æè¿åå
¥åºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="locationID">ä»»å¡å·</param> |
| | | /// <returns>ä»»å¡å¯¹è±¡</returns> |
| | | public virtual async Task<Dt_Task> InTransferCheckAsync(RequestTaskDto input) |
| | | { |
| | | try |
| | | { |
| | | int taskNum = input.taskNum; |
| | | |
| | | // æ ¹æ®ä»»å¡å·è·åå
¥åºä»»å¡ |
| | | var inboundTask = await _taskRepository.QueryFirstAsync(x => x.TaskNum == taskNum); |
| | | if (inboundTask == null) |
| | | return null; |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "æ ¹æ®ä»»å¡å·è·åä»»å¡", $"ä»»å¡å·ï¼{taskNum}ï¼ä»»å¡æ°æ®ï¼{inboundTask}"); |
| | | |
| | | var location = await BaseDal.QueryFirstAsync(x => x.LocationCode == inboundTask.TargetAddress); |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "è·åæå®åºä½çè´§ä½æ°æ®", $"è´§ä½å·ï¼{inboundTask.TargetAddress}ï¼è´§ä½æ°æ®ï¼{location}"); |
| | | |
| | | // æ£æ¥æ¯å¦éè¦è¿è¡ç§»åº |
| | | if (CheckForInternalTransfer(location)) |
| | | { |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº", $"è´§ä½å·ï¼{inboundTask.TargetAddress}ï¼è´§ä½æ°æ®ï¼{location}"); |
| | | // 计ç®å¯¹åºä½ç½®çç¸å¯¹åºä½ ï¼å¥æ°è¡çä¸ä¸è¡æè
å¶æ°è¡çä¸ä¸è¡ï¼ |
| | | var newLocationID = GetRelativeLocationID(location); |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,ç»å»ºéè¦ç§»åºè´§ä½å·", $"æ°çåºä½IDï¼{newLocationID}"); |
| | | |
| | | var relocationTask = await _taskRepository.QueryFirstAsync(x => x.TargetAddress == newLocationID && x.Roadway == inboundTask.Roadway && x.TaskType == (int)TaskTypeEnum.Relocation); |
| | | if (relocationTask != null) return relocationTask; |
| | | |
| | | // è·åæ°çåºä½çä»»å¡ |
| | | var internalTransferTask = await _taskRepository.QueryFirstAsync(x => x.TargetAddress == newLocationID && x.Roadway == inboundTask.Roadway && x.TaskState == (int)TaskOutStatusEnum.OutNew); |
| | | |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,è·åæ°åºä½çä»»å¡", $"æ°åºä½ä»»å¡ï¼{internalTransferTask}"); |
| | | // 妿æ°çåºä½æ²¡ææ¾å°å¯¹åºçä»»å¡ |
| | | if (internalTransferTask == null) |
| | | { |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,æªè·åå°æ°åºä½ä»»å¡", $""); |
| | | return await InHandleLocation(inboundTask.TargetAddress, newLocationID, inboundTask); |
| | | } |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,è·åå°æ°åºä½ä»»å¡ç´æ¥è¿å", $"æ°åºä½ä»»å¡ï¼{internalTransferTask}"); |
| | | // ç´æ¥è¿å䏿·±ä½åºåºä»»å¡ |
| | | return internalTransferTask; |
| | | } |
| | | |
| | | // è¿åå½ååºä½çåºåºä»»å¡ |
| | | return inboundTask; |
| | | } |
| | | catch (Exception) |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | public override WebResponseContent UpdateData(SaveModel saveModel) |
| | | { |
| | | int id = saveModel.MainData["id"].ObjToInt(); |
| | |
| | | |
| | | #endregion å¯ç¨ç¦ç¨è´§ä½ |
| | | |
| | | #region 大å±åºä½ç¶æè·å |
| | | public WebResponseContent LocationStatus() |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | |
| | | // è·åææåºä½æ°æ® |
| | | List<DtLocationInfo> locations = BaseDal.QueryData(); |
| | | |
| | | // æLocationStatusåç»ç»è®¡ |
| | | var statusGroups = locations |
| | | .GroupBy(l => l.LocationStatus) |
| | | .Select(g => new |
| | | { |
| | | Status = g.Key==0?"空货ä½": g.Key == 1 ? "éå®": g.Key == 2 ? "æè´§": "æè´§ç¦ç¨", |
| | | Count = g.Count(), |
| | | }) |
| | | .ToList(); |
| | | |
| | | // å°ç»è®¡ç»ææ¾å
¥ååºå
容 |
| | | content.Data = statusGroups; |
| | | |
| | | return content; |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #region å
鍿¹æ³ |
| | | |
| | | #region ç§»åºæ¹æ³ |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å¤çå
¥åºæ²¡æä»»å¡çåºä½æ
åµ |
| | | /// </summary> |
| | | /// <param name="originalLocationID">åå§åºä½ID</param> |
| | | /// <param name="newLocationID">æ°çåºä½ID</param> |
| | | /// <param name="outboundTask">åºåºä»»å¡</param> |
| | | /// <returns>çæçç§»åºä»»å¡æåå§åºåºä»»å¡</returns> |
| | | private async Task<Dt_Task> InHandleLocation(string originalLocationID, string newLocationID, Dt_Task inboundTask) |
| | | { |
| | | // å¤æè¯¥ä½ç½®æ¯å¦æåºå |
| | | var stockInfo = await _WheelsStockRepository.QueryFirstAsync(x => x.Wheels_Location == newLocationID); |
| | | |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,æªè·åå°æ°åºä½ä»»å¡", $"该ä½ç½®æ¯å¦æåºåï¼{stockInfo}"); |
| | | if (stockInfo == null) |
| | | { |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,æªè·åå°åºåæ°æ®", $"ç´æ¥è¿ååå
åºåºä»»å¡ï¼{inboundTask}"); |
| | | // å¦ææ²¡æåºåï¼ç´æ¥è¿åå½ååºåºä»»å¡ |
| | | return inboundTask; |
| | | } |
| | | else |
| | | { |
| | | // 妿æåºåï¼çæç§»åºä»»å¡ |
| | | var emptyLocation = RequestLocation("SC1"); |
| | | if (emptyLocation == null) throw new Exception("ææ ç©ºåº"); |
| | | |
| | | 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.Wheels_Location, |
| | | Grade = 99, |
| | | MaterialNo = stockInfo.Wheels_Type, |
| | | NextAddress = emptyLocation.LocationCode, |
| | | PalletCode = stockInfo.Wheels_Num, |
| | | Remark = "ç§»åº", |
| | | Roadway = "SC1", |
| | | SourceAddress = stockInfo.Wheels_Location, |
| | | TaskNum = taskNo, |
| | | TargetAddress = emptyLocation.LocationCode, |
| | | TaskState = (int)TaskStatus.Created, |
| | | TaskType = (int)TaskTypeEnum.Relocation, |
| | | Dispatchertime = DateTime.Now, |
| | | }; |
| | | LogFactory.GetLog("æ£æ¥æ¯å¦éè¦ç§»åº").InfoFormat(true, "éè¦ç§»åº,æ°å»ºç§»åºä»»å¡", $"ç§»åºä»»å¡æ°æ®ï¼{newTransferTask}"); |
| | | |
| | | //ä¿®æ¹åºä½ç¶æ |
| | | emptyLocation.LocationStatus = (int)LocationEnum.FreeDisable; |
| | | BaseDal.UpdateData(emptyLocation); |
| | | |
| | | return await _taskRepository.Create(newTransferTask); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®è´§ä½æ¯å¦éè¦ç§»åº |
| | | /// </summary> |
| | | /// <param name="locationID">è´§ä½ID</param> |
| | |
| | | if (locationInfos == null || locationInfos.Count == 0) |
| | | { |
| | | locationInfos = BaseDal.QueryData(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == "SC1" && x.EnalbeStatus == 1 && x.LocationType == 1); |
| | | |
| | | } |
| | | |
| | | var location = GetEmptyLocation(locationInfos); |
| | | var location = GetEmptyLocation(locationInfos); //æ¾åºè´§ä½ |
| | | |
| | | if (location != null) |
| | | { |
| | | if (location.Depth == 2) |
| | | { |
| | | int row = location.Row; |
| | | int relativeLine = row % 2 == 1 ? row + 1 : row - 1; |
| | | //int relativeLine = row % 2 == 1 ? row + 1 : row - 1; |
| | | |
| | | int relativeLine = row == 1 ? row + 1 : row - 1; |
| | | |
| | | var insideLocation = BaseDal.QueryFirst(x => x.Row == relativeLine && x.Layer == location.Layer && x.Column == location.Column); |
| | | |