Add AGENTS instructions and updates
| | |
| | | "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}", |
| | |
| | | "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": [ |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 9, |
| | | "SelectedChildIndex": 14, |
| | | "Children": [ |
| | | { |
| | | "$type": "Bookmark", |
| | |
| | | }, |
| | | { |
| | | "$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": "" |
| | | } |
| | | ] |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | # 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/éæé¡µé¢èµæºæ¶éæªå¾ã |
| | |
| | | - Redis è¿æ¥ä½¿ç¨ **å»¶è¿åå§å** - 馿¬¡è®¿é®æ¶è§¦åè¿æ¥ |
| | | - å¨ä»»å¡ä¸ä½¿ç¨ `ConsoleHelper.WriteSuccessLine()` / `WriteErrorLine()` è¿è¡æ§å¶å°è¾åº |
| | | - TCP Socket æå¡å¨ç¬ç«äº HTTP API è¿è¡ |
| | | |
| | | ## 代ç 飿 ¼ä¸å½åè§è |
| | | |
| | | - è¯è¨ï¼C#ï¼å项ç®å·²å¯ç¨å¯ç©ºå¼ç¨ï¼nullableï¼ã |
| | | - 缩è¿ï¼4 ä¸ªç©ºæ ¼ï¼å¤§æ¬å·æ¢è¡ï¼ä¸ç°æä»£ç ä¿æä¸è´ï¼ã |
| | | - å½åï¼ç±»å/æ¹æ³/屿§ä½¿ç¨ `PascalCase`ï¼å±é¨åé/åæ°ä½¿ç¨ `camelCase`ï¼æ¥å£ä»¥ `I` åç¼å½åã |
| | | - æä»¶å½åä¸ç±»ååä¿æä¸è´ï¼ä¾å¦ `Sys_UserService.cs`ã`TaskController.cs`ï¼ã |
| | | - `.editorconfig` å½å对 `*.cs` æå¶ CS8618ï¼æªç»å¢é确认ä¸è¦æ°å¢å¤§èå´è¦åæå¶ã |
| | | - 为æ°çææè
ä¿®æ¹ç代ç çæ¯ä¸è¡æ·»å è¯¦ç»æ³¨éï¼å
æ¬ï¼ |
| | | - æ¹æ³çç®ç说æ |
| | | - åæ°è¯´æ |
| | | - è¿åå¼è¯´æ |
| | | - æ¯ä¸è¡ä»£ç çä½ç¨ |
| | | - å¼å¸¸æ
åµç说æ |
| | |
| | | /// </summary> |
| | | UpdateTaskByStatus, |
| | | |
| | | /// <summary> |
| | | /// 夿æ¯å¦éè¦ç§»åºï¼æ ¹æ®ä»»å¡å·å¤ææ¯å¦éè¦ç§»åºï¼ |
| | | /// </summary> |
| | | TransferCheck, |
| | | |
| | | #endregion WMSæ¥å£ |
| | | } |
| | | } |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.ComponentModel; |
| | | |
| | | namespace WIDESEAWCS_Common.TaskEnum |
| | | { |
| | |
| | | [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, |
| | | } |
| | | } |
| | |
| | | _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> |
| | |
| | | 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; |
| | |
| | | /// <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) |
| | | throw new InvalidOperationException($"éä¿¡æªè¿æ¥ï¼æ æ³è·å设å¤[{deviceChildCode}]çå ç¨ç¶æ"); |
| | | } |
| | | // 2. è·å设å¤åè®®ä¿¡æ¯ |
| | | var devicePro = _deviceProDTOs.FirstOrDefault(x => |
| | | x.DeviceProParamType == ConveyorLineStatus.IsOccupied.ToString() && |
| | | x.DeviceChildCode == deviceChildCode); |
| | | |
| | | if (devicePro == null) |
| | | { |
| | | //todo åè®®ä¿¡æ¯æªè·åå°æ¶æåºå¼å¸¸ |
| | | throw new Exception(); |
| | | throw new KeyNotFoundException($"æªæ¾å°è®¾å¤[{deviceChildCode}]çå ç¨ç¶æåè®®é
ç½®"); |
| | | } |
| | | for (int i = 0; i < devicePros.Count; i++) |
| | | |
| | | // 3. 读å设å¤ç¶æå¼ |
| | | object readStatus; |
| | | try |
| | | { |
| | | 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) |
| | | readStatus = Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return true; |
| | | throw new Exception($"读å设å¤[{deviceChildCode}]å°å[{devicePro.DeviceProAddress}]失败", ex); |
| | | } |
| | | return false; |
| | | } |
| | | } |
| | | //todo é讯æªè¿æ¥æ¶æåºå¼å¸¸ |
| | | return false; |
| | | |
| | | // 4. å¤æç¶æå¼æ¯å¦å¹é
å ç¨ç¶ææç» |
| | | var readStatusValue = readStatus?.ToString() ?? string.Empty; |
| | | return _deviceProtocolDetailDTOs.Any(x => |
| | | x.ProtocolDetailType == devicePro.DeviceProParamType && |
| | | string.Equals(x.ProtocalDetailValue, readStatusValue, StringComparison.Ordinal)); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | 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) |
| | |
| | | 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}ã"); |
| | | |
| | | } |
| | |
| | | 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() |
| | |
| | | |
| | | if (result.IsSuccess && result.Data.Status) |
| | | { |
| | | BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.èªå¨å®æ); |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å åæºå
¥åºå®æ"); |
| | | return content.Error($"éç¥WMSç³»ç»å åæºå
¥åºå®ææå,ä»»å¡å·:ã{task.TaskNum}ã,æçå·:ã{task.PalletCode}ã"); |
| | | } |
| | | else |
| | |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.StackerCrane; |
| | | using WIDESEAWCS_Tasks.StackerCraneJob; |
| | | using WIDESEA_Core; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using System.Linq; |
| | | using 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; |
| | |
| | | { |
| | | 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 null; |
| | | } |
| | | |
| | | if (candidateTask.TaskType.GetTaskTypeGroup() != TaskTypeGroup.OutbondGroup) |
| | | { |
| | | return task; |
| | | return candidateTask; |
| | | } |
| | | |
| | | Dt_Task? selectedTask = TrySelectOutboundTask(candidateTask); |
| | | if (selectedTask != null) |
| | | { |
| | | return selectedTask; |
| | | } |
| | | |
| | | var otherOutStationCodes = _routerService |
| | | .QueryNextRoutes(commonStackerCrane.DeviceCode, task.NextAddress, task.TaskType) |
| | | .QueryNextRoutes(commonStackerCrane.DeviceCode, candidateTask.NextAddress, candidateTask.TaskType) |
| | | .Select(x => x.ChildPosi) |
| | | .ToList(); |
| | | |
| | | var tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode, otherOutStationCodes); |
| | | foreach (var alternativeTask in tasks) |
| | | { |
| | | if (IsOutTaskStationAvailable(alternativeTask)) |
| | | selectedTask = TrySelectOutboundTask(alternativeTask); |
| | | if (selectedTask != null) |
| | | { |
| | | return alternativeTask; |
| | | return selectedTask; |
| | | } |
| | | } |
| | | |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | return _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | |
| | | return task; |
| | | private Dt_Task? TrySelectOutboundTask(Dt_Task outboundTask) |
| | | { |
| | | // åªè¦æ¯åºåºä»»å¡ï¼å¿
é¡»å
è°ç¨WMS夿æ¯å¦éè¦ç§»åºã |
| | | 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) |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | 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); |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | |
| | | <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> |
| | | |
| | |
| | | "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": [ |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 31, |
| | | "SelectedChildIndex": 3, |
| | | "Children": [ |
| | | { |
| | | "$type": "Bookmark", |
| | |
| | | }, |
| | | { |
| | | "$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": "" |
| | | } |
| | | ] |
| | |
| | | "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": [ |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 31, |
| | | "SelectedChildIndex": 3, |
| | | "Children": [ |
| | | { |
| | | "$type": "Bookmark", |
| | |
| | | }, |
| | | { |
| | | "$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" |
| | | } |
| | | ] |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | # AGENTS åä½è¯´æ |
| | | |
| | | æ¬æä»¶ç¨äºçº¦æå¨æ¬ä»åºå
åä½å¼åç AI Agent ä¸å¼åè
è¡ä¸ºã |
| | | |
| | | ## 1. åºæ¬åå |
| | | |
| | | - æææ²éãæ³¨éãè¯´æææ¡£é»è®¤ä½¿ç¨ä¸æã |
| | | - ä¼å
ä¿è¯ç³»ç»ç¨³å®æ§ï¼é¿å
å½±åç°æä¸å¡æµç¨ã |
| | | - ä¿®æ¹åºéµå¾ªâæå°æ¹å¨ååâï¼ä¸è¦åæ å
³éæã |
| | | - 任使¶åç¶ææµè½¬çæ¹å¨ï¼å¿
é¡»æç¡®åç½®ç¶æãç®æ ç¶æä¸å¼å¸¸å¤çã |
| | | |
| | | ## 2. å¼åè§è |
| | | |
| | | - ä¿æä¸ç°æä»£ç 飿 ¼ä¸è´ï¼å½åã缩è¿ãå¼å¸¸å¤çæ¹å¼ï¼ã |
| | | - ä¼å
å¤ç¨å·²ææä¸¾ãæå¡ä¸ä»å¨æ¹æ³ï¼é¿å
éå¤å®ç°ã |
| | | - ä¸å¡å¸¸éåºæ¾å
¥é
ç½®ææä¸¾ï¼ä¸å
许硬ç¼ç éæ³å¼ã |
| | | - æ¶åæ¹éå¤çæ¶ï¼ä¼å
èèæ¹éæ¥è¯¢/æ¹éæ´æ°ï¼é¿å
N+1 æ¥è¯¢ã |
| | | |
| | | ## 3. ç¶æä¸äºå¡ |
| | | |
| | | - æ¶åâä»»å¡å建 + åºåç¶æ + è´§ä½ç¶æâè卿¶ï¼å¿
é¡»ä¿è¯ä¸è´æ§ã |
| | | - è¥ä»»ä¸å
³é®æ¥éª¤å¤±è´¥ï¼åºè¿åæç¡®é误信æ¯ï¼ä¸è½éé»å¤±è´¥ã |
| | | - 对并ååºæ¯ä¿æææï¼é¿å
éå¤åå»ºä»»å¡æéå¤åé
åºåã |
| | | |
| | | ## 4. æ¥å£ä¸éæ |
| | | |
| | | - 对æ¥å¤é¨ç³»ç»ï¼å¦ WCSï¼åï¼å
ç¡®è®¤è¯·æ±æ¨¡å䏿¥å£çº¦å®ï¼åæ¡ææ¹éï¼ã |
| | | - å¤é¨éç¥å¤±è´¥ä¸åºé»å¡ä¸»æµç¨æ¶ï¼å¿
须记å½å¯è¿½è¸ªæ¥å¿ã |
| | | - æ¥å£å°åä¼å
é
ç½®åï¼é¿å
åæ»ç¯å¢å°åã |
| | | |
| | | ## 5. éªè¯è¦æ± |
| | | |
| | | - 宿æ¹å¨åè³å°æ§è¡ä¸æ¬¡å¯ç¨çç¼è¯ææµè¯éªè¯ã |
| | | - å¨æäº¤ç»ææ¶ï¼è¯´æï¼ |
| | | - ä¿®æ¹äºåªäºæä»¶ |
| | | - å
³é®é»è¾åæ´ç¹ |
| | | - éªè¯å½ä»¤ä¸ç»æ |
| | | |
| | | ## 6. ç¦æ¢äºé¡¹ |
| | | |
| | | - æªç»æç¡®è¦æ±ï¼ä¸å¾å 餿忻ä»äººå·²ææ¹å¨ã |
| | | - ä¸å¾ä½¿ç¨é«é£é©å½ä»¤ï¼å¦å¼ºå¶éç½®ï¼ç ´åå·¥ä½åºã |
| | | - ä¸å¾å¨æªéªè¯çæ
åµä¸å®£ç§°â已修å¤âæâå¯ä¸çº¿âã |
| | | |
| | | ## 7. å»ºè®®å·¥ä½æµ |
| | | |
| | | 1. å
é
读ç¸å
³ä¸ä¸æ¸¸ä»£ç 䏿䏾å®ä¹ã |
| | | 2. æç¡®è¾å
¥ãå¤çãè¾åºä»¥åç¶æååã |
| | | 3. 宿½æå°æ¹å¨å¹¶è¡¥å
å¿
è¦æ³¨éã |
| | | 4. ç¼è¯/æµè¯éªè¯å¹¶è¾åºç»ææè¦ã |
| | | |
| | |
| | | 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 |
| | | { |
| | |
| | | /// </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; |
| | | |
| | |
| | | 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> |
| | |
| | | // 妿æ°çåºä½æ²¡ææ¾å°å¯¹åºçä»»å¡ |
| | | if (internalTransferTask == null) |
| | | { |
| | | return content.OK("è·åå°ç§»åºä»»å¡", await HandleNoTaskAtLocation(outboundTask.SourceAddress, newLocationID, outboundTask)); |
| | | return content.OK("è·åå°ç§»åºä»»å¡", await HandleNoTaskAtLocation(newLocationID, outboundTask)); |
| | | } |
| | | |
| | | // ç´æ¥è¿å䏿·±ä½åºåºä»»å¡ |
| | |
| | | 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) |
| | | { |
| | | // å¦ææ²¡æåºåï¼ç´æ¥è¿åå½ååºåºä»»å¡ |
| | |
| | | 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> |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.ComponentModel; |
| | | |
| | | namespace WIDESEA_Common.TaskEnum |
| | | { |
| | |
| | | /// </summary> |
| | | [Description("AGVå¾
ç»§ç»æ§è¡")] |
| | | AGV_WaitToExecute = 320, |
| | | |
| | | /// <summary> |
| | | /// AGVæ¾è´§ä¸ |
| | | /// </summary> |
| | |
| | | /// </summary> |
| | | [Description("ä»»å¡å¼å¸¸")] |
| | | Exception = 990, |
| | | |
| | | /// <summary> |
| | | /// æåæºæ§è¡ä¸ |
| | | /// </summary> |
| | |
| | | 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, |
| | | } |
| | | } |
| | |
| | | |
| | | 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>( |
| | |
| | | using AutoMapper.Execution; |
| | | using Magicodes.ExporterAndImporter.Core; |
| | | using Magicodes.ExporterAndImporter.Core.Models; |
| | | using Magicodes.ExporterAndImporter.Excel; |
| | |
| | | this.BaseDal = BaseDal; |
| | | } |
| | | |
| | | public TRepository BaseDal { get; set; } //éè¿å¨åç±»çæé 彿°ä¸æ³¨å
¥ï¼è¿éæ¯åºç±»ï¼ä¸ç¨æé 彿° |
| | | public TRepository BaseDal { get; set; } //éè¿å¨åç±»çæé 彿°ä¸æ³¨å
¥ï¼è¿éæ¯åºç±»ï¼ä¸ç¨æé 彿° |
| | | |
| | | public ISqlSugarClient Db => BaseDal.Db; |
| | | |
| | |
| | | } |
| | | if (EnableWebOrderBy) |
| | | { |
| | | //è·åæåºå段 |
| | | //è·åæåºå段 |
| | | Dictionary<string, OrderByType> orderbyDic = GetPageDataSort(options, TProperties); |
| | | |
| | | foreach (var item in orderbyDic) |
| | |
| | | |
| | | |
| | | parameter = parameter ?? Expression.Parameter(typeof(TEntity), "x"); |
| | | //å建èç¹ç屿§p=>p.name 屿§name |
| | | //å建èç¹ç屿§p=>p.name 屿§name |
| | | MemberExpression memberProperty = Expression.PropertyOrField(parameter, propertyName); |
| | | |
| | | if (expressionType == LinqExpressionType.In) |
| | |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("屿§å¼ç±»å䏿£ç¡®"); |
| | | throw new Exception("屿§å¼ç±»å䏿£ç¡®"); |
| | | } |
| | | } |
| | | // |
| | |
| | | |
| | | //if (isStringValue) |
| | | //{ |
| | | // //string ç±»åçåæ®µï¼å¦æå¼å¸¦æ'åå¼å·,EFä¼é»è®¤åæ''两个åå¼å· |
| | | // //string ç±»åçåæ®µï¼å¦æå¼å¸¦æ'åå¼å·,EFä¼é»è®¤åæ''两个åå¼å· |
| | | // MethodInfo method = typeof(System.Collections.IList).GetMethod("Contains"); |
| | | // //å建éå常é并设置为常éçå¼ |
| | | // //å建éå常é并设置为常éçå¼ |
| | | // ConstantExpression constantCollection = Expression.Constant(list); |
| | | // //å建ä¸ä¸ªè¡¨ç¤ºè°ç¨å¸¦åæ°çæ¹æ³çï¼new 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); |
| | | //} |
| | | //éstringåæ®µï¼æä¸é¢æ¹å¼å¤çæ¥å¼å¸¸Null TypeMapping in Sql Tree |
| | | //éstringåæ®µï¼æä¸é¢æ¹å¼å¤çæ¥å¼å¸¸Null TypeMapping in Sql Tree |
| | | BinaryExpression body = null; |
| | | foreach (var values in list) |
| | | { |
| | |
| | | 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)); |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæåºå段 |
| | | /// è·åæåºå段 |
| | | /// </summary> |
| | | /// <param name="pageData"></param> |
| | | /// <param name="propertyInfo"></param> |
| | |
| | | // { |
| | | // 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) |
| | | // { |
| | |
| | | |
| | | // //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) |
| | | // //{ |
| | |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // throw new Exception($"æ æéï¼{ex.Message}"); |
| | | // throw new Exception($"æ æéï¼{ex.Message}"); |
| | | // } |
| | | //} |
| | | |
| | |
| | | |
| | | 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); |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ·»å æ°æ® |
| | | /// æ·»å æ°æ® |
| | | /// </summary> |
| | | /// <param name="entity">å个å®ä½</param> |
| | | /// <param name="entity">å个å®ä½</param> |
| | | /// <returns></returns> |
| | | public virtual WebResponseContent AddData(TEntity entity) |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ·»å æ°æ® |
| | | /// æ·»å æ°æ® |
| | | /// </summary> |
| | | /// <param name="entities">å®ä½éå</param> |
| | | /// <param name="entities">å®ä½éå</param> |
| | | /// <returns></returns> |
| | | public virtual WebResponseContent AddData(List<TEntity> entities) |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ·»å æ°æ® |
| | | /// æ·»å æ°æ® |
| | | /// </summary> |
| | | /// <param name="saveModel"></param> |
| | | /// <returns></returns> |
| | |
| | | { |
| | | 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); |
| | | |
| | |
| | | PropertyInfo keyPro = typeof(TEntity).GetKeyProperty(); |
| | | if (keyPro == null) |
| | | { |
| | | return WebResponseContent.Instance.Error("请å
设置主é®"); |
| | | return WebResponseContent.Instance.Error("请å
设置主é®"); |
| | | } |
| | | if (keyPro.PropertyType == typeof(Guid)) |
| | | { |
| | |
| | | |
| | | if (typeof(TEntity).GetNavigatePro() == null) |
| | | { |
| | | return WebResponseContent.Instance.Error("æªé
置导èªå±æ§"); |
| | | return WebResponseContent.Instance.Error("æªé
置导èªå±æ§"); |
| | | } |
| | | |
| | | Type detailType = typeof(TEntity).GetDetailType(); |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹æ°æ® |
| | | /// ä¿®æ¹æ°æ® |
| | | /// </summary> |
| | | /// <param name="entity">å个å®ä½</param> |
| | | /// <param name="entity">å个å®ä½</param> |
| | | /// <returns></returns> |
| | | public virtual WebResponseContent UpdateData(TEntity entity) |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹æ°æ® |
| | | /// ä¿®æ¹æ°æ® |
| | | /// </summary> |
| | | /// <param name="entities">å®ä½éå</param> |
| | | /// <param name="entities">å®ä½éå</param> |
| | | /// <returns></returns> |
| | | public virtual WebResponseContent UpdateData(List<TEntity> entities) |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹æ°æ® |
| | | /// ä¿®æ¹æ°æ® |
| | | /// </summary> |
| | | /// <param name="saveModel"></param> |
| | | /// <returns></returns> |
| | |
| | | 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); |
| | | |
| | |
| | | PropertyInfo keyPro = typeof(TEntity).GetKeyProperty(); |
| | | if (keyPro == null) |
| | | { |
| | | return WebResponseContent.Instance.Error("请å
设置主é®"); |
| | | return WebResponseContent.Instance.Error("请å
设置主é®"); |
| | | } |
| | | |
| | | TEntity entity = saveModel.MainData.DicToModel<TEntity>(); |
| | |
| | | |
| | | if (typeof(TEntity).GetNavigatePro() == null) |
| | | { |
| | | return WebResponseContent.Instance.Error("æªé
置导èªå±æ§"); |
| | | return WebResponseContent.Instance.Error("æªé
置导èªå±æ§"); |
| | | } |
| | | |
| | | Type detailType = typeof(TEntity).GetDetailType(); |
| | |
| | | } |
| | | else |
| | | { |
| | | content = WebResponseContent.Instance.Error("æªæ¾å°ä¸»è¡¨ä¸»é®å¼"); |
| | | content = WebResponseContent.Instance.Error("æªæ¾å°ä¸»è¡¨ä¸»é®å¼"); |
| | | } |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å 餿°æ® |
| | | /// å 餿°æ® |
| | | /// </summary> |
| | | /// <param name="key">主é®</param> |
| | | /// <param name="key">主é®</param> |
| | | /// <returns></returns> |
| | | public virtual WebResponseContent DeleteData(object key) |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å 餿°æ® |
| | | /// å 餿°æ® |
| | | /// </summary> |
| | | /// <param name="keys">䏻鮿°ç»</param> |
| | | /// <param name="keys">䏻鮿°ç»</param> |
| | | /// <returns></returns> |
| | | public virtual WebResponseContent DeleteData(object[] keys) |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | return WebResponseContent.Instance.Error("åæ°é误"); |
| | | return WebResponseContent.Instance.Error("åæ°é误"); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å 餿°æ® |
| | | /// å 餿°æ® |
| | | /// </summary> |
| | | /// <param name="entity">å个å®ä½</param> |
| | | /// <param name="entity">å个å®ä½</param> |
| | | /// <returns></returns> |
| | | public virtual WebResponseContent DeleteData(TEntity entity) |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å 餿°æ® |
| | | /// å 餿°æ® |
| | | /// </summary> |
| | | /// <param name="entities">å®ä½éå</param> |
| | | /// <param name="entities">å®ä½éå</param> |
| | | /// <returns></returns> |
| | | public virtual WebResponseContent DeleteData(List<TEntity> entities) |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å¯¼åºæ°æ® |
| | | /// å¯¼åºæ°æ® |
| | | /// </summary> |
| | | /// <param name="pageData"></param> |
| | | /// <returns></returns> |
| | |
| | | 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); |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥æ°æ® |
| | | /// 导å
¥æ°æ® |
| | | /// </summary> |
| | | /// <param name="files"></param> |
| | | /// <returns></returns> |
| | |
| | | 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); |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸ä¼ æä»¶ |
| | | /// ä¸ä¼ æä»¶ |
| | | /// </summary> |
| | | /// <param name="files"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 模æ¿ä¸è½½ |
| | | /// 模æ¿ä¸è½½ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public virtual WebResponseContent DownLoadTemplate() |
| | |
| | | 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); |
| | |
| | | using AutoMapper; |
| | | using MapsterMapper; |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | |
| | | <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" /> |
| | |
| | | <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> |
| | | |
| | |
| | | public Task<WebResponseContent> OutboundFinishTaskAsync(CreateTaskDto taskDto); |
| | | |
| | | /// <summary> |
| | | /// ç§»åºä»»å¡å®æï¼ä¿®æ¹åºåä½ç½®ä¸ç¶æï¼ä¿®æ¹æº/ç®æ è´§ä½ç¶æï¼å é¤ä»»å¡æ°æ® |
| | | /// </summary> |
| | | public Task<WebResponseContent> RelocationFinishTaskAsync(CreateTaskDto taskDto); |
| | | |
| | | /// <summary> |
| | | /// å建空æçå
¥åºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="taskDto"></param> |
| | |
| | | using AutoMapper; |
| | | using MapsterMapper; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_IBasicService; |
| | |
| | | using AutoMapper; |
| | | using MapsterMapper; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | |
| | | using AutoMapper; |
| | | using MapsterMapper; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_IOutboundService; |
| | |
| | | using AutoMapper; |
| | | using MapsterMapper; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_IOutboundService; |
| | |
| | | using AutoMapper; |
| | | using MapsterMapper; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_IRecordService; |
| | |
| | | using AutoMapper; |
| | | using MapsterMapper; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Concurrent; |
| | |
| | | using AutoMapper; |
| | | using MapsterMapper; |
| | | using Microsoft.Extensions.Configuration; |
| | | using SqlSugar; |
| | | using System.Text.Json; |
| | |
| | | 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; |
| | |
| | | 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) |
| | | { |
| | |
| | | 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) |
| | | { |
| | |
| | | } |
| | | |
| | | /// <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> |
| | | /// æ ¹æ®å··éç¡®å®ç®æ å°åï¼æ¯æå¤åºåºå£è½®è¯¢ï¼ |
| | | /// </summary> |
| | | private string DetermineTargetAddress(string roadway, Dictionary<string, List<string>> addressMap) |
| | |
| | | { |
| | | // 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]; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // è¿æ»¤æä½ç½®ä¸ä½ç½®æåºåçè®°å½ |
| | |
| | | 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 |
| | | { |
| | | var wmstaskDto = _mapper.Map<WMSTaskDTO>(task); |
| | | var wmstaskDtos = _mapper.Map<List<WMSTaskDTO>>(taskList); |
| | | _httpClientHelper.Post<WebResponseContent>( |
| | | "http://localhost:9292/api/Task/ReceiveTask", |
| | | JsonSerializer.Serialize(wmstaskDto)); |
| | | wmstaskDtos.ToJson()); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // WCS éç¥å¤±è´¥ä¸å½±åä»»å¡å建ï¼è®°å½æ¥å¿å³å¯ |
| | | Console.WriteLine($"WCS éç¥å¤±è´¥ï¼ä»»å¡ç¼å·: {task.TaskNum}, é误: {ex.Message}"); |
| | | } |
| | | Console.WriteLine($"WCS æ¹ééç¥å¤±è´¥ï¼ä»»å¡æ°é: {taskList.Count}, é误: {ex.Message}"); |
| | | } |
| | | }); |
| | | |
| | |
| | | |
| | | _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) |
| | |
| | | } |
| | | |
| | | /// <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> |
| | |
| | | using 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); |
| | | } |
| | | } |
| | | } |
| | |
| | | namespace WIDESEA_WMSServer.Filter |
| | | using Mapster; |
| | | using MapsterMapper; |
| | | |
| | | namespace WIDESEA_WMSServer.Filter |
| | | { |
| | | /// <summary> |
| | | /// Automapper å¯å¨æå¡ |
| | | /// Mapster å¯å¨æå¡ |
| | | /// </summary> |
| | | public static class AutoMapperSetup |
| | | { |
| | |
| | | { |
| | | 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>(); |
| | | } |
| | | } |
| | | } |
| | |
| | | using 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; |
| | |
| | | |
| | | 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>(); |
| | | } |
| | | } |
| | | } |
| | |
| | | using Newtonsoft.Json; |
| | | using Newtonsoft.Json.Converters; |
| | | using Newtonsoft.Json.Serialization; |
| | | using Serilog; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.Authorization; |
| | | using WIDESEA_Core.BaseServices; |
| | |
| | | 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"); // è®¾ç½®è¿ææ¶é´ |
| | |
| | | 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(); |
| | | |
| | |
| | | </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> |
| | | |
| | |
| | | "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", |