From f723c6e9087a2110a28572543c7cfd9104e2a4ed Mon Sep 17 00:00:00 2001 From: hutongqing <hutongqing@hnkhzn.com> Date: 星期一, 23 十二月 2024 20:52:58 +0800 Subject: [PATCH] 1 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs | 4 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs | 102 ----- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/测试架仓/GroundStationJob_CSJ.cs | 93 ++++ 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs | 8 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs | 24 + 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c6122441-2f23-4566-894d-2438c126bfa0.vsidx | 0 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Task/WMSTaskDTO.cs | 1 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ApiInfo.cs | 6 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/油墨仓/StackerCraneJob_YM.cs | 101 +--- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs | 100 +++++ 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs | 4 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b38bf002-812b-4b12-b991-24b69f011aa6.vsidx | 0 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs | 14 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGVController.cs | 2 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/油墨仓/CommonHoisterJob.cs | 57 -- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs | 11 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/1030e901-57d8-49d3-8577-b4454b655f2c.vsidx | 0 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 95 ++-- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj | 2 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP仓/StackerCraneJob_PP.cs | 2 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 4 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs | 55 ++ 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs | 32 - 代码管理/WMS/WIDESEA_WMSClient/src/extension/basic/warehouse.js | 10 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs | 6 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/DBNames/GroundStationDBName.cs | 2 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/e8a69a95-d256-4664-a68b-3579d7c901f3.vsidx | 0 /dev/null | 0 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/干膜仓/StackerCraneJob_GM.cs | 3 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs | 118 ++---- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/StackerCraneJob_BC.cs | 2 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/阻焊仓/StackerCraneJob_ZH.cs | 2 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs | 71 +-- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/StationTypeEnum.cs | 15 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/测试架仓/StackerCraneJob_CSJ.cs | 57 ++ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs | 15 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs | 118 ++--- 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/7ab5e54f-e15f-4070-8b63-2b0d6e70b364.vsidx | 0 38 files changed, 631 insertions(+), 505 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/00a56665-6752-4d06-b9b6-0852d20709ee.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/00a56665-6752-4d06-b9b6-0852d20709ee.vsidx" deleted file mode 100644 index 6913cde..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/00a56665-6752-4d06-b9b6-0852d20709ee.vsidx" +++ /dev/null Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/1030e901-57d8-49d3-8577-b4454b655f2c.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/1030e901-57d8-49d3-8577-b4454b655f2c.vsidx" new file mode 100644 index 0000000..8b56de7 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/1030e901-57d8-49d3-8577-b4454b655f2c.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/46d6cd41-4a65-4d05-9f72-66a9e3980a0c.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/46d6cd41-4a65-4d05-9f72-66a9e3980a0c.vsidx" deleted file mode 100644 index cd5b5c7..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/46d6cd41-4a65-4d05-9f72-66a9e3980a0c.vsidx" +++ /dev/null Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/7a005823-c1a7-4703-9472-7a90323886f9.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/7a005823-c1a7-4703-9472-7a90323886f9.vsidx" deleted file mode 100644 index 2e70448..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/7a005823-c1a7-4703-9472-7a90323886f9.vsidx" +++ /dev/null Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b38bf002-812b-4b12-b991-24b69f011aa6.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b38bf002-812b-4b12-b991-24b69f011aa6.vsidx" new file mode 100644 index 0000000..39180e0 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b38bf002-812b-4b12-b991-24b69f011aa6.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock" deleted file mode 100644 index e69de29..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock" +++ /dev/null diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/StationTypeEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/StationTypeEnum.cs" new file mode 100644 index 0000000..a29ca87 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/StationTypeEnum.cs" @@ -0,0 +1,15 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace WIDESEAWCS_Common +{ + public enum StationTypeEnum + { + StationType_OnlyInbound = 1, + StationType_OnlyOutbound = 2, + StationType_InboundAndOutbound = 3 + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs" index 98a8147..004a523 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs" @@ -18,45 +18,21 @@ public static TaskTypeGroup GetTaskTypeGroup(this int taskType) { - if (!int.TryParse(Enum.Parse<TaskOutboundTypeEnum>(taskType.ToString()).ToString(), out int result)) + if (taskType >= 500 && taskType < 900) { return TaskTypeGroup.OutbondGroup; } - else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskType.ToString()).ToString(), out result)) + else if (taskType >= 100 && taskType < 500) { return TaskTypeGroup.InboundGroup; } - else if (!int.TryParse(Enum.Parse<TaskRelocationTypeEnum>(taskType.ToString()).ToString(), out result)) + else if (taskType >= 900 && taskType < 1000) { return TaskTypeGroup.RelocationGroup; } - else if (!int.TryParse(Enum.Parse<TaskOtherTypeEnum>(taskType.ToString()).ToString(), out result)) + else { return TaskTypeGroup.OtherGroup; - } - else - { - throw new NotImplementedException(); - } - } - - public static int GetNextNotCompletedStatus<T>(this int currentStatus) where T : Enum - { - Type type = typeof(T); - if (type is null) throw new ArgumentNullException(); - if (!type.IsEnum) return 0; - if (type == typeof(TaskInStatusEnum)) - { - List<int> taskInboundTypes = type.GetEnumIndexList(); - return taskInboundTypes.Where(x => x > currentStatus && x < (int)TaskInStatusEnum.InFinish).OrderBy(x => x).FirstOrDefault(); - } - else if (type == typeof(TaskOutStatusEnum)) - { - return type.GetEnumIndexList().Where(x => x > currentStatus && x < (int)TaskOutStatusEnum.OutFinish).OrderBy(x => x).FirstOrDefault(); - } - else - { - throw new NotImplementedException(); } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" index efd2b07..8424dd8 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" @@ -10,108 +10,72 @@ /// <summary> /// 鍏ュ簱浠诲姟鐘舵�� /// </summary> - public enum TaskInStatusEnum - { - /// <summary> - /// 鏂板缓鍏ュ簱浠诲姟 - /// </summary> - [Description("鏂板缓")] - InNew = 200, - - /// <summary> - /// 鍫嗗灈鏈哄叆搴撳緟鎵ц - /// </summary> - [Description("鍫嗗灈鏈哄叆搴撳緟鎵ц")] - SC_InExecute = 225, - - /// <summary> - /// 鍫嗗灈鏈哄叆搴撴墽琛屼腑 - /// </summary> - [Description("鍫嗗灈鏈哄叆搴撴墽琛屼腑")] - SC_InExecuting = 230, - - /// <summary> - /// 鍫嗗灈鏈哄叆搴撳畬鎴� - /// </summary> - [Description("鍫嗗灈鏈哄叆搴撳畬鎴�")] - SC_InFinish = 235, - - /// <summary> - /// 鍏ュ簱浠诲姟瀹屾垚 - /// </summary> - [Description("鍏ュ簱浠诲姟瀹屾垚")] - InFinish = 290, - - /// <summary> - /// 鍏ュ簱浠诲姟鎸傝捣 - /// </summary> - [Description("鍏ュ簱浠诲姟鎸傝捣")] - InPending = 297, - - /// <summary> - /// 鍏ュ簱浠诲姟鍙栨秷 - /// </summary> - [Description("鍏ュ簱浠诲姟鍙栨秷")] - InCancel = 298, - - /// <summary> - /// 鍏ュ簱浠诲姟寮傚父 - /// </summary> - [Description("鍏ュ簱浠诲姟寮傚父")] - InException = 299, - } - - /// <summary> - /// 鍑哄簱浠诲姟鐘舵�� - /// </summary> - public enum TaskOutStatusEnum + public enum TaskStatusEnum { /// <summary> /// 鏂板缓浠诲姟 /// </summary> [Description("鏂板缓")] - OutNew = 100, + New = 100, /// <summary> - /// 鍫嗗灈鏈哄嚭搴撳緟鎵ц + /// 鍫嗗灈鏈哄緟鎵ц /// </summary> - [Description("鍫嗗灈鏈哄嚭搴撳緟鎵ц")] - SC_OutExecute = 125, + [Description("鍫嗗灈鏈哄緟鎵ц")] + SC_Execute = 200, /// <summary> - /// 鍫嗗灈鏈哄嚭搴撴墽琛屼腑 + /// 鍫嗗灈鏈烘墽琛屼腑 /// </summary> - [Description("鍫嗗灈鏈哄嚭搴撴墽琛屼腑")] - SC_OutExecuting = 130, + [Description("鍫嗗灈鏈烘墽琛屼腑")] + SC_Executing = 210, /// <summary> - /// 鍫嗗灈鏈哄嚭搴撳畬鎴� + /// 鍫嗗灈鏈哄畬鎴� /// </summary> - [Description("鍫嗗灈鏈哄嚭搴撳畬鎴�")] - SC_OutFinish = 135, + [Description("鍫嗗灈鏈哄畬鎴�")] + SC_Finish = 220, /// <summary> - /// 鍑哄簱浠诲姟瀹屾垚 + /// AGV寰呮墽琛� /// </summary> - [Description("鍑哄簱浠诲姟瀹屾垚")] - OutFinish = 190, + [Description("AGV寰呮墽琛�")] + AGV_Execute = 300, /// <summary> - /// 鍑哄簱浠诲姟鎸傝捣 + /// AGV鎵ц涓� /// </summary> - [Description("鍑哄簱浠诲姟鎸傝捣")] - OutPending = 197, + [Description("AGV鎵ц涓�")] + AGV_Executing = 310, /// <summary> - /// 鍑哄簱浠诲姟鍙栨秷 + /// AGV瀹屾垚 /// </summary> - [Description("鍑哄簱浠诲姟鍙栨秷")] - OutCancel = 198, + [Description("AGV瀹屾垚")] + AGV_Finish = 320, /// <summary> - /// 鍑哄簱浠诲姟寮傚父 + /// 浠诲姟瀹屾垚 /// </summary> - [Description("鍑哄簱浠诲姟寮傚父")] - OutException = 199, + [Description("浠诲姟瀹屾垚")] + Finish = 900, + + /// <summary> + /// 浠诲姟鎸傝捣 + /// </summary> + [Description("浠诲姟鎸傝捣")] + Pending = 970, + + /// <summary> + /// 浠诲姟鍙栨秷 + /// </summary> + [Description("浠诲姟鍙栨秷")] + Cancel = 980, + + /// <summary> + /// 浠诲姟寮傚父 + /// </summary> + [Description("浠诲姟寮傚父")] + Exception = 990, } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" index 33dfdfc..6401cc0 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" @@ -7,70 +7,55 @@ namespace WIDESEAWCS_Common.TaskEnum { - public enum TaskInboundTypeEnum + public enum TaskTypeEnum { /// <summary> - /// 鍏ュ簱 + /// 棰嗘枡鍑哄簱 /// </summary> - [Description("鍏ュ簱")] - Inbound = 200, - /// <summary> - /// 鐩樼偣鍏ュ簱 - /// </summary> - [Description("鐩樼偣鍏ュ簱")] - InInventory = 201, - /// <summary> - /// 鍒嗘嫞鍏ュ簱 - /// </summary> - [Description("鍒嗘嫞鍏ュ簱")] - InPick = 202, - /// <summary> - /// 璐ㄦ鍏ュ簱 - /// </summary> - [Description("璐ㄦ鍏ュ簱")] - InQuality = 203 - } - - public enum TaskOutboundTypeEnum - { - /// <summary> - /// 鍑哄簱 - /// </summary> - [Description("鍑哄簱")] + [Description("棰嗘枡鍑哄簱")] Outbound = 100, /// <summary> /// 鐩樼偣鍑哄簱 /// </summary> [Description("鐩樼偣鍑哄簱")] - OutInventory = 101, + OutInventory = 110, /// <summary> /// 鍒嗘嫞鍑哄簱 /// </summary> [Description("鍒嗘嫞鍑哄簱")] - OutPick = 102, + OutPick = 120, /// <summary> /// 璐ㄦ鍑哄簱 /// </summary> [Description("璐ㄦ鍑哄簱")] - OutQuality = 103, - } + OutQuality = 130, - public enum TaskRelocationTypeEnum - { /// <summary> - /// 搴撳唴绉诲簱 + /// 閲囪喘鍏ュ簱 /// </summary> - [Description("搴撳唴绉诲簱")] - Relocation = 300, + [Description("閲囪喘鍏ュ簱")] + Inbound = 510, /// <summary> - /// 搴撳绉诲簱 + /// 鐩樼偣鍏ュ簱 /// </summary> - [Description("搴撳绉诲簱")] - RelocationIn = 301 + [Description("鐩樼偣鍏ュ簱")] + InInventory = 520, + /// <summary> + /// 鍒嗘嫞鍏ュ簱 + /// </summary> + [Description("鍒嗘嫞鍏ュ簱")] + InPick = 530, + /// <summary> + /// 璐ㄦ鍏ュ簱 + /// </summary> + [Description("璐ㄦ鍏ュ簱")] + InQuality = 540, + + /// <summary> + /// 宸烽亾鍐呯Щ搴� + /// </summary> + [Description("宸烽亾鍐呯Щ搴�")] + Relocation = 900 } - public enum TaskOtherTypeEnum - { - - } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs" index 5844ddd..ff58ac3 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs" @@ -11,17 +11,17 @@ /// <summary> /// WMS浠诲姟涓婚敭 /// </summary> - public int Id { get; set; } + public int Id { get; set; } /// <summary> /// 浠诲姟鍙� /// </summary> - public int TaskNum { get; set; } + public int TaskNum { get; set; } /// <summary> /// 鎵樼洏鍙� /// </summary> - public string PalletCode { get; set; } + public string PalletCode { get; set; } /// <summary> /// 宸烽亾鍙� @@ -31,7 +31,7 @@ /// <summary> /// 浠诲姟绫诲瀷 /// </summary> - public int TaskType { get; set; } + public int TaskType { get; set; } /// <summary> /// 浠诲姟鐘舵�� @@ -41,16 +41,16 @@ /// <summary> /// 璧风偣 /// </summary> - public string SourceAddress { get; set; } + public string SourceAddress { get; set; } /// <summary> /// 缁堢偣 /// </summary> - public string TargetAddress { get; set; } + public string TargetAddress { get; set; } /// <summary> /// 浼樺厛绾� /// </summary> - public int Grade { get; set; } + public int Grade { get; set; } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" index 6b97c18..0fa1d52 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" @@ -47,7 +47,7 @@ /// <summary> /// 鎵�鏈夊嚭搴撲换鍔$被鍨� /// </summary> - public List<int> TaskOutboundTypes { get; } + public List<int> TaskOutboundTypes { get; } /// <summary> /// 鎺ユ敹WMS浠诲姟淇℃伅 @@ -64,6 +64,12 @@ /// <returns></returns> WebResponseContent RequestWMSTask(string palletCode, string sourceAddress); + /// <summary> + /// 鍚慦MS鐢宠鍒嗛厤璐т綅 + /// </summary> + /// <param name="taskNum">浠诲姟鍙�</param> + /// <param name="roadwayNo">宸烽亾鍙�</param> + /// <returns></returns> string? RequestAssignLocation(int taskNum, string roadwayNo); /// <summary> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ApiInfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ApiInfo.cs" index a2ab325..4e043be 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ApiInfo.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ApiInfo.cs" @@ -16,21 +16,25 @@ /// </summary> [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")] public int Id { get; set; } + /// <summary> /// 鎺ュ彛缂栧彿 /// </summary> [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎺ュ彛缂栧彿")] public string ApiCode { get; set; } + /// <summary> /// 鎺ュ彛鍚嶇О /// </summary> [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鎺ュ彛鍚嶇О")] public string ApiName { get; set; } + /// <summary> /// 鎺ュ彛鍦板潃 /// </summary> - [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "鎺ュ彛鍦板潃")] + [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "鎺ュ彛鍦板潃")] public string ApiAddress { get; set; } + /// <summary> /// 澶囨敞 /// </summary> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskFlowConfig/Dt_TaskFlow.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskFlowConfig/Dt_TaskFlow.cs" deleted file mode 100644 index 4ba8898..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskFlowConfig/Dt_TaskFlow.cs" +++ /dev/null @@ -1,20 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using WIDESEAWCS_Core.DB.Models; - -namespace WIDESEAWCS_Model.Models.TaskFlowConfig -{ - public class Dt_TaskFlow : BaseEntity - { - public int TaskFlowId { get; set; } - - public int TaskTypeId { get; set; } - - public string TaskFlowName { get; set; } - - public string TaskFlowDescription { get; set; } - } -} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskFlowConfig/Dt_TaskFlowStep.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskFlowConfig/Dt_TaskFlowStep.cs" deleted file mode 100644 index d08789b..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskFlowConfig/Dt_TaskFlowStep.cs" +++ /dev/null @@ -1,20 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using WIDESEAWCS_Core.DB.Models; - -namespace WIDESEAWCS_Model.Models.TaskFlowConfig -{ - public class Dt_TaskFlowStep : BaseEntity - { - public int StepId { get; set; } - - public int TaskFlowId { get; set; } - - public int NextStepId { get; set; } - - public int SequenceOrder { get; set; } - } -} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskFlowConfig/Dt_TaskType.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskFlowConfig/Dt_TaskType.cs" deleted file mode 100644 index 44f9f41..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskFlowConfig/Dt_TaskType.cs" +++ /dev/null @@ -1,21 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using WIDESEAWCS_Core.DB.Models; - -namespace WIDESEAWCS_Model.Models.TaskFlowConfig -{ - - public class Dt_TaskType : BaseEntity - { - public int TaskTypeId { get; set; } - - public string TaskType { get; set; } - - public string TaskTypeName { get; set; } - - public string TaskTypeDescription { get; set; } - } -} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj" index e4e80a5..1894ea5 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj" @@ -8,7 +8,7 @@ <ItemGroup> <PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" /> - <PackageReference Include="WIDESEAWCS_Core" Version="1.0.9" /> + <PackageReference Include="WIDESEAWCS_Core" Version="1.0.10" /> </ItemGroup> <ItemGroup> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGVController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGVController.cs" index 683857f..bf814b7 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGVController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGVController.cs" @@ -5,7 +5,7 @@ using WIDESEAWCS_IBasicInfoRepository; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob; -using WIDESEAWCS_Tasks.闃荤剨浠�; +using WIDESEAWCS_Tasks; namespace WIDESEAWCS_Server.Controllers { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs" index 4af342e..e47a9bd 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs" @@ -175,80 +175,14 @@ { List<object> data = new List<object>(); - #region TaskInboundTypeEnum + #region TaskTypeEnum { - Type type = typeof(TaskInboundTypeEnum); - List<int> enums = Enum.GetValues(typeof(TaskInboundTypeEnum)).Cast<int>().ToList(); + Type type = typeof(TaskTypeEnum); + List<int> enums = Enum.GetValues(typeof(TaskTypeEnum)).Cast<int>().ToList(); int index = 0; foreach (var item in enums) { - FieldInfo? fieldInfo = typeof(TaskInboundTypeEnum).GetField(((TaskInboundTypeEnum)item).ToString()); - DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = item.ToString(), value = description.Description }); - } - else - { - data.Add(new { key = item.ToString(), value = item.ToString() }); - } - index++; - } - } - #endregion - - #region TaskOutboundTypeEnum - { - Type type = typeof(TaskOutboundTypeEnum); - List<int> enums = Enum.GetValues(typeof(TaskOutboundTypeEnum)).Cast<int>().ToList(); - int index = 0; - foreach (var item in enums) - { - FieldInfo? fieldInfo = typeof(TaskOutboundTypeEnum).GetField(((TaskOutboundTypeEnum)item).ToString()); - DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = item.ToString(), value = description.Description }); - } - else - { - data.Add(new { key = item.ToString(), value = item.ToString() }); - } - index++; - } - } - #endregion - - #region TaskRelocationTypeEnum - { - Type type = typeof(TaskRelocationTypeEnum); - List<int> enums = Enum.GetValues(typeof(TaskRelocationTypeEnum)).Cast<int>().ToList(); - int index = 0; - foreach (var item in enums) - { - FieldInfo? fieldInfo = typeof(TaskRelocationTypeEnum).GetField(((TaskRelocationTypeEnum)item).ToString()); - DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = item.ToString(), value = description.Description }); - } - else - { - data.Add(new { key = item.ToString(), value = item.ToString() }); - } - index++; - } - } - #endregion - - #region TaskOtherTypeEnum - { - Type type = typeof(TaskOtherTypeEnum); - List<int> enums = Enum.GetValues(typeof(TaskOtherTypeEnum)).Cast<int>().ToList(); - int index = 0; - foreach (var item in enums) - { - FieldInfo? fieldInfo = typeof(TaskOtherTypeEnum).GetField(((TaskOtherTypeEnum)item).ToString()); + FieldInfo? fieldInfo = typeof(TaskTypeEnum).GetField(((TaskTypeEnum)item).ToString()); DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); if (description != null) { @@ -272,34 +206,12 @@ #region TaskInStatusEnum { - Type type = typeof(TaskInStatusEnum); - List<int> enums = Enum.GetValues(typeof(TaskInStatusEnum)).Cast<int>().ToList(); + Type type = typeof(TaskStatusEnum); + List<int> enums = Enum.GetValues(typeof(TaskStatusEnum)).Cast<int>().ToList(); int index = 0; foreach (var item in enums) { - FieldInfo? fieldInfo = typeof(TaskInStatusEnum).GetField(((TaskInStatusEnum)item).ToString()); - DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (description != null) - { - data.Add(new { key = item.ToString(), value = description.Description }); - } - else - { - data.Add(new { key = item.ToString(), value = item.ToString() }); - } - index++; - } - } - #endregion - - #region TaskOutStatusEnum - { - Type type = typeof(TaskOutStatusEnum); - List<int> enums = Enum.GetValues(typeof(TaskOutStatusEnum)).Cast<int>().ToList(); - int index = 0; - foreach (var item in enums) - { - FieldInfo? fieldInfo = typeof(TaskOutStatusEnum).GetField(((TaskOutStatusEnum)item).ToString()); + FieldInfo? fieldInfo = typeof(TaskStatusEnum).GetField(((TaskStatusEnum)item).ToString()); DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); if (description != null) { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs" index fa13d12..18b5cc0 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs" @@ -25,8 +25,8 @@ { string apiAddress = AppSettings.Get(APIEnum.AgvSendTask.ToString()); string response = HttpHelper.Post(apiAddress, taskModel.Serialize()); - AgvResponseContent agvContent= response.DeserializeObject<AgvResponseContent>(); - if (agvContent.Code=="200") + AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>(); + if (agvContent.Code == "200") { content.OK(agvContent.Message); } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs" index 9d23f8a..b018095 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs" @@ -51,15 +51,9 @@ int taskNum = task.TaskNum; int taskState = task.TaskState; - if (!int.TryParse(Enum.Parse<TaskOutStatusEnum>(taskState.ToString()).ToString(), out int result)) + if(taskState > (int)TaskStatusEnum.Finish) { - if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish) - isNormal = false; - } - else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskState.ToString()).ToString(), out result)) - { - if ((int)(TaskInStatusEnum)result > (int)TaskInStatusEnum.InFinish) - isNormal = false; + isNormal = false; } Dt_TaskExecuteDetail taskExecuteDetail = new() { @@ -93,15 +87,9 @@ int taskNum = task.TaskNum; int taskState = task.TaskState; - if (!int.TryParse(Enum.Parse<TaskOutStatusEnum>(taskState.ToString()).ToString(), out int result)) + if (taskState > (int)TaskStatusEnum.Finish) { - if ((int)(TaskOutStatusEnum)result > (int)TaskOutStatusEnum.OutFinish) - isNormal = false; - } - else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskState.ToString()).ToString(), out result)) - { - if ((int)(TaskInStatusEnum)result > (int)TaskInStatusEnum.InFinish) - isNormal = false; + isNormal = false; } Dt_TaskExecuteDetail taskExecuteDetail = new() { @@ -137,57 +125,57 @@ if (task != null) { - if (!int.TryParse(Enum.Parse<TaskOutboundTypeEnum>(task.TaskType.ToString()).ToString(), out int result)) - { - steps = Enum.GetValues(typeof(TaskOutStatusEnum)).Cast<int>().Where(x => x <= (int)TaskOutStatusEnum.OutFinish).ToList(); + //if (!int.TryParse(Enum.Parse<TaskOutboundTypeEnum>(task.TaskType.ToString()).ToString(), out int result)) + //{ + // steps = Enum.GetValues(typeof(TaskOutStatusEnum)).Cast<int>().Where(x => x <= (int)TaskOutStatusEnum.OutFinish).ToList(); - foreach (var item in steps) - { - object obj; - FieldInfo? fieldInfo = typeof(TaskOutStatusEnum).GetField(((TaskOutStatusEnum)item).ToString()); - DescriptionAttribute? descriptionAttribute = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (descriptionAttribute != null) - { - obj = new { title = item, description = descriptionAttribute.Description }; - } - else - { - obj = new { title = item, description = ((TaskOutStatusEnum)item).ToString() }; - } - list.Add(obj); - } - } - else if (!int.TryParse(Enum.Parse<TaskInboundTypeEnum>(task.TaskType.ToString()).ToString(), out result)) - { - steps = Enum.GetValues(typeof(TaskInStatusEnum)).Cast<int>().Where(x => x <= (int)TaskInStatusEnum.InFinish).ToList(); - foreach (var item in steps) - { - object obj; - FieldInfo? fieldInfo = typeof(TaskInStatusEnum).GetField(((TaskInStatusEnum)item).ToString()); - DescriptionAttribute? descriptionAttribute = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); - if (descriptionAttribute != null) - { - obj = new { title = item, description = descriptionAttribute.Description }; - } - else - { - obj = new { title = item, description = ((TaskInStatusEnum)item).ToString() }; - } - list.Add(obj); - } - } - else if (!int.TryParse(Enum.Parse<TaskRelocationTypeEnum>(task.TaskType.ToString()).ToString(), out result)) - { - //todo 璋冪敤WMS绉诲簱瀹屾垚 - } - else if (!int.TryParse(Enum.Parse<TaskOtherTypeEnum>(task.TaskType.ToString()).ToString(), out result)) - { + // foreach (var item in steps) + // { + // object obj; + // FieldInfo? fieldInfo = typeof(TaskOutStatusEnum).GetField(((TaskOutStatusEnum)item).ToString()); + // DescriptionAttribute? descriptionAttribute = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); + // if (descriptionAttribute != null) + // { + // obj = new { title = item, description = descriptionAttribute.Description }; + // } + // else + // { + // obj = new { title = item, description = ((TaskOutStatusEnum)item).ToString() }; + // } + // list.Add(obj); + // } + //} + //else if (!int.TryParse(Enum.Parse<TaskTypeEnum>(task.TaskType.ToString()).ToString(), out result)) + //{ + // steps = Enum.GetValues(typeof(TaskInStatusEnum)).Cast<int>().Where(x => x <= (int)TaskInStatusEnum.InFinish).ToList(); + // foreach (var item in steps) + // { + // object obj; + // FieldInfo? fieldInfo = typeof(TaskInStatusEnum).GetField(((TaskInStatusEnum)item).ToString()); + // DescriptionAttribute? descriptionAttribute = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); + // if (descriptionAttribute != null) + // { + // obj = new { title = item, description = descriptionAttribute.Description }; + // } + // else + // { + // obj = new { title = item, description = ((TaskInStatusEnum)item).ToString() }; + // } + // list.Add(obj); + // } + //} + //else if (!int.TryParse(Enum.Parse<TaskRelocationTypeEnum>(task.TaskType.ToString()).ToString(), out result)) + //{ + // //todo 璋冪敤WMS绉诲簱瀹屾垚 + //} + //else if (!int.TryParse(Enum.Parse<TaskOtherTypeEnum>(task.TaskType.ToString()).ToString(), out result)) + //{ - } - else - { - throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵taskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�"); - } + //} + //else + //{ + // throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵taskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�"); + //} active = steps.IndexOf(task.TaskState) + 1; } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" index af188c5..d1dc670 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" @@ -33,6 +33,7 @@ using WIDESEAWCS_Core.Enums; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_DTO.TaskInfo; +using WIDESEAWCS_IBasicInfoRepository; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; @@ -47,6 +48,7 @@ private readonly ITaskExecuteDetailService _taskExecuteDetailService; private readonly ITaskExecuteDetailRepository _taskExecuteDetailRepository; private readonly IMapper _mapper; + private readonly IStationMangerRepository _stationMangerRepository; private Dictionary<string, OrderByType> _taskOrderBy = new() { @@ -56,16 +58,17 @@ public Dictionary<string, OrderByType> TaskOrderBy { get { return _taskOrderBy; } set { _taskOrderBy = value; } } - public List<int> TaskInboundTypes => typeof(TaskInboundTypeEnum).GetEnumIndexList(); + public List<int> TaskInboundTypes => typeof(TaskTypeEnum).GetEnumIndexList().Where(x => x >= 100 && x < 500).ToList(); - public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList(); + public List<int> TaskOutboundTypes => typeof(TaskTypeEnum).GetEnumIndexList().Where(x => x >= 500 && x < 900).ToList(); - public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper) : base(BaseDal) + public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, IStationMangerRepository stationMangerRepository) : base(BaseDal) { _routerService = routerService; _taskExecuteDetailService = taskExecuteDetailService; _taskExecuteDetailRepository = taskExecuteDetailRepository; _mapper = mapper; + _stationMangerRepository = stationMangerRepository; } /// <summary> @@ -81,24 +84,17 @@ List<Dt_Task> tasks = new List<Dt_Task>(); foreach (var item in taskDTOs) { + if (BaseDal.QueryFirst(x => x.TaskNum == item.TaskNum || x.PalletCode == item.PalletCode) != null) { continue; } Dt_Task task = _mapper.Map<Dt_Task>(item); task.Creater = "WMS"; - if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) - { - task.TaskState = (int)TaskOutStatusEnum.OutNew; - task.CurrentAddress = item.SourceAddress; - task.NextAddress = item.TargetAddress; + task.TaskState = (int)TaskStatusEnum.New; + task.CurrentAddress = item.SourceAddress; + task.NextAddress = item.TargetAddress; - } - else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) - { - task.TaskState = (int)TaskInStatusEnum.InNew; task.CurrentAddress = item.SourceAddress; - task.NextAddress = item.TargetAddress; - } tasks.Add(task); } BaseDal.AddData(tasks); @@ -125,18 +121,15 @@ WebResponseContent content = new WebResponseContent(); try { - WMSTaskDTO taskDTO = new WMSTaskDTO() + Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.StationDeviceCode == sourceAddress); + if (stationManger == null) { - TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), - Grade = 1, - PalletCode = palletCode, - RoadWay = "SC01", - SourceAddress = sourceAddress, - TargetAddress = "SC01", - TaskStatus = (int)TaskInStatusEnum.InNew, - Id = 0, - TaskType = (int)TaskInboundTypeEnum.Inbound - }; + return WebResponseContent.Instance.Error($"鏈壘鍒扮珯鍙颁俊鎭�"); + } + + HttpHelper.Post($"RequestInboundTask?palletCode={palletCode}&stationCode={sourceAddress}"); + + WMSTaskDTO taskDTO = new WMSTaskDTO(); content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); } @@ -147,6 +140,12 @@ return content; } + /// <summary> + /// 鍚慦MS鐢宠鍒嗛厤璐т綅 + /// </summary> + /// <param name="taskNum">浠诲姟鍙�</param> + /// <param name="roadwayNo">宸烽亾鍙�</param> + /// <returns></returns> public string? RequestAssignLocation(int taskNum, string roadwayNo) { string responseStr = HttpHelper.Get($"http://127.0.0.1:9293/api/Task/AssignInboundTaskLocation?taskNum={taskNum}&roadwayNo={roadwayNo}"); @@ -169,11 +168,11 @@ public Dt_Task? QuertStackerCraneTask(string deviceNo, TaskTypeGroup? taskTypeGroup = null) { if (taskTypeGroup == null) - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InExecute || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy); + return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && x.TaskState == (int)TaskStatusEnum.New, TaskOrderBy); if (taskTypeGroup.Value == TaskTypeGroup.InboundGroup) - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InExecute, TaskOrderBy); + return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy); if (taskTypeGroup.Value == TaskTypeGroup.OutbondGroup) - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutExecute, TaskOrderBy); + return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy); return null; } @@ -186,9 +185,9 @@ public Dt_Task QueryStackerCraneTask(string deviceNo, string currentAddress = "") { if (string.IsNullOrEmpty(currentAddress)) - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InExecute || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy); + return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && x.TaskState == (int)TaskStatusEnum.New, TaskOrderBy); else - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InExecute || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutExecute), TaskOrderBy); + return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && x.CurrentAddress == currentAddress && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy); } /// <summary> @@ -200,9 +199,9 @@ public Dt_Task QueryStackerCraneInTask(string deviceNo, string currentAddress = "") { if (string.IsNullOrEmpty(currentAddress)) - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InExecute, TaskOrderBy); + return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy); else - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InExecute && x.CurrentAddress == currentAddress, TaskOrderBy); + return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.SC_Execute && x.CurrentAddress == currentAddress, TaskOrderBy); } /// <summary> @@ -214,9 +213,9 @@ public Dt_Task QueryStackerCraneOutTask(string deviceNo, string currentAddress = "") { if (string.IsNullOrEmpty(currentAddress)) - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutExecute, TaskOrderBy); + return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy); else - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutExecute && x.CurrentAddress == currentAddress, TaskOrderBy); + return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.SC_Execute && x.CurrentAddress == currentAddress, TaskOrderBy); } /// <summary> @@ -227,9 +226,14 @@ /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄闆嗗悎锛屽彲鑳戒负null</returns> 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.SC_OutExecute && outStationCodes.Contains(x.CurrentAddress), TaskOrderBy); + return BaseDal.QueryData(x => x.DeviceCode == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.SC_Execute && outStationCodes.Contains(x.CurrentAddress), TaskOrderBy); } + /// <summary> + /// 鏇存柊浠诲姟寮傚父淇℃伅鏄剧ず + /// </summary> + /// <param name="taskNum">浠诲姟鍙�</param> + /// <param name="message">寮傚父淇℃伅</param> public WebResponseContent UpdateTaskExceptionMessage(int taskNum, string message) { WebResponseContent content = new WebResponseContent(); @@ -237,14 +241,7 @@ { 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; - } + task.TaskState = (int)TaskStatusEnum.Pending; task.ExceptionMessage = message; task.ModifyDate = DateTime.Now; BaseDal.UpdateData(task); @@ -272,7 +269,7 @@ { Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�"); - if (task.TaskState != (int)TaskInStatusEnum.InPending && task.TaskState != (int)TaskOutStatusEnum.OutPending) + if (task.TaskState != (int)TaskStatusEnum.Pending) { return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙仮澶�,浠诲姟鍙�:銆恵taskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�"); } @@ -284,15 +281,7 @@ } else { - if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) - { - task.TaskState = (int)TaskOutStatusEnum.OutNew; - } - else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) - { - task.TaskState = (int)TaskInStatusEnum.InNew; - } - //todo + task.TaskState = (int)TaskStatusEnum.New; } task.ExceptionMessage = string.Empty; diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/GroundStationDBName.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/DBNames/GroundStationDBName.cs" similarity index 96% rename from "\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/GroundStationDBName.cs" rename to "\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/DBNames/GroundStationDBName.cs" index a310009..4b10952 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/GroundStationDBName.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/DBNames/GroundStationDBName.cs" @@ -4,7 +4,7 @@ using System.Text; using System.Threading.Tasks; -namespace WIDESEAWCS_Tasks.闃荤剨浠� +namespace WIDESEAWCS_Tasks { public enum GroundStationDBName { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/StackerCraneJob_PP.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/StackerCraneJob_PP.cs" index 2345f90..3da3cfd 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/StackerCraneJob_PP.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/StackerCraneJob_PP.cs" @@ -166,7 +166,7 @@ /// <returns>濡傛灉鏈鍗犵敤锛岃繑鍥炰紶鍏ョ殑浠诲姟淇℃伅锛屽惁鍒欙紝杩斿洖null</returns> private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task) { - Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.TargetAddress && x.StackerCraneCode == task.Roadway); + Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.TargetAddress && x.StackerCraneCode == task.DeviceCode); if (stationManger != null) { IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManger.StationDeviceCode); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" index 4d8b471..2b6d582 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" @@ -162,13 +162,13 @@ /// <returns>濡傛灉鏈鍗犵敤锛岃繑鍥炰紶鍏ョ殑浠诲姟淇℃伅锛屽惁鍒欙紝杩斿洖null</returns> private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task) { - Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault(); + Dt_Router? router = _routerService.QueryNextRoutes(task.DeviceCode, task.NextAddress).FirstOrDefault(); if (router != null) { IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode); if (device != null) { - if (device.DeviceCode == "YMCTSJ" || task.Roadway == "CSJCSC01") return task; + if (device.DeviceCode == "YMCTSJ" || task.DeviceCode == "CSJCSC01") return task; CommonConveyorLine conveyorLine = (CommonConveyorLine)device; if (conveyorLine.IsOccupied(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤 { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/StackerCraneJob_GM.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/StackerCraneJob_GM.cs" index 424425e..2c10b52 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/StackerCraneJob_GM.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/StackerCraneJob_GM.cs" @@ -19,7 +19,6 @@ using WIDESEAWCS_QuartzJob.StackerCrane.Enum; using WIDESEAWCS_Tasks.HoisterJob; using WIDESEAWCS_Tasks.StackerCraneJob; -using WIDESEAWCS_Tasks.闃荤剨浠�; namespace WIDESEAWCS_Tasks { @@ -166,7 +165,7 @@ /// <returns>濡傛灉鏈鍗犵敤锛岃繑鍥炰紶鍏ョ殑浠诲姟淇℃伅锛屽惁鍒欙紝杩斿洖null</returns> private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task) { - Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.TargetAddress && x.StackerCraneCode == task.Roadway); + Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.TargetAddress && x.StackerCraneCode == task.DeviceCode); if (stationManger != null) { IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManger.StationDeviceCode); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs" index eba2492..7368d05 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs" @@ -166,7 +166,7 @@ /// <returns>濡傛灉鏈鍗犵敤锛岃繑鍥炰紶鍏ョ殑浠诲姟淇℃伅锛屽惁鍒欙紝杩斿洖null</returns> private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task) { - Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.TargetAddress && x.StackerCraneCode == task.Roadway); + Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.TargetAddress && x.StackerCraneCode == task.DeviceCode); if (stationManger != null) { IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManger.StationDeviceCode); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/CommonHoisterJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/CommonHoisterJob.cs" index 6152060..62c0a55 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/CommonHoisterJob.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/CommonHoisterJob.cs" @@ -64,7 +64,7 @@ if (leisure && tray && !requestIn && !inbounding && !requestOut && !outbounding) { - Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == TaskInStatusEnum.InNew.ObjToInt() && string.IsNullOrEmpty(x.TargetAddress) && x.SourceAddress == deviceChildCode); + Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && string.IsNullOrEmpty(x.TargetAddress) && x.SourceAddress == deviceChildCode && _taskService.TaskInboundTypes.Contains(x.TaskType)); if (task != null) { bool isWrite = hoister.SetValue(HoisterDBName.RequestIn, true, deviceChildCode); @@ -73,7 +73,7 @@ } else if (!leisure && tray && requestIn && inbounding && !requestOut && !outbounding) { - Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == TaskInStatusEnum.InNew.ObjToInt() && string.IsNullOrEmpty(x.TargetAddress) && x.SourceAddress == deviceChildCode); + Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && string.IsNullOrEmpty(x.TargetAddress) && x.SourceAddress == deviceChildCode && _taskService.TaskInboundTypes.Contains(x.TaskType)); if (task != null) { Dt_StationManger? stationManger = stationMangers.FirstOrDefault(x => x.StationDeviceCode == deviceChildCode); @@ -91,8 +91,8 @@ task.TargetAddress = locationCode; task.NextAddress = locationCode; - task.Roadway = stationManger.StackerCraneCode; - task.TaskState = TaskInStatusEnum.SC_InExecute.ObjToInt(); + task.DeviceCode = stationManger.StackerCraneCode; + task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt(); _taskRepository.UpdateData(task); bool isWrite = hoister.SetValue(HoisterDBName.RequestIn, false, deviceChildCode); @@ -104,7 +104,7 @@ } else if (leisure && !tray && !requestIn && !inbounding && !requestOut && !outbounding) { - Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == TaskOutStatusEnum.OutNew.ObjToInt() && string.IsNullOrEmpty(x.TargetAddress)); + Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && string.IsNullOrEmpty(x.TargetAddress) && _taskService.TaskOutboundTypes.Contains(x.TaskType)); if (task != null) { bool isWrite = hoister.SetValue(HoisterDBName.RequestOut, true, deviceChildCode); @@ -113,7 +113,7 @@ } else if (!leisure && !tray && !requestIn && !inbounding && requestOut && outbounding) { - Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == TaskInStatusEnum.InNew.ObjToInt() && string.IsNullOrEmpty(x.TargetAddress) && x.SourceAddress == deviceChildCode); + Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && string.IsNullOrEmpty(x.TargetAddress) && _taskService.TaskOutboundTypes.Contains(x.TaskType)); if (task != null) { Dt_StationManger? stationManger = stationMangers.FirstOrDefault(x => x.StationDeviceCode == deviceChildCode); @@ -125,8 +125,8 @@ task.TargetAddress = deviceChildCode; task.NextAddress = deviceChildCode; - task.Roadway = stationManger.StackerCraneCode; - task.TaskState = TaskInStatusEnum.SC_InExecute.ObjToInt(); + task.DeviceCode = stationManger.StackerCraneCode; + task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt(); _taskRepository.UpdateData(task); bool isWrite = hoister.SetValue(HoisterDBName.RequestIn, false, deviceChildCode); @@ -136,47 +136,6 @@ WriteInfo(hoister.DeviceName, $"鏈壘鍒板搴旂珯鍙颁俊鎭�,{deviceChildCode}"); } } - - - //if (tray && leisure) - //{ - //#region 鏌ヨ缁勭洏淇℃伅 - //鍚慦MS鐢宠鏌ヨ褰撳墠鎻愬崌鏈哄彛鐨勭粍鐩樹俊鎭紝瀛樺湪缁勭洏淇℃伅杩斿洖鍏ュ簱浠诲姟骞跺彂鍑哄叆搴撶敵璇� - //var task = _taskService.QueryExecutingConveyorLineTask(1, deviceChildCode); - //if (Leisure && task != null) - // Hoister.SetValue(HoisterDBName.RequestIn, true, deviceChildCode); - - //#endregion - //var Inbounding = Hoister.GetValue<HoisterDBName, bool>(HoisterDBName.Inbounding, deviceChildCode); - //if (Inbounding && task != null) - //{ - // task.TaskState = (int)TaskInStatusEnum.SC_InExecute; - // task.NextAddress = "001-003-001"; - // _taskService.UpdateData(task); - // //鏇存柊浠诲姟鐘舵�佸苟鍙栨秷鍏ュ簱鐢宠 - // Hoister.SetValue(HoisterDBName.RequestIn, false, deviceChildCode); - //} - //} - //else - //{ - - - //鏌ヨ鍑哄簱浠诲姟,瀛樺湪鍑哄簱浠诲姟鍙戝嚭鍑哄簱鐢宠 - //var task = _taskService.QueryExecutingConveyorLineTask(2, deviceChildCode); - //if (task != null && Leisure) - // Hoister.SetValue(HoisterDBName.RequestOut, true, deviceChildCode); - //var Outbounding = Hoister.GetValue<HoisterDBName, bool>(HoisterDBName.Outbounding, deviceChildCode); - //if (Outbounding && task != null) - //{ - // task.NextAddress = deviceChildCode; - // task.TargetAddress = deviceChildCode; - // task.TaskState = (int)TaskOutStatusEnum.OutNew; - // _taskService.UpdateData(task); - // //鏇存柊浠诲姟鐘舵�佸苟鍙栨秷鍑哄簱鐢宠 - // Hoister.SetValue(HoisterDBName.RequestOut, false, deviceChildCode); - //} - //} - } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/StackerCraneJob_YM.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/StackerCraneJob_YM.cs" index 53ed581..17fbe79 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/StackerCraneJob_YM.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/StackerCraneJob_YM.cs" @@ -21,7 +21,6 @@ using WIDESEAWCS_QuartzJob.StackerCrane.Enum; using WIDESEAWCS_Tasks.HoisterJob; using WIDESEAWCS_Tasks.StackerCraneJob; -using WIDESEAWCS_Tasks.闃荤剨浠�; namespace WIDESEAWCS_Tasks { @@ -48,44 +47,32 @@ public Task Execute(IJobExecutionContext context) { + CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); try { - CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); if (commonStackerCrane != null) { if (!commonStackerCrane.IsEventSubscribed) { commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢 } - - if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal) + commonStackerCrane.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆� + if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal && commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) { - commonStackerCrane.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆� - - if (commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) + Dt_Task? task = GetTask(commonStackerCrane); + if (task != null) { - Dt_Task? task = GetTask(commonStackerCrane); - if (task != null) + StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); + if (stackerCraneTaskCommand != null) { - StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); - if (stackerCraneTaskCommand != null) + bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand); + if (sendFlag) { - bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand); - if (sendFlag) - { - commonStackerCrane.LastTaskType = task.TaskType; - int oldState = task.TaskState; - if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) - { - task.TaskState = TaskInStatusEnum.SC_InExecuting.ObjToInt(); - } - else - { - task.TaskState = TaskOutStatusEnum.SC_OutExecuting.ObjToInt(); - } - _taskRepository.UpdateData(task); - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskState}銆�"); - } + commonStackerCrane.LastTaskType = task.TaskType; + int oldState = task.TaskState; + task.TaskState = TaskStatusEnum.SC_Executing.ObjToInt(); + _taskRepository.UpdateData(task); + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskState}銆�"); } } } @@ -94,7 +81,7 @@ } catch (Exception ex) { - WriteError(nameof(CommonStackerCraneJob), ex.Message, ex); + WriteError(commonStackerCrane.DeviceName, ex.Message, ex); } return Task.CompletedTask; } @@ -115,7 +102,9 @@ Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == e.TaskNum); if (task != null) { - + _taskExecuteDetailService.AddTaskExecuteDetail(e.TaskNum, $"绯荤粺鑷姩娴佺▼,浠诲姟瀹屾垚"); + _taskRepository.DeleteAndMoveIntoHty(task, OperateTypeEnum.鑷姩瀹屾垚); + HttpHelper.Post("", "");//todo 璋冪敤WMS浠诲姟瀹屾垚鏂规硶 } else { @@ -189,7 +178,7 @@ /// <returns>濡傛灉鏈鍗犵敤锛岃繑鍥炰紶鍏ョ殑浠诲姟淇℃伅锛屽惁鍒欙紝杩斿洖null</returns> private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task) { - Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.TargetAddress && x.StackerCraneCode == task.Roadway); + Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.TargetAddress && x.StackerCraneCode == task.DeviceCode); if (stationManger != null) { IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManger.StationDeviceCode); @@ -231,9 +220,6 @@ stackerCraneTaskCommand.TrayType = 1; if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍒ゆ柇鏄惁鏄叆搴撲换鍔� { - //List<Dt_Router> routers = _routerService.QueryNextRoutes(task.CurrentAddress, task.Roadway); - //if (routers.Count > 0) - //{ string[] startCodes = task.CurrentAddress.Split("-"); stackerCraneTaskCommand.StartRow = Convert.ToInt16(startCodes[0]); @@ -253,43 +239,28 @@ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍏ュ簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.NextAddress}銆�"); return null; } - //} - //else - //{ - // _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鍙栬揣绔欏彴淇℃伅"); - // return null; - //} } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { - //List<Dt_Router> routers = _routerService.QueryNextRoutes(task.Roadway, task.TargetAddress); - //if (routers.Count > 0) + string[] targetCodes = task.NextAddress.Split("-"); + + stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]); + stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]); + stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]); + + string[] sourceCodes = task.CurrentAddress.Split("-"); + if (sourceCodes.Length == 3) { - string[] targetCodes = task.NextAddress.Split("-"); - - stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]); - stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]); - stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]); - - string[] sourceCodes = task.CurrentAddress.Split("-"); - if (sourceCodes.Length == 3) - { - stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]); - stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]); - stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]); - } - else - { - //鏁版嵁閰嶇疆閿欒 - _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�"); - return null; - } + stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]); + stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]); + stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]); } - //else - //{ - // _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鏀捐揣绔欏彴淇℃伅"); - // return null; - //} + else + { + //鏁版嵁閰嶇疆閿欒 + _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�"); + return null; + } } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/GroundStationJob_CSJ.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/GroundStationJob_CSJ.cs" new file mode 100644 index 0000000..023c6cd --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/GroundStationJob_CSJ.cs" @@ -0,0 +1,93 @@ +锘縰sing Quartz; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEAWCS_Common; +using WIDESEAWCS_Common.TaskEnum; +using WIDESEAWCS_Core.Helper; +using WIDESEAWCS_IBasicInfoRepository; +using WIDESEAWCS_ITaskInfoRepository; +using WIDESEAWCS_ITaskInfoService; +using WIDESEAWCS_Model.Models; +using WIDESEAWCS_QuartzJob; + +namespace WIDESEAWCS_Tasks +{ + /// <summary> + /// 娴嬭瘯鏋朵粨鍦伴潰绔� + /// </summary> + [DisallowConcurrentExecution] + public class GroundStationJob_CSJ : JobBase, IJob + { + private readonly ITaskService _taskService; + private readonly ITaskExecuteDetailService _taskExecuteDetailService; + private readonly ITaskRepository _taskRepository; + private readonly IStationMangerRepository _stationMangerRepository; + + public GroundStationJob_CSJ(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository) + { + _taskService = taskService; + _taskExecuteDetailService = taskExecuteDetailService; + _taskRepository = taskRepository; + _stationMangerRepository = stationMangerRepository; + } + + public Task Execute(IJobExecutionContext context) + { + OtherDevice device = (OtherDevice)context.JobDetail.JobDataMap.Get("JobParams"); + try + { + if (device == null) + { + WriteInfo(nameof(GroundStationJob_CSJ), "璋冨害閿欒,璁惧瀵硅薄浼犲�间负null"); + return Task.CompletedTask; + } + + List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode); + foreach (var item in stationMangers) + { + bool isCanPut = device.GetValue<GroundStationDBName, bool>(GroundStationDBName.R_IsCanPut, item.StationCode); + bool isCanTake = device.GetValue<GroundStationDBName, bool>(GroundStationDBName.R_IsCanTake, item.StationCode); + bool putRequest = device.GetValue<GroundStationDBName, bool>(GroundStationDBName.W_PutRequest, item.StationCode); + bool putFinish = device.GetValue<GroundStationDBName, bool>(GroundStationDBName.W_PutFinish, item.StationCode); + bool takeRequest = device.GetValue<GroundStationDBName, bool>(GroundStationDBName.W_TakeRequest, item.StationCode); + bool takeFinish = device.GetValue<GroundStationDBName, bool>(GroundStationDBName.W_TakeFinish, item.StationCode); + + if (item.StationType == StationTypeEnum.StationType_OnlyOutbound.ObjToInt()) + { + Dt_Task task = _taskRepository.QueryFirst(x => x.DeviceCode == item.StackerCraneCode && x.TaskState == TaskStatusEnum.New.ObjToInt() && string.IsNullOrEmpty(x.NextAddress)); + if (task != null && isCanPut && !isCanTake && !putRequest && !putFinish && !takeRequest && !takeFinish) + { + string oldAddress = task.NextAddress; + int oldStatus = task.TaskState; + task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt(); + task.NextAddress = item.StationCode; + _taskRepository.UpdateData(task); + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskNum, $"绯荤粺鑷姩娴佺▼,鐩爣鍦板潃鐢眥oldAddress}鍙樻洿涓簕task.NextAddress},浠诲姟鐘舵�佺敱{oldStatus}鍙樻洿涓簕task.TaskState}"); + } + } + else if (item.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt()) + { + Dt_Task task = _taskRepository.QueryFirst(x => x.TargetAddress == item.StackerCraneCode && x.TaskState == TaskStatusEnum.New.ObjToInt() && string.IsNullOrEmpty(x.NextAddress)); + if (task != null && isCanPut && !isCanTake && !putRequest && !putFinish && !takeRequest && !takeFinish) + { + string oldAddress = task.NextAddress; + int oldStatus = task.TaskState; + task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt(); + task.NextAddress = item.StationCode; + _taskRepository.UpdateData(task); + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskNum, $"绯荤粺鑷姩娴佺▼,鐩爣鍦板潃鐢眥oldAddress}鍙樻洿涓簕task.NextAddress},浠诲姟鐘舵�佺敱{oldStatus}鍙樻洿涓簕task.TaskState}"); + } + } + } + } + catch (Exception ex) + { + WriteError(device.DeviceName, "", ex); + } + return Task.CompletedTask; + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/StackerCraneJob_CSJ.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/StackerCraneJob_CSJ.cs" index b66585d..c96fb0f 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/StackerCraneJob_CSJ.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\265\213\350\257\225\346\236\266\344\273\223/StackerCraneJob_CSJ.cs" @@ -7,7 +7,9 @@ using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Common.TaskEnum; +using WIDESEAWCS_Core; using WIDESEAWCS_Core.Enums; +using WIDESEAWCS_Core.Helper; using WIDESEAWCS_IBasicInfoRepository; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_ITaskInfoService; @@ -19,7 +21,6 @@ using WIDESEAWCS_QuartzJob.StackerCrane.Enum; using WIDESEAWCS_Tasks.HoisterJob; using WIDESEAWCS_Tasks.StackerCraneJob; -using WIDESEAWCS_Tasks.闃荤剨浠�; namespace WIDESEAWCS_Tasks { @@ -69,7 +70,10 @@ if (sendFlag) { commonStackerCrane.LastTaskType = task.TaskType; - // _taskService.UpdateTaskStatusToNext(task.TaskNum); + int oldState = task.TaskState; + task.TaskState = TaskStatusEnum.SC_Executing.ObjToInt(); + _taskRepository.UpdateData(task); + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskState}銆�"); } } } @@ -97,9 +101,48 @@ if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) { Console.Out.WriteLine("TaskCompleted" + e.TaskNum); - // _taskService.StackCraneTaskCompleted(e.TaskNum); + StackerCraneTaskCompleted(e.TaskNum, commonStackerCrane.DeviceName); commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); } + } + } + + public WebResponseContent StackerCraneTaskCompleted(int taskNum, string deviceName) + { + try + { + Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum); + if (task != null) + { + if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) + { + int oldStatus = task.TaskState; + task.DeviceCode = "AGV"; + task.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt(); + task.CurrentAddress = task.NextAddress; + task.NextAddress = task.TargetAddress; + _taskRepository.UpdateData(task); + _taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"绯荤粺鑷姩娴佺▼,锛屼换鍔$姸鎬佷粠銆恵oldStatus}銆戣浆鍒般�恵task.TaskState}銆�"); + } + else if (task.TaskType.GetTaskTypeGroup() != TaskTypeGroup.InboundGroup) + { + _taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"绯荤粺鑷姩娴佺▼,锛屼换鍔″畬鎴�"); + _taskRepository.DeleteAndMoveIntoHty(task, OperateTypeEnum.鑷姩瀹屾垚); + HttpHelper.Post("", "");//todo 璋冪敤WMS浠诲姟瀹屾垚鏂规硶 + } + } + else + { + WriteInfo(deviceName, $"鏈壘鍒颁换鍔′俊鎭�,浠诲姟鍙�:{taskNum}"); + return WebResponseContent.Instance.Error($"鏈壘鍒颁换鍔′俊鎭�,浠诲姟鍙�:{taskNum}"); + } + + return WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + WriteError(deviceName, $"浠诲姟瀹屾垚閿欒", ex); + return WebResponseContent.Instance.Error(ex.Message); } } @@ -156,6 +199,11 @@ } } + if(task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) + { + HttpHelper.Post("", ""); + } + return task; } @@ -166,7 +214,7 @@ /// <returns>濡傛灉鏈鍗犵敤锛岃繑鍥炰紶鍏ョ殑浠诲姟淇℃伅锛屽惁鍒欙紝杩斿洖null</returns> private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task) { - Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.TargetAddress && x.StackerCraneCode == task.Roadway); + Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.NextAddress && x.StackerCraneCode == task.DeviceCode); if (stationManger != null) { IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManger.StationDeviceCode); @@ -177,6 +225,7 @@ { task.TargetAddress = stationManger.StackerCraneStationCode; _taskRepository.UpdateData(task); + client.SetValue(GroundStationDBName.R_IsCanPut, true, stationManger.StationCode); return task; } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/StackerCraneJob_ZH.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/StackerCraneJob_ZH.cs" index dd8c979..0ee91a9 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/StackerCraneJob_ZH.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/StackerCraneJob_ZH.cs" @@ -166,7 +166,7 @@ /// <returns>濡傛灉鏈鍗犵敤锛岃繑鍥炰紶鍏ョ殑浠诲姟淇℃伅锛屽惁鍒欙紝杩斿洖null</returns> private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task) { - Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.TargetAddress && x.StackerCraneCode == task.Roadway); + Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.TargetAddress && x.StackerCraneCode == task.DeviceCode); if (stationManger != null) { IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManger.StationDeviceCode); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/warehouse.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/warehouse.js" index 151c927..7840edd 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/warehouse.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/warehouse.js" @@ -20,7 +20,15 @@ let enableBtn = this.buttons.find(x => x.value == 'Enable'); if (enableBtn) { enableBtn.onClick = function () { - this.$message.success('鑷畾涔夋寜閽偣鍑讳簨浠�'); + //this.$message.success('鑷畾涔夋寜閽偣鍑讳簨浠�'); + var printSection = document.querySelector('.vol-table'); + var printWindow = window.open('', ''); + printWindow.document.write(printSection.innerHTML); + printWindow.document.close(); + printWindow.focus(); + printWindow.print(); + printWindow.close(); + } } let disableBtn = this.buttons.find(x => x.value == 'Disable'); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/7ab5e54f-e15f-4070-8b63-2b0d6e70b364.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/7ab5e54f-e15f-4070-8b63-2b0d6e70b364.vsidx" new file mode 100644 index 0000000..b3fbf09 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/7ab5e54f-e15f-4070-8b63-2b0d6e70b364.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c6122441-2f23-4566-894d-2438c126bfa0.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c6122441-2f23-4566-894d-2438c126bfa0.vsidx" new file mode 100644 index 0000000..70aef67 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c6122441-2f23-4566-894d-2438c126bfa0.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/e8a69a95-d256-4664-a68b-3579d7c901f3.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/e8a69a95-d256-4664-a68b-3579d7c901f3.vsidx" new file mode 100644 index 0000000..f165ae6 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/e8a69a95-d256-4664-a68b-3579d7c901f3.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock" deleted file mode 100644 index e69de29..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock" +++ /dev/null diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs" index 31aed3f..3533316 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs" @@ -150,6 +150,28 @@ return null; } + private bool LittleDepthLocationIsEmpty_CSJ(Dt_LocationInfo locationInfo, PalletTypeEnum palletType) + { + List<Dt_LocationInfo> locations = GetGroupLocations(locationInfo); + + switch (palletType) + { + case PalletTypeEnum.LargestPallet: + case PalletTypeEnum.LargePallet: + { + List<Dt_LocationInfo> littleDepth = locations.Where(x => x.Depth <= locationInfo.Depth).ToList(); + return littleDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.OnlyIn.ObjToInt() && x.EnableStatus != EnableStatusEnum.Normal.ObjToInt()) == null; //鏌ヨ灏忎簬褰撳墠璐т綅娣卞害鐨勯泦鍚堥噷鏄惁鏈夌姸鎬佷笉涓虹┖锛屼笖绂佺敤鐘舵�佷笉涓虹鐢ㄤ互鍙婂彧鍏ョ殑璐т綅锛屽鏋滄槸true锛屽垯琛ㄧず娴呰揣浣嶈浣跨敤鎴栬�呰绂佺敤鐨勬儏鍐� + } + case PalletTypeEnum.MediumPallet: + case PalletTypeEnum.SmallPallet: + { + List<Dt_LocationInfo> littleDepth = locations.Where(x => x.Depth <= locationInfo.Depth).ToList(); + return littleDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.OnlyIn.ObjToInt() && x.EnableStatus != EnableStatusEnum.Normal.ObjToInt()) == null; //鏌ヨ灏忎簬褰撳墠璐т綅娣卞害鐨勯泦鍚堥噷鏄惁鏈夌姸鎬佷笉涓虹┖锛屼笖绂佺敤鐘舵�佷笉涓虹鐢ㄤ互鍙婂彧鍏ョ殑璐т綅锛屽鏋滄槸true锛屽垯琛ㄧず娴呰揣浣嶈浣跨敤鎴栬�呰绂佺敤鐨勬儏鍐� + } + } + return false; + } + /// <summary> /// 鍒ゆ柇涓嶅悓娣卞害鐨勫悓缁勮揣浣嶇姸鎬佹槸鍚︿负绌洪棽绌轰綅(娴嬭瘯鏋朵粨) /// </summary> @@ -184,7 +206,7 @@ List<Dt_LocationInfo> littleDepth = locations.Where(x => x.Depth <= emptyLocation.Depth).ToList(); littleDepthFlag = littleDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.OnlyIn.ObjToInt() && x.EnableStatus != EnableStatusEnum.Normal.ObjToInt()) == null; //鏌ヨ灏忎簬褰撳墠璐т綅娣卞害鐨勯泦鍚堥噷鏄惁鏈夌姸鎬佷笉涓虹┖锛屼笖绂佺敤鐘舵�佷笉涓虹鐢ㄤ互鍙婂彧鍏ョ殑璐т綅锛屽鏋滄槸true锛屽垯琛ㄧず娴呰揣浣嶈浣跨敤鎴栬�呰绂佺敤鐨勬儏鍐� } - + break; } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" index bd6834c..146b0b7 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" @@ -45,6 +45,28 @@ }; } + public bool LittleDepthLocationIsEmpty(Dt_LocationInfo locationInfo, PalletTypeEnum palletType) + { + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == locationInfo.WarehouseId); + if (warehouse == null) + { + throw new Exception($"鏈壘鍒颁粨搴撲俊鎭�"); + } + + return warehouse.WarehouseName switch + { + "鏉挎潗浠�" => false, + "PP浠�" => false, + "骞茶啘浠�" => false, + "娴嬭瘯鏋朵粨" => LittleDepthLocationIsEmpty_CSJ(locationInfo, palletType), + "闃荤剨浠�" => false, + "娌瑰ⅷ浠�" => true, + "鎴愬搧浠�" => true, + "杈呮枡浠�" => true, + _ => throw new Exception($"鏈壘鍒颁粨搴撹揣浣嶅垎閰嶆柟娉�") + }; + } + private readonly static object _locker = new object(); private static List<LocationCache> locationCaches = new List<LocationCache>(); /// <summary> @@ -146,7 +168,7 @@ /// <param name="locationInfos"></param> /// <param name="location"></param> /// <returns></returns> - private List<Dt_LocationInfo> GetGroupLocations(List<Dt_LocationInfo> locationInfos, Dt_LocationInfo location) + public List<Dt_LocationInfo> GetGroupLocations(List<Dt_LocationInfo> locationInfos, Dt_LocationInfo location) { List<Dt_LocationInfo> groupLocations = new List<Dt_LocationInfo>() { location }; int maxDepth = locationInfos.Max(x => x.Depth); @@ -169,6 +191,37 @@ } return groupLocations; } + + /// <summary> + /// 鑾峰彇涓嶅悓娣卞害鐨勫悓缁勮揣浣嶄俊鎭� + /// </summary> + /// <param name="location"></param> + /// <returns></returns> + public List<Dt_LocationInfo> GetGroupLocations(Dt_LocationInfo location) + { + List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == location.RoadwayNo && x.WarehouseId == location.WarehouseId); + + List<Dt_LocationInfo> groupLocations = new List<Dt_LocationInfo>() { location }; + int maxDepth = locationInfos.Max(x => x.Depth); + for (int j = location.Depth + 1; j <= maxDepth; j++) + { + Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer); + if (locationInfo != null) + { + groupLocations.Add(locationInfo); + } + } + + for (int j = location.Depth - 1; j >= 1; j--) + { + Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer); + if (locationInfo != null) + { + groupLocations.Add(locationInfo); + } + } + return groupLocations; + } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs" index 19d60dc..fed318a 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs" @@ -923,8 +923,8 @@ { object? obj2 = Activator.CreateInstance(htyType); PropertyInfo keyPro = typeof(TEntity).GetKeyProperty(); - PropertyInfo? operateTypePro = htyType.GetProperty(nameof(OperateTypeEnum)); - PropertyInfo? sourceIdPro = htyType.GetProperty("SourceId"); + PropertyInfo? operateTypePro = htyType.GetProperty(nameof(IBaseHistoryEntity.OperateType)); + PropertyInfo? sourceIdPro = htyType.GetProperty(nameof(IBaseHistoryEntity.SourceId)); if (obj2 != null && keyPro != null && operateTypePro != null && sourceIdPro != null) { List<PropertyInfo> propertyInfos = htyType.GetProperties().Where(x => x.Name != operateTypePro.Name && x.Name != sourceIdPro.Name && x.Name != keyPro.Name).ToList(); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Task/WMSTaskDTO.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Task/WMSTaskDTO.cs" index 84b63eb..6708cc4 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Task/WMSTaskDTO.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Task/WMSTaskDTO.cs" @@ -52,5 +52,6 @@ /// 浼樺厛绾� /// </summary> public int Grade { get; set; } + } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs" index 925ecf3..1e79cc9 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs" @@ -75,5 +75,20 @@ /// <param name="palletType">鎵樼洏绫诲瀷</param> /// <param name="locationStatus">璐т綅鐘舵��</param> void UpdateLocationStatus(Dt_LocationInfo location, PalletTypeEnum palletType, LocationStatusEnum locationStatus, int warehousId); + + /// <summary> + /// 鑾峰彇涓嶅悓娣卞害鐨勫悓缁勮揣浣嶄俊鎭� + /// </summary> + /// <param name="location"></param> + /// <returns></returns> + List<Dt_LocationInfo> GetGroupLocations(Dt_LocationInfo location); + + /// <summary> + /// 鍒ゆ柇娴呰揣浣嶆槸鍚﹁鍗犵敤 + /// </summary> + /// <param name="locationInfo">璐т綅淇℃伅</param> + /// <param name="palletType">鎵樼洏绫诲瀷</param> + /// <returns></returns> + bool LittleDepthLocationIsEmpty(Dt_LocationInfo locationInfo, PalletTypeEnum palletType); } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" index c2f6446..10cce98 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" @@ -93,11 +93,22 @@ /// <param name="taskNum">浠诲姟鍙�</param> /// <returns></returns> WebResponseContent OutboundTaskCompleted(int taskNum); +<<<<<<< Updated upstream /// <summary> /// 娴嬭瘯鏋堕��搴� /// </summary> /// <param name="backModel"></param> /// <returns></returns> MesResponseContent TestReturnStock(TestToolBackModel backModel); +======= + + /// <summary> + /// 鍒ゆ柇鏄惁闇�瑕佺Щ搴� + /// </summary> + /// <param name="taskNum">浠诲姟鍙�</param> + /// <param name="locationCode">鍏ュ簱鎴栧嚭搴撶殑璐т綅鍙�</param> + /// <returns></returns> + WebResponseContent IsRelocation(int taskNum, string locationCode); +>>>>>>> Stashed changes } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs" new file mode 100644 index 0000000..e0ae17a --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs" @@ -0,0 +1,100 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Common.CommonEnum; +using WIDESEA_Common.LocationEnum; +using WIDESEA_Common.OtherEnum; +using WIDESEA_Common.StockEnum; +using WIDESEA_Common.TaskEnum; +using WIDESEA_Core; +using WIDESEA_Core.Helper; +using WIDESEA_DTO.Task; +using WIDESEA_Model.Models; + +namespace WIDESEA_TaskInfoService +{ + public partial class TaskService + { + public WebResponseContent IsRelocation(int taskNum, string locationCode) + { + try + { + Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == locationCode); + if (locationInfo == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑璐т綅淇℃伅"); + } + Dt_Task task = Repository.QueryFirst(x => x.TaskNum == taskNum); + if (task == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒颁换鍔′俊鎭�"); + } + + if (!_basicService.LocationInfoService.LittleDepthLocationIsEmpty(locationInfo, (PalletTypeEnum)task.PalletType)) + { + return WebResponseContent.Instance.OK(data: _mapper.Map<WMSTaskDTO>(task)); + } + else + { + Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.LocationCode == locationCode); + if (stockInfo == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒板搴旇揣浣嶇殑搴撳瓨淇℃伅"); + } + + Dt_LocationInfo? newLocation = _basicService.LocationInfoService.AssignLocation(task.Roadway, (PalletTypeEnum)task.PalletType, task.WarehouseId); + if (newLocation != null) + { + Dt_Task newTask = new Dt_Task() + { + Roadway = task.Roadway, + WarehouseId = task.WarehouseId, + CurrentAddress = locationCode, + Grade = 99, + NextAddress = newLocation.LocationCode, + OrderNo = "", + PalletCode = stockInfo.PalletCode, + PalletType = stockInfo.PalletType, + SourceAddress = locationCode, + TargetAddress = newLocation.LocationCode, + TaskNum = Repository.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), + TaskStatus = 0, + TaskType = 0 + }; + + _unitOfWorkManage.BeginTran(); + Repository.AddData(newTask); + { + LocationStatusEnum lastStatus = (LocationStatusEnum)newLocation.LocationStatus; + newLocation.LocationStatus = LocationStatusEnum.Lock.ObjToInt(); + _basicService.LocationInfoService.UpdateLocationStatus(newLocation, (PalletTypeEnum)task.PalletType, LocationStatusEnum.Lock, stockInfo.WarehouseId); + _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, lastStatus, LocationChangeType.RelocationAssignLocation, taskNum: newTask.TaskNum); + } + { + LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus; + locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt(); + _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, (PalletTypeEnum)task.PalletType, LocationStatusEnum.Lock, stockInfo.WarehouseId); + _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, lastStatus, LocationChangeType.RelocationAssignLocation, taskNum: newTask.TaskNum); + } + stockInfo.StockStatus = StockStatusEmun.绉诲簱閿佸畾.ObjToInt(); + _stockRepository.StockInfoRepository.UpdateData(stockInfo); + + _unitOfWorkManage.RollbackTran(); + + return WebResponseContent.Instance.OK(data: _mapper.Map<WMSTaskDTO>(newTask)); + } + else + { + return WebResponseContent.Instance.Error($"鏈壘鍒板彲鍒嗛厤璐т綅,璇锋煡鐪嬭宸烽亾銆恵task.Roadway}銆戞槸鍚﹁繕鏈夌┖闂插彲浣跨敤璐т綅"); + } + } + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" index e4e773a..67ca56d 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" @@ -100,5 +100,11 @@ { return Service.OutboundTaskCompleted(taskNum); } + + [HttpPost, HttpGet, Route("IsRelocation"), AllowAnonymous] + public WebResponseContent IsRelocation(int taskNum, string locationCode) + { + return Service.IsRelocation(taskNum, locationCode); + } } } -- Gitblit v1.9.3