| | |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.Extensions.Logging; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical; |
| | | using Org.BouncyCastle.Math.EC; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.Log; |
| | | using WIDESEA_Common.TaskEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.Enums; |
| | | using WIDESEA_Core.Helper; |
| | |
| | | public partial class TaskService |
| | | { |
| | | //è¾é线任å¡ä¸å |
| | | public WCSginseng PLC_IssueTasks(int TaskId,int AreaNo,string ContainerNo,int ContainerType,string FromPoint,string ToPoint) |
| | | public WCSginseng PLC_IssueTasks(int TaskId,int AreaNo,string TransNo, string ContainerNo,int ContainerType,string FromPoint,string ToPoint,string ToStation) |
| | | { |
| | | WCSginseng WCS_Parame = new WCSginseng(); |
| | | try |
| | |
| | | WCStask wcstaskinfo = new WCStask(); |
| | | wcstaskinfo.TaskId = TaskId; |
| | | wcstaskinfo.AreaNo = AreaNo; |
| | | wcstaskinfo.TransNo = TransNo; |
| | | wcstaskinfo.ContainerNo = ContainerNo; |
| | | wcstaskinfo.ContainerType = ContainerType; |
| | | wcstaskinfo.FromPoint = FromPoint; |
| | | wcstaskinfo.ToPoint = ToPoint; |
| | | wcstaskinfo.ToStation = ToStation; |
| | | WriteLog.Write_Log("WCS_è¾é线任å¡ä¸å", $"ä»»å¡ä¸åä¿¡æ¯", "æåï¼ä¸ååæ°", $"ä¸åçåæ°ï¼{wcstaskinfo.ToJson()}"); |
| | | WCS_Parame = HttpHelper.Post<WCSginseng>(WCS_SendConveyorTask, wcstaskinfo, "è¾é线任å¡ä¸å"); |
| | | WriteLog.Write_Log("WCS_è¾é线任å¡ä¸å", $"ä»»å¡ä¸åä¿¡æ¯", "æåï¼åå", $"wcsååï¼{WCS_Parame.ToJson()}"); |
| | | return WCS_Parame; |
| | | } |
| | | catch (Exception ex) |
| | |
| | | WCS_Parame.IsSuccess = false; |
| | | WCS_Parame.Code = "-1"; |
| | | WCS_Parame.Message = $"è¾é线任å¡è°åä¸å失败ï¼WMSç³»ç»ä¸åä»»å¡å¤±è´¥,ä»»å¡å·ï¼{TaskId}ï¼åå ï¼{ex.Message}"; |
| | | WriteLog.Write_Log("WCS_è¾é线任å¡ä¸å", $"ä»»å¡ä¸åä¿¡æ¯", "失败", $"è¾é线任å¡è°åä¸å失败ï¼WMSç³»ç»ä¸åä»»å¡å¤±è´¥,ä»»å¡å·ï¼{TaskId}ï¼åå ï¼{ex.Message}"); |
| | | return WCS_Parame; |
| | | } |
| | | } |
| | | |
| | | //å åæºä»»å¡ä¸å |
| | | public WCSginseng SC_IssueTasks(int TaskId, int AreaNo, string ContainerNo, int ContainerType, string FromPoint, string ToPoint) |
| | | public WCSginseng SC_IssueTasks(int TaskId, int AreaNo, string TransNo, string ContainerNo, int ContainerType, string FromPoint, string ToPoint, string ToStation) |
| | | { |
| | | WCSginseng WCS_Parame = new WCSginseng(); |
| | | try |
| | |
| | | WCStask wcstaskinfo = new WCStask(); |
| | | wcstaskinfo.TaskId = TaskId; |
| | | wcstaskinfo.AreaNo = AreaNo; |
| | | wcstaskinfo.TransNo = TransNo; |
| | | wcstaskinfo.ContainerNo = ContainerNo; |
| | | wcstaskinfo.ContainerType = ContainerType; |
| | | wcstaskinfo.FromPoint = FromPoint; |
| | | wcstaskinfo.ToPoint = ToPoint; |
| | | wcstaskinfo.ToStation = ToStation; |
| | | |
| | | WriteLog.Write_Log("WCS_å åæºä»»å¡ä¸å", $"ä»»å¡ä¸åä¿¡æ¯", "æåï¼ä¸ååæ°", $"ä¸åçåæ°ï¼{wcstaskinfo.ToJson()}"); |
| | | WCS_Parame = HttpHelper.Post<WCSginseng>(WCS_SendStackerTask, wcstaskinfo, "å åæºä»»å¡ä¸å"); |
| | | WriteLog.Write_Log("WCS_å åæºä»»å¡ä¸å", $"ä»»å¡ä¸åä¿¡æ¯", "æåï¼åå", $"wcsååï¼{WCS_Parame.ToJson()}"); |
| | | return WCS_Parame; |
| | | } |
| | | catch (Exception ex) |
| | |
| | | WCS_Parame.IsSuccess = false; |
| | | WCS_Parame.Code = "-1"; |
| | | WCS_Parame.Message = $"å åæºä»»å¡è°åä¸å失败ï¼WMSç³»ç»ä¸åä»»å¡å¤±è´¥,ä»»å¡å·ï¼{TaskId}ï¼åå ï¼{ex.Message}"; |
| | | WriteLog.Write_Log("WCS_å åæºä»»å¡ä¸å", $"ä»»å¡ä¸åä¿¡æ¯", "失败", $"å åæºä»»å¡è°åä¸å失败ï¼WMSç³»ç»ä¸åä»»å¡å¤±è´¥,ä»»å¡å·ï¼{TaskId}ï¼åå ï¼{ex.Message}"); |
| | | return WCS_Parame; |
| | | } |
| | | } |
| | | |
| | | //WCSè·åä»»å¡è¿è¡åé¦ |
| | | public WebResponseContent PalletInboundTask(WCSTaskDTO wCSTask) |
| | | { |
| | | |
| | | WriteLog.Write_Log("WCS_è¾é线请æ±å
¥åº", $"ä»»å¡ä¿¡æ¯", "æ¥æ¶åæ°", $"åæ°ï¼{wCSTask.ToJson()}"); |
| | | WebResponseContent webResponse = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_Task task = BaseDal.QueryData(x => x.PalletCode == wCSTask.PalletCode).FirstOrDefault(); |
| | | if (task == null) |
| | | return webResponse.Error($"æªæ¾å°ä»»å¡ä¿¡æ¯ï¼æçæ¡ç ï¼{wCSTask.PalletCode}"); |
| | | |
| | | //Dt_Task Outtask = BaseDal.QueryData(x => x.TargetAddress == task.SourceAddress).FirstOrDefault(); |
| | | // å¤çå°åè½¬æ¢ |
| | | string targetAddress = wCSTask.FromPoint; |
| | | if (targetAddress == "1104") |
| | | { |
| | | targetAddress = "1103"; |
| | | } |
| | | else if (targetAddress == "1102") |
| | | { |
| | | targetAddress = "1101"; |
| | | } |
| | | |
| | | Dt_Task Outtask = BaseDal.QueryData(x => x.TargetAddress == targetAddress).FirstOrDefault(); |
| | | if (Outtask != null) return webResponse.Error($"å½åå·²ææ¥è¯¥ç®æ ä½ç½®{wCSTask.FromPoint}çä»»å¡ï¼ä¸å¯è¿è¡å
¥åºï¼æçæ¡ç ï¼{wCSTask.PalletCode}", 501); |
| | | |
| | | if (task.PalletType != wCSTask.ContainerType.ToString()) |
| | | { |
| | | return webResponse.Error($"æçç±»åä¸å¹é
ï¼å½åä»»å¡ä¸æçç±»å为:{task.PalletType}ï¼WCS䏿¥ç±»å为ï¼{wCSTask.ContainerType}ï¼æçæ¡ç ï¼{wCSTask.PalletCode}", 502); |
| | | } |
| | | // ä»»å¡éå |
| | | if (task.TaskStatus == (int)InTaskStatusEnum.PLC_InExecuting) |
| | | { |
| | | WCStask wcstaskinfo = new WCStask(); |
| | | wcstaskinfo.TaskId = task.TaskId; |
| | | wcstaskinfo.AreaNo = int.Parse(task.Roadway); |
| | | wcstaskinfo.TransNo = task.TaskNum; |
| | | wcstaskinfo.ContainerNo = task.PalletCode; |
| | | wcstaskinfo.ContainerType = int.Parse(task.PalletType); |
| | | wcstaskinfo.FromPoint = wCSTask.FromPoint; |
| | | wcstaskinfo.ToPoint = task.NextAddress; |
| | | wcstaskinfo.ToStation = ""; |
| | | WriteLog.Write_Log("WCS_è¾é线请æ±å
¥åº", $"ä»»å¡ä¿¡æ¯", $"è¿åè¾é线任å¡ä¿¡æ¯", $"è¿åç»è¾é线çä»»å¡ä¿¡æ¯ï¼{wcstaskinfo.ToJson()}"); |
| | | return webResponse.OK(data: wcstaskinfo); |
| | | } |
| | | if (task.TargetAddress!="" && task.TargetAddress!=null) |
| | | { |
| | | int taskcount = BaseDal.QueryData(x => x.TargetAddress == task.TargetAddress && x.PalletCode != task.PalletCode).Count(); |
| | | if (taskcount > 0) |
| | | return webResponse.Error($"å½åå·²æå»è¯¥ç®æ ä½ç½®çä»»å¡äºï¼ä¸å¯ä¸åï¼ï¼ï¼"); |
| | | } |
| | | |
| | | // ä¸ä¼ EMS |
| | | if (task.TaskStatus == (int)InTaskStatusEnum.InNew) |
| | | { |
| | | task.TaskStatus = (int)InTaskStatusEnum.PLC_InExecuting; |
| | | task.Dispatchertime = DateTime.Now; |
| | | MES_parameter mES_Parameter = InStoreDocCallback(task.TaskNum, "Start", "æä½æå", task.PalletCode, ""); |
| | | if (mES_Parameter.Result == "Y") //è®°å¾æ¹åæ¥ |
| | | { |
| | | WCStask wcstaskinfo = new WCStask(); |
| | | wcstaskinfo.TaskId = task.TaskId; |
| | | wcstaskinfo.AreaNo = int.Parse(task.Roadway); |
| | | wcstaskinfo.TransNo = task.TaskNum; |
| | | wcstaskinfo.ContainerNo = task.PalletCode; |
| | | wcstaskinfo.ContainerType = int.Parse(task.PalletType); |
| | | wcstaskinfo.FromPoint = wCSTask.FromPoint; |
| | | wcstaskinfo.ToPoint = task.NextAddress; |
| | | wcstaskinfo.ToStation = ""; |
| | | |
| | | //è¿è¡ä¿®æ¹æ°æ®åº |
| | | BaseDal.UpdateData(task); |
| | | |
| | | WriteLog.Write_Log("WCS_è¾é线请æ±å
¥åº", $"ä»»å¡ä¿¡æ¯", "è¿åè¾é线任å¡ä¿¡æ¯", $"è¿åç»è¾é线çä»»å¡ä¿¡æ¯ï¼{wcstaskinfo.ToJson()}"); |
| | | return webResponse.OK(data: wcstaskinfo); |
| | | } |
| | | else |
| | | { |
| | | |
| | | return webResponse.Error("ä¸ä¼ MES失败ï¼åå ï¼" + mES_Parameter.ResultMsg); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return webResponse.Error($"ä¸åè¾é线任å¡å¤±è´¥ï¼å½åæçæ¡ç ï¼{task.PalletCode},ä¸å¨æ°å»ºä¸ï¼ä¸å¯éå¤ä¸å"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteLog.Write_Log("WCS_è¾é线请æ±å
¥åº", $"ä»»å¡ä¿¡æ¯", "失败", $"ä»»å¡è·å失败ï¼wmsç³»ç»æ
éï¼åå ï¼{ex.Message}"); |
| | | return webResponse.Error("ä»»å¡è·å失败ï¼wmsç³»ç»æ
éï¼åå ï¼" + ex.Message); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |