From f56441867f2cc77567f97a92348a5d878f0dca05 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期四, 12 三月 2026 18:24:15 +0800
Subject: [PATCH] Add AGENTS instructions and updates
---
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 17
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Http/HTTP/HttpClientHelper.cs | 1
Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/AutoMapperHelper.cs | 2
Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v18/DocumentLayout.json | 347 ++++----
Code/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrder_HtyService.cs | 2
Code/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs | 63 +
Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/AutoMapperSetup.cs | 15
Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/CodeChunks.db | 0
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tests/CommonConveyorLineTests.cs | 54 +
Code/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs | 2
Code/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v18/DocumentLayout.json | 472 +----------
Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs | 12
Code/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/StockQuantityChangeRecordService.cs | 2
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs | 53
Code/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_MenuService.cs | 2
Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs | 38
Code/WCS/WIDESEAWCS_Server/CLAUDE.md | 14
Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs | 13
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 7
Code/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrder_HtyService.cs | 2
Code/WCS/WIDESEAWCS_Server/AGENTS.md | 49 +
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs | 52 +
Code/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 2
Code/WMS/WIDESEA_WMSServer/AGENTS.md | 51 +
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/HttpEnum/ConfigKey.cs | 5
Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 161 ++-
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs | 134 ++
Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/WIDESEA_Core.csproj | 11
Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json | 3
Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs | 101 +-
Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/SemanticSymbols.db | 0
Code/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v18/DocumentLayout.backup.json | 482 +----------
Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/AutoMapperConfig.cs | 15
Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj | 4
Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs | 11
Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/AutoOutboundTaskBackgroundService.cs | 9
Code/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs | 5
Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskStatusEnum.cs | 55 +
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tests/WIDESEAWCS_Tests.csproj | 4
项目资料/设备协议/高常温堆垛机与输送线/~$WCS输送对接地址表.xlsx | 0
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tests/StackerCraneTaskSelectorTests.cs | 116 ++
41 files changed, 1,143 insertions(+), 1,245 deletions(-)
diff --git a/Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/CodeChunks.db b/Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/CodeChunks.db
index e6767c4..ebfbf61 100644
--- a/Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/CodeChunks.db
+++ b/Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/CodeChunks.db
Binary files differ
diff --git a/Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/SemanticSymbols.db b/Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/SemanticSymbols.db
index 3d100dd..5e343b9 100644
--- a/Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/SemanticSymbols.db
+++ b/Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/18.0.988.22099/SemanticSymbols.db
Binary files differ
diff --git a/Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v18/DocumentLayout.json b/Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v18/DocumentLayout.json
index 4abbf9a..569dded 100644
--- a/Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v18/DocumentLayout.json
+++ b/Code/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v18/DocumentLayout.json
@@ -3,36 +3,40 @@
"WorkspaceRootPath": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\",
"Documents": [
{
- "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\stackercranedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\stackercranedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|d:\\git\\shanmeixinnengyuan\\code\\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:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\enum\\conveyorlinestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\enum\\conveyorlinestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\stackercranetaskselector.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\stackercranetaskselector.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\common\\stackercranebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\common\\stackercranebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\common\\istackercranebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\common\\istackercranebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinenewjob\\conveyorlinetargetaddressselector.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinenewjob\\conveyorlinetargetaddressselector.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{D4D17AAD-CB14-AF78-5BD1-F16380EBE911}|WIDESEAWCS_Tests\\WIDESEAWCS_Tests.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tests\\stackercranetaskselectortests.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{D4D17AAD-CB14-AF78-5BD1-F16380EBE911}|WIDESEAWCS_Tests\\WIDESEAWCS_Tests.csproj|solutionrelative:wideseawcs_tests\\stackercranetaskselectortests.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|d:\\git\\shanmeixinnengyuan\\code\\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:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|d:\\git\\shanmeixinnengyuan\\code\\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:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\quartznetextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\quartznetextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_core\\http\\http\\httpclienthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -43,20 +47,16 @@
"RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\httpenum\\configkey.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
+ "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\stackercranecommandbuilder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\stackercranecommandbuilder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
"AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinenewjob\\commonconveyorlinenewjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinenewjob\\commonconveyorlinenewjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinenewjob\\conveyorlinedispatchhandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinenewjob\\conveyorlinedispatchhandler.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_dto\\taskinfo\\updatetaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\taskinfo\\updatetaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\git\\shanmeixinnengyuan\\code\\wcs\\wideseawcs_server\\wideseawcs_tasks\\robotjob\\robotjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\robotjob\\robotjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
@@ -66,7 +66,7 @@
"DocumentGroups": [
{
"DockedWidth": 200,
- "SelectedChildIndex": 9,
+ "SelectedChildIndex": 14,
"Children": [
{
"$type": "Bookmark",
@@ -82,172 +82,183 @@
},
{
"$type": "Document",
- "DocumentIndex": 3,
- "Title": "CommonConveyorLine.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
- "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
- "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
- "ViewState": "AgIAALkAAAAAAAAAAAAIwBkBAAA5AAAAAAAAAA==",
+ "DocumentIndex": 5,
+ "Title": "TaskStatusEnum.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+ "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+ "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAMEAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T08:15:24.525Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 4,
- "Title": "ConveyorLineStatus.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\Enum\\ConveyorLineStatus.cs",
- "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\Enum\\ConveyorLineStatus.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\Enum\\ConveyorLineStatus.cs",
- "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\Enum\\ConveyorLineStatus.cs",
- "ViewState": "AgIAAAQAAAAAAAAAAAAkwBoAAAAIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T08:15:00.898Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 1,
- "Title": "StackerCraneDBName.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
- "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
- "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAQAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T08:02:50.163Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 7,
- "Title": "IStackerCraneBase.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\IStackerCraneBase.cs",
- "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\IStackerCraneBase.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\IStackerCraneBase.cs",
- "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\IStackerCraneBase.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAuwA8AAAAUAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T07:54:44.79Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 6,
- "Title": "StackerCraneBase.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\StackerCraneBase.cs",
- "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\StackerCraneBase.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\StackerCraneBase.cs",
- "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\StackerCraneBase.cs",
- "ViewState": "AgIAADMAAAAAAAAAAAAjwE0AAACBAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T07:54:57.111Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 8,
- "Title": "HttpClientHelper.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Http\\HTTP\\HttpClientHelper.cs",
- "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Http\\HTTP\\HttpClientHelper.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Http\\HTTP\\HttpClientHelper.cs",
- "RelativeToolTip": "WIDESEAWCS_Core\\Http\\HTTP\\HttpClientHelper.cs",
- "ViewState": "AgIAAHEAAAAAAAAAAAAlwIUAAAAIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T06:50:35.753Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 0,
- "Title": "CommonStackerCrane.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
- "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
- "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAB4BAAAYAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T06:45:11.598Z",
+ "WhenOpened": "2026-03-12T07:12:53.626Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 9,
+ "DocumentIndex": 7,
+ "Title": "QuartzNetExtension.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
+ "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
+ "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
+ "ViewState": "AgIAAGQAAAAAAAAAAAAhwHMAAAAgAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-03-12T03:00:44.453Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "StackerCraneTaskSelectorTests.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tests\\StackerCraneTaskSelectorTests.cs",
+ "RelativeDocumentMoniker": "WIDESEAWCS_Tests\\StackerCraneTaskSelectorTests.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tests\\StackerCraneTaskSelectorTests.cs",
+ "RelativeToolTip": "WIDESEAWCS_Tests\\StackerCraneTaskSelectorTests.cs",
+ "ViewState": "AgIAAB8AAAAAAAAAAAAawDgAAAAkAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-03-12T02:12:05.875Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 10,
"Title": "ConfigKey.cs",
"DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\HttpEnum\\ConfigKey.cs",
"RelativeDocumentMoniker": "WIDESEAWCS_Common\\HttpEnum\\ConfigKey.cs",
"ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\HttpEnum\\ConfigKey.cs",
"RelativeToolTip": "WIDESEAWCS_Common\\HttpEnum\\ConfigKey.cs",
- "ViewState": "AgIAABgAAAAAAAAAAAAAADYAAAAaAAAAAAAAAA==",
+ "ViewState": "AgIAAB8AAAAAAAAAAAAkwDkAAAAaAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T03:12:41.682Z"
+ "WhenOpened": "2026-03-12T01:55:15.084Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 5,
- "Title": "CommonStackerCraneJob.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
- "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
- "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
- "ViewState": "AgIAAK0AAAAAAAAAAAAhwMUAAAAqAAAAAAAAAA==",
+ "DocumentIndex": 9,
+ "Title": "HttpClientHelper.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Http\\HTTP\\HttpClientHelper.cs",
+ "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Http\\HTTP\\HttpClientHelper.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Http\\HTTP\\HttpClientHelper.cs",
+ "RelativeToolTip": "WIDESEAWCS_Core\\Http\\HTTP\\HttpClientHelper.cs",
+ "ViewState": "AgIAAEoAAAAAAAAAAAAjwF0AAAAtAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T02:51:19.83Z"
+ "WhenOpened": "2026-03-12T01:54:05.934Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 11,
- "Title": "ConveyorLineDispatchHandler.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs",
- "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs",
- "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs",
- "ViewState": "AgIAAC8AAAAAAAAAAAAowE4AAAAIAAAAAAAAAA==",
+ "DocumentIndex": 8,
+ "Title": "CommonConveyorLine.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
+ "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
+ "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
+ "ViewState": "AgIAABUBAAAAAAAAAAAlwDEBAAAIAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T02:59:00.573Z"
+ "WhenOpened": "2026-03-12T01:18:56.873Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 12,
- "Title": "UpdateTaskDto.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\TaskInfo\\UpdateTaskDto.cs",
- "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\TaskInfo\\UpdateTaskDto.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\TaskInfo\\UpdateTaskDto.cs",
- "RelativeToolTip": "WIDESEAWCS_DTO\\TaskInfo\\UpdateTaskDto.cs",
- "ViewState": "AgIAAAMAAAAAAAAAAAAkwBUAAAASAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T02:54:28.86Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 2,
- "Title": "TaskService.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
- "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
- "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
- "ViewState": "AgIAAHIBAAAAAAAAAADwv4UBAAAkAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T02:53:22.23Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 13,
- "Title": "RobotJob.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RobotJob\\RobotJob.cs",
- "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RobotJob\\RobotJob.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RobotJob\\RobotJob.cs",
- "RelativeToolTip": "WIDESEAWCS_Tasks\\RobotJob\\RobotJob.cs",
- "ViewState": "AgIAAGQAAAAAAAAAAAAuwAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T02:52:59.008Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 10,
"Title": "CommonConveyorLineNewJob.cs",
"DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\CommonConveyorLineNewJob.cs",
"RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\CommonConveyorLineNewJob.cs",
"ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\CommonConveyorLineNewJob.cs",
"RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\CommonConveyorLineNewJob.cs",
- "ViewState": "AgIAAFAAAAAAAAAAAAAqwIYAAAAtAAAAAAAAAA==",
+ "ViewState": "AgIAAFcAAAAAAAAAAAAEwHAAAAA9AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T02:50:06.749Z"
+ "WhenOpened": "2026-03-11T09:29:57.419Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "CommonStackerCrane.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
+ "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
+ "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
+ "ViewState": "AgIAAJcBAAAAAAAAAAAlwKoBAAAcAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-03-11T09:22:04.384Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 6,
+ "Title": "TaskService.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+ "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+ "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+ "ViewState": "AgIAAFMBAAAAAAAAAAAkwGYBAAAoAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-03-11T09:01:01.549Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "ConveyorLineTargetAddressSelector.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineTargetAddressSelector.cs",
+ "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineTargetAddressSelector.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineTargetAddressSelector.cs",
+ "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineTargetAddressSelector.cs",
+ "ViewState": "AgIAAFUAAAAAAAAAAAAuwAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-03-11T08:34:00.532Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 13,
+ "Title": "ConveyorLineDispatchHandler.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs",
+ "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs",
+ "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineNewJob\\ConveyorLineDispatchHandler.cs",
+ "ViewState": "AgIAAEYAAAAAAAAAAAAQwFgAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-03-11T08:31:44.415Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "StackerCraneTaskSelector.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskSelector.cs",
+ "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskSelector.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskSelector.cs",
+ "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskSelector.cs",
+ "ViewState": "AgIAAEYAAAAAAAAAAAAjwFcAAAAJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-03-11T08:28:58.072Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 11,
+ "Title": "StackerCraneCommandBuilder.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneCommandBuilder.cs",
+ "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneCommandBuilder.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneCommandBuilder.cs",
+ "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneCommandBuilder.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-03-11T08:28:41.512Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "CommonStackerCraneJob.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
+ "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
+ "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
+ "ViewState": "AgIAAEcAAAAAAAAAAAAmwF0AAAAhAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-03-11T08:27:57.894Z",
+ "EditorCaption": ""
}
]
}
diff --git a/Code/WCS/WIDESEAWCS_Server/AGENTS.md b/Code/WCS/WIDESEAWCS_Server/AGENTS.md
new file mode 100644
index 0000000..a63cedb
--- /dev/null
+++ b/Code/WCS/WIDESEAWCS_Server/AGENTS.md
@@ -0,0 +1,49 @@
+# Repository Guidelines
+
+## 项目结构与模块组织
+本仓库是一个按分层职责组织的多项目 .NET 解决方案(`WIDESEAWCS_Server.sln`)。
+- `WIDESEAWCS_Server/`:ASP.NET Core 主机、控制器、启动管线,静态资源位于 `wwwroot/`。
+- `WIDESEAWCS_Core/`:通用基础设施(DI、中间件、鉴权、数据库配置、基础抽象)。
+- `WIDESEAWCS_Model/` 与 `WIDESEAWCS_DTO/`:实体模型与传输对象。
+- `WIDESEAWCS_*Repository` + `WIDESEAWCS_*Service`:System、TaskInfo、BasicInfo 领域的接口/实现分层。
+- `WIDESEAWCS_Tasks/` 与 `WIDESEAWCS_QuartzJob/`:设备任务编排与调度。
+- `WIDESEAWCS_Tests/`:自动化单元测试(xUnit)。
+- `docs/superpowers/`:设计文档与实施计划。
+
+## 构建、测试与本地开发命令
+- `dotnet restore WIDESEAWCS_Server.sln`:还原所有 NuGet 依赖。
+- `dotnet build WIDESEAWCS_Server.sln -c Debug`:编译全部项目。
+- `dotnet test WIDESEAWCS_Tests/WIDESEAWCS_Tests.csproj`:运行单元测试。
+- `dotnet run --project WIDESEAWCS_Server/WIDESEAWCS_Server.csproj`:本地启动 API 服务。
+
+优先使用解决方案级命令;需要快速迭代时再切换到项目级命令。
+
+## 代码风格与命名规范
+- 语言:C#,各项目已启用可空引用(nullable)。
+- 缩进:4 个空格;大括号换行(与现有代码保持一致)。
+- 命名:类型/方法/属性使用 `PascalCase`,局部变量/参数使用 `camelCase`,接口以 `I` 前缀命名。
+- 文件命名与类型名保持一致(例如 `Sys_UserService.cs`、`TaskController.cs`)。
+- `.editorconfig` 当前对 `*.cs` 抑制 CS8618;未经团队确认不要新增大范围警告抑制。
+- 为新生成或者修改的代码的每一行添加详细注释,包括:
+ - 方法的目的说明
+ - 参数说明
+ - 返回值说明
+ - 每一行代码的作用
+ - 异常情况的说明
+
+
+## 测试规范
+- 测试栈:xUnit + `Microsoft.NET.Test.Sdk`,并已引入 `Moq`、`FluentAssertions`、`coverlet.collector`。
+- 测试命名建议:`MethodName_ShouldExpectedBehavior`(例如 `WaitIntervalMs_ShouldBe500`)。
+- 修改业务逻辑、常量或服务行为时,需同步新增/更新测试。
+- 推送前请本地执行 `dotnet test`。
+
+## 提交与 Pull Request 规范
+- 最近提交历史倾向使用简短、聚焦的前缀风格:`feat:`、`fix:`、`docs:`、`chore:`、`config:`。
+- 提交标题使用祈使句,单次提交聚焦单一变更集。
+- PR 建议包含:
+ - 变更内容与动机的清晰说明;
+ - 受影响模块/项目路径;
+ - 测试证据(`dotnet test` 输出或等价说明);
+ - 关联任务/Issue(如有);
+ - 仅在修改 UI/静态页面资源时附截图。
diff --git a/Code/WCS/WIDESEAWCS_Server/CLAUDE.md b/Code/WCS/WIDESEAWCS_Server/CLAUDE.md
index e3c6ee7..90f1178 100644
--- a/Code/WCS/WIDESEAWCS_Server/CLAUDE.md
+++ b/Code/WCS/WIDESEAWCS_Server/CLAUDE.md
@@ -229,3 +229,17 @@
- Redis 杩炴帴浣跨敤 **寤惰繜鍒濆鍖�** - 棣栨璁块棶鏃惰Е鍙戣繛鎺�
- 鍦ㄤ换鍔′腑浣跨敤 `ConsoleHelper.WriteSuccessLine()` / `WriteErrorLine()` 杩涜鎺у埗鍙拌緭鍑�
- TCP Socket 鏈嶅姟鍣ㄧ嫭绔嬩簬 HTTP API 杩愯
+
+## 浠g爜椋庢牸涓庡懡鍚嶈鑼�
+
+- 璇█锛欳#锛屽悇椤圭洰宸插惎鐢ㄥ彲绌哄紩鐢紙nullable锛夈��
+- 缂╄繘锛�4 涓┖鏍硷紱澶ф嫭鍙锋崲琛岋紙涓庣幇鏈変唬鐮佷繚鎸佷竴鑷达級銆�
+- 鍛藉悕锛氱被鍨�/鏂规硶/灞炴�т娇鐢� `PascalCase`锛屽眬閮ㄥ彉閲�/鍙傛暟浣跨敤 `camelCase`锛屾帴鍙d互 `I` 鍓嶇紑鍛藉悕銆�
+- 鏂囦欢鍛藉悕涓庣被鍨嬪悕淇濇寔涓�鑷达紙渚嬪 `Sys_UserService.cs`銆乣TaskController.cs`锛夈��
+- `.editorconfig` 褰撳墠瀵� `*.cs` 鎶戝埗 CS8618锛涙湭缁忓洟闃熺‘璁や笉瑕佹柊澧炲ぇ鑼冨洿璀﹀憡鎶戝埗銆�
+- 涓烘柊鐢熸垚鎴栬�呬慨鏀圭殑浠g爜鐨勬瘡涓�琛屾坊鍔犺缁嗘敞閲婏紝鍖呮嫭锛�
+ - 鏂规硶鐨勭洰鐨勮鏄�
+ - 鍙傛暟璇存槑
+ - 杩斿洖鍊艰鏄�
+ - 姣忎竴琛屼唬鐮佺殑浣滅敤
+ - 寮傚父鎯呭喌鐨勮鏄�
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/HttpEnum/ConfigKey.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/HttpEnum/ConfigKey.cs
index 19eaac2..b998518 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/HttpEnum/ConfigKey.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/HttpEnum/ConfigKey.cs
@@ -54,6 +54,11 @@
/// </summary>
UpdateTaskByStatus,
+ /// <summary>
+ /// 鍒ゆ柇鏄惁闇�瑕佺Щ搴擄紙鏍规嵁浠诲姟鍙峰垽鏂槸鍚﹂渶瑕佺Щ搴擄級
+ /// </summary>
+ TransferCheck,
+
#endregion WMS鎺ュ彛
}
}
\ No newline at end of file
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs
index 0431507..83afe42 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs
@@ -1,9 +1,4 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+锘縰sing System.ComponentModel;
namespace WIDESEAWCS_Common.TaskEnum
{
@@ -195,4 +190,49 @@
[Description("鏈烘鎵嬩换鍔″紓甯�")]
RobotException = 399,
}
+
+ public enum TaskRelocationStatusEnum
+ {
+ /// <summary>
+ /// 鏂板缓绉诲簱浠诲姟
+ /// </summary>
+ [Description("鏂板缓绉诲簱浠诲姟")]
+ RelocationNew = 300,
+
+ /// <summary>
+ /// 鍫嗗灈鏈虹Щ搴撴墽琛屼腑
+ /// </summary>
+ [Description("鍫嗗灈鏈虹Щ搴撴墽琛屼腑")]
+ SC_RelocationExecuting = 310,
+
+ /// <summary>
+ /// 鍫嗗灈鏈虹Щ搴撳畬鎴�
+ /// </summary>
+ [Description("鍫嗗灈鏈虹Щ搴撳畬鎴�")]
+ SC_RelocationFinish = 315,
+
+ /// <summary>
+ /// 绉诲簱浠诲姟瀹屾垚
+ /// </summary>
+ [Description("绉诲簱浠诲姟瀹屾垚")]
+ RelocationFinish = 390,
+
+ /// <summary>
+ /// 绉诲簱浠诲姟鎸傝捣
+ /// </summary>
+ [Description("绉诲簱浠诲姟鎸傝捣")]
+ RelocationPending = 397,
+
+ /// <summary>
+ /// 绉诲簱浠诲姟鍙栨秷
+ /// </summary>
+ [Description("绉诲簱浠诲姟鍙栨秷")]
+ RelocationCancel = 398,
+
+ /// <summary>
+ /// 绉诲簱浠诲姟寮傚父
+ /// </summary>
+ [Description("绉诲簱浠诲姟寮傚父")]
+ RelocationException = 399,
+ }
}
\ No newline at end of file
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Http/HTTP/HttpClientHelper.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Http/HTTP/HttpClientHelper.cs
index a5fe893..3beeef7 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Http/HTTP/HttpClientHelper.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Http/HTTP/HttpClientHelper.cs
@@ -39,6 +39,7 @@
_cache.TryAdd($"{RedisPrefix.Code}:{RedisName.API}:{nameof(ConfigKey.ChangePalletAsync)}", $"Stock/ChangePalletAsync");
_cache.TryAdd($"{RedisPrefix.Code}:{RedisName.API}:{nameof(ConfigKey.SplitPalletAsync)}", $"Stock/SplitPalletAsync");
_cache.TryAdd($"{RedisPrefix.Code}:{RedisName.API}:{nameof(ConfigKey.UpdateTaskByStatus)}", $"Task/UpdateTaskByStatus");
+ _cache.TryAdd($"{RedisPrefix.Code}:{RedisName.API}:{nameof(ConfigKey.TransferCheck)}", $"LocationInfo/TransferCheck");
}
/// <summary>
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
index efcb519..7ff5c39 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
@@ -23,6 +23,7 @@
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Communicator;
+using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_QuartzJob.ConveyorLine.Enum;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.DTO;
@@ -180,7 +181,7 @@
/// <exception cref="Exception"></exception>
public bool SendCommand<T>(T command, string deviceChildCode) where T : IDataTransfer, new()
{
- if(Communicator is SiemensS7)
+ if (Communicator is SiemensS7)
{
if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand) && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
@@ -271,29 +272,37 @@
/// <exception cref="Exception"></exception>
public bool IsOccupied(string deviceChildCode)
{
- if (Communicator.IsConnected)
+ // 1. 鍏堟鏌ラ�氫俊鐘舵��
+ if (!Communicator.IsConnected)
{
- List<DeviceProDTO> devicePros = _deviceProDTOs.Where(x => x.DeviceProParamType == ConveyorLineStatus.CV_State.ToString()).ToList();
- if (devicePros.Count == 0)
- {
- //todo 鍗忚淇℃伅鏈幏鍙栧埌鏃舵姏鍑哄紓甯�
- throw new Exception();
- }
- for (int i = 0; i < devicePros.Count; i++)
- {
- object readStatus = Communicator.ReadAsObj(devicePros[i].DeviceProAddress, devicePros[i].DeviceDataType);
- //todo 鍗忚鏄庣粏淇℃伅鏈幏鍙栧埌鏃舵姏鍑哄紓甯�
- DeviceProtocolDetailDTO? deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePros[i].DeviceProParamName) ?? throw new Exception();
- deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePros[i].DeviceProParamType && x.ProtocalDetailValue.Equals(readStatus.ToString()));
- if (deviceProtocolDetail != null)
- {
- return true;
- }
- return false;
- }
+ throw new InvalidOperationException($"閫氫俊鏈繛鎺ワ紝鏃犳硶鑾峰彇璁惧[{deviceChildCode}]鐨勫崰鐢ㄧ姸鎬�");
}
- //todo 閫氳鏈繛鎺ユ椂鎶涘嚭寮傚父
- return false;
+ // 2. 鑾峰彇璁惧鍗忚淇℃伅
+ var devicePro = _deviceProDTOs.FirstOrDefault(x =>
+ x.DeviceProParamType == ConveyorLineStatus.IsOccupied.ToString() &&
+ x.DeviceChildCode == deviceChildCode);
+
+ if (devicePro == null)
+ {
+ throw new KeyNotFoundException($"鏈壘鍒拌澶嘯{deviceChildCode}]鐨勫崰鐢ㄧ姸鎬佸崗璁厤缃�");
+ }
+
+ // 3. 璇诲彇璁惧鐘舵�佸��
+ object readStatus;
+ try
+ {
+ readStatus = Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
+ }
+ catch (Exception ex)
+ {
+ throw new Exception($"璇诲彇璁惧[{deviceChildCode}]鍦板潃[{devicePro.DeviceProAddress}]澶辫触", ex);
+ }
+
+ // 4. 鍒ゆ柇鐘舵�佸�兼槸鍚﹀尮閰嶅崰鐢ㄧ姸鎬佹槑缁�
+ var readStatusValue = readStatus?.ToString() ?? string.Empty;
+ return _deviceProtocolDetailDTOs.Any(x =>
+ x.ProtocolDetailType == devicePro.DeviceProParamType &&
+ string.Equals(x.ProtocalDetailValue, readStatusValue, StringComparison.Ordinal));
}
/// <summary>
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 323ea53..710e2d3 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -94,13 +94,13 @@
task.Creater = "WMS";
if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
{
- List<Dt_Router> routers = _routerService.QueryNextRoutes(item.RoadWay, item.TargetAddress);
+ Dt_Router router = _routerService.QueryNextRoute(item.RoadWay, item.TargetAddress,item.TaskType);
//鏆備笉鑰冭檻澶氳矾寰�
- if (routers.Count > 0)
+ if (router !=null )
{
task.TaskState = (int)TaskOutStatusEnum.OutNew;
task.CurrentAddress = item.SourceAddress;
- task.NextAddress = routers.FirstOrDefault().ChildPosi;
+ task.NextAddress = router.ChildPosi;
}
}
else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
@@ -558,13 +558,13 @@
task.NextAddress = routers.FirstOrDefault().ChildPosi;
task.ModifyDate = DateTime.Now;
task.Modifier = "System";
- BaseDal.UpdateData(task);
-
- _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
var result = _httpClientHelper.Post<WebResponseContent>(nameof(ConfigKey.OutboundFinishTaskAsync), (new StockInfoDTO() { PalletCode = task.PalletCode, TaskNum = task.TaskNum }).ToJson());
if (result.IsSuccess && result.Data.Status)
{
+ BaseDal.UpdateData(task);
+
+ _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
return content.Error($"閫氱煡WMS绯荤粺鍫嗗灈鏈哄嚭搴撳畬鎴愭垚鍔�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�");
}
@@ -579,8 +579,7 @@
task.TaskState = nextStatus;
task.ModifyDate = DateTime.Now;
task.Modifier = "System";
- BaseDal.UpdateData(task);
- _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�");
+
var result = _httpClientHelper.Post<WebResponseContent>(nameof(ConfigKey.InboundFinishTaskAsync), (new CreateTaskDto()
@@ -590,6 +589,8 @@
if (result.IsSuccess && result.Data.Status)
{
+ BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.鑷姩瀹屾垚);
+ _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�");
return content.Error($"閫氱煡WMS绯荤粺鍫嗗灈鏈哄叆搴撳畬鎴愭垚鍔�,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙�:銆恵task.PalletCode}銆�");
}
else
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
index c9f777a..5a8506e 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -10,6 +10,8 @@
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.StackerCrane;
using WIDESEAWCS_Tasks.StackerCraneJob;
+using WIDESEA_Core;
+using WIDESEAWCS_QuartzJob.Service;
namespace WIDESEAWCS_Tasks
{
@@ -28,14 +30,15 @@
ITaskService taskService,
ITaskExecuteDetailService taskExecuteDetailService,
ITaskRepository taskRepository,
- WIDESEAWCS_QuartzJob.Service.IRouterService routerService)
+ IRouterService routerService,
+ HttpClientHelper httpClientHelper)
{
_taskService = taskService;
_taskExecuteDetailService = taskExecuteDetailService;
_taskRepository = taskRepository;
_config = LoadConfig();
- _taskSelector = new StackerCraneTaskSelector(taskService, routerService);
+ _taskSelector = new StackerCraneTaskSelector(taskService, routerService, httpClientHelper);
_commandBuilder = new StackerCraneCommandBuilder(taskService, routerService, _config);
}
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs
index 707e404..463547d 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs
@@ -1,6 +1,9 @@
-锘縰sing System.Diagnostics.CodeAnalysis;
-using System.Linq;
+锘縰sing Newtonsoft.Json;
+using System.Diagnostics.CodeAnalysis;
+using WIDESEA_Core;
+using WIDESEAWCS_Common.HttpEnum;
using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
@@ -16,55 +19,124 @@
{
private readonly ITaskService _taskService;
private readonly IRouterService _routerService;
+ private readonly Func<int, Dt_Task?> _transferCheck;
- public StackerCraneTaskSelector(ITaskService taskService, IRouterService routerService)
+ public StackerCraneTaskSelector(ITaskService taskService, IRouterService routerService, HttpClientHelper httpClientHelper)
+ : this(taskService, routerService, taskNum => QueryTransferTask(httpClientHelper, taskNum))
+ {
+ }
+
+ public StackerCraneTaskSelector(ITaskService taskService, IRouterService routerService, Func<int, Dt_Task?> transferCheck)
{
_taskService = taskService;
_routerService = routerService;
+ _transferCheck = transferCheck;
}
public Dt_Task? SelectTask(IStackerCrane commonStackerCrane)
{
- Dt_Task? task;
+ Dt_Task? candidateTask;
if (commonStackerCrane.LastTaskType == null)
{
- task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode);
+ candidateTask = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode);
}
else if (commonStackerCrane.LastTaskType.GetValueOrDefault().GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
{
- task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
- task ??= _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode);
+ candidateTask = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
+ candidateTask ??= _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode);
}
else
{
- task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode);
+ candidateTask = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode);
}
- if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+ if (candidateTask == null)
{
- if (IsOutTaskStationAvailable(task))
- {
- return task;
- }
-
- var otherOutStationCodes = _routerService
- .QueryNextRoutes(commonStackerCrane.DeviceCode, task.NextAddress, task.TaskType)
- .Select(x => x.ChildPosi)
- .ToList();
-
- var tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode, otherOutStationCodes);
- foreach (var alternativeTask in tasks)
- {
- if (IsOutTaskStationAvailable(alternativeTask))
- {
- return alternativeTask;
- }
- }
-
- task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
+ return null;
}
- return task;
+ if (candidateTask.TaskType.GetTaskTypeGroup() != TaskTypeGroup.OutbondGroup)
+ {
+ return candidateTask;
+ }
+
+ Dt_Task? selectedTask = TrySelectOutboundTask(candidateTask);
+ if (selectedTask != null)
+ {
+ return selectedTask;
+ }
+
+ var otherOutStationCodes = _routerService
+ .QueryNextRoutes(commonStackerCrane.DeviceCode, candidateTask.NextAddress, candidateTask.TaskType)
+ .Select(x => x.ChildPosi)
+ .ToList();
+
+ var tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode, otherOutStationCodes);
+ foreach (var alternativeTask in tasks)
+ {
+ selectedTask = TrySelectOutboundTask(alternativeTask);
+ if (selectedTask != null)
+ {
+ return selectedTask;
+ }
+ }
+
+ return _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
+ }
+
+ private Dt_Task? TrySelectOutboundTask(Dt_Task outboundTask)
+ {
+ // 鍙鏄嚭搴撲换鍔★紝蹇呴』鍏堣皟鐢╓MS鍒ゆ柇鏄惁闇�瑕佺Щ搴撱��
+ var taskAfterTransferCheck = _transferCheck(outboundTask.TaskNum) ?? outboundTask;
+ var taskGroup = taskAfterTransferCheck.TaskType.GetTaskTypeGroup();
+
+ if (taskGroup == TaskTypeGroup.RelocationGroup || taskGroup == TaskTypeGroup.OutbondGroup)
+ {
+ TryAddTaskFromWms(taskAfterTransferCheck);
+ }
+
+ if (taskGroup == TaskTypeGroup.RelocationGroup)
+ {
+ return taskAfterTransferCheck;
+ }
+
+ if (taskGroup != TaskTypeGroup.OutbondGroup)
+ {
+ return taskAfterTransferCheck;
+ }
+
+ return IsOutTaskStationAvailable(taskAfterTransferCheck) ? taskAfterTransferCheck : null;
+ }
+
+ private static Dt_Task? QueryTransferTask(HttpClientHelper httpClientHelper, int taskNum)
+ {
+ var response = httpClientHelper.Post<WebResponseContent>(
+ nameof(ConfigKey.TransferCheck),
+ taskNum.ToString());
+
+ if (response == null || !response.IsSuccess || response.Data == null || !response.Data.Status || response.Data.Data == null)
+ {
+ return null;
+ }
+
+ var taskJson = response.Data.Data.ToString();
+ return string.IsNullOrWhiteSpace(taskJson) ? null : JsonConvert.DeserializeObject<Dt_Task>(taskJson);
+ }
+
+ private void TryAddTaskFromWms(Dt_Task task)
+ {
+ if (task.TaskNum <= 0)
+ {
+ return;
+ }
+
+ var existingTask = _taskService.QueryByTaskNum(task.TaskNum);
+ if (existingTask != null)
+ {
+ return;
+ }
+
+ _taskService.AddData(task);
}
private bool IsOutTaskStationAvailable([NotNull] Dt_Task task)
@@ -87,4 +159,4 @@
return conveyorLine.IsOccupied(router.ChildPosi);
}
}
-}
+}
\ No newline at end of file
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tests/CommonConveyorLineTests.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tests/CommonConveyorLineTests.cs
new file mode 100644
index 0000000..dca20ff
--- /dev/null
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tests/CommonConveyorLineTests.cs
@@ -0,0 +1,54 @@
+using Moq;
+using WIDESEAWCS_Communicator;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.ConveyorLine.Enum;
+using WIDESEAWCS_QuartzJob.DTO;
+
+namespace WIDESEAWCS_Tests;
+
+public class CommonConveyorLineTests
+{
+ [Fact]
+ public void IsOccupied_ShouldReturnTrue_WhenStatusValueMatchesDetailByParamType()
+ {
+ var communicator = new Mock<BaseCommunicator>();
+ communicator.SetupGet(x => x.IsConnected).Returns(true);
+ communicator
+ .Setup(x => x.ReadAsObj(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<ushort>()))
+ .Returns("1");
+
+ var devicePros = new List<DeviceProDTO>
+ {
+ new()
+ {
+ DeviceChildCode = "CV01",
+ DeviceProParamType = ConveyorLineStatus.IsOccupied.ToString(),
+ DeviceProParamName = ConveyorLineStatus.CV_State.ToString(),
+ DevicePlcType = "SiemensS7",
+ DeviceProDataBlock = "DB1",
+ DeviceProOffset = 0,
+ DeviceDataType = "Int16"
+ }
+ };
+
+ var protocolDetails = new List<DeviceProtocolDetailDTO>
+ {
+ new()
+ {
+ DeviceProParamName = ConveyorLineStatus.IsOccupied.ToString(),
+ ProtocalDetailValue = "1"
+ }
+ };
+
+ using var conveyorLine = new CommonConveyorLine(
+ communicator.Object,
+ devicePros,
+ protocolDetails,
+ "CV",
+ "Conveyor");
+
+ var occupied = conveyorLine.IsOccupied("CV01");
+
+ Assert.True(occupied);
+ }
+}
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tests/StackerCraneTaskSelectorTests.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tests/StackerCraneTaskSelectorTests.cs
new file mode 100644
index 0000000..1a9cc28
--- /dev/null
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tests/StackerCraneTaskSelectorTests.cs
@@ -0,0 +1,116 @@
+using Moq;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_Tasks;
+
+namespace WIDESEAWCS_Tests;
+
+public class StackerCraneTaskSelectorTests
+{
+ [Fact]
+ public void SelectTask_ShouldCallTransferCheck_ForOutboundTask_AndReturnRelocationTask()
+ {
+ var taskService = new Mock<ITaskService>();
+ var routerService = new Mock<IRouterService>();
+ var stackerCrane = new Mock<IStackerCrane>();
+
+ stackerCrane.SetupGet(x => x.DeviceCode).Returns("SC01");
+ stackerCrane.SetupGet(x => x.LastTaskType).Returns((int?)null);
+
+ var outboundTask = new Dt_Task
+ {
+ TaskNum = 1001,
+ TaskType = (int)TaskOutboundTypeEnum.Outbound,
+ Roadway = "SC01",
+ NextAddress = "OUT-01"
+ };
+
+ var relocationTask = new Dt_Task
+ {
+ TaskNum = 2001,
+ TaskType = (int)TaskRelocationTypeEnum.Relocation,
+ Roadway = "SC01",
+ NextAddress = "R-01"
+ };
+
+ taskService
+ .Setup(x => x.QueryStackerCraneTask("SC01", ""))
+ .Returns(outboundTask);
+ taskService.Setup(x => x.QueryByTaskNum(2001)).Returns((Dt_Task?)null);
+ taskService.Setup(x => x.AddData(It.IsAny<Dt_Task>())).Returns(WebResponseContent.Instance.OK());
+
+ var transferCheckCalledCount = 0;
+ var selector = new StackerCraneTaskSelector(
+ taskService.Object,
+ routerService.Object,
+ taskNum =>
+ {
+ transferCheckCalledCount++;
+ Assert.Equal(1001, taskNum);
+ return relocationTask;
+ });
+
+ var selectedTask = selector.SelectTask(stackerCrane.Object);
+
+ Assert.NotNull(selectedTask);
+ Assert.Equal(relocationTask.TaskNum, selectedTask!.TaskNum);
+ Assert.Equal(1, transferCheckCalledCount);
+ taskService.Verify(x => x.AddData(It.Is<Dt_Task>(t => t.TaskNum == 2001)), Times.Once);
+ }
+
+ [Fact]
+ public void SelectTask_ShouldAddTaskToTable_WhenTransferCheckReturnsNewOutboundTask()
+ {
+ var taskService = new Mock<ITaskService>();
+ var routerService = new Mock<IRouterService>();
+ var stackerCrane = new Mock<IStackerCrane>();
+
+ stackerCrane.SetupGet(x => x.DeviceCode).Returns("SC01");
+ stackerCrane.SetupGet(x => x.LastTaskType).Returns((int?)null);
+
+ var outboundTask = new Dt_Task
+ {
+ TaskNum = 1101,
+ TaskType = (int)TaskOutboundTypeEnum.Outbound,
+ Roadway = "SC01",
+ NextAddress = "OUT-01"
+ };
+
+ var newOutboundTask = new Dt_Task
+ {
+ TaskNum = 2101,
+ TaskType = (int)TaskOutboundTypeEnum.Outbound,
+ Roadway = "SC01",
+ NextAddress = "OUT-02"
+ };
+
+ taskService.Setup(x => x.QueryStackerCraneTask("SC01", "")).Returns(outboundTask);
+ taskService.Setup(x => x.QueryByTaskNum(2101)).Returns((Dt_Task?)null);
+ taskService.Setup(x => x.AddData(It.IsAny<Dt_Task>())).Returns(WebResponseContent.Instance.OK());
+ taskService
+ .Setup(x => x.UpdateTaskExceptionMessage(It.IsAny<int>(), It.IsAny<string>()))
+ .Returns(WebResponseContent.Instance.OK());
+ taskService.Setup(x => x.QueryStackerCraneOutTasks("SC01", It.IsAny<List<string>>())).Returns(new List<Dt_Task>());
+ taskService.Setup(x => x.QueryStackerCraneInTask("SC01", "")).Returns((Dt_Task?)null);
+
+ routerService
+ .Setup(x => x.QueryNextRoute("SC01", "OUT-02", (int)TaskOutboundTypeEnum.Outbound))
+ .Returns((WIDESEAWCS_QuartzJob.Models.Dt_Router?)null);
+ routerService
+ .Setup(x => x.QueryNextRoutes("SC01", "OUT-01", (int)TaskOutboundTypeEnum.Outbound))
+ .Returns(new List<WIDESEAWCS_QuartzJob.Models.Dt_Router>());
+
+ var selector = new StackerCraneTaskSelector(
+ taskService.Object,
+ routerService.Object,
+ _ => newOutboundTask);
+
+ _ = selector.SelectTask(stackerCrane.Object);
+
+ taskService.Verify(x => x.AddData(It.Is<Dt_Task>(t => t.TaskNum == 2101)), Times.Once);
+ }
+}
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tests/WIDESEAWCS_Tests.csproj b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tests/WIDESEAWCS_Tests.csproj
index eaaa744..4e94f22 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tests/WIDESEAWCS_Tests.csproj
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tests/WIDESEAWCS_Tests.csproj
@@ -23,7 +23,9 @@
<ItemGroup>
<ProjectReference Include="..\WIDESEAWCS_Core\WIDESEAWCS_Core.csproj" />
+ <ProjectReference Include="..\WIDESEAWCS_QuartzJob\WIDESEAWCS_QuartzJob.csproj" />
+ <ProjectReference Include="..\WIDESEAWCS_Tasks\WIDESEAWCS_Tasks.csproj" />
<ProjectReference Include="..\WIDESEAWCS_TaskInfoService\WIDESEAWCS_TaskInfoService.csproj" />
</ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/Code/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v18/DocumentLayout.backup.json b/Code/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v18/DocumentLayout.backup.json
index 43ed0f4..f98d048 100644
--- a/Code/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v18/DocumentLayout.backup.json
+++ b/Code/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v18/DocumentLayout.backup.json
@@ -3,128 +3,40 @@
"WorkspaceRootPath": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\",
"Documents": [
{
- "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_common\\stockenum\\stockstatusemun.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\stockenum\\stockstatusemun.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockserivce.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockserivce.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
- "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{CE0DB91F-5A68-448E-A419-4C26B5039F51}|WIDESEA_ITaskInfoService\\WIDESEA_ITaskInfoService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{CE0DB91F-5A68-448E-A419-4C26B5039F51}|WIDESEA_ITaskInfoService\\WIDESEA_ITaskInfoService.csproj|solutionrelative:widesea_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\backgroundservices\\autooutboundtaskbackgroundservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\backgroundservices\\autooutboundtaskbackgroundservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\task\\updatetaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\task\\updatetaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+ "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
},
{
- "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_model\\models\\stock\\dt_stockinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\stock\\dt_stockinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_istockservice\\istockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|solutionrelative:widesea_istockservice\\istockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\taskinfo\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\taskinfo\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_common\\stockenum\\stockstatusemun.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\stockenum\\stockstatusemun.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_basicservice\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5F260E03-095A-4870-8419-5B72CB62929E}|WIDESEA_IBasicService\\WIDESEA_IBasicService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_ibasicservice\\ilocationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5F260E03-095A-4870-8419-5B72CB62929E}|WIDESEA_IBasicService\\WIDESEA_IBasicService.csproj|solutionrelative:widesea_ibasicservice\\ilocationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_common\\locationenum\\locationstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\locationenum\\locationstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
"AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\basic\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\basic\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\task\\createtaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\task\\createtaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\stock\\stockdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\stock\\stockdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\stock\\stockcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\stock\\stockcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\baseservices\\iservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\baseservices\\iservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_istockservice\\istockservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|solutionrelative:widesea_istockservice\\istockservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\helper\\http\\httpclienthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\http\\httpclienthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\helper\\http\\httprequestconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\http\\httprequestconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\helper\\http\\httpresponseresult.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\http\\httpresponseresult.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockviewservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockviewservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\gradingmachine\\inputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\gradingmachine\\inputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\gradingmachine\\outputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\gradingmachine\\outputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
@@ -134,7 +46,7 @@
"DocumentGroups": [
{
"DockedWidth": 200,
- "SelectedChildIndex": 31,
+ "SelectedChildIndex": 3,
"Children": [
{
"$type": "Bookmark",
@@ -150,383 +62,119 @@
},
{
"$type": "Document",
- "DocumentIndex": 5,
+ "DocumentIndex": 0,
+ "Title": "AutoOutboundTaskBackgroundService.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\BackgroundServices\\AutoOutboundTaskBackgroundService.cs",
+ "RelativeDocumentMoniker": "WIDESEA_WMSServer\\BackgroundServices\\AutoOutboundTaskBackgroundService.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\BackgroundServices\\AutoOutboundTaskBackgroundService.cs",
+ "RelativeToolTip": "WIDESEA_WMSServer\\BackgroundServices\\AutoOutboundTaskBackgroundService.cs",
+ "ViewState": "AgIAACEAAAAAAAAAAAAIwDEAAAAqAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-03-12T10:18:13.91Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
"Title": "appsettings.json",
"DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
"RelativeDocumentMoniker": "WIDESEA_WMSServer\\appsettings.json",
"ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
"RelativeToolTip": "WIDESEA_WMSServer\\appsettings.json",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAACUAAAAmAAAAAAAAAA==",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABgAAAA9AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
- "WhenOpened": "2026-03-09T01:09:19.957Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 8,
- "Title": "UpdateTaskDto.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\UpdateTaskDto.cs",
- "RelativeDocumentMoniker": "WIDESEA_DTO\\Task\\UpdateTaskDto.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\UpdateTaskDto.cs",
- "RelativeToolTip": "WIDESEA_DTO\\Task\\UpdateTaskDto.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAASAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T02:55:56.039Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 15,
- "Title": "TaskStatusEnum.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
- "RelativeDocumentMoniker": "WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
- "RelativeToolTip": "WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
- "ViewState": "AgIAAFkAAAAAAAAAAAAMwLgAAAAhAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-05T09:14:24.547Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 18,
- "Title": "TaskTypeEnum.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskTypeEnum.cs",
- "RelativeDocumentMoniker": "WIDESEA_Common\\TaskEnum\\TaskTypeEnum.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskTypeEnum.cs",
- "RelativeToolTip": "WIDESEA_Common\\TaskEnum\\TaskTypeEnum.cs",
- "ViewState": "AgIAAIAAAAAAAAAAAAAYwKAAAAAXAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-05T06:53:48.328Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 23,
- "Title": "IService.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseServices\\IService.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\BaseServices\\IService.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseServices\\IService.cs",
- "RelativeToolTip": "WIDESEA_Core\\BaseServices\\IService.cs",
- "ViewState": "AgIAAAYAAAAAAAAAAAASwCoAAAAbAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-03T08:25:43.974Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 22,
- "Title": "ServiceBase.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseServices\\ServiceBase.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\BaseServices\\ServiceBase.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseServices\\ServiceBase.cs",
- "RelativeToolTip": "WIDESEA_Core\\BaseServices\\ServiceBase.cs",
- "ViewState": "AgIAAAEAAAAAAAAAAAAAANcBAAA3AAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-03T08:32:27.552Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 3,
- "Title": "StockStatusEmun.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
- "RelativeDocumentMoniker": "WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
- "RelativeToolTip": "WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
- "ViewState": "AgIAAA0AAAAAAAAAAAAMwB0AAAAIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-28T06:15:43.313Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 16,
- "Title": "LocationStatusEnum.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\LocationEnum\\LocationStatusEnum.cs",
- "RelativeDocumentMoniker": "WIDESEA_Common\\LocationEnum\\LocationStatusEnum.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\LocationEnum\\LocationStatusEnum.cs",
- "RelativeToolTip": "WIDESEA_Common\\LocationEnum\\LocationStatusEnum.cs",
- "ViewState": "AgIAAAwAAAAAAAAAAAASwCMAAAAIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-26T07:48:47.561Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 24,
- "Title": "IStockService.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockService.cs",
- "RelativeDocumentMoniker": "WIDESEA_IStockService\\IStockService.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockService.cs",
- "RelativeToolTip": "WIDESEA_IStockService\\IStockService.cs",
- "ViewState": "AgIAAAcAAAAAAAAAAAAewBkAAAAfAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-26T06:24:13.287Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 21,
- "Title": "StockController.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Stock\\StockController.cs",
- "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Stock\\StockController.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Stock\\StockController.cs",
- "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Stock\\StockController.cs",
- "ViewState": "AgIAABwAAAAAAAAAAAAAACoAAAAJAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-26T06:16:05.674Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 7,
- "Title": "Program.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
- "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Program.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
- "RelativeToolTip": "WIDESEA_WMSServer\\Program.cs",
- "ViewState": "AgIAACYAAAAAAAAAAAAqwDQAAABDAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-25T02:24:12.114Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 27,
- "Title": "HttpResponseResult.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs",
- "RelativeToolTip": "WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAASAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-25T01:56:34.362Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 26,
- "Title": "HttpRequestConfig.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs",
- "RelativeToolTip": "WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAWAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-25T01:56:26.626Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 25,
- "Title": "HttpClientHelper.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs",
- "RelativeToolTip": "WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs",
- "ViewState": "AgIAADEAAAAAAAAAAAAewEQAAAAtAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-25T01:55:24.973Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 30,
- "Title": "OutPutDto.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\OutPutDto.cs",
- "RelativeDocumentMoniker": "WIDESEA_DTO\\GradingMachine\\OutPutDto.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\OutPutDto.cs",
- "RelativeToolTip": "WIDESEA_DTO\\GradingMachine\\OutPutDto.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAQAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-16T04:20:27.945Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 29,
- "Title": "InputDto.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\InputDto.cs",
- "RelativeDocumentMoniker": "WIDESEA_DTO\\GradingMachine\\InputDto.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\InputDto.cs",
- "RelativeToolTip": "WIDESEA_DTO\\GradingMachine\\InputDto.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABgAAAAQAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-16T03:59:05.513Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 2,
- "Title": "RepositoryBase.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\RepositoryBase.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\BaseRepository\\RepositoryBase.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\RepositoryBase.cs",
- "RelativeToolTip": "WIDESEA_Core\\BaseRepository\\RepositoryBase.cs",
- "ViewState": "AgIAALgDAAAAAAAAAAAEwMcDAAA8AAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-14T08:55:16.1Z",
+ "WhenOpened": "2026-03-12T10:06:27.509Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
- "Title": "IRepository.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\IRepository.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\BaseRepository\\IRepository.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\IRepository.cs",
- "RelativeToolTip": "WIDESEA_Core\\BaseRepository\\IRepository.cs",
- "ViewState": "AgIAAKYBAAAAAAAAAAASwLwBAAAnAAAAAAAAAA==",
+ "Title": "Program.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
+ "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Program.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
+ "RelativeToolTip": "WIDESEA_WMSServer\\Program.cs",
+ "ViewState": "AgIAACYAAAAAAAAAAAAowD8AAABDAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-14T08:53:36.522Z",
+ "WhenOpened": "2026-03-12T09:52:09.124Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 28,
- "Title": "StockViewService.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockViewService.cs",
- "RelativeDocumentMoniker": "WIDESEA_StockService\\StockViewService.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockViewService.cs",
- "RelativeToolTip": "WIDESEA_StockService\\StockViewService.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAEwAAAA/AAAAAAAAAA==",
+ "DocumentIndex": 4,
+ "Title": "StockStatusEmun.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
+ "RelativeDocumentMoniker": "WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
+ "RelativeToolTip": "WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
+ "ViewState": "AgIAAAkAAAAAAAAAAAAswB0AAAARAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T07:14:32.478Z"
+ "WhenOpened": "2026-03-12T09:08:34.784Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 14,
- "Title": "ILocationInfoService.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IBasicService\\ILocationInfoService.cs",
- "RelativeDocumentMoniker": "WIDESEA_IBasicService\\ILocationInfoService.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IBasicService\\ILocationInfoService.cs",
- "RelativeToolTip": "WIDESEA_IBasicService\\ILocationInfoService.cs",
- "ViewState": "AgIAADQAAAAAAAAAAAD4v0IAAAAaAAAAAAAAAA==",
+ "DocumentIndex": 7,
+ "Title": "TaskStatusEnum.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
+ "RelativeDocumentMoniker": "WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
+ "RelativeToolTip": "WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
+ "ViewState": "AgIAAAIAAAAAAAAAAAAiwCYBAAABAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T02:33:03.398Z"
+ "WhenOpened": "2026-03-12T07:20:25.969Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 13,
+ "DocumentIndex": 5,
"Title": "LocationInfoService.cs",
"DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\LocationInfoService.cs",
"RelativeDocumentMoniker": "WIDESEA_BasicService\\LocationInfoService.cs",
"ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\LocationInfoService.cs",
"RelativeToolTip": "WIDESEA_BasicService\\LocationInfoService.cs",
- "ViewState": "AgIAAIwAAAAAAAAAAAAMwJwAAAAwAAAAAAAAAA==",
+ "ViewState": "AgIAAAYBAAAAAAAAAIAwwBoBAABuAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T02:22:42.847Z"
+ "WhenOpened": "2026-03-12T02:05:14.224Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 17,
+ "DocumentIndex": 8,
"Title": "LocationInfoController.cs",
"DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
"RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
"ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
"RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
- "ViewState": "AgIAAAcAAAAAAAAAAAAAABoAAABLAAAAAAAAAA==",
+ "ViewState": "AgIAAEkAAAAAAAAAAAAIwF8AAAAsAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T05:45:59.752Z"
+ "WhenOpened": "2026-03-12T01:53:01.837Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 9,
- "Title": "Dt_StockInfo.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs",
- "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs",
- "RelativeToolTip": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs",
- "ViewState": "AgIAABcAAAAAAAAAAAD4vycAAAArAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T01:38:37.887Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 10,
+ "DocumentIndex": 6,
"Title": "StockInfoService.cs",
"DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockInfoService.cs",
"RelativeDocumentMoniker": "WIDESEA_StockService\\StockInfoService.cs",
"ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockInfoService.cs",
"RelativeToolTip": "WIDESEA_StockService\\StockInfoService.cs",
- "ViewState": "AgIAAA0AAAAAAAAAAAAEwB0AAAAuAAAAAAAAAA==",
+ "ViewState": "AgIAADQAAAAAAAAAAAAQwDkAAAAuAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T01:23:56.94Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 11,
- "Title": "IStockInfoService.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockInfoService.cs",
- "RelativeDocumentMoniker": "WIDESEA_IStockService\\IStockInfoService.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockInfoService.cs",
- "RelativeToolTip": "WIDESEA_IStockService\\IStockInfoService.cs",
- "ViewState": "AgIAAAMAAAAAAAAAAAAMwAgAAAAiAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T01:21:54.522Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 12,
- "Title": "TaskController.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs",
- "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs",
- "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs",
- "ViewState": "AgIAADQAAAAAAAAAAAAEwEMAAAAIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-09T01:23:19.844Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 19,
- "Title": "CreateTaskDto.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\CreateTaskDto.cs",
- "RelativeDocumentMoniker": "WIDESEA_DTO\\Task\\CreateTaskDto.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\CreateTaskDto.cs",
- "RelativeToolTip": "WIDESEA_DTO\\Task\\CreateTaskDto.cs",
- "ViewState": "AgIAAC0AAAAAAAAAAAAUwDwAAAAcAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-06T07:58:13.932Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 6,
- "Title": "ITaskService.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_ITaskInfoService\\ITaskService.cs",
- "RelativeDocumentMoniker": "WIDESEA_ITaskInfoService\\ITaskService.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_ITaskInfoService\\ITaskService.cs",
- "RelativeToolTip": "WIDESEA_ITaskInfoService\\ITaskService.cs",
- "ViewState": "AgIAAEwAAAAAAAAAAAAAwF0AAAAqAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-06T07:00:19.697Z",
+ "WhenOpened": "2026-03-11T09:16:37.34Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 0,
+ "DocumentIndex": 3,
"Title": "TaskService.cs",
"DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs",
"RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\TaskService.cs",
"ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs",
"RelativeToolTip": "WIDESEA_TaskInfoService\\TaskService.cs",
- "ViewState": "AgIAAAgCAAAAAAAAAAAqwBMCAAARAAAAAAAAAA==",
+ "ViewState": "AgIAAEkCAAAAAAAAAAAQwFoCAAAQAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-02-06T06:34:59.734Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 20,
- "Title": "StockDTO.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Stock\\StockDTO.cs",
- "RelativeDocumentMoniker": "WIDESEA_DTO\\Stock\\StockDTO.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Stock\\StockDTO.cs",
- "RelativeToolTip": "WIDESEA_DTO\\Stock\\StockDTO.cs",
- "ViewState": "AgIAACMAAAAAAAAAAAAAADYAAAAuAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-06T02:56:51.397Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 4,
- "Title": "StockSerivce.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockSerivce.cs",
- "RelativeDocumentMoniker": "WIDESEA_StockService\\StockSerivce.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockSerivce.cs",
- "RelativeToolTip": "WIDESEA_StockService\\StockSerivce.cs",
- "ViewState": "AgIAAMwAAAAAAAAAAAAhwKsAAABCAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-06T01:53:49.077Z",
"EditorCaption": ""
}
]
diff --git a/Code/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v18/DocumentLayout.json b/Code/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v18/DocumentLayout.json
index e711819..345455b 100644
--- a/Code/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v18/DocumentLayout.json
+++ b/Code/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v18/DocumentLayout.json
@@ -3,128 +3,40 @@
"WorkspaceRootPath": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\",
"Documents": [
{
- "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_common\\stockenum\\stockstatusemun.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\stockenum\\stockstatusemun.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockserivce.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockserivce.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
- "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{CE0DB91F-5A68-448E-A419-4C26B5039F51}|WIDESEA_ITaskInfoService\\WIDESEA_ITaskInfoService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{CE0DB91F-5A68-448E-A419-4C26B5039F51}|WIDESEA_ITaskInfoService\\WIDESEA_ITaskInfoService.csproj|solutionrelative:widesea_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\backgroundservices\\autooutboundtaskbackgroundservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\backgroundservices\\autooutboundtaskbackgroundservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\task\\updatetaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\task\\updatetaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+ "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
},
{
- "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_model\\models\\stock\\dt_stockinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\stock\\dt_stockinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_istockservice\\istockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|solutionrelative:widesea_istockservice\\istockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\taskinfo\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\taskinfo\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_common\\stockenum\\stockstatusemun.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\stockenum\\stockstatusemun.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_basicservice\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{5F260E03-095A-4870-8419-5B72CB62929E}|WIDESEA_IBasicService\\WIDESEA_IBasicService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_ibasicservice\\ilocationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{5F260E03-095A-4870-8419-5B72CB62929E}|WIDESEA_IBasicService\\WIDESEA_IBasicService.csproj|solutionrelative:widesea_ibasicservice\\ilocationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_common\\locationenum\\locationstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\locationenum\\locationstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
"AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\basic\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\basic\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\task\\createtaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\task\\createtaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\stock\\stockdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\stock\\stockdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\stock\\stockcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\stock\\stockcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\baseservices\\iservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\baseservices\\iservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_istockservice\\istockservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{49716D78-720D-475D-948C-0FC6C5F079E5}|WIDESEA_IStockService\\WIDESEA_IStockService.csproj|solutionrelative:widesea_istockservice\\istockservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\helper\\http\\httpclienthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\http\\httpclienthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\helper\\http\\httprequestconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\http\\httprequestconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_core\\helper\\http\\httpresponseresult.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\helper\\http\\httpresponseresult.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_stockservice\\stockviewservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\stockviewservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\gradingmachine\\inputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\gradingmachine\\inputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|d:\\git\\shanmeixinnengyuan\\code\\wms\\widesea_wmsserver\\widesea_dto\\gradingmachine\\outputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\gradingmachine\\outputdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
@@ -134,7 +46,7 @@
"DocumentGroups": [
{
"DockedWidth": 200,
- "SelectedChildIndex": 31,
+ "SelectedChildIndex": 3,
"Children": [
{
"$type": "Bookmark",
@@ -150,376 +62,120 @@
},
{
"$type": "Document",
- "DocumentIndex": 5,
+ "DocumentIndex": 0,
+ "Title": "AutoOutboundTaskBackgroundService.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\BackgroundServices\\AutoOutboundTaskBackgroundService.cs",
+ "RelativeDocumentMoniker": "WIDESEA_WMSServer\\BackgroundServices\\AutoOutboundTaskBackgroundService.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\BackgroundServices\\AutoOutboundTaskBackgroundService.cs",
+ "RelativeToolTip": "WIDESEA_WMSServer\\BackgroundServices\\AutoOutboundTaskBackgroundService.cs",
+ "ViewState": "AgIAACEAAAAAAAAAAAAIwDsAAAAoAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-03-12T10:18:13.91Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
"Title": "appsettings.json",
"DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
"RelativeDocumentMoniker": "WIDESEA_WMSServer\\appsettings.json",
"ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
"RelativeToolTip": "WIDESEA_WMSServer\\appsettings.json",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAACUAAAAmAAAAAAAAAA==",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABgAAAA9AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
- "WhenOpened": "2026-03-09T01:09:19.957Z"
+ "WhenOpened": "2026-03-12T10:06:27.509Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 8,
- "Title": "UpdateTaskDto.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\UpdateTaskDto.cs",
- "RelativeDocumentMoniker": "WIDESEA_DTO\\Task\\UpdateTaskDto.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\UpdateTaskDto.cs",
- "RelativeToolTip": "WIDESEA_DTO\\Task\\UpdateTaskDto.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAASAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T02:55:56.039Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 15,
- "Title": "TaskStatusEnum.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
- "RelativeDocumentMoniker": "WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
- "RelativeToolTip": "WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
- "ViewState": "AgIAAFkAAAAAAAAAAAAMwLgAAAAhAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-05T09:14:24.547Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 18,
- "Title": "TaskTypeEnum.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskTypeEnum.cs",
- "RelativeDocumentMoniker": "WIDESEA_Common\\TaskEnum\\TaskTypeEnum.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskTypeEnum.cs",
- "RelativeToolTip": "WIDESEA_Common\\TaskEnum\\TaskTypeEnum.cs",
- "ViewState": "AgIAAIAAAAAAAAAAAAAYwKAAAAAXAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-05T06:53:48.328Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 23,
- "Title": "IService.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseServices\\IService.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\BaseServices\\IService.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseServices\\IService.cs",
- "RelativeToolTip": "WIDESEA_Core\\BaseServices\\IService.cs",
- "ViewState": "AgIAAAYAAAAAAAAAAAASwCoAAAAbAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-03T08:25:43.974Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 22,
- "Title": "ServiceBase.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseServices\\ServiceBase.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\BaseServices\\ServiceBase.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseServices\\ServiceBase.cs",
- "RelativeToolTip": "WIDESEA_Core\\BaseServices\\ServiceBase.cs",
- "ViewState": "AgIAAAEAAAAAAAAAAAAAANcBAAA3AAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-03T08:32:27.552Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 3,
- "Title": "StockStatusEmun.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
- "RelativeDocumentMoniker": "WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
- "RelativeToolTip": "WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
- "ViewState": "AgIAAA0AAAAAAAAAAAAMwB0AAAAIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-28T06:15:43.313Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 16,
- "Title": "LocationStatusEnum.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\LocationEnum\\LocationStatusEnum.cs",
- "RelativeDocumentMoniker": "WIDESEA_Common\\LocationEnum\\LocationStatusEnum.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\LocationEnum\\LocationStatusEnum.cs",
- "RelativeToolTip": "WIDESEA_Common\\LocationEnum\\LocationStatusEnum.cs",
- "ViewState": "AgIAAAwAAAAAAAAAAAASwCMAAAAIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-26T07:48:47.561Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 24,
- "Title": "IStockService.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockService.cs",
- "RelativeDocumentMoniker": "WIDESEA_IStockService\\IStockService.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockService.cs",
- "RelativeToolTip": "WIDESEA_IStockService\\IStockService.cs",
- "ViewState": "AgIAAAcAAAAAAAAAAAAewBkAAAAfAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-26T06:24:13.287Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 21,
- "Title": "StockController.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Stock\\StockController.cs",
- "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Stock\\StockController.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Stock\\StockController.cs",
- "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Stock\\StockController.cs",
- "ViewState": "AgIAABwAAAAAAAAAAAAAACoAAAAJAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-26T06:16:05.674Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 7,
+ "DocumentIndex": 1,
"Title": "Program.cs",
"DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
"RelativeDocumentMoniker": "WIDESEA_WMSServer\\Program.cs",
"ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
"RelativeToolTip": "WIDESEA_WMSServer\\Program.cs",
- "ViewState": "AgIAACYAAAAAAAAAAAAqwDQAAABDAAAAAAAAAA==",
+ "ViewState": "AgIAACYAAAAAAAAAAAAowD8AAABDAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-25T02:24:12.114Z"
+ "WhenOpened": "2026-03-12T09:52:09.124Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 27,
- "Title": "HttpResponseResult.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs",
- "RelativeToolTip": "WIDESEA_Core\\Helper\\HTTP\\HttpResponseResult.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAASAAAAAAAAAA==",
+ "DocumentIndex": 4,
+ "Title": "StockStatusEmun.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
+ "RelativeDocumentMoniker": "WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
+ "RelativeToolTip": "WIDESEA_Common\\StockEnum\\StockStatusEmun.cs",
+ "ViewState": "AgIAAAkAAAAAAAAAAAAswB0AAAARAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-25T01:56:34.362Z"
+ "WhenOpened": "2026-03-12T09:08:34.784Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 26,
- "Title": "HttpRequestConfig.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs",
- "RelativeToolTip": "WIDESEA_Core\\Helper\\HTTP\\HttpRequestConfig.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAWAAAAAAAAAA==",
+ "DocumentIndex": 7,
+ "Title": "TaskStatusEnum.cs",
+ "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
+ "RelativeDocumentMoniker": "WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
+ "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
+ "RelativeToolTip": "WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs",
+ "ViewState": "AgIAAAIAAAAAAAAAAAAiwCYBAAABAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-25T01:56:26.626Z"
+ "WhenOpened": "2026-03-12T07:20:25.969Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 25,
- "Title": "HttpClientHelper.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs",
- "RelativeToolTip": "WIDESEA_Core\\Helper\\HTTP\\HttpClientHelper.cs",
- "ViewState": "AgIAADEAAAAAAAAAAAAewEQAAAAtAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-25T01:55:24.973Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 30,
- "Title": "OutPutDto.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\OutPutDto.cs",
- "RelativeDocumentMoniker": "WIDESEA_DTO\\GradingMachine\\OutPutDto.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\OutPutDto.cs",
- "RelativeToolTip": "WIDESEA_DTO\\GradingMachine\\OutPutDto.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAQAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-16T04:20:27.945Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 29,
- "Title": "InputDto.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\InputDto.cs",
- "RelativeDocumentMoniker": "WIDESEA_DTO\\GradingMachine\\InputDto.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\GradingMachine\\InputDto.cs",
- "RelativeToolTip": "WIDESEA_DTO\\GradingMachine\\InputDto.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABgAAAAQAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-16T03:59:05.513Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 2,
- "Title": "RepositoryBase.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\RepositoryBase.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\BaseRepository\\RepositoryBase.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\RepositoryBase.cs",
- "RelativeToolTip": "WIDESEA_Core\\BaseRepository\\RepositoryBase.cs",
- "ViewState": "AgIAALgDAAAAAAAAAAAEwMcDAAA8AAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-14T08:55:16.1Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 1,
- "Title": "IRepository.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\IRepository.cs",
- "RelativeDocumentMoniker": "WIDESEA_Core\\BaseRepository\\IRepository.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseRepository\\IRepository.cs",
- "RelativeToolTip": "WIDESEA_Core\\BaseRepository\\IRepository.cs",
- "ViewState": "AgIAAKYBAAAAAAAAAAASwLwBAAAnAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-14T08:53:36.522Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 28,
- "Title": "StockViewService.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockViewService.cs",
- "RelativeDocumentMoniker": "WIDESEA_StockService\\StockViewService.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockViewService.cs",
- "RelativeToolTip": "WIDESEA_StockService\\StockViewService.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAEwAAAA/AAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T07:14:32.478Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 14,
- "Title": "ILocationInfoService.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IBasicService\\ILocationInfoService.cs",
- "RelativeDocumentMoniker": "WIDESEA_IBasicService\\ILocationInfoService.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IBasicService\\ILocationInfoService.cs",
- "RelativeToolTip": "WIDESEA_IBasicService\\ILocationInfoService.cs",
- "ViewState": "AgIAADQAAAAAAAAAAAD4v0IAAAAaAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T02:33:03.398Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 13,
+ "DocumentIndex": 5,
"Title": "LocationInfoService.cs",
"DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\LocationInfoService.cs",
"RelativeDocumentMoniker": "WIDESEA_BasicService\\LocationInfoService.cs",
"ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\LocationInfoService.cs",
"RelativeToolTip": "WIDESEA_BasicService\\LocationInfoService.cs",
- "ViewState": "AgIAAIwAAAAAAAAAAAAMwJwAAAAwAAAAAAAAAA==",
+ "ViewState": "AgIAAAYBAAAAAAAAAIAwwBoBAABuAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T02:22:42.847Z"
+ "WhenOpened": "2026-03-12T02:05:14.224Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 17,
+ "DocumentIndex": 8,
"Title": "LocationInfoController.cs",
"DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
"RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
"ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
"RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs",
- "ViewState": "AgIAAAcAAAAAAAAAAAAAABoAAABLAAAAAAAAAA==",
+ "ViewState": "AgIAAEkAAAAAAAAAAAAIwF8AAAAsAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-06T05:45:59.752Z"
+ "WhenOpened": "2026-03-12T01:53:01.837Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 9,
- "Title": "Dt_StockInfo.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs",
- "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs",
- "RelativeToolTip": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs",
- "ViewState": "AgIAABcAAAAAAAAAAAD4vycAAAArAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T01:38:37.887Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 10,
+ "DocumentIndex": 6,
"Title": "StockInfoService.cs",
"DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockInfoService.cs",
"RelativeDocumentMoniker": "WIDESEA_StockService\\StockInfoService.cs",
"ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockInfoService.cs",
"RelativeToolTip": "WIDESEA_StockService\\StockInfoService.cs",
- "ViewState": "AgIAAA0AAAAAAAAAAAAEwB0AAAAuAAAAAAAAAA==",
+ "ViewState": "AgIAADQAAAAAAAAAAAAQwDkAAAAuAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T01:23:56.94Z"
+ "WhenOpened": "2026-03-11T09:16:37.34Z",
+ "EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 11,
- "Title": "IStockInfoService.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockInfoService.cs",
- "RelativeDocumentMoniker": "WIDESEA_IStockService\\IStockInfoService.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStockService\\IStockInfoService.cs",
- "RelativeToolTip": "WIDESEA_IStockService\\IStockInfoService.cs",
- "ViewState": "AgIAAAMAAAAAAAAAAAAMwAgAAAAiAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-11T01:21:54.522Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 12,
- "Title": "TaskController.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs",
- "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs",
- "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs",
- "ViewState": "AgIAADQAAAAAAAAAAAAEwEMAAAAIAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-09T01:23:19.844Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 19,
- "Title": "CreateTaskDto.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\CreateTaskDto.cs",
- "RelativeDocumentMoniker": "WIDESEA_DTO\\Task\\CreateTaskDto.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\CreateTaskDto.cs",
- "RelativeToolTip": "WIDESEA_DTO\\Task\\CreateTaskDto.cs",
- "ViewState": "AgIAAC0AAAAAAAAAAAAUwDwAAAAcAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-06T07:58:13.932Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 6,
- "Title": "ITaskService.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_ITaskInfoService\\ITaskService.cs",
- "RelativeDocumentMoniker": "WIDESEA_ITaskInfoService\\ITaskService.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_ITaskInfoService\\ITaskService.cs",
- "RelativeToolTip": "WIDESEA_ITaskInfoService\\ITaskService.cs",
- "ViewState": "AgIAAEwAAAAAAAAAAAAAwF0AAAAqAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-06T07:00:19.697Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 0,
+ "DocumentIndex": 3,
"Title": "TaskService.cs",
"DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs",
"RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\TaskService.cs",
"ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs",
"RelativeToolTip": "WIDESEA_TaskInfoService\\TaskService.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABMCAAARAAAAAAAAAA==",
+ "ViewState": "AgIAAEkCAAAAAAAAAAAQwFoCAAAQAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-02-06T06:34:59.734Z",
"EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 20,
- "Title": "StockDTO.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Stock\\StockDTO.cs",
- "RelativeDocumentMoniker": "WIDESEA_DTO\\Stock\\StockDTO.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Stock\\StockDTO.cs",
- "RelativeToolTip": "WIDESEA_DTO\\Stock\\StockDTO.cs",
- "ViewState": "AgIAACMAAAAAAAAAAAAAADYAAAAuAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-06T02:56:51.397Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 4,
- "Title": "StockSerivce.cs",
- "DocumentMoniker": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockSerivce.cs",
- "RelativeDocumentMoniker": "WIDESEA_StockService\\StockSerivce.cs",
- "ToolTip": "D:\\Git\\ShanMeiXinNengYuan\\Code\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\StockSerivce.cs",
- "RelativeToolTip": "WIDESEA_StockService\\StockSerivce.cs",
- "ViewState": "AgIAAMwAAAAAAAAAAAAhwKsAAABCAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-02-06T01:53:49.077Z"
}
]
}
diff --git a/Code/WMS/WIDESEA_WMSServer/AGENTS.md b/Code/WMS/WIDESEA_WMSServer/AGENTS.md
new file mode 100644
index 0000000..c07a83b
--- /dev/null
+++ b/Code/WMS/WIDESEA_WMSServer/AGENTS.md
@@ -0,0 +1,51 @@
+# AGENTS 鍗忎綔璇存槑
+
+鏈枃浠剁敤浜庣害鏉熷湪鏈粨搴撳唴鍗忎綔寮�鍙戠殑 AI Agent 涓庡紑鍙戣�呰涓恒��
+
+## 1. 鍩烘湰鍘熷垯
+
+- 鎵�鏈夋矡閫氥�佹敞閲娿�佽鏄庢枃妗i粯璁や娇鐢ㄤ腑鏂囥��
+- 浼樺厛淇濊瘉绯荤粺绋冲畾鎬э紝閬垮厤褰卞搷鐜版湁涓氬姟娴佺▼銆�
+- 淇敼搴旈伒寰�滄渶灏忔敼鍔ㄥ師鍒欌�濓紝涓嶈鍋氭棤鍏抽噸鏋勩��
+- 浠讳綍娑夊強鐘舵�佹祦杞殑鏀瑰姩锛屽繀椤绘槑纭墠缃姸鎬併�佺洰鏍囩姸鎬佷笌寮傚父澶勭悊銆�
+
+## 2. 寮�鍙戣鑼�
+
+- 淇濇寔涓庣幇鏈変唬鐮侀鏍间竴鑷达紙鍛藉悕銆佺缉杩涖�佸紓甯稿鐞嗘柟寮忥級銆�
+- 浼樺厛澶嶇敤宸叉湁鏋氫妇銆佹湇鍔′笌浠撳偍鏂规硶锛岄伩鍏嶉噸澶嶅疄鐜般��
+- 涓氬姟甯搁噺搴旀斁鍏ラ厤缃垨鏋氫妇锛屼笉鍏佽纭紪鐮侀瓟娉曞�笺��
+- 娑夊強鎵归噺澶勭悊鏃讹紝浼樺厛鑰冭檻鎵归噺鏌ヨ/鎵归噺鏇存柊锛岄伩鍏� N+1 鏌ヨ銆�
+
+## 3. 鐘舵�佷笌浜嬪姟
+
+- 娑夊強鈥滀换鍔″垱寤� + 搴撳瓨鐘舵�� + 璐т綅鐘舵�佲�濊仈鍔ㄦ椂锛屽繀椤讳繚璇佷竴鑷存�с��
+- 鑻ヤ换涓�鍏抽敭姝ラ澶辫触锛屽簲杩斿洖鏄庣‘閿欒淇℃伅锛屼笉鑳介潤榛樺け璐ャ��
+- 瀵瑰苟鍙戝満鏅繚鎸佹晱鎰燂紝閬垮厤閲嶅鍒涘缓浠诲姟鎴栭噸澶嶅垎閰嶅簱瀛樸��
+
+## 4. 鎺ュ彛涓庨泦鎴�
+
+- 瀵规帴澶栭儴绯荤粺锛堝 WCS锛夊墠锛屽厛纭璇锋眰妯″瀷涓庢帴鍙g害瀹氾紙鍗曟潯鎴栨壒閲忥級銆�
+- 澶栭儴閫氱煡澶辫触涓嶅簲闃诲涓绘祦绋嬫椂锛屽繀椤昏褰曞彲杩借釜鏃ュ織銆�
+- 鎺ュ彛鍦板潃浼樺厛閰嶇疆鍖栵紝閬垮厤鍐欐鐜鍦板潃銆�
+
+## 5. 楠岃瘉瑕佹眰
+
+- 瀹屾垚鏀瑰姩鍚庤嚦灏戞墽琛屼竴娆″彲鐢ㄧ殑缂栬瘧鎴栨祴璇曢獙璇併��
+- 鍦ㄦ彁浜ょ粨鏋滄椂锛岃鏄庯細
+ - 淇敼浜嗗摢浜涙枃浠�
+ - 鍏抽敭閫昏緫鍙樻洿鐐�
+ - 楠岃瘉鍛戒护涓庣粨鏋�
+
+## 6. 绂佹浜嬮」
+
+- 鏈粡鏄庣‘瑕佹眰锛屼笉寰楀垹闄ゆ垨鍥炴粴浠栦汉宸叉湁鏀瑰姩銆�
+- 涓嶅緱浣跨敤楂橀闄╁懡浠わ紙濡傚己鍒堕噸缃級鐮村潖宸ヤ綔鍖恒��
+- 涓嶅緱鍦ㄦ湭楠岃瘉鐨勬儏鍐典笅瀹gО鈥滃凡淇鈥濇垨鈥滃彲涓婄嚎鈥濄��
+
+## 7. 寤鸿宸ヤ綔娴�
+
+1. 鍏堥槄璇荤浉鍏充笂涓嬫父浠g爜涓庢灇涓惧畾涔夈��
+2. 鏄庣‘杈撳叆銆佸鐞嗐�佽緭鍑轰互鍙婄姸鎬佸彉鍖栥��
+3. 瀹炴柦鏈�灏忔敼鍔ㄥ苟琛ュ厖蹇呰娉ㄩ噴銆�
+4. 缂栬瘧/娴嬭瘯楠岃瘉骞惰緭鍑虹粨鏋滄憳瑕併��
+
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs
index aeff75f..af5cc9a 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs
@@ -1,13 +1,17 @@
+using Mapster;
+using MapsterMapper;
+using WIDESEA_Common.CommonEnum;
using WIDESEA_Common.LocationEnum;
+using WIDESEA_Common.StockEnum;
using WIDESEA_Common.TaskEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Utilities;
using WIDESEA_DTO.Basic;
+using WIDESEA_DTO.Task;
using WIDESEA_IBasicService;
using WIDESEA_Model.Models;
-using WIDESEA_Common.CommonEnum;
namespace WIDESEA_BasicService
{
@@ -16,6 +20,7 @@
/// </summary>
public partial class LocationInfoService : ServiceBase<Dt_LocationInfo, IRepository<Dt_LocationInfo>>, ILocationInfoService
{
+ private readonly IMapper _mapper;
private readonly IRepository<Dt_Task> _taskRepository;
private readonly IRepository<Dt_StockInfo> _stockInfoRepository;
@@ -28,10 +33,12 @@
public LocationInfoService(
IRepository<Dt_LocationInfo> baseDal,
IRepository<Dt_Task> taskRepository,
- IRepository<Dt_StockInfo> stockInfoRepository) : base(baseDal)
+ IRepository<Dt_StockInfo> stockInfoRepository,
+ IMapper mapper) : base(baseDal)
{
_taskRepository = taskRepository;
_stockInfoRepository = stockInfoRepository;
+ _mapper = mapper;
}
/// <summary>
@@ -197,7 +204,7 @@
// 濡傛灉鏂扮殑搴撲綅娌℃湁鎵惧埌瀵瑰簲鐨勪换鍔�
if (internalTransferTask == null)
{
- return content.OK("鑾峰彇鍒扮Щ搴撲换鍔�", await HandleNoTaskAtLocation(outboundTask.SourceAddress, newLocationID, outboundTask));
+ return content.OK("鑾峰彇鍒扮Щ搴撲换鍔�", await HandleNoTaskAtLocation(newLocationID, outboundTask));
}
// 鐩存帴杩斿洖涓�娣变綅鍑哄簱浠诲姟
@@ -228,27 +235,23 @@
int relativeLine = line % 2 == 1 ? line + 1 : line - 1;
// 鏋勫缓鏂扮殑搴撲綅ID
- string[] newLocationParts = new string[] { relativeLine.ToString().PadLeft(3, '0'), locationInfo.Column.ToString(), locationInfo.Layer.ToString() };
+ string[] newLocationParts = new string[] { relativeLine.ToString().PadLeft(3, '0'), locationInfo.Column.ToString().PadLeft(3, '0'), locationInfo.Layer.ToString().PadLeft(3, '0') };
return string.Join("-", newLocationParts);
}
/// <summary>
/// 澶勭悊娌℃湁浠诲姟鐨勫簱浣嶆儏鍐�
/// </summary>
- /// <param name="originalLocationID">鍘熷搴撲綅ID</param>
/// <param name="newLocationID">鏂扮殑搴撲綅ID</param>
/// <param name="outboundTask">鍑哄簱浠诲姟</param>
/// <returns>鐢熸垚鐨勭Щ搴撲换鍔℃垨鍘熷鍑哄簱浠诲姟</returns>
- private async Task<Dt_Task> HandleNoTaskAtLocation(string originalLocationID, string newLocationID, Dt_Task outboundTask)
+ private async Task<Dt_Task> HandleNoTaskAtLocation(string newLocationID, Dt_Task outboundTask)
{
// 鍒ゆ柇璇ヤ綅缃槸鍚︽湁搴撳瓨
- var stockInfo = await _stockInfoRepository.QueryFirstAsync(x => x.LocationCode == newLocationID);
- if (stockInfo == null)
- {
- // 濡傛灉娌℃湁搴撳瓨锛岀洿鎺ヨ繑鍥炲綋鍓嶅嚭搴撲换鍔�
- return outboundTask;
- }
-
+ var stockInfo = await _stockInfoRepository.QueryDataNavFirstAsync(x =>
+ x.LocationCode == newLocationID &&
+ x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.GetHashCode() &&
+ x.LocationDetails.LocationStatus == LocationStatusEnum.InStock.GetHashCode());
if (stockInfo == null)
{
// 濡傛灉娌℃湁搴撳瓨锛岀洿鎺ヨ繑鍥炲綋鍓嶅嚭搴撲换鍔�
@@ -262,20 +265,44 @@
var newTransferTask = new Dt_Task
{
CreateDate = DateTime.Now,
- Creater = App.User.UserName,
- CurrentAddress = originalLocationID,
+ Creater = App.User.UserName ?? "system",
+ CurrentAddress = newLocationID,
Grade = 99,
NextAddress = emptyLocation.LocationCode,
PalletCode = stockInfo.PalletCode,
Remark = "绉诲簱",
Roadway = stockInfo.LocationDetails.RoadwayNo,
- SourceAddress = originalLocationID,
+ SourceAddress = newLocationID,
TaskNum = taskNo,
TargetAddress = emptyLocation.LocationCode,
- TaskType = TaskTypeEnum.Relocation.GetHashCode()
+ TaskType = TaskRelocationTypeEnum.Relocation.GetHashCode(),
+ TaskStatus = TaskRelocationStatusEnum.RelocationNew.GetHashCode(),
+ WarehouseId = stockInfo.WarehouseId
};
- return await _taskRepository.Db.Insertable(newTransferTask).ExecuteReturnEntityAsync();
+ var createdTask = await _taskRepository.Db.Insertable(newTransferTask).ExecuteReturnEntityAsync();
+
+ // 鍒涘缓绉诲簱浠诲姟鍚庯紝绔嬪嵆閿佸畾搴撳瓨鍜岀浉鍏宠揣浣嶏紝閬垮厤骞跺彂閲嶅鍒嗛厤
+ stockInfo.StockStatus = StockStatusEmun.绉诲簱閿佸畾.GetHashCode();
+ var updateStockResult = await _stockInfoRepository.UpdateDataAsync(stockInfo);
+
+ var locationsToUpdate = new List<Dt_LocationInfo>();
+ if (stockInfo.LocationDetails != null)
+ {
+ stockInfo.LocationDetails.LocationStatus = LocationStatusEnum.InStockLock.GetHashCode();
+ locationsToUpdate.Add(stockInfo.LocationDetails);
+ }
+
+ emptyLocation.LocationStatus = LocationStatusEnum.FreeLock.GetHashCode();
+ locationsToUpdate.Add(emptyLocation);
+
+ var updateLocationResult = await BaseDal.UpdateDataAsync(locationsToUpdate);
+ if (!updateStockResult || !updateLocationResult)
+ {
+ throw new Exception("鍒涘缓绉诲簱浠诲姟鍚庢洿鏂板簱瀛樼姸鎬佹垨璐т綅鐘舵�佸け璐�");
+ }
+
+ return createdTask;
}
/// <summary>
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskStatusEnum.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskStatusEnum.cs
index 8463482..51bc19b 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskStatusEnum.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskStatusEnum.cs
@@ -1,9 +1,4 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+锘縰sing System.ComponentModel;
namespace WIDESEA_Common.TaskEnum
{
@@ -71,6 +66,7 @@
/// </summary>
[Description("AGV寰呯户缁墽琛�")]
AGV_WaitToExecute = 320,
+
/// <summary>
/// AGV鏀捐揣涓�
/// </summary>
@@ -106,6 +102,7 @@
/// </summary>
[Description("浠诲姟寮傚父")]
Exception = 990,
+
/// <summary>
/// 鎻愬崌鏈烘墽琛屼腑
/// </summary>
@@ -251,4 +248,48 @@
OutException = 199,
}
-}
+ public enum TaskRelocationStatusEnum
+ {
+ /// <summary>
+ /// 鏂板缓绉诲簱浠诲姟
+ /// </summary>
+ [Description("鏂板缓绉诲簱浠诲姟")]
+ RelocationNew = 300,
+
+ /// <summary>
+ /// 鍫嗗灈鏈虹Щ搴撴墽琛屼腑
+ /// </summary>
+ [Description("鍫嗗灈鏈虹Щ搴撴墽琛屼腑")]
+ SC_RelocationExecuting = 310,
+
+ /// <summary>
+ /// 鍫嗗灈鏈虹Щ搴撳畬鎴�
+ /// </summary>
+ [Description("鍫嗗灈鏈虹Щ搴撳畬鎴�")]
+ SC_RelocationFinish = 315,
+
+ /// <summary>
+ /// 绉诲簱浠诲姟瀹屾垚
+ /// </summary>
+ [Description("绉诲簱浠诲姟瀹屾垚")]
+ RelocationFinish = 390,
+
+ /// <summary>
+ /// 绉诲簱浠诲姟鎸傝捣
+ /// </summary>
+ [Description("绉诲簱浠诲姟鎸傝捣")]
+ RelocationPending = 397,
+
+ /// <summary>
+ /// 绉诲簱浠诲姟鍙栨秷
+ /// </summary>
+ [Description("绉诲簱浠诲姟鍙栨秷")]
+ RelocationCancel = 398,
+
+ /// <summary>
+ /// 绉诲簱浠诲姟寮傚父
+ /// </summary>
+ [Description("绉诲簱浠诲姟寮傚父")]
+ RelocationException = 399,
+ }
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs
index 5c742b4..8647ac6 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs
@@ -962,12 +962,18 @@
public virtual async Task<List<TEntity>> QueryDataNavAsync(Expression<Func<TEntity, bool>> whereExpression)
{
- return await _db.Queryable<TEntity>().IncludesAllFirstLayer().ToListAsync();
+ return await _db.Queryable<TEntity>()
+ .Where(whereExpression)
+ .IncludesAllFirstLayer()
+ .ToListAsync();
}
public virtual async Task<TEntity> QueryDataNavFirstAsync(Expression<Func<TEntity, bool>> whereExpression)
{
- return await _db.Queryable<TEntity>().IncludesAllFirstLayer().FirstAsync();
+ return await _db.Queryable<TEntity>()
+ .Where(whereExpression)
+ .IncludesAllFirstLayer()
+ .FirstAsync();
}
//List<TResult> QueryMuch<T, T2, T3, TResult>(
@@ -976,4 +982,4 @@
// Expression<Func<T, T2, T3, bool>> whereLambda = null) where T : class, new(){throw new NotImplementedException();}
//Task<PageModel<TEntity>> QueryPage(PaginationModel pagination){throw new NotImplementedException();}
}
-}
\ No newline at end of file
+}
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs
index 6b3275f..6a89499 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs
@@ -1,4 +1,3 @@
-锘縰sing AutoMapper.Execution;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Core.Models;
using Magicodes.ExporterAndImporter.Excel;
@@ -33,7 +32,7 @@
this.BaseDal = BaseDal;
}
- public TRepository BaseDal { get; set; } //閫氳繃鍦ㄥ瓙绫荤殑鏋勯�犲嚱鏁颁腑娉ㄥ叆锛岃繖閲屾槸鍩虹被锛屼笉鐢ㄦ瀯閫犲嚱鏁�
+ public TRepository BaseDal { get; set; } //通过在子类的构造函数中注入,这里是基类,不用构造函数
public ISqlSugarClient Db => BaseDal.Db;
@@ -73,7 +72,7 @@
}
if (EnableWebOrderBy)
{
- //鑾峰彇鎺掑簭瀛楁
+ //获取排序字段
Dictionary<string, OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
foreach (var item in orderbyDic)
@@ -159,7 +158,7 @@
parameter = parameter ?? Expression.Parameter(typeof(TEntity), "x");
- //鍒涘缓鑺傜偣鐨勫睘鎬=>p.name 灞炴�ame
+ //创建节点的属性p=>p.name 属性name
MemberExpression memberProperty = Expression.PropertyOrField(parameter, propertyName);
if (expressionType == LinqExpressionType.In)
@@ -172,7 +171,7 @@
}
else
{
- throw new Exception("灞炴�у�肩被鍨嬩笉姝g‘");
+ throw new Exception("属性值类型不正确");
}
}
//
@@ -192,15 +191,15 @@
//if (isStringValue)
//{
- // //string 绫诲瀷鐨勫瓧娈碉紝濡傛灉鍊煎甫鏈�'鍗曞紩鍙�,EF浼氶粯璁ゅ彉鎴�''涓や釜鍗曞紩鍙�
+ // //string 类型的字段,如果值带有'单引号,EF会默认变成''两个单引号
// MethodInfo method = typeof(System.Collections.IList).GetMethod("Contains");
- // //鍒涘缓闆嗗悎甯搁噺骞惰缃负甯搁噺鐨勫��
+ // //创建集合常量并设置为常量的值
// ConstantExpression constantCollection = Expression.Constant(list);
- // //鍒涘缓涓�涓〃绀鸿皟鐢ㄥ甫鍙傛暟鐨勬柟娉曠殑锛歯ew string[]{"1","a"}.Contains("a");
+ // //创建一个表示调用带参数的方法的:new string[]{"1","a"}.Contains("a");
// MethodCallExpression methodCall = Expression.Call(constantCollection, method, memberProperty);
// return Expression.Lambda<Func<TEntity, bool>>(methodCall, parameter);
//}
- //闈瀞tring瀛楁锛屾寜涓婇潰鏂瑰紡澶勭悊鎶ュ紓甯窷ull TypeMapping in Sql Tree
+ //非string字段,按上面方式处理报异常Null TypeMapping in Sql Tree
BinaryExpression body = null;
foreach (var values in list)
{
@@ -217,7 +216,7 @@
ConstantExpression constant = proType.ToString() == "System.String"
? Expression.Constant(propertyValue) : Expression.Constant(value.ChangeType(proType));
- // DateTime鍙�夋嫨浜嗘棩鏈熺殑鏃跺�欒嚜鍔ㄥ湪缁撴潫鏃ユ湡鍔犱竴澶╋紝淇DateTime绫诲瀷浣跨敤鏃ユ湡鍖洪棿鏌ヨ鏃犳硶鏌ヨ鍒扮粨鏉熸棩鏈熺殑闂
+ // DateTime只选择了日期的时候自动在结束日期加一天,修复DateTime类型使用日期区间查询无法查询到结束日期的问题
if ((proType == typeof(DateTime) || proType == typeof(DateTime?)) && expressionType == LinqExpressionType.LessThanOrEqual && value.Length == 10)
{
constant = Expression.Constant(Convert.ToDateTime(value).AddDays(1));
@@ -273,7 +272,7 @@
}
/// <summary>
- /// 鑾峰彇鎺掑簭瀛楁
+ /// 获取排序字段
/// </summary>
/// <param name="pageData"></param>
/// <param name="propertyInfo"></param>
@@ -311,7 +310,7 @@
// {
// UserRole? userRole = PermissionDataHostService.UserRoles.FirstOrDefault(x => x.UserId == App.User.UserId);
// if (userRole == null)
- // throw new Exception($"鏃犳潈闄�");
+ // throw new Exception($"无权限");
// if (type.IsAssignableFrom(typeof(BaseWarehouseEntity)) || type.GetProperty(nameof(BaseWarehouseEntity.WarehouseId)) != null)
// {
@@ -330,7 +329,7 @@
// //UserRole? userRole = PermissionDataHostService.UserRoles.FirstOrDefault(x => x.UserId == App.User.UserId);
// //if (userRole == null)
- // // throw new Exception($"鏃犳潈闄�");
+ // // throw new Exception($"无权限");
// //if (userRole.AuthorityScope == (int)AuthorityScopeEnum.CurrentRole)
// //{
@@ -349,7 +348,7 @@
// }
// catch (Exception ex)
// {
- // throw new Exception($"鏃犳潈闄愶紝{ex.Message}");
+ // throw new Exception($"无权限,{ex.Message}");
// }
//}
@@ -359,7 +358,7 @@
if (pageData.Value == null) return new PageGridData<object>(total: 0, null);
string keyName = t.GetKeyName();
- ////鐢熸垚鏌ヨ鏉′欢
+ ////生成查询条件
//Expression<Func<TEntity, bool>> whereExpression = keyName.CreateExpression<TEntity>(pageData.Value, LinqExpressionType.Equal);
int totalCount = 0;
PropertyInfo propertyInfo = t.GetProperties().FirstOrDefault(x => x.GetCustomAttribute<Navigate>() != null);
@@ -374,9 +373,9 @@
}
/// <summary>
- /// 娣诲姞鏁版嵁
+ /// 添加数据
/// </summary>
- /// <param name="entity">鍗曚釜瀹炰綋</param>
+ /// <param name="entity">单个实体</param>
/// <returns></returns>
public virtual WebResponseContent AddData(TEntity entity)
{
@@ -391,9 +390,9 @@
}
/// <summary>
- /// 娣诲姞鏁版嵁
+ /// 添加数据
/// </summary>
- /// <param name="entities">瀹炰綋闆嗗悎</param>
+ /// <param name="entities">实体集合</param>
/// <returns></returns>
public virtual WebResponseContent AddData(List<TEntity> entities)
{
@@ -408,7 +407,7 @@
}
/// <summary>
- /// 娣诲姞鏁版嵁
+ /// 添加数据
/// </summary>
/// <param name="saveModel"></param>
/// <returns></returns>
@@ -416,9 +415,9 @@
{
try
{
- if (saveModel == null || saveModel.MainData == null || saveModel.MainData.Count == 0)//鍒ゆ柇鍙傛暟鏄惁浼犲叆
+ if (saveModel == null || saveModel.MainData == null || saveModel.MainData.Count == 0)//判断参数是否传入
{
- return WebResponseContent.Instance.Error("浼犲弬閿欒,鍙傛暟涓嶈兘涓虹┖");
+ return WebResponseContent.Instance.Error("传参错误,参数不能为空");
}
string validResult = typeof(TEntity).ValidateDicInEntity(saveModel.MainData, true, TProperties);
@@ -430,7 +429,7 @@
PropertyInfo keyPro = typeof(TEntity).GetKeyProperty();
if (keyPro == null)
{
- return WebResponseContent.Instance.Error("璇峰厛璁剧疆涓婚敭");
+ return WebResponseContent.Instance.Error("请先设置主键");
}
if (keyPro.PropertyType == typeof(Guid))
{
@@ -454,7 +453,7 @@
if (typeof(TEntity).GetNavigatePro() == null)
{
- return WebResponseContent.Instance.Error("鏈厤缃鑸睘鎬�");
+ return WebResponseContent.Instance.Error("未配置导航属性");
}
Type detailType = typeof(TEntity).GetDetailType();
@@ -506,9 +505,9 @@
}
/// <summary>
- /// 淇敼鏁版嵁
+ /// 修改数据
/// </summary>
- /// <param name="entity">鍗曚釜瀹炰綋</param>
+ /// <param name="entity">单个实体</param>
/// <returns></returns>
public virtual WebResponseContent UpdateData(TEntity entity)
{
@@ -523,9 +522,9 @@
}
/// <summary>
- /// 淇敼鏁版嵁
+ /// 修改数据
/// </summary>
- /// <param name="entities">瀹炰綋闆嗗悎</param>
+ /// <param name="entities">实体集合</param>
/// <returns></returns>
public virtual WebResponseContent UpdateData(List<TEntity> entities)
{
@@ -540,7 +539,7 @@
}
/// <summary>
- /// 淇敼鏁版嵁
+ /// 修改数据
/// </summary>
/// <param name="saveModel"></param>
/// <returns></returns>
@@ -549,9 +548,9 @@
try
{
List<string>? list = UpdateIgnoreColOnExecute?.Invoke(saveModel);
- if (saveModel == null || saveModel.MainData == null || saveModel.MainData.Count == 0)//鍒ゆ柇鍙傛暟鏄惁浼犲叆
+ if (saveModel == null || saveModel.MainData == null || saveModel.MainData.Count == 0)//判断参数是否传入
{
- return WebResponseContent.Instance.Error("浼犲弬閿欒,鍙傛暟涓嶈兘涓虹┖");
+ return WebResponseContent.Instance.Error("传参错误,参数不能为空");
}
string validResult = typeof(TEntity).ValidateDicInEntity(saveModel.MainData, false, TProperties, list?.ToArray() ?? null);
@@ -563,7 +562,7 @@
PropertyInfo keyPro = typeof(TEntity).GetKeyProperty();
if (keyPro == null)
{
- return WebResponseContent.Instance.Error("璇峰厛璁剧疆涓婚敭");
+ return WebResponseContent.Instance.Error("请先设置主键");
}
TEntity entity = saveModel.MainData.DicToModel<TEntity>();
@@ -594,7 +593,7 @@
if (typeof(TEntity).GetNavigatePro() == null)
{
- return WebResponseContent.Instance.Error("鏈厤缃鑸睘鎬�");
+ return WebResponseContent.Instance.Error("未配置导航属性");
}
Type detailType = typeof(TEntity).GetDetailType();
@@ -675,7 +674,7 @@
}
else
{
- content = WebResponseContent.Instance.Error("鏈壘鍒颁富琛ㄤ富閿��");
+ content = WebResponseContent.Instance.Error("未找到主表主键值");
}
}
@@ -688,9 +687,9 @@
}
/// <summary>
- /// 鍒犻櫎鏁版嵁
+ /// 删除数据
/// </summary>
- /// <param name="key">涓婚敭</param>
+ /// <param name="key">主键</param>
/// <returns></returns>
public virtual WebResponseContent DeleteData(object key)
{
@@ -705,9 +704,9 @@
}
/// <summary>
- /// 鍒犻櫎鏁版嵁
+ /// 删除数据
/// </summary>
- /// <param name="keys">涓婚敭鏁扮粍</param>
+ /// <param name="keys">主键数组</param>
/// <returns></returns>
public virtual WebResponseContent DeleteData(object[] keys)
{
@@ -740,7 +739,7 @@
}
else
{
- return WebResponseContent.Instance.Error("鍙傛暟閿欒");
+ return WebResponseContent.Instance.Error("参数错误");
}
}
}
@@ -752,9 +751,9 @@
}
/// <summary>
- /// 鍒犻櫎鏁版嵁
+ /// 删除数据
/// </summary>
- /// <param name="entity">鍗曚釜瀹炰綋</param>
+ /// <param name="entity">单个实体</param>
/// <returns></returns>
public virtual WebResponseContent DeleteData(TEntity entity)
{
@@ -769,9 +768,9 @@
}
/// <summary>
- /// 鍒犻櫎鏁版嵁
+ /// 删除数据
/// </summary>
- /// <param name="entities">瀹炰綋闆嗗悎</param>
+ /// <param name="entities">实体集合</param>
/// <returns></returns>
public virtual WebResponseContent DeleteData(List<TEntity> entities)
{
@@ -786,7 +785,7 @@
}
/// <summary>
- /// 瀵煎嚭鏁版嵁
+ /// 导出数据
/// </summary>
/// <param name="pageData"></param>
/// <returns></returns>
@@ -800,7 +799,7 @@
string savePath = AppDomain.CurrentDomain.BaseDirectory + $"ExcelExport";
IExporter exporter = new ExcelExporter();
string wheres = options.ValidatePageOptions(TProperties);
- //鑾峰彇鎺掑簭瀛楁
+ //获取排序字段
Dictionary<string, OrderByType> orderbyDic = options.GetPageDataSort(TProperties);
List<TEntity> entities = BaseDal.QueryData(wheres, orderbyDic);
@@ -830,7 +829,7 @@
}
/// <summary>
- /// 瀵煎叆鏁版嵁
+ /// 导入数据
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
@@ -839,7 +838,7 @@
try
{
if (files == null || files.Count == 0)
- return new WebResponseContent { Status = true, Message = "璇烽�夋嫨涓婁紶鐨勬枃浠�" };
+ return new WebResponseContent { Status = true, Message = "请选择上传的文件" };
Microsoft.AspNetCore.Http.IFormFile formFile = files[0];
string dicPath = AppDomain.CurrentDomain.BaseDirectory + $"ExcelImprot/{DateTime.Now.ToString("yyyMMdd")}/{typeof(TEntity).Name}/";
if (!Directory.Exists(dicPath)) Directory.CreateDirectory(dicPath);
@@ -865,7 +864,7 @@
}
/// <summary>
- /// 涓婁紶鏂囦欢
+ /// 上传文件
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
@@ -875,7 +874,7 @@
}
/// <summary>
- /// 妯℃澘涓嬭浇
+ /// 模板下载
/// </summary>
/// <returns></returns>
public virtual WebResponseContent DownLoadTemplate()
@@ -888,11 +887,11 @@
SugarTable sugarTable = t.GetCustomAttribute<SugarTable>();
if (sugarTable != null)
{
- fileName = sugarTable.TableDescription + "瀵煎叆妯℃澘.xlsx";
+ fileName = sugarTable.TableDescription + "导入模板.xlsx";
}
else
{
- fileName = nameof(TEntity) + "瀵煎叆妯℃澘.xlsx";
+ fileName = nameof(TEntity) + "导入模板.xlsx";
}
string savePath = AppDomain.CurrentDomain.BaseDirectory + $"ExcelImprotTemplate";
FileHelper.WriteFile(savePath, fileName, data);
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/AutoMapperHelper.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/AutoMapperHelper.cs
index cb72738..9cb6863 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/AutoMapperHelper.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/AutoMapperHelper.cs
@@ -1,4 +1,4 @@
-锘縰sing AutoMapper;
+using MapsterMapper;
using System;
using System.Collections;
using System.Collections.Generic;
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/WIDESEA_Core.csproj b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/WIDESEA_Core.csproj
index be85784..e282b0f 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/WIDESEA_Core.csproj
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_Core/WIDESEA_Core.csproj
@@ -13,10 +13,11 @@
<PackageReference Include="Autofac" Version="8.0.0" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="9.0.0" />
<PackageReference Include="Autofac.Extras.DynamicProxy" Version="7.1.0" />
- <PackageReference Include="AutoMapper" Version="13.0.1" />
+ <PackageReference Include="Mapster" Version="7.4.0" />
+ <PackageReference Include="Mapster.DependencyInjection" Version="1.0.1" />
<PackageReference Include="HslCommunication" Version="12.1.3" />
- <PackageReference Include="Magicodes.IE.EPPlus" Version="2.7.5.1" />
- <PackageReference Include="Magicodes.IE.Excel" Version="2.7.5.1" />
+ <PackageReference Include="Magicodes.IE.EPPlus" Version="2.8.2" />
+ <PackageReference Include="Magicodes.IE.Excel" Version="2.8.2" />
<PackageReference Include="MailKit" Version="4.7.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.29" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
@@ -24,12 +25,12 @@
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="OfficeOpenXml.Core.ExcelPackage" Version="1.0.0" />
<PackageReference Include="Quartz" Version="3.13.1" />
- <PackageReference Include="SkiaSharp" Version="2.88.8" />
+ <PackageReference Include="SkiaSharp" Version="3.119.1" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.167" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Filters" Version="7.0.5" />
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.5.0" />
- <PackageReference Include="System.Linq.Dynamic.Core" Version="1.4.5" />
+ <PackageReference Include="System.Linq.Dynamic.Core" Version="1.7.1" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
</ItemGroup>
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs
index 1170aa9..33a002e 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs
@@ -74,6 +74,11 @@
public Task<WebResponseContent> OutboundFinishTaskAsync(CreateTaskDto taskDto);
/// <summary>
+ /// 绉诲簱浠诲姟瀹屾垚锛氫慨鏀瑰簱瀛樹綅缃笌鐘舵�侊紝淇敼婧�/鐩爣璐т綅鐘舵�侊紝鍒犻櫎浠诲姟鏁版嵁
+ /// </summary>
+ public Task<WebResponseContent> RelocationFinishTaskAsync(CreateTaskDto taskDto);
+
+ /// <summary>
/// 鍒涘缓绌烘墭鐩樺叆搴撲换鍔�
/// </summary>
/// <param name="taskDto"></param>
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs
index 437a55d..5638b1a 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs
@@ -1,4 +1,4 @@
-锘縰sing AutoMapper;
+using MapsterMapper;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_IBasicService;
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrder_HtyService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrder_HtyService.cs
index bc3f32d..c774716 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrder_HtyService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrder_HtyService.cs
@@ -1,4 +1,4 @@
-锘縰sing AutoMapper;
+using MapsterMapper;
using SqlSugar;
using System;
using System.Collections.Generic;
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs
index d2ab0c3..532973c 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs
@@ -1,4 +1,4 @@
-锘縰sing AutoMapper;
+using MapsterMapper;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_IOutboundService;
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrder_HtyService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrder_HtyService.cs
index 2b1c783..d90c49e 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrder_HtyService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrder_HtyService.cs
@@ -1,4 +1,4 @@
-锘縰sing AutoMapper;
+using MapsterMapper;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_IOutboundService;
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/StockQuantityChangeRecordService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/StockQuantityChangeRecordService.cs
index cf9c1d8..8d501f5 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/StockQuantityChangeRecordService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_RecordService/StockQuantityChangeRecordService.cs
@@ -1,4 +1,4 @@
-锘縰sing AutoMapper;
+using MapsterMapper;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_IRecordService;
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_MenuService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_MenuService.cs
index e98d2e1..838e81c 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_MenuService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_MenuService.cs
@@ -1,4 +1,4 @@
-锘縰sing AutoMapper;
+using MapsterMapper;
using SqlSugar;
using System;
using System.Collections.Concurrent;
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
index 54429f5..7cf29a4 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -1,4 +1,4 @@
-锘縰sing AutoMapper;
+using MapsterMapper;
using Microsoft.Extensions.Configuration;
using SqlSugar;
using System.Text.Json;
@@ -9,6 +9,7 @@
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Core;
+using WIDESEA_Core.Helper;
using WIDESEA_DTO.GradingMachine;
using WIDESEA_DTO.Task;
using WIDESEA_IBasicService;
@@ -218,14 +219,7 @@
var updateStockResult = await _stockInfoService.UpdateStockAsync(stockInfo);
if (!updateLocationResult || !updateStockResult)
return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
-
- var deleteTaskResult = await BaseDal.DeleteDataAsync(task);
- if (!deleteTaskResult) return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
-
- var historyTask = _mapper.Map<Dt_Task_Hty>(task);
- historyTask.InsertTime = DateTime.Now;
-
- return WebResponseContent.Instance.OK("浠诲姟瀹屾垚");
+ return await CompleteTaskAsync(task);
}
catch (Exception ex)
{
@@ -256,14 +250,50 @@
var updateStockResult = await _stockInfoService.UpdateStockAsync(stockInfo);
if (!updateLocationResult || !updateStockResult)
return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
+ return await CompleteTaskAsync(task);
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error($"瀹屾垚浠诲姟澶辫触: {ex.Message}");
+ }
+ }
- var deleteTaskResult = await BaseDal.DeleteDataAsync(task);
- if (!deleteTaskResult) return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
+ /// <summary>
+ /// 绉诲簱浠诲姟瀹屾垚锛氫慨鏀瑰簱瀛樹綅缃笌鐘舵�侊紝淇敼婧�/鐩爣璐т綅鐘舵�侊紝鍒犻櫎浠诲姟鏁版嵁
+ /// </summary>
+ public async Task<WebResponseContent> RelocationFinishTaskAsync(CreateTaskDto taskDto)
+ {
+ try
+ {
+ var task = await BaseDal.QueryFirstAsync(s =>
+ s.PalletCode == taskDto.PalletCode &&
+ s.TaskType == TaskRelocationTypeEnum.Relocation.GetHashCode());
+ if (task == null) return WebResponseContent.Instance.Error("鏈壘鍒板搴旂殑绉诲簱浠诲姟");
- var historyTask = _mapper.Map<Dt_Task_Hty>(task);
- historyTask.InsertTime = DateTime.Now;
+ var sourceLocation = await _locationInfoService.GetLocationInfo(task.Roadway, task.SourceAddress);
+ if (sourceLocation == null) return WebResponseContent.Instance.Error("鏈壘鍒扮Щ搴撴簮璐т綅");
- return WebResponseContent.Instance.OK("浠诲姟瀹屾垚");
+ var targetLocation = await _locationInfoService.GetLocationInfo(task.Roadway, task.TargetAddress);
+ if (targetLocation == null) return WebResponseContent.Instance.Error("鏈壘鍒扮Щ搴撶洰鏍囪揣浣�");
+
+ var stockInfo = await _stockInfoService.GetStockInfoAsync(taskDto.PalletCode);
+ if (stockInfo == null) return WebResponseContent.Instance.Error("鏈壘鍒板搴斿簱瀛樹俊鎭�");
+
+ stockInfo.LocationCode = targetLocation.LocationCode;
+ stockInfo.LocationId = targetLocation.Id;
+ stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.GetHashCode();
+
+ sourceLocation.LocationStatus = LocationStatusEnum.Free.GetHashCode();
+ targetLocation.LocationStatus = LocationStatusEnum.InStock.GetHashCode();
+
+ var updateSourceResult = await _locationInfoService.UpdateLocationInfoAsync(sourceLocation);
+ var updateTargetResult = await _locationInfoService.UpdateLocationInfoAsync(targetLocation);
+ var updateStockResult = await _stockInfoService.UpdateStockAsync(stockInfo);
+
+ if (!updateSourceResult || !updateTargetResult || !updateStockResult)
+ return WebResponseContent.Instance.Error("绉诲簱浠诲姟瀹屾垚澶辫触");
+
+ return await CompleteTaskAsync(task);
}
catch (Exception ex)
{
@@ -385,6 +415,21 @@
}
/// <summary>
+ /// 瀹屾垚浠诲姟鍚庣粺涓�澶勭悊锛堝垹闄や换鍔℃暟鎹級
+ /// </summary>
+ private async Task<WebResponseContent> CompleteTaskAsync(Dt_Task task)
+ {
+ var deleteTaskResult = await BaseDal.DeleteDataAsync(task);
+ if (!deleteTaskResult) return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
+
+ // 淇濈暀鍘嗗彶瀵硅薄鏋勫缓閫昏緫锛屽悗缁彲鎺ュ叆鍘嗗彶琛ㄨ惤搴�
+ var historyTask = _mapper.Map<Dt_Task_Hty>(task);
+ historyTask.InsertTime = DateTime.Now;
+
+ return WebResponseContent.Instance.OK("浠诲姟瀹屾垚");
+ }
+
+ /// <summary>
/// 鏍规嵁宸烽亾纭畾鐩爣鍦板潃锛堟敮鎸佸鍑哄簱鍙h疆璇級
/// </summary>
private string DetermineTargetAddress(string roadway, Dictionary<string, List<string>> addressMap)
@@ -427,38 +472,12 @@
{
// 1. 鏌ヨ鍒版湡搴撳瓨
var expiredStocks = await _stockInfoService.Repository
- .QueryDataAsync(s => s.OutboundDate <= DateTime.Now
+ .QueryDataNavAsync(s => s.OutboundDate <= DateTime.Now
&& s.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.GetHashCode());
if (expiredStocks == null || !expiredStocks.Any())
{
return WebResponseContent.Instance.OK("鏃犲埌鏈熷簱瀛橀渶瑕佸鐞�");
- }
-
- // 鎵归噺鍔犺浇浣嶇疆璇︽儏锛堜紭鍖� N+1 鏌ヨ闂锛�
- var locationIds = expiredStocks
- .Where(s => s.LocationId > 0)
- .Select(s => s.LocationId)
- .Distinct()
- .Cast<object>()
- .ToList();
-
- if (locationIds.Any())
- {
- var locations = await _locationInfoService.Repository
- .QureyDataByIdsAsync(locationIds);
-
- // 鍒涘缓浣嶇疆瀛楀吀浠ヤ究蹇�熸煡鎵�
- var locationDict = locations.ToDictionary(l => l.Id, l => l);
-
- // 涓烘瘡涓簱瀛樺叧鑱斾綅缃鎯�
- foreach (var stock in expiredStocks)
- {
- if (stock.LocationId > 0 && locationDict.ContainsKey(stock.LocationId))
- {
- stock.LocationDetails = locationDict[stock.LocationId];
- }
- }
}
// 杩囨护鏈変綅缃笖浣嶇疆鏈夊簱瀛樼殑璁板綍
@@ -531,23 +550,55 @@
return WebResponseContent.Instance.Error($"鎵归噺鍒涘缓浠诲姟澶辫触锛屽叡 {taskList.Count} 涓换鍔�");
}
+ // 浠诲姟鍒涘缓鎴愬姛鍚庯紝鍚屾閿佸畾搴撳瓨鍜岃揣浣嶇姸鎬侊紝閬垮厤閲嶅鍒嗛厤
+ var stocksToUpdate = stocksToProcess
+ .Select(s =>
+ {
+ s.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.GetHashCode();
+ return s;
+ })
+ .ToList();
+
+ var updateStockResult = await _stockInfoService.Repository.UpdateDataAsync(stocksToUpdate);
+ if (!updateStockResult)
+ {
+ return WebResponseContent.Instance.Error($"浠诲姟鍒涘缓鎴愬姛锛屼絾搴撳瓨鐘舵�佹洿鏂板け璐ワ紝鍏� {stocksToUpdate.Count} 鏉�");
+ }
+
+ var locationsToUpdate = stocksToProcess
+ .Where(s => s.LocationDetails != null)
+ .GroupBy(s => s.LocationDetails.Id)
+ .Select(g =>
+ {
+ var location = g.First().LocationDetails;
+ location.LocationStatus = LocationStatusEnum.InStockLock.GetHashCode();
+ return location;
+ })
+ .ToList();
+
+ if (locationsToUpdate.Any())
+ {
+ var updateLocationResult = await _locationInfoService.Repository.UpdateDataAsync(locationsToUpdate);
+ if (!updateLocationResult)
+ {
+ return WebResponseContent.Instance.Error($"浠诲姟鍒涘缓鎴愬姛锛屼絾璐т綅鐘舵�佹洿鏂板け璐ワ紝鍏� {locationsToUpdate.Count} 鏉�");
+ }
+ }
+
// 6. 閫氱煡 WCS锛堝紓姝ワ紝涓嶅奖鍝嶄富娴佺▼锛�
_ = Task.Run(() =>
{
- foreach (var task in taskList)
+ try
{
- try
- {
- var wmstaskDto = _mapper.Map<WMSTaskDTO>(task);
- _httpClientHelper.Post<WebResponseContent>(
- "http://localhost:9292/api/Task/ReceiveTask",
- JsonSerializer.Serialize(wmstaskDto));
- }
- catch (Exception ex)
- {
- // WCS 閫氱煡澶辫触涓嶅奖鍝嶄换鍔″垱寤猴紝璁板綍鏃ュ織鍗冲彲
- Console.WriteLine($"WCS 閫氱煡澶辫触锛屼换鍔$紪鍙�: {task.TaskNum}, 閿欒: {ex.Message}");
- }
+ var wmstaskDtos = _mapper.Map<List<WMSTaskDTO>>(taskList);
+ _httpClientHelper.Post<WebResponseContent>(
+ "http://localhost:9292/api/Task/ReceiveTask",
+ wmstaskDtos.ToJson());
+ }
+ catch (Exception ex)
+ {
+ // WCS 閫氱煡澶辫触涓嶅奖鍝嶄换鍔″垱寤猴紝璁板綍鏃ュ織鍗冲彲
+ Console.WriteLine($"WCS 鎵归噺閫氱煡澶辫触锛屼换鍔℃暟閲�: {taskList.Count}, 閿欒: {ex.Message}");
}
});
@@ -744,4 +795,4 @@
#endregion 鍒嗗鏌滄帴鍙�
}
-}
\ No newline at end of file
+}
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/AutoOutboundTaskBackgroundService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/AutoOutboundTaskBackgroundService.cs
index d877cc9..2ab2dc3 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/AutoOutboundTaskBackgroundService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/BackgroundServices/AutoOutboundTaskBackgroundService.cs
@@ -41,11 +41,18 @@
_logger.LogInformation("鑷姩鍑哄簱浠诲姟妫�鏌ラ棿闅�: {Seconds} 绉�", _options.CheckIntervalSeconds);
+ int index = 0;
+
while (!stoppingToken.IsCancellationRequested)
{
try
{
- _logger.LogDebug("寮�濮嬫鏌ュ埌鏈熷簱瀛�...");
+ _logger.LogInformation("寮�濮嬫鏌ュ埌鏈熷簱瀛�...");
+ if (index == 0)
+ {
+ await Task.Delay(5000, stoppingToken);
+ index++;
+ }
var result = await _taskService.CreateAutoOutboundTasksAsync();
if (result.Status)
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
index 030aaf0..31224e6 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
@@ -79,6 +79,17 @@
}
/// <summary>
+ /// 绉诲簱浠诲姟瀹屾垚锛氫慨鏀瑰簱瀛樹綅缃笌鐘舵�侊紝淇敼婧�/鐩爣璐т綅鐘舵�侊紝鍒犻櫎浠诲姟鏁版嵁
+ /// </summary>
+ /// <param name="taskDto"></param>
+ /// <returns></returns>
+ [HttpGet, HttpPost, Route("RelocationFinishTask"), AllowAnonymous]
+ public async Task<WebResponseContent?> RelocationFinishTaskAsync([FromBody] CreateTaskDto taskDto)
+ {
+ return await Service.RelocationFinishTaskAsync(taskDto);
+ }
+
+ /// <summary>
/// 鍒涘缓绌烘墭鐩樺嚭搴撲换鍔�
/// </summary>
/// <param name="taskDto"></param>
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/AutoMapperConfig.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/AutoMapperConfig.cs
index 2892fb3..85aca4e 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/AutoMapperConfig.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/AutoMapperConfig.cs
@@ -1,18 +1,15 @@
-锘縰sing AutoMapper;
+using Mapster;
namespace WIDESEA_WMSServer.Filter
{
/// <summary>
- /// 闈欐�佸叏灞� AutoMapper 閰嶇疆鏂囦欢
+ /// 闈欐�佸叏灞� Mapster 閰嶇疆鏂囦欢
/// </summary>
- public class AutoMapperConfig
+ public static class AutoMapperConfig
{
- public static MapperConfiguration RegisterMappings()
+ public static void RegisterMappings(TypeAdapterConfig config)
{
- return new MapperConfiguration(cfg =>
- {
- cfg.AddProfile(new CustomProfile());
- });
+ CustomProfile.Register(config);
}
}
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/AutoMapperSetup.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/AutoMapperSetup.cs
index 0e51421..c15c833 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/AutoMapperSetup.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/AutoMapperSetup.cs
@@ -1,7 +1,10 @@
-锘縩amespace WIDESEA_WMSServer.Filter
+using Mapster;
+using MapsterMapper;
+
+namespace WIDESEA_WMSServer.Filter
{
/// <summary>
- /// Automapper 鍚姩鏈嶅姟
+ /// Mapster 鍚姩鏈嶅姟
/// </summary>
public static class AutoMapperSetup
{
@@ -9,8 +12,10 @@
{
if (services == null) throw new ArgumentNullException(nameof(services));
- services.AddAutoMapper(typeof(AutoMapperConfig));
- AutoMapperConfig.RegisterMappings();
+ var config = TypeAdapterConfig.GlobalSettings;
+ AutoMapperConfig.RegisterMappings(config);
+ services.AddSingleton(config);
+ services.AddScoped<IMapper, ServiceMapper>();
}
}
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs
index 8636c46..b270b82 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs
@@ -1,13 +1,6 @@
-锘縰sing Autofac.Builder;
-using AutoMapper;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using Mapster;
using WIDESEA_Common.OrderEnum;
using WIDESEA_Core.Helper;
-using WIDESEA_DTO;
using WIDESEA_DTO.Inbound;
using WIDESEA_DTO.Outbound;
using WIDESEA_DTO.System;
@@ -16,23 +9,30 @@
namespace WIDESEA_WMSServer.Filter
{
- public class CustomProfile : Profile
+ public static class CustomProfile
{
/// <summary>
/// 閰嶇疆鏋勯�犲嚱鏁帮紝鐢ㄦ潵鍒涘缓鍏崇郴鏄犲皠
/// </summary>
- public CustomProfile()
+ public static void Register(TypeAdapterConfig config)
{
- CreateMap<Sys_Menu, MenuDTO>();
- CreateMap<InboundOrderDetailAddDTO, Dt_InboundOrderDetail>().ForMember(x => x.OrderDetailStatus, b => b.MapFrom(b => 0));
- CreateMap<InboundOrderAddDTO, Dt_InboundOrder>();
+ config.NewConfig<Sys_Menu, MenuDTO>();
+ config.NewConfig<InboundOrderDetailAddDTO, Dt_InboundOrderDetail>()
+ .Map(dest => dest.OrderDetailStatus, _ => 0);
+ config.NewConfig<InboundOrderAddDTO, Dt_InboundOrder>();
- CreateMap<Dt_StockInfoDetail, Dt_StockQuantityChangeRecord>().ForMember(x => x.SerilNumber, b => b.MapFrom(b => b.SerialNumber)).ForMember(x => x.StockDetailId, b => b.MapFrom(b => b.Id));
- CreateMap<OutboundOrderDetailAddDTO, Dt_OutboundOrderDetail>().ForMember(x => x.OrderDetailStatus, b => b.MapFrom(b => 0));
- CreateMap<OutboundOrderAddDTO, Dt_OutboundOrder>();
- CreateMap<Dt_ReceiveOrderDetail, Dt_CheckOrder>().ForMember(a => a.ReceivedQuantity, b => b.MapFrom(x => x.ReceivedQuantity)).ForMember(a => a.MaterielCode, b => b.MapFrom(x => x.MaterielCode)).ForMember(a => a.CheckOrderStatus, b => b.MapFrom(x => CheckOrderStatusEnum.NotCheck.ObjToInt()));
+ config.NewConfig<Dt_StockInfoDetail, Dt_StockQuantityChangeRecord>()
+ .Map(dest => dest.SerilNumber, src => src.SerialNumber)
+ .Map(dest => dest.StockDetailId, src => src.Id);
+ config.NewConfig<OutboundOrderDetailAddDTO, Dt_OutboundOrderDetail>()
+ .Map(dest => dest.OrderDetailStatus, _ => 0);
+ config.NewConfig<OutboundOrderAddDTO, Dt_OutboundOrder>();
+ config.NewConfig<Dt_ReceiveOrderDetail, Dt_CheckOrder>()
+ .Map(dest => dest.ReceivedQuantity, src => src.ReceivedQuantity)
+ .Map(dest => dest.MaterielCode, src => src.MaterielCode)
+ .Map(dest => dest.CheckOrderStatus, _ => CheckOrderStatusEnum.NotCheck.ObjToInt());
- CreateMap<Dt_Task, WMSTaskDTO>();
+ config.NewConfig<Dt_Task, WMSTaskDTO>();
}
}
-}
+}
\ No newline at end of file
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs
index 1d708bf..cf44abb 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs
@@ -11,6 +11,7 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
+using Serilog;
using WIDESEA_Core;
using WIDESEA_Core.Authorization;
using WIDESEA_Core.BaseServices;
@@ -35,6 +36,16 @@
config.Sources.Clear();
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
});
+
+builder.Host.UseSerilog((context, services, loggerConfiguration) =>
+{
+ loggerConfiguration
+ .ReadFrom.Configuration(context.Configuration)
+ .ReadFrom.Services(services)
+ .Enrich.FromLogContext()
+ .WriteTo.Console()
+ .WriteTo.File("logs/log-.txt", rollingInterval: RollingInterval.Day);
+});
builder.ConfigureApplication();
// App.ExpDateTime = DateTime.Parse("2025-03-31 00:00:00"); // 璁剧疆杩囨湡鏃堕棿
@@ -50,7 +61,7 @@
builder.Services.AddSqlsugarSetup(); // SqlSugar 鏁版嵁搴撻厤缃�
builder.Services.AddDbSetup(); // Db 鏁版嵁搴撻厤缃�
builder.Services.AddInitializationHostServiceSetup(); // 搴旂敤绋嬪簭鍒濆鍖栨湇鍔℃敞鍐�
-builder.Services.AddHostedService<AutoOutboundTaskBackgroundService>();
+builder.Services.AddHostedService<AutoOutboundTaskBackgroundService>(); // 鍚姩鑷姩鍑哄簱浠诲姟鍚庡彴鏈嶅姟
// builder.Services.AddHostedService<PermissionDataHostService>(); // 鏉冮檺鏁版嵁鏈嶅姟
builder.Services.AddAutoMapperSetup();
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj
index 045168a..9700c4e 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj
@@ -47,6 +47,10 @@
</ItemGroup>
<ItemGroup>
+ <PackageReference Include="Serilog.AspNetCore" Version="8.0.1" />
+ <PackageReference Include="Serilog.Settings.Configuration" Version="8.0.0" />
+ <PackageReference Include="Serilog.Sinks.Console" Version="5.0.1" />
+ <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.7.3" />
</ItemGroup>
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
index bc8fe41..feb1181 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
@@ -3,7 +3,8 @@
"Logging": {
"LogLevel": {
"Default": "Information",
- "Microsoft.AspNetCore": "Warning"
+ "Microsoft.AspNetCore": "Warning",
+ "Microsoft.AspNetCore.DataProtection": "Warning"
}
},
"dics": "inOrderType,outOrderType,inboundState,createType,enableEnum,enableStatusEnum,locationStatusEnum,locationTypeEnum,taskTypeEnum,taskStatusEnum,outboundStatusEnum,orderDetailStatusEnum,stockStatusEmun,stockChangeType,outStockStatus,receiveOrderTypeEnum,authorityScope,authorityScopes,locationChangeType,warehouses,suppliers,taskType,receiveStatus,purchaseType,purchaseOrderStatus,printStatus",
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\350\256\276\345\244\207\345\215\217\350\256\256/\351\253\230\345\270\270\346\270\251\345\240\206\345\236\233\346\234\272\344\270\216\350\276\223\351\200\201\347\272\277/~$WCS\350\276\223\351\200\201\345\257\271\346\216\245\345\234\260\345\235\200\350\241\250.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\350\256\276\345\244\207\345\215\217\350\256\256/\351\253\230\345\270\270\346\270\251\345\240\206\345\236\233\346\234\272\344\270\216\350\276\223\351\200\201\347\272\277/~$WCS\350\276\223\351\200\201\345\257\271\346\216\245\345\234\260\345\235\200\350\241\250.xlsx"
new file mode 100644
index 0000000..236d63d
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\350\256\276\345\244\207\345\215\217\350\256\256/\351\253\230\345\270\270\346\270\251\345\240\206\345\236\233\346\234\272\344\270\216\350\276\223\351\200\201\347\272\277/~$WCS\350\276\223\351\200\201\345\257\271\346\216\245\345\234\260\345\235\200\350\241\250.xlsx"
Binary files differ
--
Gitblit v1.9.3