| | |
| | | ApiResponse<object> apiResponse = new ApiResponse<object>(); |
| | | apiResponse.Message = Message; |
| | | apiResponse.Success = Success; |
| | | apiResponse.Code = 1; |
| | | apiResponse.Code = Code; |
| | | return apiResponse; |
| | | } |
| | | |
| | |
| | | /// <param name="taskNum"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="NotImplementedException"></exception> |
| | | public WebResponseContent ManualTaskCompleted(string palletTaskDTO) |
| | | public ApiResponse<object> ManualTaskCompleted(string palletTaskDTO) |
| | | { |
| | | WebResponseContent webResponse = new WebResponseContent(); |
| | | try |
| | |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == palletTaskDTO); |
| | | if (task == null) |
| | | { |
| | | return webResponse.Error($"æªæ¾å°æçç¼ç 为ã{palletTaskDTO}ãçä»»å¡ä¿¡æ¯"); |
| | | return MESresponse($"æªæ¾å°æçç¼ç 为ã{palletTaskDTO}ãçä»»å¡ä¿¡æ¯", false, 0); |
| | | } |
| | | |
| | | |
| | |
| | | if (task.TaskType == TaskInboundTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt()) |
| | | { |
| | | stockmsseg = _stockRepository.QueryFirst(x => x.LocationCode == task.TargetAddress); |
| | | if (stockmsseg == null) { return webResponse.Error("æªæ¾å°åºåä¿¡æ¯"); }; |
| | | if (stockmsseg == null) { return MESresponse($"æªæ¾å°åºåä¿¡æ¯", false, 0); } |
| | | ; |
| | | stockmsseg.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | resstock = _stockRepository.UpdateData(stockmsseg); |
| | | if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt()) |
| | | { |
| | | locationmsseg1 = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress); |
| | | locationmsseg2 = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.CurrentAddress); |
| | | if (locationmsseg1 == null || locationmsseg2 == null) { webResponse.Error("æªæ¾å°è´§ä½ä¿¡æ¯"); } |
| | | if (locationmsseg1 == null || locationmsseg2 == null) { return MESresponse($"æªæ¾å°è´§ä½ä¿¡æ¯", false, 0); } |
| | | locationmsseg1.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | locationmsseg2.LocationStatus = LocationStatusEnum.Free.ObjToInt(); |
| | | location1 = _locationInfoRepository.UpdateData(locationmsseg1); |
| | |
| | | else |
| | | { |
| | | locationmsseg1 = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress); |
| | | if (locationmsseg1 == null) { webResponse.Error("æªæ¾å°è´§ä½ä¿¡æ¯"); } |
| | | if (locationmsseg1 == null) { return MESresponse($"æªæ¾å°è´§ä½ä¿¡æ¯", false, 0); } |
| | | locationmsseg1.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | location1 = _locationInfoRepository.UpdateData(locationmsseg1); |
| | | |
| | |
| | | else |
| | | { |
| | | stockmsseg = _stockRepository.QueryFirst(x => x.LocationCode == task.CurrentAddress); |
| | | if (stockmsseg == null) { return webResponse.Error("æªæ¾å°åºåä¿¡æ¯"); } |
| | | if (stockmsseg == null) { return MESresponse($"æªæ¾å°åºåä¿¡æ¯", false, 0); } |
| | | resstock = _stockRepository.DeleteData(stockmsseg); |
| | | locationmsseg1 = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.CurrentAddress); |
| | | if (locationmsseg1 == null) { webResponse.Error("æªæ¾å°è´§ä½ä¿¡æ¯"); } |
| | | if (locationmsseg1 == null) { return MESresponse($"æªæ¾å°è´§ä½ä¿¡æ¯", false, 0); } |
| | | locationmsseg1.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | location1 = _locationInfoRepository.UpdateData(locationmsseg1); |
| | | } |
| | |
| | | if (WCSReceiveTaskAPI == null) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"任塿å¨å®æå¤±è´¥ï¼æªé
ç½®WCS任塿å¨å®æå馿¥å£"); |
| | | return MESresponse($"任塿å¨å®æå¤±è´¥ï¼æªé
ç½®WCS任塿å¨å®æå馿¥å£", false, 0); |
| | | } |
| | | |
| | | string apiUrl = $"{WCSReceiveTaskAPI}?taskNum={task.TaskNum}"; |
| | |
| | | if (respon == null) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"WCSè°åæ¥å£å¤±è´¥ï¼åé¦åæ°ä¸ºç©º"); |
| | | return MESresponse($"WCSè°åæ¥å£å¤±è´¥ï¼åé¦åæ°ä¸ºç©º", false, 0); |
| | | } |
| | | var response = JsonConvert.DeserializeObject<ApiResponse<object>>(respon); |
| | | if (!response.status) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"WCSè°åæ¥å£å¤±è´¥ï¼åé¦åæ°åå ï¼{response.Message}"); |
| | | return MESresponse($"WCSè°åæ¥å£å¤±è´¥ï¼åé¦åæ°åå ï¼{response.Message}", false, 0); |
| | | |
| | | } |
| | | if (!(resstock && task_htymsseg && taskmsseg && task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt() ? (location1 && location2) : location1)) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"任塿å¨å®æå¤±è´¥"); |
| | | return MESresponse($"任塿å¨å®æå¤±è´¥", false, 0); |
| | | } |
| | | |
| | | //è·åæ¥å£è¿è¡è°å |
| | | var MESConfigsAPIInfo = _dt_ApiInfoService.GetConfigsByAPIInfo(CateGoryConst.CONFIG_MES_IPAddress, SysConfigConst.MESmockComplete); //è·åå°wcså
¨é¨ç±»åçæ¥å£ |
| | | string MESmockComplete = MESConfigsAPIInfo.ApiAddress + MESConfigsAPIInfo.ApiName; |
| | | if (MESConfigsAPIInfo == null) |
| | | ////è·åæ¥å£è¿è¡è°å |
| | | //var MESConfigsAPIInfo = _dt_ApiInfoService.GetConfigsByAPIInfo(CateGoryConst.CONFIG_MES_IPAddress, SysConfigConst.MESmockComplete); //è·åå°wcså
¨é¨ç±»åçæ¥å£ |
| | | //string MESmockComplete = MESConfigsAPIInfo.ApiAddress + MESConfigsAPIInfo.ApiName; |
| | | //if (MESConfigsAPIInfo == null) |
| | | //{ |
| | | // _unitOfWorkManage.RollbackTran(); |
| | | // return webResponse.Error($"任塿å¨å®æå¤±è´¥ï¼æªé
ç½®MES任塿å¨å®æå馿¥å£"); |
| | | //} |
| | | //var MES = new |
| | | //{ |
| | | // businessId = task.MESbusinessId, |
| | | // taskId = task.MEStaskId, |
| | | // palletCode = task.PalletCode |
| | | //}; |
| | | //var MESrespon = HttpHelper.Post(MESmockComplete, JsonConvert.SerializeObject(MES)); |
| | | //if (respon == null) |
| | | //{ |
| | | // _unitOfWorkManage.RollbackTran(); |
| | | // return webResponse.Error($"MESè°åæ¥å£å¤±è´¥ï¼åé¦åæ°ä¸ºç©º"); |
| | | //} |
| | | //var MESresponse = JsonConvert.DeserializeObject<ApiResponse<object>>(MESrespon); |
| | | //if (!MESresponse.Success) |
| | | //{ |
| | | // _unitOfWorkManage.RollbackTran(); |
| | | // return webResponse.Error($"MESè°åæ¥å£å¤±è´¥ï¼åé¦åæ°åå ï¼{response.Message}"); |
| | | //} |
| | | |
| | | WebResponseContent content; |
| | | switch (task.TaskType) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"任塿å¨å®æå¤±è´¥ï¼æªé
ç½®MES任塿å¨å®æå馿¥å£"); |
| | | case (int)TaskRelocationTypeEnum.Relocation: |
| | | content = MES_TransferCompletionFeedback(task); |
| | | break; |
| | | case (int)TaskInboundTypeEnum.Inbound: |
| | | content = TaskCompletionFeedback(task); |
| | | break; |
| | | case (int)TaskOutboundTypeEnum.Outbound: |
| | | content = TaskCompletionFeedback(task); |
| | | break; |
| | | default: return MESresponse($"ä»»å¡ç±»åé误ï¼ä»»å¡å·ï¼{task.TaskNum}", false, 0); |
| | | } |
| | | var MES = new |
| | | { |
| | | businessId = task.MESbusinessId, |
| | | taskId = task.MEStaskId, |
| | | palletCode = task.PalletCode |
| | | }; |
| | | var MESrespon = HttpHelper.Post(MESmockComplete, JsonConvert.SerializeObject(MES)); |
| | | if (respon == null) |
| | | if (!content.Status) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"MESè°åæ¥å£å¤±è´¥ï¼åé¦åæ°ä¸ºç©º"); |
| | | } |
| | | var MESresponse = JsonConvert.DeserializeObject<ApiResponse<object>>(MESrespon); |
| | | if (!MESresponse.Success) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"MESè°åæ¥å£å¤±è´¥ï¼åé¦åæ°åå ï¼{response.Message}"); |
| | | return MESresponse($"æå¨åMESæ¥å£æ¥å®æå¤±è´¥{task.TaskNum}", false, 0); |
| | | } |
| | | _unitOfWorkManage.CommitTran(); |
| | | return webResponse.OK("任塿å¨å®ææå"); |
| | | return MESresponse($"任塿å¨å®ææå{task.TaskNum}", true, 1); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"任塿å¨å®æå¤±è´¥ï¼åå ï¼{ex.Message}"); |
| | | return MESresponse($"任塿å¨å®æå¤±è´¥ï¼åå ï¼{ex.Message}", false, 0); |
| | | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·å宿¶ä»»å¡å表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent GetRealTimeTasks() |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | // æ¥è¯¢ææ°ç10æ¡ä»»å¡è®°å½ |
| | | var tasks = Repository.Db.Queryable<Dt_Task>() |
| | | .OrderByDescending(x => x.CreateDate) |
| | | .Take(10) |
| | | .ToList(); |
| | | |
| | | // 转æ¢ä»»å¡æ°æ®ä¸ºå端éè¦çæ ¼å¼ |
| | | var result = tasks.Select(task => { |
| | | // 转æ¢ä»»å¡ç±»å |
| | | string taskTypeText = "æªç¥"; |
| | | switch ((TaskInboundTypeEnum)task.TaskType) |
| | | { |
| | | case TaskInboundTypeEnum.Inbound: |
| | | taskTypeText = "å
¥åº"; |
| | | break; |
| | | case (TaskInboundTypeEnum)TaskOutboundTypeEnum.Outbound: |
| | | taskTypeText = "åºåº"; |
| | | break; |
| | | case (TaskInboundTypeEnum)TaskRelocationTypeEnum.Relocation: |
| | | taskTypeText = "ç§»åº"; |
| | | break; |
| | | } |
| | | |
| | | // 转æ¢ä»»å¡ç¶æ |
| | | string taskStatusText = "æªç¥"; |
| | | if ((TaskOutStatusEnum)task.TaskStatus == TaskOutStatusEnum.OutNew) { |
| | | taskStatusText = "å¾
å¤ç"; |
| | | } else if ( |
| | | (TaskInStatusEnum)task.TaskStatus == TaskInStatusEnum.Line_InExecuting || |
| | | (TaskInStatusEnum)task.TaskStatus == TaskInStatusEnum.SC_InExecuting || |
| | | (TaskOutStatusEnum)task.TaskStatus == TaskOutStatusEnum.SC_OutExecuting || |
| | | (TaskOutStatusEnum)task.TaskStatus == TaskOutStatusEnum.Line_OutExecuting |
| | | ) { |
| | | taskStatusText = "è¿è¡ä¸"; |
| | | } else if ( |
| | | (TaskInStatusEnum)task.TaskStatus == TaskInStatusEnum.InFinish || |
| | | (TaskOutStatusEnum)task.TaskStatus == TaskOutStatusEnum.OutFinish |
| | | ) { |
| | | taskStatusText = "已宿"; |
| | | } |
| | | |
| | | return new { |
| | | id = task.TaskId, |
| | | taskNum = task.TaskNum, |
| | | taskType = taskTypeText, |
| | | sourceAddress = task.SourceAddress, |
| | | targetAddress = task.TargetAddress, |
| | | taskStatus = taskStatusText |
| | | }; |
| | | }).ToList(); |
| | | |
| | | return content.OK(data: result); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | } |