| | |
| | | using NetTaste; |
| | | using Newtonsoft.Json; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using SqlSugar; |
| | | using System; |
| | |
| | | using System.Linq.Expressions; |
| | | using System.Reflection; |
| | | using System.Reflection.Metadata; |
| | | using System.Security.Policy; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Comm.Http; |
| | | using WIDESEA_Common.Log; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.BaseServices; |
| | | using WIDESEAWCS_Core.Enums; |
| | | using WIDESEAWCS_Core.Utilities; |
| | | using WIDESEAWCS_DTO.Enum; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using static Microsoft.IO.RecyclableMemoryStreamManager; |
| | | |
| | | namespace WIDESEAWCS_TaskInfoService |
| | | { |
| | |
| | | } |
| | | |
| | | public string urlWMSTask = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlWMSTask"]; |
| | | public string urlTaskCompleted = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlTaskCompleted"]; |
| | | public string urlWMSMovelibraryTask = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlWMSMovelibraryTask"]; |
| | | public string urlQueryinventory = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlQueryinventory"]; |
| | | public string urlEmptyOutbound = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlEmptyOutbound"]; |
| | | public string urlRawmaterialout = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlRawmaterialout"]; |
| | | public string urlPalletQueryinventory = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlPalletQueryinventory"]; |
| | | /// <summary> |
| | | /// æ¥æ¶WMSä»»å¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="taskDTOs">WMSä»»å¡å¯¹è±¡éå</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | public WebResponseContent ReceiveWMSTask([NotNull]List<WMSTaskDTO> taskDTOs) |
| | | public WebResponseContent ReceiveWMSTask([NotNull]List<Dt_Task> taskDTOs) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | |
| | | continue; |
| | | } |
| | | Dt_Task task = _mapper.Map<Dt_Task>(item); |
| | | task.Creater = "WMS"; |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | task.TaskNum = item.TaskNum; |
| | | task.TaskType = item.TaskType; |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | task.SourceAddress = item.SourceAddress; |
| | | task.TargetAddress = item.TargetAddress; |
| | | task.PalletCode = item.PalletCode; |
| | | task.Roadway = item.RoadWay; |
| | | task.CreateDate = DateTime.Now; |
| | | task.Grade = 1; |
| | | task.CurrentAddress = item.SourceAddress; |
| | | task.NextAddress = item.TargetAddress; |
| | | task.ModifyDate = DateTime.Now; |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) |
| | | { |
| | | task.TaskNum = item.TaskNum; |
| | | task.TaskType = item.TaskType; |
| | | task.TaskState = (int)TaskInStatusEnum.Line_InFinish; |
| | | task.SourceAddress = item.SourceAddress; |
| | | task.TargetAddress = item.TargetAddress; |
| | | task.PalletCode = item.PalletCode; |
| | | task.Roadway = item.RoadWay; |
| | | task.CreateDate = DateTime.Now; |
| | | task.Grade = 1; |
| | | task.CurrentAddress = item.SourceAddress; |
| | | task.NextAddress = item.TargetAddress; |
| | | task.ModifyDate = DateTime.Now; |
| | | }else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) |
| | | { |
| | | task.TaskNum = item.TaskNum; |
| | | task.TaskType = item.TaskType; |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | task.SourceAddress = item.SourceAddress; |
| | | task.TargetAddress = item.TargetAddress; |
| | | task.PalletCode = item.PalletCode; |
| | | task.Roadway = item.RoadWay; |
| | | task.CreateDate = DateTime.Now; |
| | | task.Grade = 1; |
| | | task.CurrentAddress = item.SourceAddress; |
| | | task.NextAddress = item.TargetAddress; |
| | | task.ModifyDate = DateTime.Now; |
| | | } |
| | | tasks.Add(task); |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | task.Roadway = task.Roadway == "1" ? task.Roadway = "SC01" : task.Roadway = "SC02"; |
| | | task.CreateDate = DateTime.Now; |
| | | tasks.Add(task); |
| | | } |
| | | BaseDal.AddData(tasks); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(tasks.Select(x => x.TaskNum).ToList(), "æ¥æ¶WMSä»»å¡"); |
| | |
| | | { |
| | | content = WebResponseContent.Instance.Error($"任塿¥æ¶é误,é误信æ¯:{ex.Message}"); |
| | | } |
| | | finally |
| | | { |
| | | WriteLog.GetLog("æ¥æ¶ä»»å¡").Write(JsonConvert.SerializeObject(content), "æ¥æ¶ä»»å¡"); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | |
| | | /// <param name="palletCode">æçå·</param> |
| | | /// <param name="sourceAddress">èµ·å§å°å</param> |
| | | /// <returns></returns> |
| | | public class GenerateInv |
| | | { |
| | | public string SourceAddress { get; set; } |
| | | public string PalletCode { get; set; } |
| | | } |
| | | |
| | | public class GenerateInv3 |
| | | { |
| | | |
| | | public string PalletCode { get; set; } |
| | | public int outCount { get; set; } |
| | | public string TargetAddress { get; set; } |
| | | } |
| | | public WebResponseContent RequestWMSTask(string palletCode, string sourceAddress) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | |
| | | /*WMSTaskDTO taskDTO = new WMSTaskDTO() |
| | | GenerateInv generate = new GenerateInv() |
| | | { |
| | | TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), |
| | | Grade = 1, |
| | | PalletCode = palletCode, |
| | | SourceAddress = sourceAddress, |
| | | SourceAddress=sourceAddress, |
| | | PalletCode = palletCode |
| | | }; |
| | | var response = HttpHelper.Post<WebResponseContent>(urlWMSTask, taskDTO, "çæä»»å¡");*/ |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO() |
| | | content = HttpHelper.Post<WebResponseContent>($"{urlWMSTask}", generate); |
| | | Dt_Task task = new Dt_Task(); |
| | | if (content != null) |
| | | { |
| | | TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), |
| | | Grade = 1, |
| | | PalletCode = palletCode, |
| | | RoadWay = "SC01", |
| | | SourceAddress = sourceAddress, |
| | | TargetAddress = "SC01", |
| | | TaskState = (int)TaskInStatusEnum.InNew, |
| | | Id = 0, |
| | | TaskType = (int)TaskInboundTypeEnum.Inbound |
| | | }; |
| | | |
| | | if (content.Status) |
| | | { |
| | | task = JsonConvert.DeserializeObject<Dt_Task>(content.Data.ToString()); |
| | | task.TaskState = (int)TaskInStatusEnum.Line_InFinish; |
| | | task.Roadway = task.Roadway == "1" ? task.Roadway = "SC01" : task.Roadway = "SC02"; |
| | | BaseDal.AddData(task); |
| | | return content = WebResponseContent.Instance.Error(); |
| | | } |
| | | } |
| | | return content = WebResponseContent.Instance.Error(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | | return content = WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | /// <summary> |
| | | /// è¿è¡ç»ç |
| | | /// </summary> |
| | | /// <param name="palletCode"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent ToPlatform(string palletCode) |
| | | { |
| | | try |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | GenerateInv generate = new GenerateInv() |
| | | { |
| | | SourceAddress = "", |
| | | PalletCode = palletCode |
| | | }; |
| | | |
| | | return content = HttpHelper.Post<WebResponseContent>($"{urlQueryinventory}", generate); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | throw; |
| | | } |
| | | |
| | | /*WebResponseContent content = new WebResponseContent(); |
| | | GenerateInv generate = new GenerateInv() |
| | | { |
| | | SourceAddress = "", |
| | | PalletCode = palletCode |
| | | }; |
| | | content = HttpHelper.Post<WebResponseContent>($"{urlQueryinventory}", generate); |
| | | if (content != null) |
| | | { |
| | | if (content.Status) |
| | | { |
| | | return content; |
| | | } |
| | | } |
| | | return content = WebResponseContent.Instance.Error();*/ |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="palletCode">æçå·</param> |
| | | /// <param name="sourceAddress">èµ·å§å°å</param> |
| | | /// <returns></returns> |
| | | public WebResponseContent RequestWMSTask2() |
| | | public WebResponseContent RequestWMSTask2(string palletCode,string sourceAddress) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | //æµè¯ |
| | | WMSTaskDTO taskDTO2 = new WMSTaskDTO() |
| | | GenerateInv generate = new GenerateInv() |
| | | { |
| | | TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), |
| | | Grade = 1, |
| | | PalletCode = "PalletCode20241030162310", |
| | | SourceAddress = "087-056-056", |
| | | RoadWay = "SC01", |
| | | TargetAddress = "102", |
| | | TaskState = (int)TaskRelocationStatusEnum.RelocationNew, |
| | | Id = 0, |
| | | TaskType = (int)TaskRelocationTypeEnum.Relocation, |
| | | |
| | | |
| | | SourceAddress = sourceAddress, |
| | | PalletCode = palletCode |
| | | }; |
| | | content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO2 }); |
| | | content = HttpHelper.Post<WebResponseContent>($"{urlEmptyOutbound}", generate); |
| | | Dt_Task task = new Dt_Task(); |
| | | if (content != null) |
| | | { |
| | | if (content.Status) |
| | | { |
| | | task = JsonConvert.DeserializeObject<Dt_Task>(content.Data.ToString()); |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | task.TaskType = (int)TaskOutboundTypeEnum.Outbound; |
| | | task.Roadway = task.Roadway == "1" ? task.Roadway = "SC01" : task.Roadway = "SC02"; |
| | | BaseDal.AddData(task); |
| | | return content = WebResponseContent.Instance.OK(); |
| | | } |
| | | else |
| | | { |
| | | WriteLog.GetLog("PLCæ¥å¿åºåºæ¥å¿").Write($"空æåºåºå¤±è´¥ï¼è¯¦æ
ï¼{content.Message}", "éè¦ç©ºæ"); |
| | | } |
| | | } |
| | | return content = WebResponseContent.Instance.Error(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | | return content = WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æçå·ãèµ·å§å°ååWMS请æ±ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="palletCode">æçå·</param> |
| | | /// <param name="sourceAddress">èµ·å§å°å</param> |
| | | /// <returns></returns> |
| | | public WebResponseContent RequestWMSTask3(string palletCode, int outCount,string Loc) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | if (outCount==0) |
| | | { |
| | | outCount = 1; |
| | | } |
| | | GenerateInv3 generate = new GenerateInv3() |
| | | { |
| | | PalletCode = palletCode, |
| | | outCount = outCount, |
| | | TargetAddress= Loc |
| | | }; |
| | | content = HttpHelper.Post<WebResponseContent>($"{urlRawmaterialout}", generate); |
| | | Dt_Task task = new Dt_Task(); |
| | | if (content != null) |
| | | { |
| | | if (content.Status) |
| | | { |
| | | task = JsonConvert.DeserializeObject<Dt_Task>(content.Data.ToString()); |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | task.TaskType = (int)TaskOutboundTypeEnum.Outbound; |
| | | task.Roadway = task.Roadway == "1" ? task.Roadway = "SC01" : task.Roadway = "SC02"; |
| | | BaseDal.AddData(task); |
| | | return content = WebResponseContent.Instance.OK(); |
| | | } |
| | | } |
| | | return content = WebResponseContent.Instance.Error(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content = WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | public WebResponseContent RequestWMSTask4() |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | |
| | | return content = HttpHelper.Get<WebResponseContent>($"{urlPalletQueryinventory}"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content = WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// æ ¹æ®æ·±åºä½åwmsç³è¯·å¤ææµ
åºä½æ¯å¦æè´§ï¼æ¯å¦éè¦è¿è¡ç§»åºæä½ |
| | | /// </summary> |
| | | /// <param name="palletCode">æçå·</param> |
| | | /// <param name="sourceAddress">èµ·å§å°å</param> |
| | | /// <returns></returns> |
| | | public Dt_Task RequestWMSTaskMovelibrary(Dt_Task _Task) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | content = HttpHelper.Get<WebResponseContent>($"{urlWMSMovelibraryTask}?TaskNum={_Task.TaskNum}&SourceAddress={_Task.SourceAddress}"); |
| | | Dt_Task task = new Dt_Task(); |
| | | if (content != null) |
| | | { |
| | | if (content.Status) |
| | | { |
| | | if(content.Data != null) |
| | | { |
| | | task = JsonConvert.DeserializeObject<Dt_Task>(content.Data.ToString()); |
| | | if (task.TaskNum != _Task.TaskNum) |
| | | { |
| | | |
| | | task.TaskState = (int)TaskRelocationTypeEnum.Relocation; |
| | | task.Roadway = task.Roadway == "1" ? task.Roadway = "SC01" : task.Roadway = "SC02"; |
| | | task.TaskNum = task.TaskNum; |
| | | task.Grade = 3; |
| | | task.TaskType= (int)TaskRelocationTypeEnum.Relocation; |
| | | BaseDal.AddData(task); |
| | | return task; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return null; |
| | | WriteLog.GetLog("PLCæ¥å¿").Write($"失败信æ¯ï¼{content.Message}", "ç§»åºä¿¡æ¯"); |
| | | } |
| | | } |
| | | |
| | | return _Task; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | else |
| | | return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy); |
| | | } |
| | | public Dt_Task IngStackerCraneTask(string deviceNo) |
| | | { |
| | | //string deviceNot = deviceNo == "SC01" ? "1" : "2"; |
| | | return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskState == (int)TaskInStatusEnum.SC_InExecuting); |
| | | } |
| | | |
| | | public Dt_Task IngStackerCraneTask2(string deviceNo) |
| | | { |
| | | //string deviceNot = deviceNo == "SC01" ? "1" : "2"; |
| | | try |
| | | { |
| | | return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®è®¾å¤ç¼å·ãå½åå°åæç
§ä¼å
级以åå建æ¶é´æåºæ¥è¯¢ä»»å¡æ± å
¥åºç±»åçæ°å¢çä»»å¡ |
| | |
| | | public List<Dt_Task> QueryStackerCraneOutTasks(string deviceNo, List<string> outStationCodes) |
| | | { |
| | | return BaseDal.QueryData(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew && outStationCodes.Contains(x.CurrentAddress), TaskOrderBy); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®åºåºè´§ä½æ¥è¯¢æ¯å¦æå½åæµ
è´§ä½ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="deviceNo">设å¤ç¼å·</param> |
| | | /// <param name="currentAddress">å½åå°å</param> |
| | | /// <returns>è¿åä»»å¡å®ä½å¯¹è±¡éåï¼å¯è½ä¸ºnull</returns> |
| | | public List<Dt_Task> QueryStationIsOccupiedOutTasks(string deviceNo, string SourceAddress) |
| | | { |
| | | return BaseDal.QueryData(x => x.Roadway == deviceNo && SourceAddress.Contains(x.SourceAddress), TaskOrderBy); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | try |
| | | { |
| | | int oldState = task.TaskState; |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | if (task.TaskState >= (int)TaskOutStatusEnum.OutFinish) |
| | | { |
| | |
| | | task.Dispatchertime = DateTime.Now; |
| | | } |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) |
| | | else if (task.TaskType == (int)TaskInboundTypeEnum.Inbound) |
| | | { |
| | | if (task.TaskState >= (int)TaskInStatusEnum.InFinish) |
| | | { |
| | |
| | | { |
| | | task.Dispatchertime = DateTime.Now; |
| | | } |
| | | if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish) |
| | | if (task.TaskState == (int)TaskRelocationTypeEnum.Relocation) |
| | | { |
| | | Random random = new Random(); |
| | | task.CurrentAddress = task.NextAddress; |
| | |
| | | task.TargetAddress = task.NextAddress; |
| | | } |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) |
| | | else if (task.TaskType == (int)TaskInboundTypeEnum.Inbound) |
| | | { |
| | | if (task.TaskState <= (int)TaskRelocationStatusEnum.SC_RelocationFinish) |
| | | { |
| | |
| | | /// </summary> |
| | | /// <param name="taskNum">ä»»å¡ç¼å·</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | public class GenerateInv2 |
| | | { |
| | | public string PalletCode { get; set; } |
| | | public string SourceAddress { get; set; } |
| | | public string TargetAddress { get; set; } |
| | | } |
| | | public WebResponseContent StackCraneTaskCompleted(int taskNum) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); |
| | | |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting) |
| | | if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting) |
| | | { |
| | | List<Dt_Router> routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress); |
| | | if (!routers.Any()) return WebResponseContent.Instance.Error($"æªæ¾å°è®¾å¤è·¯ç±ä¿¡æ¯"); |
| | | /*List<Dt_Router> routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress); |
| | | if (!routers.Any()) return WebResponseContent.Instance.Error($"æªæ¾å°è®¾å¤è·¯ç±ä¿¡æ¯");*/ |
| | | |
| | | content = HttpHelper.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}&HowWorks=2"); |
| | | task.TaskState = (int)TaskOutStatusEnum.OutFinish; |
| | | task.ModifyDate = DateTime.Now; |
| | | BaseDal.DeleteData(task); |
| | |
| | | |
| | | //æä¸èèå¤ä¸ªåºåºå£ |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting) |
| | | else if (task.TaskType == (int)TaskInboundTypeEnum.Inbound && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting) |
| | | { |
| | | content = HttpHelper.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}&HowWorks=2"); |
| | | //todo |
| | | //int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>(); |
| | | task.TaskState = (int)TaskInStatusEnum.InFinish; |
| | |
| | | _task_HtyService.AddTaskHty(task); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å
¥åºå®æ"); |
| | | |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO() |
| | | { |
| | | TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), |
| | | Grade = 1, |
| | | PalletCode = task.PalletCode + "S", |
| | | RoadWay = "SC01", |
| | | SourceAddress = task.TargetAddress, |
| | | TargetAddress = "CLOutAreaA", |
| | | TaskState = (int)TaskOutStatusEnum.OutNew, |
| | | Id = 0, |
| | | TaskType = (int)TaskOutboundTypeEnum.Outbound |
| | | }; |
| | | |
| | | content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) |
| | | else if (task.TaskType == (int)TaskRelocationTypeEnum.Relocation) |
| | | { |
| | | /*GenerateInv2 generate = new GenerateInv2() |
| | | { |
| | | PalletCode = task.PalletCode, |
| | | SourceAddress = task.SourceAddress, |
| | | TargetAddress = task.TargetAddress |
| | | |
| | | }; |
| | | content = HttpHelper.Post<WebResponseContent>($"{urlTaskCompleted}", generate);*/ |
| | | content = HttpHelper.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}&HowWorks=2"); |
| | | task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish; |
| | | task.ModifyDate = DateTime.Now; |
| | | BaseDal.DeleteData(task); |
| | | _task_HtyService.AddTaskHty(task); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"åºåºå®æ"); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"ç§»åºå®æ"); |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OtherGroup) |
| | | { |
| | |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// å 餿°æ® |
| | | /// </summary> |
| | | /// <param name="keys">䏻鮿°ç»</param> |
| | | /// <returns></returns> |
| | | public virtual WebResponseContent DeleteData(object[] keys) |
| | | { |
| | | try |
| | | { |
| | | List<Dt_Task> tasks = BaseDal.QureyDataByIds(keys); |
| | | foreach (Dt_Task task in tasks) |
| | | { |
| | | _task_HtyService.AddTaskHty(task); |
| | | } |
| | | |
| | | |
| | | if (typeof(Dt_Task).GetNavigatePro() == null) |
| | | return BaseDal.DeleteDataByIds(keys) ? WebResponseContent.Instance.OK() : WebResponseContent.Instance.Error(); |
| | | else |
| | | { |
| | | if (keys != null) |
| | | { |
| | | Type detailType = typeof(Dt_Task).GetDetailType(); |
| | | string name = typeof(Dt_Task).GetMainIdByDetail(); |
| | | List<object> dynamicDelKeys = new List<object>(); |
| | | |
| | | for (int i = 0; i < keys.Length; i++) |
| | | { |
| | | dynamicDelKeys.Add(keys[i]); |
| | | } |
| | | ((SqlSugarClient)BaseDal.Db).BeginTran(); |
| | | |
| | | if (dynamicDelKeys.Count > 0) |
| | | BaseDal.Db.Deleteable<object>().AS(detailType.Name).Where($"{name} in (@id)", new { id = dynamicDelKeys.ToArray() }).ExecuteCommandHasChange(); |
| | | |
| | | BaseDal.DeleteDataByIds(keys); |
| | | |
| | | ((SqlSugarClient)BaseDal.Db).CommitTran(); |
| | | |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | else |
| | | { |
| | | return WebResponseContent.Instance.Error("åæ°é误"); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | ((SqlSugarClient)BaseDal.Db).RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public WebResponseContent ReceiveWCSTask(int tasknum) |
| | | { |
| | | Dt_Task tasks = BaseDal.QueryFirst(x => x.TaskNum == tasknum); |
| | | try |
| | | { |
| | | _task_HtyService.AddTaskHty(tasks); |
| | | BaseDal.DeleteData(tasks); |
| | | WriteLog.Write_Log("WMSæå¨å é¤ä»»å¡", "å 餿å", $"ç³è¯·å é¤çæ¡ç ï¼{tasks.TaskNum},æçæ¡ç ï¼{tasks.PalletCode}", new { ä¿¡æ¯ = "å 餿å" }); |
| | | return WebResponseContent.Instance.OK(); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteLog.Write_Log("WMSæå¨å é¤ä»»å¡","å é¤å¤±è´¥", $"ç³è¯·å é¤çæ¡ç ï¼{tasks.TaskNum},æçæ¡ç ï¼{tasks.PalletCode}", new { ä¿¡æ¯ = ex.Message }); |
| | | return WebResponseContent.Instance.Error(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |