| | |
| | | using System.Reflection.Metadata; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.Transactions; |
| | | using WIDESEA_Common.TaskEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | |
| | | using WIDESEA_ITaskInfoService; |
| | | using WIDESEA_Model.Models; |
| | | using WIDESEA_TaskInfoRepository; |
| | | using WIDESEAWCS_DTO.WCSInfo; |
| | | |
| | | namespace WIDESEA_TaskInfoService |
| | | { |
| | |
| | | |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | /// <summary> |
| | | /// 忥任å¡ç¶æ |
| | | /// </summary> |
| | | /// <param name="task"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="NotImplementedException"></exception> |
| | | public WebResponseContent UpdateTaskStatus(WMSTaskDTO WMStask) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == WMStask.TaskNum && x.TaskType == WMStask.TaskType); |
| | | if (task == null) return WebResponseContent.Instance.Error("æªæ¾å°ä»»å¡ä¿¡æ¯"); |
| | | if (task.TaskType == (int)TaskTypeEnum.Inbound) |
| | | { |
| | | int nextStatus = task.TaskStatus.GetNextNotCompletedStatus<TaskInStatusEnum>(); |
| | | if (WMStask.TaskState != nextStatus) return WebResponseContent.Instance.Error($"该任å¡ç¶ææè¯¯,ä»»å¡å·:ã{task.TaskNum}ã,ä»»å¡ç¶æ:ã{task.TaskStatus}ã"); |
| | | task.TaskStatus = nextStatus; |
| | | switch (nextStatus) |
| | | { |
| | | case (int)TaskInStatusEnum.SC_InFinish: |
| | | content = UpdateTaskStatusInFinish(task); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | else if (task.TaskType == (int)TaskTypeEnum.Outbound) |
| | | { |
| | | int nextStatus = task.TaskStatus.GetNextNotCompletedStatus<TaskOutStatusEnum>(); |
| | | if (WMStask.TaskState != nextStatus) return WebResponseContent.Instance.Error($"该任å¡ç¶ææè¯¯,ä»»å¡å·:ã{task.TaskNum}ã,ä»»å¡ç¶æ:ã{task.TaskStatus}ã"); |
| | | task.TaskStatus = nextStatus; |
| | | switch (nextStatus) |
| | | { |
| | | case (int)TaskOutStatusEnum.SC_OutFinish: |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | /// <summary> |
| | | /// æ´æ°ä»»å¡ç¶æå®æ |
| | | /// </summary> |
| | | /// <param name="WMStask"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent UpdateTaskStatusInFinish(Dt_Task task) |
| | | { |
| | | WebResponseContent content = new WebResponseContent().OK(); |
| | | try |
| | | { |
| | | Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); |
| | | Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress); |
| | | var result = CheckCompleted(stockInfo, locationInfo); |
| | | if (!result.Item1) throw new Exception(result.Item2); |
| | | if (stockInfo.StockStatus != StockStatusEmun.å
¥åºä¸.ObjToInt()) throw new Exception($"æç[{task.PalletCode}],该ç»çç¶æä¸å¯å
¥åº"); |
| | | stockInfo.StockStatus = StockStatusEmun.å·²å
¥åº.ObjToInt(); |
| | | locationInfo.CurrentQty++; |
| | | locationInfo.LocationStatus = locationInfo.MaxQty - locationInfo.CurrentQty == 0 ? LocationStatusEnum.Fullload.ObjToInt() : LocationStatusEnum.InStock.ObjToInt(); |
| | | using (TransactionScope scope = new TransactionScope()) |
| | | { |
| | | BaseDal.UpdateData(task); |
| | | _basicService.LocationInfoService.Repository.UpdateData(locationInfo); |
| | | _stockService.StockInfoService.Repository.UpdateData(stockInfo); |
| | | scope.Complete(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | /// <summary> |
| | | /// æ´æ°ä»»å¡ç¶ææ§è¡ |
| | | /// </summary> |
| | | /// <param name="WMStask"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent UpdateTaskStatusExecuting(Dt_Task task) |
| | | { |
| | | WebResponseContent content = new WebResponseContent().OK(); |
| | | try |
| | | { |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | } |
| | | } |