From de9b341ccc98d554f0c324478acab26d7d3cdafd Mon Sep 17 00:00:00 2001 From: qinchulong <qinchulong@hnkhzn.com> Date: 星期六, 01 三月 2025 21:49:34 +0800 Subject: [PATCH] 新增错误信息显示 --- 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json | 136 +++++++++++- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/ErrorInfoController.cs | 18 + 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_errormsginfoService.cs | 26 ++ 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTTaskCommand.cs | 6 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs | 3 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_LocationInfo.cs | 2 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_ErrormsginfoService.cs | 14 + 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/StockEnum/stockEnum.cs | 24 ++ 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 166 ++++++++++++++-- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs | 138 ++++++++----- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs | 1 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs | 2 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs | 4 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_errorInfo.cs | 35 +++ 14 files changed, 476 insertions(+), 99 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" index eb3eacf..57ecfaa 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" @@ -3,16 +3,40 @@ "WorkspaceRootPath": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\", "Documents": [ { + "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\wmspart\\dt_locationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\wmspart\\dt_locationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\wmspart\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\wmspart\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\dt_errorinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\system\\dt_errorinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\dt_batchinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\system\\dt_batchinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\wideseawcs_model\\models\\wmspart\\dt_stockinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\wmspart\\dt_stockinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - }, - { "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" } ], "DocumentGroupContainers": [ @@ -22,43 +46,121 @@ "DocumentGroups": [ { "DockedWidth": 200, - "SelectedChildIndex": 1, + "SelectedChildIndex": 0, "Children": [ { "$type": "Document", - "DocumentIndex": 1, - "Title": "Dt_StockInfo.cs", - "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\WMSPart\\Dt_StockInfo.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\WMSPart\\Dt_StockInfo.cs", - "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\WMSPart\\Dt_StockInfo.cs", - "RelativeToolTip": "WIDESEAWCS_Model\\Models\\WMSPart\\Dt_StockInfo.cs", - "ViewState": "AQIAAAAAAAAAAAAAAADwvw4AAAAdAAAA", + "DocumentIndex": 0, + "Title": "Dt_LocationInfo.cs", + "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\WMSPart\\Dt_LocationInfo.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\WMSPart\\Dt_LocationInfo.cs", + "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\WMSPart\\Dt_LocationInfo.cs", + "RelativeToolTip": "WIDESEAWCS_Model\\Models\\WMSPart\\Dt_LocationInfo.cs", + "ViewState": "AQIAABEAAAAAAAAAAAAIwBoAAAAeAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-02-28T16:09:28.316Z", + "WhenOpened": "2025-03-01T13:24:50.229Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 0, + "DocumentIndex": 1, + "Title": "LocationInfoController.cs", + "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs", + "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs", + "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs", + "ViewState": "AQIAABQAAAAAAAAAAAAIwBMAAAAxAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-03-01T13:10:30.756Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "dt_batchInfo.cs", + "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\dt_batchInfo.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\dt_batchInfo.cs", + "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\dt_batchInfo.cs", + "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\dt_batchInfo.cs", + "ViewState": "AQIAAAMAAAAAAAAAAADwvxoAAAApAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-03-01T12:57:42.442Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "dt_errorInfo.cs", + "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\dt_errorInfo.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\dt_errorInfo.cs", + "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\dt_errorInfo.cs", + "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\dt_errorInfo.cs", + "ViewState": "AQIAAAAAAAAAAAAAAADwvxAAAAAVAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-03-01T12:57:28.109Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "TaskTypeEnum.cs", + "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs", + "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs", + "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs", + "ViewState": "AQIAAAkAAAAAAAAAAAAAACcAAAAQAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-03-01T10:49:19.145Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "TaskStatusEnum.cs", + "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs", + "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs", + "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs", + "ViewState": "AQIAAEMAAAAAAAAAAAAQwGAAAAAdAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-03-01T10:44:46.357Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "ITaskService.cs", + "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs", + "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs", + "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs", + "ViewState": "AQIAAFgAAAAAAAAAAAAjwGoAAAANAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-03-01T08:22:29.442Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 4, "Title": "TaskService.cs", "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs", "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs", "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs", "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs", - "ViewState": "AQIAADQAAAAAAAAAAAAIwEMAAAANAAAA", + "ViewState": "AQIAAKABAAAAAAAAAAAAAKkBAAAAAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-02-28T15:19:29.662Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 2, + "DocumentIndex": 5, "Title": "OHTJob.cs", "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs", "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs", "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs", "RelativeToolTip": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs", - "ViewState": "AQIAAHwAAAAAAAAAAAAYwIIAAAAiAAAA", + "ViewState": "AQIAAJEAAAAAAAAAAAArwKwAAAAlAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-02-28T15:12:12.623Z", "EditorCaption": "" diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/StockEnum/stockEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/StockEnum/stockEnum.cs" new file mode 100644 index 0000000..203e5bf --- /dev/null +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/StockEnum/stockEnum.cs" @@ -0,0 +1,24 @@ +锘縰sing System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace WIDESEAWCS_Common.StockEnum +{ + public enum stockEnum + { + /// <summary> + /// 绌洪棽 + /// </summary> + [Description("绌洪棽")] + Free = 0, + + /// <summary> + /// 閿佸畾 + /// </summary> + [Description("棰勫畾")] + Lock = 1, + } +} diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" index 5ceeb64..3200515 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" @@ -16,9 +16,9 @@ InNew = 200, /// <summary> - /// 澶╄溅鍙栬揣瀹屾垚 + /// 澶╄溅鍏ュ簱鍙栬揣瀹屾垚 /// </summary> - [Description("澶╄溅鍙栬揣瀹屾垚")] + [Description("澶╄溅鍏ュ簱鍙栬揣瀹屾垚")] Line_Ingrab = 210, /// <summary> diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_ErrormsginfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_ErrormsginfoService.cs" new file mode 100644 index 0000000..0fd302e --- /dev/null +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_ErrormsginfoService.cs" @@ -0,0 +1,14 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEAWCS_Core.BaseServices; +using WIDESEAWCS_Model.Models; + +namespace WIDESEAWCS_ISystemServices +{ + public interface Idt_ErrormsginfoService : IService<dt_errorInfo> + { + } +} diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" index f6f67ff..43097ed 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" @@ -29,6 +29,7 @@ using WIDESEAWCS_Model.Models; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core.BaseRepository; +using WIDESEAWCS_Model.Models.System; namespace WIDESEAWCS_ITaskInfoService { @@ -193,7 +194,7 @@ /// </summary> /// <param name="taskNum">浠诲姟缂栧彿</param> /// <returns>杩斿洖澶勭悊缁撴灉</returns> - WebResponseContent StackCraneTaskCompleted(int taskNum); + WebResponseContent StackCraneTaskCompleted(int taskNum,float weight); /// <summary> /// 鎭㈠鎸傝捣浠诲姟 diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs" index a529355..3b720bb 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs" @@ -11,7 +11,7 @@ /// <summary> /// 鎵规淇℃伅 /// </summary> - [SugarTable(nameof(dt_batchInfo), "搴撳瓨淇℃伅")] + [SugarTable(nameof(dt_batchInfo), "鎵规淇℃伅")] public class dt_batchInfo : BaseEntity { /// <summary> diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_errorInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_errorInfo.cs" new file mode 100644 index 0000000..e3cdc2c --- /dev/null +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_errorInfo.cs" @@ -0,0 +1,35 @@ +锘縰sing SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEAWCS_Core.DB.Models; + +namespace WIDESEAWCS_Model.Models +{ + /// <summary> + /// 閿欒淇℃伅 + /// </summary> + [SugarTable(nameof(dt_batchInfo), "閿欒淇℃伅")] + public class dt_errorInfo : BaseEntity + { + /// <summary> + /// 涓婚敭 + /// </summary> + [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")] + public int Id { get; set; } + + /// <summary> + /// 鎻忚堪 + /// </summary> + [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鎻忚堪")] + public string mesg { get; set; } + + /// <summary> + /// 閿欒淇℃伅 + /// </summary> + [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "閿欒淇℃伅")] + public string errormsg { get; set; } + } +} diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_LocationInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_LocationInfo.cs" index 593a0fd..37858d1 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_LocationInfo.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_LocationInfo.cs" @@ -23,7 +23,7 @@ /// <summary> /// 浠撳簱缂栧彿 /// </summary> - [SugarColumn(IsNullable = false, ColumnDescription = "浠撳簱缂栧彿")] + [SugarColumn(IsNullable = true, ColumnDescription = "浠撳簱缂栧彿")] public int WarehouseId { get; set; } /// <summary> diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/ErrorInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/ErrorInfoController.cs" new file mode 100644 index 0000000..3ff0ba0 --- /dev/null +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/ErrorInfoController.cs" @@ -0,0 +1,18 @@ +锘縰sing Microsoft.AspNetCore.Mvc; +using WIDESEAWCS_Core.BaseController; +using WIDESEAWCS_ISystemServices; +using WIDESEAWCS_Model.Models; + +namespace WIDESEAWCS_Server.Controllers.System +{ + [Route("api/Batch")] + [ApiController] + public class ErrorInfoController : ApiBaseController<Idt_ErrormsginfoService, dt_errorInfo> + { + private readonly IHttpContextAccessor _httpContextAccessor; + public ErrorInfoController(Idt_ErrormsginfoService service, IHttpContextAccessor httpContextAccessor) : base(service) + { + _httpContextAccessor = httpContextAccessor; + } + } +} diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs" index ac56e77..42758f8 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs" @@ -23,6 +23,7 @@ using Microsoft.AspNetCore.Builder; using WIDESEAWCS_Server.HostedService; using WIDESEAWCS_Server.Filter; +using WIDESEAWCS_Tasks.OHT; var builder = WebApplication.CreateBuilder(args); diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_errormsginfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_errormsginfoService.cs" new file mode 100644 index 0000000..b654cb7 --- /dev/null +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_errormsginfoService.cs" @@ -0,0 +1,26 @@ +锘縰sing AutoMapper; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEAWCS_Core.BaseRepository; +using WIDESEAWCS_Core.BaseServices; +using WIDESEAWCS_ISystemServices; +using WIDESEAWCS_Model.Models; + +namespace WIDESEAWCS_SystemServices +{ + public class dt_errormsginfoService : ServiceBase<dt_errorInfo, IRepository<dt_errorInfo>>, Idt_ErrormsginfoService + { + private readonly IMapper _mapper; + /// <summary> + /// 浠撳偍灞�(鏁版嵁搴撹闂�) + /// </summary> + public IRepository<dt_errorInfo> Repository => BaseDal; + public dt_errormsginfoService(IRepository<dt_errorInfo> BaseDal, IMapper mapper) : base(BaseDal) + { + _mapper = mapper; + } + } +} diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" index 413c29f..b317044 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" @@ -16,8 +16,11 @@ #endregion << 鐗� 鏈� 娉� 閲� >> using AutoMapper; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using SqlSugar; using System.Diagnostics.CodeAnalysis; +using WIDESEAWCS_Common.LocationEnum; +using WIDESEAWCS_Common.StockEnum; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseRepository; @@ -27,6 +30,7 @@ using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_IWMSPart; using WIDESEAWCS_Model.Models; +using WIDESEAWCS_Model.Models.System; using WIDESEAWCS_QuartzJob.Models; using WIDESEAWCS_QuartzJob.Service; @@ -40,7 +44,8 @@ private readonly IRepository<Dt_StockInfo> _stockRepository; private readonly IRepository<Dt_LocationInfo> _locationRepository; private readonly IRepository<dt_batchInfo> _batchinfoRepository; - + private readonly IRepository<Dt_Task_hty> _taskhtyRepository; + private readonly IUnitOfWorkManage _unitOfWorkManage; private readonly IMapper _mapper; private Dictionary<string, OrderByType> _taskOrderBy = new() @@ -60,12 +65,16 @@ /// </summary> public IRepository<Dt_Task> Repository => BaseDal; + //SBText ITaskService.text { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + public TaskService(IRepository<Dt_Task> BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, IRepository<Dt_TaskExecuteDetail> taskExecuteDetailRepository, IRepository<Dt_StockInfo> stockRepository, IRepository<Dt_LocationInfo> locationRepository, IRepository<dt_batchInfo> batchRepository, + IRepository<Dt_Task_hty> taskhtyRepository, + IUnitOfWorkManage unitOfWorkManage, IMapper mapper) : base(BaseDal) { _routerService = routerService; @@ -74,6 +83,8 @@ _stockRepository = stockRepository; _locationRepository = locationRepository; _batchinfoRepository = batchRepository; + _taskhtyRepository = taskhtyRepository; + _unitOfWorkManage = unitOfWorkManage; _mapper = mapper; } @@ -222,12 +233,39 @@ /// <param name="deviceNo">璁惧缂栧彿</param> /// <param name="currentAddress">褰撳墠鍦板潃</param> /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns> - public Dt_Task QueryStackerCraneTask(string deviceNo, string currentAddress = "") + public Dt_Task QueryStackerCraneTask(string workTpe, string currentAddress = "") { - if (string.IsNullOrEmpty(currentAddress)) - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy); - 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); + Dt_Task task = new Dt_Task(); + try + { + //浼樺厛鏌ヨ褰撳墠浠诲姟姹犱腑鏄惁鏈夊彇璐у畬鎴愮殑浠诲姟 + task = BaseDal.QueryFirst(v => v.TaskState == (int)TaskInStatusEnum.Line_Ingrab || v.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting); + if (task != null) + { + //浼樺厛杩斿洖鎵ц鍒颁竴鍗婄殑浠诲姟缁х画鎵ц + return task; + } + //鏌ヨ褰撳墠浠诲姟姹犱腑鏄惁瀛樺湪鐘舵�佷负闈炴柊寤虹殑 + task= BaseDal.QueryFirst(v => v.TaskState != (int)TaskInStatusEnum.InNew || v.TaskState != (int)TaskOutStatusEnum.OutNew); + if (task != null) + { + throw new Exception($"褰撳墠浠诲姟姹犱腑瀛樺湪鎵ц涓殑浠诲姟,浠诲姟鍙�:銆恵task.TaskNum}銆�"); + } + if (workTpe.Equals("In")) + { + task = BaseDal.QueryData(v=>v.TaskType==(int)TaskInboundTypeEnum.Inbound && v.TaskState==(int)TaskInStatusEnum.InNew).OrderBy(v=>v.CreateDate).First(); + } + else if (workTpe.Equals("Out")) + { + task = BaseDal.QueryData(v => v.TaskType == (int)TaskOutboundTypeEnum.Outbound && v.TaskState == (int)TaskOutStatusEnum.OutNew).OrderBy(v => v.CreateDate).First(); + } + } + catch (Exception) + { + //灏嗛敊璇俊鎭洿鏂拌嚦閿欒淇℃伅璁板綍琛� + + } + return task; } /// <summary> @@ -331,19 +369,19 @@ { 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.OutPending; - } - else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) - { - task.TaskState = (int)TaskInStatusEnum.InPending; - } + //if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) + //{ + // task.TaskState = (int)TaskOutStatusEnum.OutPending; + //} + //else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) + //{ + // task.TaskState = (int)TaskInStatusEnum.InPending; + //} task.ExceptionMessage = message; task.ModifyDate = DateTime.Now; BaseDal.UpdateData(task); - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, task.ExceptionMessage); + //_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, task.ExceptionMessage); content = WebResponseContent.Instance.OK(); } @@ -355,17 +393,38 @@ } /// <summary> - /// 鏇存柊浠诲姟鐘舵�佷俊鎭紝骞跺悓姝ヨ嚦WMS + /// 鏇存柊浠诲姟鐘舵�佷俊鎭� /// </summary> /// <param name="taskNum">浠诲姟鍙�</param> /// <param name="status">浠诲姟鐘舵��</param> public void UpdateTaskStatus(int taskNum, int status) { - Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); - if (task == null) return; - task.TaskState = status; - task.ModifyDate = DateTime.Now; - BaseDal.UpdateData(task); + try + { + Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); + if (status == 2 && task.TaskType == (int)TaskInboundTypeEnum.Inbound) + { + task.TaskState = (int)TaskInStatusEnum.Line_InGrabExecuting; + } + else if (status == 2 && task.TaskType == (int)TaskOutboundTypeEnum.Outbound) + { + task.TaskState = (int)TaskOutStatusEnum.Line_OutGrabExecuting; + } + if (status == 3 && task.TaskType == (int)TaskInboundTypeEnum.Inbound) + { + task.TaskState = (int)TaskInStatusEnum.Line_InDownExecuting; + } + else if (status == 3 && task.TaskType == (int)TaskOutboundTypeEnum.Outbound) + { + task.TaskState = (int)TaskOutStatusEnum.Line_OutWownExecuting; + } + task.ModifyDate = DateTime.Now; + BaseDal.UpdateData(task); + } + catch (Exception ex) + { + + } } /// <summary> @@ -493,7 +552,7 @@ /// </summary> /// <param name="taskNum">浠诲姟缂栧彿</param> /// <returns>杩斿洖澶勭悊缁撴灉</returns> - public WebResponseContent StackCraneTaskCompleted(int taskNum) + public WebResponseContent StackCraneTaskCompleted(int taskNum,float weight) { WebResponseContent content = new WebResponseContent(); try @@ -505,18 +564,77 @@ } if (nawtask.TaskType == (int)TaskInboundTypeEnum.Inbound) { - + var batck = _batchinfoRepository.QueryFirst(v=>v.Id==1); //鏂板缓搴撳瓨 + Dt_StockInfo stock = new Dt_StockInfo(); + stock.LocationCode = nawtask.TargetAddress; + stock.Weight = (decimal)weight; + stock.StockStatus = (int)stockEnum.Lock; + stock.BatchNo = batck.Batch; + //淇敼璐т綅淇℃伅 + var location = _locationRepository.QueryFirst(v=>v.LocationCode==nawtask.TargetAddress); + location.LocationStatus = (int)LocationStatusEnum.InStock; + //澶勭悊浠诲姟淇℃伅 + Dt_Task_hty taskhty = new Dt_Task_hty(); + taskhty.TaskNum = nawtask.TaskNum; + taskhty.Roadway = nawtask.Roadway; + taskhty.TaskType = nawtask.TaskType; + taskhty.TaskState = (int)TaskInStatusEnum.Line_InFinish; + taskhty.SourceAddress = nawtask.SourceAddress; + taskhty.TargetAddress = nawtask.TargetAddress; + taskhty.ExceptionMessage = nawtask.ExceptionMessage; + taskhty.Grade = nawtask.Grade; + taskhty.Dispatchertime = nawtask.Dispatchertime; + taskhty.Remark = nawtask.Remark; + //寮�濮嬫暟鎹簱浜嬪姟 + _unitOfWorkManage.BeginTran(); + _stockRepository.AddData(stock); + _locationRepository.UpdateData(location); + _taskhtyRepository.AddData(taskhty); + BaseDal.DeleteData(nawtask); + //鎻愪氦浜嬪姟 + _unitOfWorkManage.CommitTran(); } else if (nawtask.TaskType == (int)TaskOutboundTypeEnum.Outbound) { - + //鏌ユ壘搴撳瓨 + var stock = _stockRepository.QueryFirst(v=>v.LocationCode== nawtask.TargetAddress); + if (stock == null) + { + throw new Exception($"鏈壘鍒板簱瀛樹俊鎭揣浣嶅彿:銆恵nawtask.TargetAddress}銆�"); + } + //淇敼璐т綅鐘舵�� + var location = _locationRepository.QueryFirst(v => v.LocationCode == nawtask.TargetAddress); + location.LocationStatus = (int)LocationStatusEnum.Free; + //鍑嗗鍘嗗彶浠诲姟鏁版嵁 + Dt_Task_hty taskhty = new Dt_Task_hty(); + taskhty.TaskNum = nawtask.TaskNum; + taskhty.Roadway = nawtask.Roadway; + taskhty.TaskType = nawtask.TaskType; + taskhty.TaskState = (int)TaskInStatusEnum.Line_InFinish; + taskhty.SourceAddress = nawtask.SourceAddress; + taskhty.TargetAddress = nawtask.TargetAddress; + taskhty.ExceptionMessage = nawtask.ExceptionMessage; + taskhty.Grade = nawtask.Grade; + taskhty.Dispatchertime = nawtask.Dispatchertime; + taskhty.Remark = nawtask.Remark; + //寮�濮嬫暟鎹簱浜嬪姟 + _unitOfWorkManage.BeginTran(); + _stockRepository.DeleteData(stock); + _locationRepository.UpdateData(location); + _taskhtyRepository.AddData(taskhty); + BaseDal.DeleteData(nawtask); + //鎻愪氦浜嬪姟 + _unitOfWorkManage.CommitTran(); } content = WebResponseContent.Instance.OK(); } catch (Exception ex) { + //鍥炴粴浜嬪姟 + _unitOfWorkManage.RollbackTran(); content = WebResponseContent.Instance.Error($"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆�"); + UpdateTaskExceptionMessage(taskNum,ex.Message); } return content; } diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs" index 81aa2cb..ed8d009 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs" @@ -31,6 +31,7 @@ [DisallowConcurrentExecution] public class OHTJob : JobBase, IJob { + public static string InorOut = "In"; private readonly ITaskService _taskService; WebSocketServer _webSocketServer; public OHTJob(ITaskService taskService, WebSocketServer webSocketServer) @@ -38,7 +39,6 @@ _taskService = taskService;//娉ㄥ叆 _webSocketServer = webSocketServer; } - public Task Execute(IJobExecutionContext context) { @@ -53,6 +53,7 @@ //device.SetValue 鍐欏叆 //_taskService.Repository; //浠撳偍灞傦紝杩涜鏁版嵁搴撹闂� OHTReadData oHTReadData = new OHTReadData(); + #region 璇诲彇澶╄溅璁惧鏁版嵁 oHTReadData.R_HeartBeat = device.GetValue<DeviceDBName, bool>(DeviceDBName.R_HeartBeat); oHTReadData.R_RunMode = device.GetValue<DeviceDBName, short>(DeviceDBName.R_RunMode); @@ -91,23 +92,24 @@ string ohtData = JsonConvert.SerializeObject(oHTReadData); _webSocketServer.PublishAllClientPayload(ohtData); + #region 澶╄溅瀹屾垚浠诲姟閫昏緫 //鍥犱负澶╃殑浠诲姟闇�瑕佸垎娈靛彂閫侊紝鎵�浠ュ彇璐у畬鎴愪笌鏀捐揣瀹屾垚闇�瑕佸崟鐙仛閫昏緫鎺у埗 //鍒ゆ柇澶╄溅褰撳墠鏈夋病鏈夊彇璐у畬鎴愪换鍔′俊鍙� - if (oHTReadData.R_RunState == (int)RunStateEnum.PickUpCompleted && oHTReadData.R_TaskState==(int)TaskStateEnum.TaskComplete) + if (oHTReadData.R_RunState == (int)RunStateEnum.PickUpCompleted && oHTReadData.R_TaskState == (int)TaskStateEnum.TaskComplete) { //澶╄溅鍙栬揣瀹屾垚閫昏緫 var nawtask = _taskService.QueryTakNnmTask(oHTReadData.R_TaskNumber); - if (nawtask==null) + if (nawtask == null) { - throw new Exception(string.Format("澶╄溅鍙栬揣瀹屾垚浠诲姟鏈煡璇㈠埌浠诲姟鍙穥0}",oHTReadData.R_TaskNumber)); + throw new Exception(string.Format("澶╄溅鍙栬揣瀹屾垚浠诲姟鏈煡璇㈠埌浠诲姟鍙穥0}", oHTReadData.R_TaskNumber)); } - if (nawtask.TaskType== (int)TaskInboundTypeEnum.Inbound) + if (nawtask.TaskType == (int)TaskInboundTypeEnum.Inbound) { //濡傛灉浠诲姟鐨勭姸鎬佹槸澶╄溅鍏ュ簱鍙栬揣鎵ц涓� - if (nawtask.TaskState==(int)TaskInStatusEnum.Line_InGrabExecuting) + if (nawtask.TaskState == (int)TaskInStatusEnum.Line_InGrabExecuting) { - WebResponseContent result=_taskService.UpdateTaskStatusToLine_Ingrab(nawtask); - if (result.Status) + WebResponseContent result = _taskService.UpdateTaskStatusToLine_Ingrab(nawtask); + if (result.Status) { device.SetValue(DeviceDBName.W_ConfirmSignal, 3); } @@ -125,19 +127,26 @@ } } } + return Task.CompletedTask; } else if (oHTReadData.R_RunState == (int)RunStateEnum.PutCompleted && oHTReadData.R_TaskState == (int)TaskStateEnum.TaskComplete) { //澶╄溅鏀捐揣瀹屾垚閫昏緫 - _taskService.StackCraneTaskCompleted(oHTReadData.R_TaskNumber); + WebResponseContent result = _taskService.StackCraneTaskCompleted(oHTReadData.R_TaskNumber, oHTReadData.weight); + if (result.Status) + { + device.SetValue(DeviceDBName.W_ConfirmSignal, 3); + } + return Task.CompletedTask; } + #endregion - + #region 澶╄溅鍙戦�佷换鍔¢�昏緫 if (oHTReadData.R_RunMode == (int)RunModeEnum.Automatic && oHTReadData.R_AlarmCode == (int)AlarmCodeEnum.Normal) { if (oHTReadData.R_RunState == (int)RunStateEnum.Standby) { - Dt_Task? task = GetTask(); + Dt_Task? task = GetTask(InorOut); if (task != null) { OHTTaskCommand? oHTTaskCommand = ConvertToOHTTaskCommand(task); @@ -147,41 +156,34 @@ device.SetValue(DeviceDBName.W_Task_Type, oHTTaskCommand.W_Task_Type); device.SetValue(DeviceDBName.W_Pick_Line, oHTTaskCommand.W_Pick_Line); device.SetValue(DeviceDBName.W_Pick_Column, oHTTaskCommand.W_Pick_Column); - device.SetValue(DeviceDBName.W_Pick_Layer, oHTTaskCommand.W_Pick_Layer); device.SetValue(DeviceDBName.W_Put_Line, oHTTaskCommand.W_Put_Line); device.SetValue(DeviceDBName.W_Put_Column, oHTTaskCommand.W_Put_Column); - device.SetValue(DeviceDBName.W_Put_Layer, oHTTaskCommand.W_Put_Layer); device.SetValue(DeviceDBName.W_Catch_1, oHTTaskCommand.W_Catch_1); device.SetValue(DeviceDBName.W_Catch_2, oHTTaskCommand.W_Catch_2); - device.SetValue(DeviceDBName.W_TaskNumber, oHTTaskCommand.W_TaskNumber); device.SetValue(DeviceDBName.W_TaskNumber, oHTTaskCommand.W_TaskNumber); device.SetValue(DeviceDBName.W_CheckValue, oHTTaskCommand.W_CheckValue); //纭淇″彿鍐欏叆1锛屼换鍔′笅杈惧畬鎴� device.SetValue(DeviceDBName.W_ConfirmSignal, 1); + Thread.Sleep(500); //WCS妫�娴嬪埌澶╄溅鐨凴_TaskState=1锛岄�氳繃W_ConfirmSignal缃�2琛ㄧず璁╁ぉ杞﹀紑濮嬫墽琛屼换鍔� int R_TaskState = device.GetValue<DeviceDBName, short>(DeviceDBName.R_TaskState); if (R_TaskState == 1) { device.SetValue(DeviceDBName.W_ConfirmSignal, 2); } + //涓嬪彂鎴愬姛锛屼慨鏀逛换鍔$姸鎬� + _taskService.UpdateTaskStatus(task.TaskNum, oHTTaskCommand.W_Task_Type); } - } - } - } - WriteInfo(device.DeviceName, "infoLog"); - - WriteDebug(device.DeviceName, "debugLog"); + #endregion } catch (Exception ex) { WriteError(device.DeviceName, "閿欒", ex); } } - - return Task.CompletedTask; } @@ -196,36 +198,65 @@ { OHTTaskCommand oHtTaskCommand = new OHTTaskCommand(); - oHtTaskCommand.W_Task_Type = 1; - oHtTaskCommand.W_Load_Layer = 0; - oHtTaskCommand.W_Pick_Line = 1; - - string[] SourceCodes = task.SourceAddress.Split("-"); - if (SourceCodes.Length == 3) + if (task.TaskState==(int)TaskInStatusEnum.InNew || task.TaskState == (int)TaskOutStatusEnum.OutNew) { - oHtTaskCommand.W_Pick_Line = Convert.ToInt16(SourceCodes[1]); - oHtTaskCommand.W_Put_Column = Convert.ToInt16(SourceCodes[2]); - oHtTaskCommand.W_Put_Layer = Convert.ToInt16(SourceCodes[3]); + oHtTaskCommand.W_Task_Type = 2; + string[] SourceCodes = task.SourceAddress.Split("-"); + if (SourceCodes.Length == 3) + { + oHtTaskCommand.W_Pick_Line = Convert.ToInt16(SourceCodes[0]); + oHtTaskCommand.W_Pick_Column = Convert.ToInt16(SourceCodes[1]); + oHtTaskCommand.W_Put_Line = 0; + oHtTaskCommand.W_Put_Column = 0; + } + else + { + //鏁版嵁閰嶇疆閿欒 + _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"浠诲姟婧愬湴鍧�閰嶇疆閿欒锛�"); + return null; + } + oHtTaskCommand.W_CheckValue = task.TaskType + Convert.ToInt16(SourceCodes[0]) + Convert.ToInt16(SourceCodes[1]); } - else + else if (task.TaskState == (int)TaskInStatusEnum.Line_Ingrab || task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting) { - //鏁版嵁閰嶇疆閿欒 - _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"浠诲姟婧愬湴鍧�閰嶇疆閿欒锛�"); - return null; + oHtTaskCommand.W_Task_Type = 3; + string[] SourceCodes = task.TargetAddress.Split("-"); + if (SourceCodes.Length == 3) + { + oHtTaskCommand.W_Pick_Line = 0; + oHtTaskCommand.W_Pick_Column =0; + oHtTaskCommand.W_Put_Line = Convert.ToInt16(SourceCodes[0]); + oHtTaskCommand.W_Put_Column = Convert.ToInt16(SourceCodes[1]); + } + else + { + //鏁版嵁閰嶇疆閿欒 + _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"浠诲姟婧愬湴鍧�閰嶇疆閿欒锛�"); + return null; + } + oHtTaskCommand.W_CheckValue = task.TaskType + Convert.ToInt16(SourceCodes[0]) + Convert.ToInt16(SourceCodes[1]); } - string[] targetCodes = task.TargetAddress.Split("-"); - if (targetCodes.Length == 3) + + if (task.WMSId==1) { - oHtTaskCommand.W_Put_Line = Convert.ToInt16(targetCodes[1]); - oHtTaskCommand.W_Put_Column = Convert.ToInt16(targetCodes[2]); - oHtTaskCommand.W_Put_Layer = Convert.ToInt16(targetCodes[3]); + oHtTaskCommand.W_Catch_1 = 1; + oHtTaskCommand.W_Catch_2 = 0; + oHtTaskCommand.W_CheckValue += 1; } - else + else if (task.WMSId == 2) { - //鏁版嵁閰嶇疆閿欒 - _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"浠诲姟鐩爣鍦板潃閰嶇疆閿欒"); - return null; + oHtTaskCommand.W_Catch_1 = 0; + oHtTaskCommand.W_Catch_2 = 1; + oHtTaskCommand.W_CheckValue += 1; } + else if (task.WMSId == 3) + { + oHtTaskCommand.W_Catch_1 = 1; + oHtTaskCommand.W_Catch_2 = 1; + oHtTaskCommand.W_CheckValue += 2; + } + oHtTaskCommand.W_TaskNumber = task.TaskNum; + oHtTaskCommand.W_CheckValue += task.TaskNum; return oHtTaskCommand; } @@ -234,15 +265,22 @@ /// 鑾峰彇浠诲姟 /// </summary> /// <returns></returns> - private Dt_Task? GetTask() + private Dt_Task? GetTask(string workType) { Dt_Task task; - task = _taskService.QueryStackerCraneTask("R01"); + task = _taskService.QueryStackerCraneTask(workType); + if (task!=null && (task.TaskState==(int)TaskInStatusEnum.InNew|| task.TaskState == (int)TaskOutStatusEnum.OutNew)) + { + if (task.TaskType == (int)TaskInboundTypeEnum.Inbound) + { + InorOut = "Out"; + } + else + { + InorOut = "In"; + } + } return task; } - - } - - } diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTTaskCommand.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTTaskCommand.cs" index 4962b79..0be15e5 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTTaskCommand.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTTaskCommand.cs" @@ -66,16 +66,16 @@ /// <summary> /// 浠诲姟鍙� /// </summary> - public short W_TaskNumber { get; set; } + public int W_TaskNumber { get; set; } /// <summary> /// 鏍¢獙鍊� (浠诲姟绫诲瀷+瑁呰溅灞傛暟+鍙栬+鍙栧垪+鍙栧眰+鏀捐+鏀惧垪+鏀惧眰+W_Catch_1+W_Catch_2+浠诲姟鍙�) /// </summary> - public short W_CheckValue { get; set; } + public int W_CheckValue { get; set; } /// <summary> /// 纭淇″彿 /// </summary> - public int W_ConfirmSignal { get; set; } + public short W_ConfirmSignal { get; set; } } } -- Gitblit v1.9.3