已删除15个文件
已修改48个文件
已添加27个文件
已重命名1个文件
| | |
| | | "WorkspaceRootPath": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\\u8F85\u6599\u4ED3\\commonstackercranejob_fl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u8F85\u6599\u4ED3\\commonstackercranejob_fl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\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:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\khgithub\\jianliku\\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:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}" |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\\u8F85\u6599\u4ED3\\commonconveyorlinejob_fl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u8F85\u6599\u4ED3\\commonconveyorlinejob_fl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\spestackercranejob\\rgvcranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\spestackercranejob\\rgvcranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\spestackercranejob\\spestackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\spestackercranejob\\spestackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\logjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\logjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\spestackercranejob\\rgvcranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\spestackercranejob\\rgvcranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\spestackercranejob\\getstackerobject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\spestackercranejob\\getstackerobject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\khgithub\\jianliku\\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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\dbline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\stackercranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\stackercranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\logjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\logjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 2, |
| | | "SelectedChildIndex": 1, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "appsettings.json", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwsAAABQAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|", |
| | | "WhenOpened": "2025-02-27T11:09:10.397Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "TaskService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ViewState": "AgIAAKMCAAAAAAAAAAAuwKgCAABWAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T08:26:03.567Z", |
| | | "EditorCaption": "" |
| | | "$type": "Bookmark", |
| | | "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "CommonStackerCraneJob.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "ViewState": "AgIAAFQAAAAAAAAAAAAIwGgAAAA4AAAAAAAAAA==", |
| | | "Title": "CommonStackerCraneJob_FL.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonStackerCraneJob_FL.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonStackerCraneJob_FL.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonStackerCraneJob_FL.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonStackerCraneJob_FL.cs", |
| | | "ViewState": "AgIAAKYAAAAAAAAAAAAUwLcAAAAZAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:33:13.986Z", |
| | | "WhenOpened": "2025-06-23T02:34:35.139Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "DocumentIndex": 2, |
| | | "Title": "CommonConveyorLineJob_FL.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonConveyorLineJob_FL.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonConveyorLineJob_FL.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonConveyorLineJob_FL.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonConveyorLineJob_FL.cs", |
| | | "ViewState": "AgIAAC4AAAAAAAAAAAAAwDYAAAA5AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-23T02:32:17.943Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "Title": "RgvCraneTaskCommand.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SpeStackerCraneJob\\RgvCraneTaskCommand.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SpeStackerCraneJob\\RgvCraneTaskCommand.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SpeStackerCraneJob\\RgvCraneTaskCommand.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\SpeStackerCraneJob\\RgvCraneTaskCommand.cs", |
| | | "ViewState": "AgIAADwAAAAAAAAAAAA0wEQAAAAeAAAAAAAAAA==", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAADwAAAAmAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:32:35.926Z" |
| | | "WhenOpened": "2025-02-12T06:32:35.926Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs", |
| | | "ViewState": "AgIAAFEAAAAAAAAAAAAswGQAAABUAAAAAAAAAA==", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAC4AAAAJAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:32:03.132Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "DocumentIndex": 4, |
| | | "Title": "SpeStackerCraneJob.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SpeStackerCraneJob\\SpeStackerCraneJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SpeStackerCraneJob\\SpeStackerCraneJob.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SpeStackerCraneJob\\SpeStackerCraneJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\SpeStackerCraneJob\\SpeStackerCraneJob.cs", |
| | | "ViewState": "AgIAACUAAAAAAAAAAADwv0IAAAAZAAAAAAAAAA==", |
| | | "ViewState": "AgIAAMQAAAAAAAAAAAAcwPYAAAARAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:32:38.914Z" |
| | | "WhenOpened": "2025-02-12T06:32:38.914Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "DocumentIndex": 7, |
| | | "Title": "GetStackerObject.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SpeStackerCraneJob\\GetStackerObject.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SpeStackerCraneJob\\GetStackerObject.cs", |
| | |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\SpeStackerCraneJob\\GetStackerObject.cs", |
| | | "ViewState": "AgIAANYAAAAAAAAAAAAAAEMAAAAyAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:32:24.238Z" |
| | | "WhenOpened": "2025-02-12T06:32:24.238Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "DocumentIndex": 9, |
| | | "Title": "ConveyorLineTaskCommand.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "ViewState": "AgIAAB4AAAAAAAAAAAAIwDIAAAAWAAAAAAAAAA==", |
| | | "ViewState": "AgIAAB4AAAAAAAAAAAAWwDMAAAATAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:32:08.822Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "DocumentIndex": 10, |
| | | "Title": "appsettings.json", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwkAAABAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|", |
| | | "WhenOpened": "2025-02-27T11:09:10.397Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 11, |
| | | "Title": "DBLine.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\DBLine.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\DBLine.cs", |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 9, |
| | | "DocumentIndex": 5, |
| | | "Title": "LogJob.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "ViewState": "AgIAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:33:41.249Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "Title": "TaskService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ViewState": "AgIAAKkAAAAAAAAAAAAEwJsAAAAiAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T08:26:03.567Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "CommonStackerCraneJob.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAN4AAAAUAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:33:13.986Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "Title": "StackerCraneTaskCommand.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskCommand.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskCommand.cs", |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 10, |
| | | "Title": "LogJob.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "ViewState": "AgIAAD8AAAAAAAAAAAAIwAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:33:41.249Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 11, |
| | | "DocumentIndex": 13, |
| | | "Title": "TestJob.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\TestJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TestJob.cs", |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "DocumentIndex": 14, |
| | | "Title": "ConveyorLineDBName.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs", |
| | |
| | | "WorkspaceRootPath": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\khgithub\\jianliku\\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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\spestackercranejob\\rgvcranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\spestackercranejob\\rgvcranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\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:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\spestackercranejob\\spestackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\spestackercranejob\\spestackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\spestackercranejob\\rgvcranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\spestackercranejob\\rgvcranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\spestackercranejob\\getstackerobject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\spestackercranejob\\getstackerobject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\\u677F\u6750\u4ED3\\commonstackercranejob_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u677F\u6750\u4ED3\\commonstackercranejob_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\\u677F\u6750\u4ED3\\commonconveyorlinejob_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u677F\u6750\u4ED3\\commonconveyorlinejob_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\\u8F85\u6599\u4ED3\\commonconveyorlinejob_fl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u8F85\u6599\u4ED3\\commonconveyorlinejob_fl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\\u8F85\u6599\u4ED3\\commonstackercranejob_fl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u8F85\u6599\u4ED3\\commonstackercranejob_fl.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\logjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\logjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\khgithub\\jianliku\\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:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\dbline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\stackercranetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\logjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\logjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 0, |
| | | "SelectedChildIndex": 6, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "TaskService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ViewState": "AgIAAJcAAAAAAAAAAAAEwLkAAAArAAAAAAAAAA==", |
| | | "DocumentIndex": 7, |
| | | "Title": "CommonStackerCraneJob_BC.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u677F\u6750\u4ED3\\CommonStackerCraneJob_BC.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u677F\u6750\u4ED3\\CommonStackerCraneJob_BC.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u677F\u6750\u4ED3\\CommonStackerCraneJob_BC.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u677F\u6750\u4ED3\\CommonStackerCraneJob_BC.cs", |
| | | "ViewState": "AgIAABUAAAAAAAAAAAAAACUAAAA3AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T08:26:03.567Z", |
| | | "WhenOpened": "2025-07-11T01:45:11.332Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Bookmark", |
| | | "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "Title": "CommonConveyorLineJob_BC.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u677F\u6750\u4ED3\\CommonConveyorLineJob_BC.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u677F\u6750\u4ED3\\CommonConveyorLineJob_BC.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u677F\u6750\u4ED3\\CommonConveyorLineJob_BC.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u677F\u6750\u4ED3\\CommonConveyorLineJob_BC.cs", |
| | | "ViewState": "AgIAADsAAAAAAAAAAAAIwCgAAAA3AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-07-11T01:45:35.556Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "Title": "CommonStackerCraneJob.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "ViewState": "AgIAAFoAAAAAAAAAAAAIwGgAAAAxAAAAAAAAAA==", |
| | | "DocumentIndex": 10, |
| | | "Title": "CommonStackerCraneJob_FL.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonStackerCraneJob_FL.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonStackerCraneJob_FL.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonStackerCraneJob_FL.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonStackerCraneJob_FL.cs", |
| | | "ViewState": "AgIAAJoAAAAAAAAAAAAUwLcAAAAZAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:33:13.986Z", |
| | | "WhenOpened": "2025-06-23T02:34:35.139Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 9, |
| | | "Title": "CommonConveyorLineJob_FL.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonConveyorLineJob_FL.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonConveyorLineJob_FL.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonConveyorLineJob_FL.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\\u8F85\u6599\u4ED3\\CommonConveyorLineJob_FL.cs", |
| | | "ViewState": "AgIAADgAAAAAAAAAAAAIwDAAAABBAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-23T02:32:17.943Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SpeStackerCraneJob\\RgvCraneTaskCommand.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SpeStackerCraneJob\\RgvCraneTaskCommand.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\SpeStackerCraneJob\\RgvCraneTaskCommand.cs", |
| | | "ViewState": "AgIAAB0AAAAAAAAAAADwvzwAAAAmAAAAAAAAAA==", |
| | | "ViewState": "AgIAADwAAAAAAAAAAAA0wDwAAAAmAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:32:35.926Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "DocumentIndex": 0, |
| | | "Title": "CommonConveyorLineJob.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs", |
| | | "ViewState": "AgIAAFIAAAAAAAAAAAAMwGQAAABUAAAAAAAAAA==", |
| | | "ViewState": "AgIAAFcAAAAAAAAAAIA4wG8AAABRAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:32:03.132Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "DocumentIndex": 2, |
| | | "Title": "SpeStackerCraneJob.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SpeStackerCraneJob\\SpeStackerCraneJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SpeStackerCraneJob\\SpeStackerCraneJob.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SpeStackerCraneJob\\SpeStackerCraneJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\SpeStackerCraneJob\\SpeStackerCraneJob.cs", |
| | | "ViewState": "AgIAACUAAAAAAAAAAADwv0IAAAAZAAAAAAAAAA==", |
| | | "ViewState": "AgIAAFYAAAAAAAAAAAAIwPYAAAARAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:32:38.914Z" |
| | | "WhenOpened": "2025-02-12T06:32:38.914Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "DocumentIndex": 4, |
| | | "Title": "GetStackerObject.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SpeStackerCraneJob\\GetStackerObject.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SpeStackerCraneJob\\GetStackerObject.cs", |
| | |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\SpeStackerCraneJob\\GetStackerObject.cs", |
| | | "ViewState": "AgIAANYAAAAAAAAAAAAAAEMAAAAyAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:32:24.238Z" |
| | | "WhenOpened": "2025-02-12T06:32:24.238Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "DocumentIndex": 5, |
| | | "Title": "ConveyorLineTaskCommand.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "ViewState": "AgIAACEAAAAAAAAAAAASwDMAAAATAAAAAAAAAA==", |
| | | "ViewState": "AgIAACUAAAAAAAAAAAAUwDMAAAATAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:32:08.822Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "DocumentIndex": 13, |
| | | "Title": "appsettings.json", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwsAAABQAAAAAAAAAA==", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwkAAABAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|", |
| | | "WhenOpened": "2025-02-27T11:09:10.397Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "DocumentIndex": 14, |
| | | "Title": "DBLine.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\DBLine.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\DBLine.cs", |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 9, |
| | | "DocumentIndex": 11, |
| | | "Title": "LogJob.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "ViewState": "AgIAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:33:41.249Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "Title": "TaskService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs", |
| | | "ViewState": "AgIAAKkAAAAAAAAAAAAEwJsAAAAiAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T08:26:03.567Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "CommonStackerCraneJob.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "ViewState": "AgIAAKgAAAAAAAAAAAAUwN4AAAAUAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:33:13.986Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 15, |
| | | "Title": "StackerCraneTaskCommand.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskCommand.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskCommand.cs", |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 10, |
| | | "Title": "LogJob.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\LogJob.cs", |
| | | "ViewState": "AgIAAD8AAAAAAAAAAAAIwAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:33:41.249Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 11, |
| | | "DocumentIndex": 16, |
| | | "Title": "TestJob.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\TestJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TestJob.cs", |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "DocumentIndex": 6, |
| | | "Title": "ConveyorLineDBName.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs", |
| | |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-02-12T06:32:07.46Z" |
| | | "WhenOpened": "2025-02-12T06:32:07.46Z", |
| | | "EditorCaption": "" |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #region << ç æ¬ 注 é >> |
| | | /*---------------------------------------------------------------- |
| | | * å½å空é´ï¼WIDESEAWCS_Tasks.ConveyorLineJob |
| | | * å建è
ï¼è¡ç«¥åº |
| | | * å建æ¶é´ï¼2024/8/2 16:13:36 |
| | | * çæ¬ï¼V1.0.0 |
| | | * æè¿°ï¼ |
| | | * |
| | | * ---------------------------------------------------------------- |
| | | * ä¿®æ¹äººï¼ |
| | | * ä¿®æ¹æ¶é´ï¼ |
| | | * çæ¬ï¼V1.0.1 |
| | | * ä¿®æ¹è¯´æï¼ |
| | | * |
| | | *----------------------------------------------------------------*/ |
| | | #endregion << ç æ¬ 注 é >> |
| | | |
| | | using AutoMapper; |
| | | using Quartz; |
| | | using SqlSugar; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.Log; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_Model.Models.System; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.DTO; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | | [DisallowConcurrentExecution] |
| | | public class CommonConveyorLineJob_BC : IJob |
| | | { |
| | | private readonly ITaskService _taskService; |
| | | private readonly ITaskExecuteDetailService _taskExecuteDetailService; |
| | | private readonly IRouterService _routerService; |
| | | private readonly IPlatformStationService _PlatformStationService; |
| | | |
| | | private readonly IMapper _mapper; |
| | | |
| | | public CommonConveyorLineJob_BC(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, IPlatformStationService platformStation) |
| | | { |
| | | _taskService = taskService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | | _routerService = routerService; |
| | | _mapper = mapper; |
| | | _PlatformStationService = platformStation; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | try |
| | | { |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | |
| | | if (conveyorLine != null) |
| | | { |
| | | //读åè¾é线å
¥åºç³è¯· |
| | | RequestInbound(conveyorLine); |
| | | //读åå åæºå
¥åºç«å°ä¿¡å· |
| | | RequestInSCLine(conveyorLine); |
| | | |
| | | //å åæºç«å°è¿è¡ä¸åè¾éçº¿ä»»å¡ |
| | | RequestOutSCLine(conveyorLine); |
| | | //读åRgvåºåºå£ä»»å¡ |
| | | RequestOutbound(conveyorLine); |
| | | //读ååºåºç«å°ï¼è·ååºåºå£æ´æ°åºåºä»»å¡ |
| | | RequestOutAdd(conveyorLine); |
| | | |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //Console.Out.WriteLine(nameof(CommonConveyorLineJob) + ":" + ex.ToString()); |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±å
¥åº |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | public void RequestInbound(CommonConveyorLine conveyorLine) |
| | | { |
| | | |
| | | List<PlatformStation> platformsList = _PlatformStationService.GetPlatformList(conveyorLine.DeviceCode); |
| | | foreach (var RGVStationitem in platformsList) |
| | | { |
| | | ConveyorLineCommand command = lineCommand(conveyorLine,RGVStationitem.Station_code); |
| | | if (command != null) |
| | | { |
| | | if (command.Online) |
| | | { |
| | | if (command.STB) |
| | | { |
| | | WebResponseContent content = _taskService.RequestWMSTask(command.BarCode, RGVStationitem.Station_code.ToString(), command.GoodsType); |
| | | if (content.Status) |
| | | { |
| | | DeviceProDTO? deviceProDTO6 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == RGVStationitem.Station_code.ToString() && x.DeviceProParamName == "ACK" && x.DeviceProParamType == "DeviceCommand"); |
| | | if (deviceProDTO6 != null) |
| | | { |
| | | conveyorLine.Communicator.Write(deviceProDTO6.DeviceProAddress, (bool)true); |
| | | wcsWriteLog(RGVStationitem.Station_code.ToString(), "æ£å¸¸æ¥å¿", $"{RGVStationitem.Station_code}åå
¥è¾é线信å·,模å{deviceProDTO6.DeviceProAddress}ï¼true"); |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog(RGVStationitem.Station_code.ToString(), "é误æ¥å¿", $"æªæ¾å°å¯¹äºçè¯»åæ¨¡å{RGVStationitem.Station_code}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog(RGVStationitem.Station_code.ToString(), "é误æ¥å¿", $"å
¥åºç«å°ï¼{RGVStationitem.Station_code}ï¼é误信æ¯ï¼{content.Message}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | DeviceProDTO? deviceProDTO6 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == RGVStationitem.Station_code.ToString() && x.DeviceProParamName == "ACK" && x.DeviceProParamType == "DeviceCommand"); |
| | | if (deviceProDTO6 != null) |
| | | { |
| | | |
| | | conveyorLine.Communicator.Write(deviceProDTO6.DeviceProAddress, (bool)false); |
| | | wcsWriteLog(RGVStationitem.Station_code.ToString(), "æ£å¸¸æ¥å¿", $"{RGVStationitem.Station_code}åå
¥è¾é线信å·,模å{deviceProDTO6.DeviceProAddress}ï¼false"); |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog(RGVStationitem.Station_code.ToString(), "é误æ¥å¿", $"æªæ¾å°å¯¹äºçè¯»åæ¨¡å{RGVStationitem.Station_code}"); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog(RGVStationitem.Station_code.ToString(), "é误æ¥å¿", $"该ç«å°{RGVStationitem.Station_code}ä¸å¤äºèæºç¶æ"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读åå åæºå
¥åºç«å°ä¿¡æ¯ï¼è¿è¡ä»»å¡å®æ |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | public void RequestInSCLine(CommonConveyorLine conveyorLine) |
| | | { |
| | | List<string> platformsList = _PlatformStationService.GetPlatIn(conveyorLine.DeviceCode); //读åç«å°ä¿¡æ¯ |
| | | foreach (var RGVStationitem in platformsList) |
| | | { |
| | | ConveyorLineCommand command = lineCommand(conveyorLine, RGVStationitem); |
| | | if (command != null) |
| | | { |
| | | if (command.Online && command.STB && command.TaskNo != 0) |
| | | { |
| | | //åå
¥åé¦ |
| | | DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == RGVStationitem && x.DeviceProParamName == "ACK" && x.DeviceProParamType == "DeviceCommand"); |
| | | |
| | | if (conveyorLine.Communicator.Write(deviceProDTO.DeviceProAddress, (bool)true)) |
| | | { |
| | | DeviceProDTO? deviceProDTO2 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == RGVStationitem && x.DeviceProParamName == "STB" && x.DeviceProParamType == "ReadDeviceCommand"); |
| | | if (conveyorLine.Communicator.Read<bool>(deviceProDTO2.DeviceProAddress)) |
| | | { |
| | | conveyorLine.Communicator.Write(deviceProDTO.DeviceProAddress, (bool)false); |
| | | _taskService.UpdateTaskStatusToNext2(command.TaskNo); |
| | | |
| | | wcsWriteLog5(RGVStationitem, "æ£å¸¸ä¿¡æ¯", $"æ¸
é¤ç«å°ï¼{RGVStationitem}ç交äºä¿¡å·åå
¥ï¼falseï¼å°åï¼{deviceProDTO.DeviceProAddress}"); |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog5(RGVStationitem, "é误信æ¯", $"æªè¯»åå°ç«å°ï¼{RGVStationitem}ç交äºä¿¡å·ï¼trueï¼å°åï¼{deviceProDTO.DeviceProAddress}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | conveyorLine.Communicator.Write(deviceProDTO.DeviceProAddress, (bool)false); |
| | | wcsWriteLog5(RGVStationitem, "é误信æ¯", $"{RGVStationitem}ç交äºä¿¡å·åå
¥ï¼true ==ã falseï¼å°åï¼{deviceProDTO.DeviceProAddress}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog5(RGVStationitem, "é误信æ¯", $"æªè¯»åå°ç«å°ï¼{RGVStationitem}çç³è¯·ä¿¡å·ï¼ç®åä¿¡å·ç¶æä¸ºãOnlineï¼{command.Online}ï¼STBï¼{command.STB}ï¼TaskNoï¼{command.TaskNo}ï¼"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// RGVè¾é线请æ±åºç« |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | public void RequestOutbound(CommonConveyorLine conveyorLine) |
| | | { |
| | | |
| | | List<string> platformsList = _PlatformStationService.GetPlatform2(conveyorLine.DeviceCode); |
| | | foreach (var RGVStationitem in platformsList) |
| | | { |
| | | ConveyorLineCommand command = lineCommand(conveyorLine, RGVStationitem); |
| | | if (command != null) |
| | | { |
| | | if(command.Online) |
| | | { |
| | | if (command.STB) |
| | | { |
| | | if (_taskService.UpdateTaskStatusToNext(command.TaskNo).Status) |
| | | { |
| | | DeviceProDTO? deviceProDTO6 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == RGVStationitem && x.DeviceProParamName == "ACK" && x.DeviceProParamType == "DeviceCommand"); |
| | | if (deviceProDTO6 != null) |
| | | { |
| | | conveyorLine.Communicator.Write(deviceProDTO6.DeviceProAddress, (bool)true); |
| | | wcsWriteLog2(RGVStationitem, "æ£å¸¸æ¥å¿", $"{RGVStationitem}åå
¥è¾é线信å·,模å{deviceProDTO6.DeviceProAddress}ï¼true"); |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog2(RGVStationitem, "é误æ¥å¿", $"æªæ¾å°å¯¹äºçè¯»åæ¨¡å{RGVStationitem}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog2(RGVStationitem, "é误æ¥å¿", $"ä»»å¡ä¿¡æ¯æ´æ¹å¤±è´¥"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | DeviceProDTO? deviceProDTO6 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == RGVStationitem && x.DeviceProParamName == "ACK" && x.DeviceProParamType == "DeviceCommand"); |
| | | if (deviceProDTO6 != null) |
| | | { |
| | | |
| | | conveyorLine.Communicator.Write(deviceProDTO6.DeviceProAddress, (bool)false); |
| | | wcsWriteLog2(RGVStationitem, "æ£å¸¸æ¥å¿", $"{RGVStationitem}åå
¥è¾é线信å·,模å{deviceProDTO6.DeviceProAddress}ï¼false"); |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog2(RGVStationitem, "é误æ¥å¿", $"æªæ¾å°å¯¹äºçè¯»åæ¨¡å{RGVStationitem}"); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog2(RGVStationitem, "é误æ¥å¿", $"该ç«å°{RGVStationitem}ä¸å¤äºèæºç¶æ"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·ååºåºç«å°ï¼æ´æ°åºåºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | public void RequestOutAdd(CommonConveyorLine conveyorLine) |
| | | { |
| | | List<PlatformStation> platformsList = _PlatformStationService.GetPlatformOutList(conveyorLine.DeviceCode); |
| | | foreach (var RGVStationitem in platformsList) |
| | | { |
| | | ConveyorLineCommand command = lineCommand(conveyorLine, RGVStationitem.Station_code); |
| | | if (command != null) |
| | | { |
| | | if(command.Online) |
| | | { |
| | | if (command.Free) |
| | | { |
| | | if (_taskService.OutConveyorLineTask(RGVStationitem)) //æ¥æ¾æ¯å¦è¢«å ç¨ |
| | | { |
| | | wcsWriteLog3(RGVStationitem.Station_code.ToString(), "æ´æ°æå", $"ä»»å¡ä¿¡æ¯æ´æ°æå"); |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog3(RGVStationitem.Station_code.ToString(), "é误信æ¯", $"å·²æè¯¥ç«å°çåºåºä»»å¡æä»»å¡æ´æ°å¤±è´¥"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog3(RGVStationitem.Station_code.ToString(), "é误信æ¯", $"该åºåºç«å°ä¸å¯æ¾è´§"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog3(RGVStationitem.Station_code.ToString(), "æ¯å¦èæº", $"该ç«å°{RGVStationitem.Station_code}ä¸å¤äºèæºç¶æ"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// å åæºåºåºç«å°ï¼æ ¹æ®ä»»å¡è¿è¡ä¸åè³è¾é线 |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | public void RequestOutSCLine(CommonConveyorLine conveyorLine) |
| | | { |
| | | List<Dt_Task> StationData = _taskService.StackerCraneOutTask(); |
| | | |
| | | foreach (var LinSCStationitem in StationData) |
| | | { |
| | | string platformsList = _PlatformStationService.GetOutSCName(LinSCStationitem.Roadway, LinSCStationitem.Station_storey); |
| | | DeviceProDTO? deviceProDTO6 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == platformsList && x.DeviceProParamName == "STB" && x.DeviceProParamType == "DeviceCommand"); |
| | | DeviceProDTO? deviceProDTO7 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == platformsList && x.DeviceProParamName == "TaskNo" && x.DeviceProParamType == "DeviceCommand"); |
| | | if (deviceProDTO6 != null && deviceProDTO7 != null) |
| | | { |
| | | conveyorLine.Communicator.Write(deviceProDTO7.DeviceProAddress, (int)LinSCStationitem.TaskNum); |
| | | if (conveyorLine.Communicator.Write(deviceProDTO6.DeviceProAddress, (bool)true)) |
| | | { |
| | | DeviceProDTO? deviceProDTO8 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == platformsList && x.DeviceProParamName == "ACK" && x.DeviceProParamType == "ReadDeviceCommand"); |
| | | if (deviceProDTO8 != null) |
| | | { |
| | | if (conveyorLine.Communicator.Read<bool>(deviceProDTO8.DeviceProAddress)) |
| | | { |
| | | _taskService.UpdateTaskStatusToNext(LinSCStationitem.TaskNum); |
| | | conveyorLine.Communicator.Write(deviceProDTO6.DeviceProAddress, (bool)false); |
| | | conveyorLine.Communicator.Write(deviceProDTO8.DeviceProAddress, (int)0); |
| | | //åå
¥è¾é线ååºä¿¡å·ä¸ |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog4(LinSCStationitem.TargetAddress, "ç³è¯·åºåºå åæºç«å°é误信æ¯", $"æªè¯»åå°è¾é线ååºä¿¡å·ï¼ACKï¼{LinSCStationitem}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog4(LinSCStationitem.TargetAddress, "ç³è¯·åºåºå åæºç«å°é误信æ¯", $"æªæ¾å°å¯¹äºçè¯»åæ¨¡å{LinSCStationitem}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog4(LinSCStationitem.TargetAddress, "ç³è¯·åºåºå åæºç«å°å¤±è´¥", $"åå
¥è¾é线信å·,模å{deviceProDTO6.DeviceProAddress}ï¼å¤±è´¥"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog4(LinSCStationitem.TargetAddress, "ç³è¯·åºåºå åæºç«å°é误信æ¯", $"æªæ¾å°å¯¹äºçåå
¥æ¨¡å{LinSCStationitem}"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 读åä¿¡æ¯è®°å½ |
| | | /// </summary> |
| | | /// <param name="SCLLinStack"></param> |
| | | /// <param name="Logtype"></param> |
| | | /// <param name="Magessadd"></param> |
| | | public void wcsWriteLog(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("å
¥åºå£", SCLLinStack + "ç«å°", Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | |
| | | public void wcsWriteLog2(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("RGVç«å°", SCLLinStack + "ç«å°", Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | |
| | | public void wcsWriteLog3(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("åºåºå£", SCLLinStack + "ç«å°", Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | |
| | | public void wcsWriteLog4(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("å åæºç«å°", SCLLinStack + "ç«å°", Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | |
| | | public void wcsWriteLog5(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("å åæºå
¥åºç«å°", SCLLinStack + "ç«å°", Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | public ConveyorLineCommand lineCommand(CommonConveyorLine conveyorLine,string Station_code) |
| | | { |
| | | ConveyorLineCommand conveyorLineCommand = new ConveyorLineCommand(); |
| | | List<DeviceProDTO> deviceProDTO6 = conveyorLine.DeviceProDTOs |
| | | .Where(x => x.DeviceChildCode == Station_code |
| | | && DBLine.ListDBdata.Contains(x.DeviceProParamName) |
| | | && x.DeviceProParamType == "ReadDeviceCommand") |
| | | .ToList(); |
| | | foreach (var item in deviceProDTO6) |
| | | { |
| | | var paramName = item.DeviceProParamName; |
| | | var propertyInfo = typeof(ConveyorLineCommand).GetProperty(paramName); |
| | | |
| | | if (propertyInfo != null) |
| | | { |
| | | if (item.DeviceDataType == "bool") |
| | | { |
| | | var value = conveyorLine.Communicator.Read<bool>(item.DeviceProAddress); |
| | | propertyInfo.SetValue(conveyorLineCommand, value); |
| | | }else if(item.DeviceDataType == "int") |
| | | { |
| | | var value = conveyorLine.Communicator.Read<int>(item.DeviceProAddress); |
| | | propertyInfo.SetValue(conveyorLineCommand, value); |
| | | }else if(item.DeviceDataType == "string") |
| | | { |
| | | var value = conveyorLine.Communicator.Read<string>(item.DeviceProAddress); |
| | | propertyInfo.SetValue(conveyorLineCommand, value); |
| | | } |
| | | } |
| | | } |
| | | return conveyorLineCommand; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Autofac.Core; |
| | | using Microsoft.AspNetCore.Components.Routing; |
| | | using Microsoft.AspNetCore.Hosting; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; |
| | | using Quartz; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using System.Diagnostics.Eventing.Reader; |
| | | using System.Linq; |
| | | using System.Reflection.Metadata; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.Log; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.Enums; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.DeviceBase; |
| | | using WIDESEAWCS_QuartzJob.DTO; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_QuartzJob.StackerCrane.Enum; |
| | | using WIDESEAWCS_Tasks.StackerCraneJob; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | | [DisallowConcurrentExecution] |
| | | public class CommonStackerCraneJob_BC : IJob |
| | | { |
| | | private readonly ITaskService _taskService; |
| | | private readonly ITaskExecuteDetailService _taskExecuteDetailService; |
| | | private readonly ITaskRepository _taskRepository; |
| | | private readonly IRouterService _routerService; |
| | | private readonly IPlatformStationService _PlatformStationService; |
| | | |
| | | public CommonStackerCraneJob_BC(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IPlatformStationService platformStation) |
| | | { |
| | | _taskService = taskService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | | _taskRepository = taskRepository; |
| | | _routerService = routerService; |
| | | _PlatformStationService= platformStation; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | |
| | | try |
| | | { |
| | | CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | if (commonStackerCrane != null) |
| | | { |
| | | if (!commonStackerCrane.IsEventSubscribed) |
| | | { |
| | | commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订é
ä»»å¡å®æäºä»¶ |
| | | } |
| | | |
| | | if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal) |
| | | { |
| | | commonStackerCrane.CheckStackerCraneTaskCompleted();//鲿¢ä»»å¡å®æäºä»¶çæµè¶
æ¶ï¼åæå¨è§¦å䏿¬¡ |
| | | |
| | | if (commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) |
| | | { |
| | | Dt_Task? task = GetTask(commonStackerCrane); |
| | | if (task != null) |
| | | { |
| | | StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | if (stackerCraneTaskCommand != null) |
| | | { |
| | | bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand); |
| | | if (sendFlag) |
| | | { |
| | | _taskService.UpdateTaskStatusToNext(task.TaskNum); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //Console.WriteLine(nameof(CommonStackerCraneJob) + ":" + ex.ToString()); |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å®æäºä»¶è®¢é
çæ¹æ³ |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender, WIDESEAWCS_QuartzJob.StackerCrane.StackerCraneTaskCompletedEventArgs e) |
| | | { |
| | | CommonStackerCrane? commonStackerCrane = sender as CommonStackerCrane; |
| | | if (commonStackerCrane != null) |
| | | { |
| | | if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) |
| | | { |
| | | _taskService.StackCraneTaskCompleted(e.TaskNum); |
| | | commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åä»»å¡ |
| | | /// </summary> |
| | | /// <param name="commonStackerCrane">å åæºå¯¹è±¡</param> |
| | | /// <returns></returns> |
| | | private Dt_Task? GetTask(CommonStackerCrane commonStackerCrane) |
| | | { |
| | | Dt_Task task; |
| | | task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode); |
| | | |
| | | if (task != null && task.TaskType== (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | string[] targetCodes = task.SourceAddress.Split("-"); |
| | | if (targetCodes[4] == "02") |
| | | { |
| | | |
| | | Dt_Task taskst = OutTaskMovelibrary(task); |
| | | if (taskst != null) |
| | | { |
| | | if(taskst.TaskType == (int)TaskRelocationTypeEnum.Relocation) |
| | | { |
| | | return taskst; |
| | | } |
| | | else |
| | | { |
| | | if(taskst.TargetAddress== "R02-001-021-001-02" || taskst.TargetAddress == "R02-001-022-001-02") |
| | | { |
| | | return taskst; |
| | | } |
| | | else |
| | | { |
| | | if (OutTaskStationIsOccupied(taskst) != null) |
| | | { |
| | | return taskst; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | else |
| | | { |
| | | if (OutTaskStationIsOccupied(task) != null) |
| | | { |
| | | return task; |
| | | } |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | } |
| | | return task; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºä»»å¡å¤æåºåºç«å°æ¯å¦è¢«å ç¨ |
| | | /// </summary> |
| | | /// <param name="task">ä»»å¡å®ä½</param> |
| | | /// <returns>妿æªè¢«å ç¨ï¼è¿åä¼ å
¥çä»»å¡ä¿¡æ¯ï¼å¦åï¼è¿ånull</returns> |
| | | private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task) |
| | | { |
| | | if(task.TaskType == (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | string plcAddress = _PlatformStationService.GetOutSCName(task.Roadway,task.Station_storey); |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1002"); |
| | | if (device != null) |
| | | { |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | DeviceProDTO? deviceProDTO = GetDeviceProDTO(conveyorLine, plcAddress, "Free"); |
| | | if (deviceProDTO != null) |
| | | { |
| | | bool B_Event_Test = GetLine(conveyorLine, deviceProDTO.DeviceProAddress); //夿è¾é线æ¯å¦å
许æ¾è´§ä¿¡å· |
| | | if (B_Event_Test) |
| | | { |
| | | return task; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"æªæ¾å°åºåºç«å°ã{task.SourceAddress}ã对åºçéè®¯å¯¹è±¡ï¼æ æ³å¤æåºåºç«å°æ¯å¦è¢«å ç¨"); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºä»»å¡å¤ææ¯å¦éè¦è¿è¡ç§»åºMove the library |
| | | /// </summary> |
| | | /// <param name="task">ä»»å¡å®ä½</param> |
| | | /// <returns>妿æªè¢«å ç¨ï¼è¿åä¼ å
¥çä»»å¡ä¿¡æ¯ï¼å¦åï¼è¿ånull</returns> |
| | | private Dt_Task? OutTaskMovelibrary([NotNull] Dt_Task task) |
| | | { |
| | | try |
| | | { |
| | | string[] targetCodes = task.SourceAddress.Split("-"); |
| | | if (targetCodes[1] == "001") |
| | | { |
| | | targetCodes[1] = "002"; |
| | | |
| | | } |
| | | else if (targetCodes[1] == "004") |
| | | { |
| | | targetCodes[1] = "003"; |
| | | } |
| | | targetCodes[4] = "01"; |
| | | string SourceAddress = string.Join("-", targetCodes); //ç»è£
æµ
åºä½å°å |
| | | Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress).FirstOrDefault(); //æ¾æµ
åºä½æ¯å¦æä»»å¡ |
| | | if (tasks != null) |
| | | { |
| | | return tasks; |
| | | } |
| | | else |
| | | { |
| | | //åwmsç³è¯·å¤ææµ
åºä½æ¯å¦æè´§ï¼æ¯å¦éè¦è¿è¡ç§»åº |
| | | Dt_Task? taskst = _taskService.RequestWMSTaskMovelibrary(task); |
| | | if (taskst != null) |
| | | { |
| | | return taskst; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | throw; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å®ä½è½¬æ¢æå½ä»¤Model |
| | | /// </summary> |
| | | /// <param name="task">ä»»å¡å®ä½</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | public StackerCraneTaskCommand? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task) |
| | | { |
| | | StackerCraneTaskCommand stackerCraneTaskCommand = new StackerCraneTaskCommand(); |
| | | stackerCraneTaskCommand.Barcode = ""; /*task.PalletCode;*/ |
| | | stackerCraneTaskCommand.TaskNum = task.TaskNum; |
| | | stackerCraneTaskCommand.WorkType = 1; |
| | | stackerCraneTaskCommand.TrayType = (short)task.PalletCodequantity; //å¾
æ¹å¨ |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//夿æ¯å¦æ¯å
¥åºä»»å¡ |
| | | { |
| | | string[] targetCodest = task.SourceAddress.Split("-"); |
| | | if (targetCodest.Length == 5) |
| | | { |
| | | stackerCraneTaskCommand.StartRow = Convert.ToInt16(targetCodest[1]); |
| | | stackerCraneTaskCommand.StartColumn = Convert.ToInt16(targetCodest[2]); |
| | | stackerCraneTaskCommand.StartLayer = Convert.ToInt16(targetCodest[3]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"å
¥åºèµ·ç¹é误ï¼èµ·ç¹ï¼ã{task.SourceAddress}ã"); |
| | | return null; |
| | | } |
| | | string[] targetCodes = task.TargetAddress.Split("-"); |
| | | if (targetCodes.Length == 5) |
| | | { |
| | | stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[1]); |
| | | stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[2]); |
| | | stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[3]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"å
¥åºä»»å¡ç»ç¹é误ï¼èµ·ç¹ï¼ã{task.NextAddress}ã"); |
| | | return null; |
| | | } |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | string[] sourceCodes = task.SourceAddress.Split("-"); |
| | | if (sourceCodes.Length == 5) |
| | | { |
| | | stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[1]); |
| | | stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[2]); |
| | | stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[3]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"åºåºä»»å¡èµ·ç¹é误ï¼èµ·ç¹ï¼ã{task.CurrentAddress}ã"); |
| | | return null; |
| | | } |
| | | string[] sourceCodest = task.TargetAddress.Split("-"); |
| | | if (sourceCodest.Length == 5) |
| | | { |
| | | stackerCraneTaskCommand.EndRow = Convert.ToInt16(sourceCodest[1]); |
| | | stackerCraneTaskCommand.EndColumn = Convert.ToInt16(sourceCodest[2]); |
| | | stackerCraneTaskCommand.EndLayer = Convert.ToInt16(sourceCodest[3]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"åºåºä»»å¡ç»ç¹é误ï¼èµ·ç¹ï¼ã{task.TargetAddress}ã"); |
| | | return null; |
| | | } |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) |
| | | { |
| | | string[] targetCodes = task.NextAddress.Split("-"); |
| | | if (targetCodes.Length == 5) |
| | | { |
| | | stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[1]); |
| | | stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[2]); |
| | | stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[3]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"ç§»åºä»»å¡ç»ç¹é误ï¼èµ·ç¹ï¼ã{task.NextAddress}ã"); |
| | | return null; |
| | | } |
| | | string[] sourceCodes = task.CurrentAddress.Split("-"); |
| | | if (sourceCodes.Length == 5) |
| | | { |
| | | stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[1]); |
| | | stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[2]); |
| | | stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[3]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"ç§»åºä»»å¡èµ·ç¹é误ï¼èµ·ç¹ï¼ã{task.CurrentAddress}ã"); |
| | | return null; |
| | | } |
| | | } |
| | | return stackerCraneTaskCommand; |
| | | } |
| | | |
| | | |
| | | //æ ¹å°å读åè¾éçº¿ä¿¡æ¯ |
| | | public bool GetLine(CommonConveyorLine conveyorLine, string DeviceProDataBlock) |
| | | { |
| | | return conveyorLine.Communicator.Read<bool>(DeviceProDataBlock); |
| | | } |
| | | //è·åè¾é线å®ä¾ |
| | | public DeviceProDTO? GetDeviceProDTO(CommonConveyorLine conveyorLine, string SCAddress, string Interactivet) |
| | | { |
| | | return conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == SCAddress && x.DeviceProParamName == Interactivet); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #region << ç æ¬ 注 é >> |
| | | /*---------------------------------------------------------------- |
| | | * å½å空é´ï¼WIDESEAWCS_Tasks.ConveyorLineJob |
| | | * å建è
ï¼è¡ç«¥åº |
| | | * å建æ¶é´ï¼2024/8/2 16:13:36 |
| | | * çæ¬ï¼V1.0.0 |
| | | * æè¿°ï¼ |
| | | * |
| | | * ---------------------------------------------------------------- |
| | | * ä¿®æ¹äººï¼ |
| | | * ä¿®æ¹æ¶é´ï¼ |
| | | * çæ¬ï¼V1.0.1 |
| | | * ä¿®æ¹è¯´æï¼ |
| | | * |
| | | *----------------------------------------------------------------*/ |
| | | #endregion << ç æ¬ 注 é >> |
| | | |
| | | using AutoMapper; |
| | | using Quartz; |
| | | using SqlSugar; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.Log; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_Model.Models.System; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.DTO; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | | [DisallowConcurrentExecution] |
| | | public class CommonConveyorLineJob_FL : IJob |
| | | { |
| | | private readonly ITaskService _taskService; |
| | | private readonly ITaskExecuteDetailService _taskExecuteDetailService; |
| | | private readonly IRouterService _routerService; |
| | | private readonly IPlatformStationService _PlatformStationService; |
| | | |
| | | private readonly IMapper _mapper; |
| | | |
| | | public CommonConveyorLineJob_FL(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, IPlatformStationService platformStation) |
| | | { |
| | | _taskService = taskService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | | _routerService = routerService; |
| | | _mapper = mapper; |
| | | _PlatformStationService = platformStation; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | try |
| | | { |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | |
| | | if (conveyorLine != null) |
| | | { |
| | | //读åè¾é线å
¥åºç³è¯· |
| | | RequestInbound(conveyorLine); |
| | | //读åå åæºå
¥åºç«å°ä¿¡å· |
| | | RequestInSCLine(conveyorLine); |
| | | |
| | | //å åæºç«å°è¿è¡ä¸åè¾éçº¿ä»»å¡ |
| | | RequestOutSCLine(conveyorLine); |
| | | //读åRgvåºåºå£ä»»å¡ |
| | | RequestOutbound(conveyorLine); |
| | | //读ååºåºç«å°ï¼è·ååºåºå£æ´æ°åºåºä»»å¡ |
| | | RequestOutAdd(conveyorLine); |
| | | |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //Console.Out.WriteLine(nameof(CommonConveyorLineJob) + ":" + ex.ToString()); |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±å
¥åº |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | public void RequestInbound(CommonConveyorLine conveyorLine) |
| | | { |
| | | |
| | | List<PlatformStation> platformsList = _PlatformStationService.GetPlatformList(conveyorLine.DeviceCode); |
| | | foreach (var RGVStationitem in platformsList) |
| | | { |
| | | ConveyorLineCommand command = lineCommand(conveyorLine,RGVStationitem.Station_code); |
| | | if (command != null) |
| | | { |
| | | if (command.Online) |
| | | { |
| | | if (command.STB) |
| | | { |
| | | WebResponseContent content = _taskService.RequestWMSTask(command.BarCode, RGVStationitem.Station_code.ToString(), command.GoodsType); |
| | | if (content.Status) |
| | | { |
| | | DeviceProDTO? deviceProDTO6 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == RGVStationitem.Station_code.ToString() && x.DeviceProParamName == "ACK" && x.DeviceProParamType == "DeviceCommand"); |
| | | if (deviceProDTO6 != null) |
| | | { |
| | | conveyorLine.Communicator.Write(deviceProDTO6.DeviceProAddress, (bool)true); |
| | | wcsWriteLog(RGVStationitem.Station_code.ToString(), "æ£å¸¸æ¥å¿", $"{RGVStationitem.Station_code}åå
¥è¾é线信å·,模å{deviceProDTO6.DeviceProAddress}ï¼true"); |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog(RGVStationitem.Station_code.ToString(), "é误æ¥å¿", $"æªæ¾å°å¯¹äºçè¯»åæ¨¡å{RGVStationitem.Station_code}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog(RGVStationitem.Station_code.ToString(), "é误æ¥å¿", $"å
¥åºç«å°ï¼{RGVStationitem.Station_code}ï¼é误信æ¯ï¼{content.Message}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | DeviceProDTO? deviceProDTO6 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == RGVStationitem.Station_code.ToString() && x.DeviceProParamName == "ACK" && x.DeviceProParamType == "DeviceCommand"); |
| | | if (deviceProDTO6 != null) |
| | | { |
| | | |
| | | conveyorLine.Communicator.Write(deviceProDTO6.DeviceProAddress, (bool)false); |
| | | wcsWriteLog(RGVStationitem.Station_code.ToString(), "æ£å¸¸æ¥å¿", $"{RGVStationitem.Station_code}åå
¥è¾é线信å·,模å{deviceProDTO6.DeviceProAddress}ï¼false"); |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog(RGVStationitem.Station_code.ToString(), "é误æ¥å¿", $"æªæ¾å°å¯¹äºçè¯»åæ¨¡å{RGVStationitem.Station_code}"); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog(RGVStationitem.Station_code.ToString(), "é误æ¥å¿", $"该ç«å°{RGVStationitem.Station_code}ä¸å¤äºèæºç¶æ"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读åå åæºå
¥åºç«å°ä¿¡æ¯ï¼è¿è¡ä»»å¡å®æ |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | public void RequestInSCLine(CommonConveyorLine conveyorLine) |
| | | { |
| | | List<string> platformsList = _PlatformStationService.GetPlatIn(conveyorLine.DeviceCode); //读åç«å°ä¿¡æ¯ |
| | | foreach (var RGVStationitem in platformsList) |
| | | { |
| | | ConveyorLineCommand command = lineCommand(conveyorLine, RGVStationitem); |
| | | if (command != null) |
| | | { |
| | | if (command.Online && command.STB && command.TaskNo != 0) |
| | | { |
| | | //åå
¥åé¦ |
| | | DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == RGVStationitem && x.DeviceProParamName == "ACK" && x.DeviceProParamType == "DeviceCommand"); |
| | | |
| | | if (conveyorLine.Communicator.Write(deviceProDTO.DeviceProAddress, (bool)true)) |
| | | { |
| | | DeviceProDTO? deviceProDTO2 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == RGVStationitem && x.DeviceProParamName == "STB" && x.DeviceProParamType == "ReadDeviceCommand"); |
| | | if (conveyorLine.Communicator.Read<bool>(deviceProDTO2.DeviceProAddress)) |
| | | { |
| | | conveyorLine.Communicator.Write(deviceProDTO.DeviceProAddress, (bool)false); |
| | | _taskService.UpdateTaskStatusToNext2(command.TaskNo); |
| | | |
| | | wcsWriteLog5(RGVStationitem, "æ£å¸¸ä¿¡æ¯", $"æ¸
é¤ç«å°ï¼{RGVStationitem}ç交äºä¿¡å·åå
¥ï¼falseï¼å°åï¼{deviceProDTO.DeviceProAddress}"); |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog5(RGVStationitem, "é误信æ¯", $"æªè¯»åå°ç«å°ï¼{RGVStationitem}ç交äºä¿¡å·ï¼trueï¼å°åï¼{deviceProDTO.DeviceProAddress}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | conveyorLine.Communicator.Write(deviceProDTO.DeviceProAddress, (bool)false); |
| | | wcsWriteLog5(RGVStationitem, "é误信æ¯", $"{RGVStationitem}ç交äºä¿¡å·åå
¥ï¼true ==ã falseï¼å°åï¼{deviceProDTO.DeviceProAddress}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog5(RGVStationitem, "é误信æ¯", $"æªè¯»åå°ç«å°ï¼{RGVStationitem}çç³è¯·ä¿¡å·ï¼ç®åä¿¡å·ç¶æä¸ºãOnlineï¼{command.Online}ï¼STBï¼{command.STB}ï¼TaskNoï¼{command.TaskNo}ï¼"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// RGVè¾é线请æ±åºç« |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | public void RequestOutbound(CommonConveyorLine conveyorLine) |
| | | { |
| | | |
| | | List<string> platformsList = _PlatformStationService.GetPlatform2(conveyorLine.DeviceCode); |
| | | foreach (var RGVStationitem in platformsList) |
| | | { |
| | | ConveyorLineCommand command = lineCommand(conveyorLine, RGVStationitem); |
| | | if (command != null) |
| | | { |
| | | if(command.Online) |
| | | { |
| | | if (command.STB) |
| | | { |
| | | if (_taskService.UpdateTaskStatusToNext(command.TaskNo).Status) |
| | | { |
| | | DeviceProDTO? deviceProDTO6 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == RGVStationitem && x.DeviceProParamName == "ACK" && x.DeviceProParamType == "DeviceCommand"); |
| | | if (deviceProDTO6 != null) |
| | | { |
| | | conveyorLine.Communicator.Write(deviceProDTO6.DeviceProAddress, (bool)true); |
| | | wcsWriteLog2(RGVStationitem, "æ£å¸¸æ¥å¿", $"{RGVStationitem}åå
¥è¾é线信å·,模å{deviceProDTO6.DeviceProAddress}ï¼true"); |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog2(RGVStationitem, "é误æ¥å¿", $"æªæ¾å°å¯¹äºçè¯»åæ¨¡å{RGVStationitem}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog2(RGVStationitem, "é误æ¥å¿", $"ä»»å¡ä¿¡æ¯æ´æ¹å¤±è´¥"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | DeviceProDTO? deviceProDTO6 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == RGVStationitem && x.DeviceProParamName == "ACK" && x.DeviceProParamType == "DeviceCommand"); |
| | | if (deviceProDTO6 != null) |
| | | { |
| | | |
| | | conveyorLine.Communicator.Write(deviceProDTO6.DeviceProAddress, (bool)false); |
| | | wcsWriteLog2(RGVStationitem, "æ£å¸¸æ¥å¿", $"{RGVStationitem}åå
¥è¾é线信å·,模å{deviceProDTO6.DeviceProAddress}ï¼false"); |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog2(RGVStationitem, "é误æ¥å¿", $"æªæ¾å°å¯¹äºçè¯»åæ¨¡å{RGVStationitem}"); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog2(RGVStationitem, "é误æ¥å¿", $"该ç«å°{RGVStationitem}ä¸å¤äºèæºç¶æ"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·ååºåºç«å°ï¼æ´æ°åºåºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | public void RequestOutAdd(CommonConveyorLine conveyorLine) |
| | | { |
| | | List<PlatformStation> platformsList = _PlatformStationService.GetPlatformOutList(conveyorLine.DeviceCode); |
| | | foreach (var RGVStationitem in platformsList) |
| | | { |
| | | ConveyorLineCommand command = lineCommand(conveyorLine, RGVStationitem.Station_code); |
| | | if (command != null) |
| | | { |
| | | if(command.Online) |
| | | { |
| | | if (command.Free) |
| | | { |
| | | if (_taskService.OutConveyorLineTask(RGVStationitem)) //æ¥æ¾æ¯å¦è¢«å ç¨ |
| | | { |
| | | wcsWriteLog3(RGVStationitem.Station_code.ToString(), "æ´æ°æå", $"ä»»å¡ä¿¡æ¯æ´æ°æå"); |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog3(RGVStationitem.Station_code.ToString(), "é误信æ¯", $"å·²æè¯¥ç«å°çåºåºä»»å¡æä»»å¡æ´æ°å¤±è´¥"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog3(RGVStationitem.Station_code.ToString(), "é误信æ¯", $"该åºåºç«å°ä¸å¯æ¾è´§"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog3(RGVStationitem.Station_code.ToString(), "æ¯å¦èæº", $"该ç«å°{RGVStationitem.Station_code}ä¸å¤äºèæºç¶æ"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// å åæºåºåºç«å°ï¼æ ¹æ®ä»»å¡è¿è¡ä¸åè³è¾é线 |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | public void RequestOutSCLine(CommonConveyorLine conveyorLine) |
| | | { |
| | | List<Dt_Task> StationData = _taskService.StackerCraneOutTask(); |
| | | |
| | | foreach (var LinSCStationitem in StationData) |
| | | { |
| | | string platformsList = _PlatformStationService.GetOutSCName(LinSCStationitem.Roadway, LinSCStationitem.Station_storey); |
| | | DeviceProDTO? deviceProDTO6 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == platformsList && x.DeviceProParamName == "STB" && x.DeviceProParamType == "DeviceCommand"); |
| | | DeviceProDTO? deviceProDTO7 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == platformsList && x.DeviceProParamName == "TaskNo" && x.DeviceProParamType == "DeviceCommand"); |
| | | if (deviceProDTO6 != null && deviceProDTO7 != null) |
| | | { |
| | | conveyorLine.Communicator.Write(deviceProDTO7.DeviceProAddress, (int)LinSCStationitem.TaskNum); |
| | | if (conveyorLine.Communicator.Write(deviceProDTO6.DeviceProAddress, (bool)true)) |
| | | { |
| | | DeviceProDTO? deviceProDTO8 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == platformsList && x.DeviceProParamName == "ACK" && x.DeviceProParamType == "ReadDeviceCommand"); |
| | | if (deviceProDTO8 != null) |
| | | { |
| | | if (conveyorLine.Communicator.Read<bool>(deviceProDTO8.DeviceProAddress)) |
| | | { |
| | | _taskService.UpdateTaskStatusToNext(LinSCStationitem.TaskNum); |
| | | conveyorLine.Communicator.Write(deviceProDTO6.DeviceProAddress, (bool)false); |
| | | conveyorLine.Communicator.Write(deviceProDTO8.DeviceProAddress, (int)0); |
| | | //åå
¥è¾é线ååºä¿¡å·ä¸ |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog4(LinSCStationitem.TargetAddress, "ç³è¯·åºåºå åæºç«å°é误信æ¯", $"æªè¯»åå°è¾é线ååºä¿¡å·ï¼ACKï¼{LinSCStationitem}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog4(LinSCStationitem.TargetAddress, "ç³è¯·åºåºå åæºç«å°é误信æ¯", $"æªæ¾å°å¯¹äºçè¯»åæ¨¡å{LinSCStationitem}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog4(LinSCStationitem.TargetAddress, "ç³è¯·åºåºå åæºç«å°å¤±è´¥", $"åå
¥è¾é线信å·,模å{deviceProDTO6.DeviceProAddress}ï¼å¤±è´¥"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wcsWriteLog4(LinSCStationitem.TargetAddress, "ç³è¯·åºåºå åæºç«å°é误信æ¯", $"æªæ¾å°å¯¹äºçåå
¥æ¨¡å{LinSCStationitem}"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 读åä¿¡æ¯è®°å½ |
| | | /// </summary> |
| | | /// <param name="SCLLinStack"></param> |
| | | /// <param name="Logtype"></param> |
| | | /// <param name="Magessadd"></param> |
| | | public void wcsWriteLog(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("å
¥åºå£", SCLLinStack + "ç«å°", Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | |
| | | public void wcsWriteLog2(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("RGVç«å°", SCLLinStack + "ç«å°", Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | |
| | | public void wcsWriteLog3(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("åºåºå£", SCLLinStack + "ç«å°", Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | |
| | | public void wcsWriteLog4(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("å åæºç«å°", SCLLinStack + "ç«å°", Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | |
| | | public void wcsWriteLog5(string SCLLinStack, string Logtype, string Magessadd) |
| | | { |
| | | WriteLog.Write_Log("å åæºå
¥åºç«å°", SCLLinStack + "ç«å°", Logtype, new { ä¿¡æ¯ = Magessadd }); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | public ConveyorLineCommand lineCommand(CommonConveyorLine conveyorLine,string Station_code) |
| | | { |
| | | ConveyorLineCommand conveyorLineCommand = new ConveyorLineCommand(); |
| | | List<DeviceProDTO> deviceProDTO6 = conveyorLine.DeviceProDTOs |
| | | .Where(x => x.DeviceChildCode == Station_code |
| | | && DBLine.ListDBdata.Contains(x.DeviceProParamName) |
| | | && x.DeviceProParamType == "ReadDeviceCommand") |
| | | .ToList(); |
| | | foreach (var item in deviceProDTO6) |
| | | { |
| | | var paramName = item.DeviceProParamName; |
| | | var propertyInfo = typeof(ConveyorLineCommand).GetProperty(paramName); |
| | | |
| | | if (propertyInfo != null) |
| | | { |
| | | if (item.DeviceDataType == "bool") |
| | | { |
| | | var value = conveyorLine.Communicator.Read<bool>(item.DeviceProAddress); |
| | | propertyInfo.SetValue(conveyorLineCommand, value); |
| | | }else if(item.DeviceDataType == "int") |
| | | { |
| | | var value = conveyorLine.Communicator.Read<int>(item.DeviceProAddress); |
| | | propertyInfo.SetValue(conveyorLineCommand, value); |
| | | }else if(item.DeviceDataType == "string") |
| | | { |
| | | var value = conveyorLine.Communicator.Read<string>(item.DeviceProAddress); |
| | | propertyInfo.SetValue(conveyorLineCommand, value); |
| | | } |
| | | } |
| | | } |
| | | return conveyorLineCommand; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Autofac.Core; |
| | | using Microsoft.AspNetCore.Components.Routing; |
| | | using Microsoft.AspNetCore.Hosting; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; |
| | | using Quartz; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using System.Diagnostics.Eventing.Reader; |
| | | using System.Linq; |
| | | using System.Reflection.Metadata; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.Log; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.Enums; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.DeviceBase; |
| | | using WIDESEAWCS_QuartzJob.DTO; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_QuartzJob.StackerCrane.Enum; |
| | | using WIDESEAWCS_Tasks.StackerCraneJob; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | | [DisallowConcurrentExecution] |
| | | public class CommonStackerCraneJob_FL : IJob |
| | | { |
| | | private readonly ITaskService _taskService; |
| | | private readonly ITaskExecuteDetailService _taskExecuteDetailService; |
| | | private readonly ITaskRepository _taskRepository; |
| | | private readonly IRouterService _routerService; |
| | | private readonly IPlatformStationService _PlatformStationService; |
| | | |
| | | public CommonStackerCraneJob_FL(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IPlatformStationService platformStation) |
| | | { |
| | | _taskService = taskService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | | _taskRepository = taskRepository; |
| | | _routerService = routerService; |
| | | _PlatformStationService= platformStation; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | |
| | | try |
| | | { |
| | | CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | if (commonStackerCrane != null) |
| | | { |
| | | if (!commonStackerCrane.IsEventSubscribed) |
| | | { |
| | | commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订é
ä»»å¡å®æäºä»¶ |
| | | } |
| | | |
| | | if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal) |
| | | { |
| | | commonStackerCrane.CheckStackerCraneTaskCompleted();//鲿¢ä»»å¡å®æäºä»¶çæµè¶
æ¶ï¼åæå¨è§¦å䏿¬¡ |
| | | |
| | | if (commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) |
| | | { |
| | | Dt_Task? task = GetTask(commonStackerCrane); |
| | | if (task != null) |
| | | { |
| | | StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | if (stackerCraneTaskCommand != null) |
| | | { |
| | | bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand); |
| | | if (sendFlag) |
| | | { |
| | | _taskService.UpdateTaskStatusToNext(task.TaskNum); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //Console.WriteLine(nameof(CommonStackerCraneJob) + ":" + ex.ToString()); |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å®æäºä»¶è®¢é
çæ¹æ³ |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender, WIDESEAWCS_QuartzJob.StackerCrane.StackerCraneTaskCompletedEventArgs e) |
| | | { |
| | | CommonStackerCrane? commonStackerCrane = sender as CommonStackerCrane; |
| | | if (commonStackerCrane != null) |
| | | { |
| | | if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) |
| | | { |
| | | _taskService.StackCraneTaskCompleted(e.TaskNum); |
| | | commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åä»»å¡ |
| | | /// </summary> |
| | | /// <param name="commonStackerCrane">å åæºå¯¹è±¡</param> |
| | | /// <returns></returns> |
| | | private Dt_Task? GetTask(CommonStackerCrane commonStackerCrane) |
| | | { |
| | | Dt_Task task; |
| | | task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode); |
| | | |
| | | if (task != null && task.TaskType== (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | string[] targetCodes = task.SourceAddress.Split("-"); |
| | | if (targetCodes[4] == "02") |
| | | { |
| | | |
| | | Dt_Task taskst = OutTaskMovelibrary(task); |
| | | if (taskst != null) |
| | | { |
| | | if(taskst.TaskType == (int)TaskRelocationTypeEnum.Relocation) |
| | | { |
| | | return taskst; |
| | | } |
| | | else |
| | | { |
| | | if(taskst.TargetAddress== "R02-001-021-001-02" || taskst.TargetAddress == "R02-001-022-001-02") |
| | | { |
| | | return taskst; |
| | | } |
| | | else |
| | | { |
| | | if (OutTaskStationIsOccupied(taskst) != null) |
| | | { |
| | | return taskst; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | else |
| | | { |
| | | if (OutTaskStationIsOccupied(task) != null) |
| | | { |
| | | return task; |
| | | } |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | } |
| | | return task; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºä»»å¡å¤æåºåºç«å°æ¯å¦è¢«å ç¨ |
| | | /// </summary> |
| | | /// <param name="task">ä»»å¡å®ä½</param> |
| | | /// <returns>妿æªè¢«å ç¨ï¼è¿åä¼ å
¥çä»»å¡ä¿¡æ¯ï¼å¦åï¼è¿ånull</returns> |
| | | private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task) |
| | | { |
| | | if(task.TaskType == (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | string plcAddress = _PlatformStationService.GetOutSCName(task.Roadway,task.Station_storey); |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1002"); |
| | | if (device != null) |
| | | { |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | DeviceProDTO? deviceProDTO = GetDeviceProDTO(conveyorLine, plcAddress, "Free"); |
| | | if (deviceProDTO != null) |
| | | { |
| | | bool B_Event_Test = GetLine(conveyorLine, deviceProDTO.DeviceProAddress); //夿è¾é线æ¯å¦å
许æ¾è´§ä¿¡å· |
| | | if (B_Event_Test) |
| | | { |
| | | return task; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"æªæ¾å°åºåºç«å°ã{task.SourceAddress}ã对åºçéè®¯å¯¹è±¡ï¼æ æ³å¤æåºåºç«å°æ¯å¦è¢«å ç¨"); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºä»»å¡å¤ææ¯å¦éè¦è¿è¡ç§»åºMove the library |
| | | /// </summary> |
| | | /// <param name="task">ä»»å¡å®ä½</param> |
| | | /// <returns>妿æªè¢«å ç¨ï¼è¿åä¼ å
¥çä»»å¡ä¿¡æ¯ï¼å¦åï¼è¿ånull</returns> |
| | | private Dt_Task? OutTaskMovelibrary([NotNull] Dt_Task task) |
| | | { |
| | | try |
| | | { |
| | | string[] targetCodes = task.SourceAddress.Split("-"); |
| | | if (targetCodes[1] == "001") |
| | | { |
| | | targetCodes[1] = "002"; |
| | | |
| | | } |
| | | else if (targetCodes[1] == "004") |
| | | { |
| | | targetCodes[1] = "003"; |
| | | } |
| | | targetCodes[4] = "01"; |
| | | string SourceAddress = string.Join("-", targetCodes); //ç»è£
æµ
åºä½å°å |
| | | Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress).FirstOrDefault(); //æ¾æµ
åºä½æ¯å¦æä»»å¡ |
| | | if (tasks != null) |
| | | { |
| | | return tasks; |
| | | } |
| | | else |
| | | { |
| | | //åwmsç³è¯·å¤ææµ
åºä½æ¯å¦æè´§ï¼æ¯å¦éè¦è¿è¡ç§»åº |
| | | Dt_Task? taskst = _taskService.RequestWMSTaskMovelibrary(task); |
| | | if (taskst != null) |
| | | { |
| | | return taskst; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | throw; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å®ä½è½¬æ¢æå½ä»¤Model |
| | | /// </summary> |
| | | /// <param name="task">ä»»å¡å®ä½</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | public StackerCraneTaskCommand? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task) |
| | | { |
| | | StackerCraneTaskCommand stackerCraneTaskCommand = new StackerCraneTaskCommand(); |
| | | stackerCraneTaskCommand.Barcode = ""; /*task.PalletCode;*/ |
| | | stackerCraneTaskCommand.TaskNum = task.TaskNum; |
| | | stackerCraneTaskCommand.WorkType = 1; |
| | | stackerCraneTaskCommand.TrayType = (short)task.PalletCodequantity; //å¾
æ¹å¨ |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//夿æ¯å¦æ¯å
¥åºä»»å¡ |
| | | { |
| | | string[] targetCodest = task.SourceAddress.Split("-"); |
| | | if (targetCodest.Length == 5) |
| | | { |
| | | stackerCraneTaskCommand.StartRow = Convert.ToInt16(targetCodest[1]); |
| | | stackerCraneTaskCommand.StartColumn = Convert.ToInt16(targetCodest[2]); |
| | | stackerCraneTaskCommand.StartLayer = Convert.ToInt16(targetCodest[3]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"å
¥åºèµ·ç¹é误ï¼èµ·ç¹ï¼ã{task.SourceAddress}ã"); |
| | | return null; |
| | | } |
| | | string[] targetCodes = task.TargetAddress.Split("-"); |
| | | if (targetCodes.Length == 5) |
| | | { |
| | | stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[1]); |
| | | stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[2]); |
| | | stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[3]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"å
¥åºä»»å¡ç»ç¹é误ï¼èµ·ç¹ï¼ã{task.NextAddress}ã"); |
| | | return null; |
| | | } |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | string[] sourceCodes = task.SourceAddress.Split("-"); |
| | | if (sourceCodes.Length == 5) |
| | | { |
| | | stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[1]); |
| | | stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[2]); |
| | | stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[3]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"åºåºä»»å¡èµ·ç¹é误ï¼èµ·ç¹ï¼ã{task.CurrentAddress}ã"); |
| | | return null; |
| | | } |
| | | string[] sourceCodest = task.TargetAddress.Split("-"); |
| | | if (sourceCodest.Length == 5) |
| | | { |
| | | stackerCraneTaskCommand.EndRow = Convert.ToInt16(sourceCodest[1]); |
| | | stackerCraneTaskCommand.EndColumn = Convert.ToInt16(sourceCodest[2]); |
| | | stackerCraneTaskCommand.EndLayer = Convert.ToInt16(sourceCodest[3]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"åºåºä»»å¡ç»ç¹é误ï¼èµ·ç¹ï¼ã{task.TargetAddress}ã"); |
| | | return null; |
| | | } |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) |
| | | { |
| | | string[] targetCodes = task.NextAddress.Split("-"); |
| | | if (targetCodes.Length == 5) |
| | | { |
| | | stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[1]); |
| | | stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[2]); |
| | | stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[3]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"ç§»åºä»»å¡ç»ç¹é误ï¼èµ·ç¹ï¼ã{task.NextAddress}ã"); |
| | | return null; |
| | | } |
| | | string[] sourceCodes = task.CurrentAddress.Split("-"); |
| | | if (sourceCodes.Length == 5) |
| | | { |
| | | stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[1]); |
| | | stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[2]); |
| | | stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[3]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"ç§»åºä»»å¡èµ·ç¹é误ï¼èµ·ç¹ï¼ã{task.CurrentAddress}ã"); |
| | | return null; |
| | | } |
| | | } |
| | | return stackerCraneTaskCommand; |
| | | } |
| | | |
| | | |
| | | //æ ¹å°å读åè¾éçº¿ä¿¡æ¯ |
| | | public bool GetLine(CommonConveyorLine conveyorLine, string DeviceProDataBlock) |
| | | { |
| | | return conveyorLine.Communicator.Read<bool>(DeviceProDataBlock); |
| | | } |
| | | //è·åè¾é线å®ä¾ |
| | | public DeviceProDTO? GetDeviceProDTO(CommonConveyorLine conveyorLine, string SCAddress, string Interactivet) |
| | | { |
| | | return conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == SCAddress && x.DeviceProParamName == Interactivet); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | //æ¤jsæä»¶æ¯ç¨æ¥èªå®ä¹æ©å±ä¸å¡ä»£ç ï¼å¯ä»¥æ©å±ä¸äºèªå®ä¹é¡µé¢æè
éæ°é
ç½®çæç代ç |
| | | |
| | | let extension = { |
| | | components: { |
| | | //æ¥è¯¢ç颿©å±ç»ä»¶ |
| | | gridHeader: '', |
| | | gridBody: '', |
| | | gridFooter: '', |
| | | //æ°å»ºãç¼è¾å¼¹åºæ¡æ©å±ç»ä»¶ |
| | | modelHeader: '', |
| | | modelBody: '', |
| | | modelFooter: '' |
| | | }, |
| | | tableAction: '', //æå®æå¼ 表çæé(è¿éå¡«å表å,é»è®¤ä¸ç¨å¡«å) |
| | | buttons: { view: [], box: [], detail: [] }, //æ©å±çæé® |
| | | methods: { |
| | | //ä¸é¢è¿äºæ¹æ³å¯ä»¥ä¿çä¹å¯ä»¥å é¤ |
| | | onInit() { |
| | | let enableBtn = this.buttons.find(x => x.value == 'Enable'); |
| | | if (enableBtn) { |
| | | enableBtn.onClick = function () { |
| | | this.$message.success('èªå®ä¹æé®ç¹å»äºä»¶'); |
| | | } |
| | | } |
| | | let disableBtn = this.buttons.find(x => x.value == 'Disable'); |
| | | if (disableBtn) { |
| | | disableBtn.onClick = function () { |
| | | this.$message.success('èªå®ä¹æé®ç¹å»äºä»¶'); |
| | | } |
| | | } |
| | | }, |
| | | onInited() { |
| | | //æ¡æ¶åå§åé
ç½®å |
| | | //妿è¦é
ç½®æç»è¡¨,卿¤æ¹æ³æä½ |
| | | //this.detailOptions.columns.forEach(column=>{ }); |
| | | }, |
| | | searchBefore(param) { |
| | | //ç颿¥è¯¢å,å¯ä»¥ç»param.wheresæ·»å æ¥è¯¢åæ° |
| | | //è¿åfalseï¼åä¸ä¼æ§è¡æ¥è¯¢ |
| | | return true; |
| | | }, |
| | | searchAfter(result) { |
| | | //æ¥è¯¢åï¼resultè¿åçæ¥è¯¢æ°æ®,å¯ä»¥å¨æ¾ç¤ºå°è¡¨æ ¼åå¤çè¡¨æ ¼çå¼ |
| | | return true; |
| | | }, |
| | | addBefore(formData) { |
| | | //æ°å»ºä¿ååformData为对象ï¼å
æ¬æç»è¡¨ï¼å¯ä»¥ç»ç»è¡¨å设置å¼ï¼èªå·±è¾åºçformDataçå¼ |
| | | return true; |
| | | }, |
| | | updateBefore(formData) { |
| | | //ç¼è¾ä¿ååformData为对象ï¼å
æ¬æç»è¡¨ãå é¤è¡çId |
| | | return true; |
| | | }, |
| | | rowClick({ row, column, event }) { |
| | | //æ¥è¯¢çé¢ç¹å»è¡äºä»¶ |
| | | this.$refs.table.$refs.table.toggleRowSelection(row); //åå»è¡æ¶éä¸å½åè¡; |
| | | }, |
| | | modelOpenAfter(row) { |
| | | //ç¹å»ç¼è¾ãæ°å»ºæé®å¼¹åºæ¡åï¼å¯ä»¥å¨æ¤å¤åé»è¾ï¼å¦ï¼ä»åå°è·åæ°æ® |
| | | //(1)夿æ¯ç¼è¾è¿æ¯æ°å»ºæä½ï¼ this.currentAction=='Add'; |
| | | //(2)ç»å¼¹åºæ¡è®¾ç½®é»è®¤å¼ |
| | | //(3)this.editFormFields.åæ®µ='xxx'; |
| | | //妿éè¦ç»ä¸ææ¡è®¾ç½®é»è®¤å¼ï¼è¯·éåthis.editFormOptionsæ¾å°å段é
置对åºdata屿§çkeyå¼ |
| | | //ç䏿就æè¾åºçï¼console.log(this.editFormOptions) |
| | | } |
| | | } |
| | | }; |
| | | export default extension; |
| | | |
| | |
| | | path: '/locationStatusChangeRecord', |
| | | name: 'locationStatusChangeRecord', |
| | | component: () => import('@/views/record/locationStatusChangeRecord.vue') |
| | | }, { |
| | | path: '/palletTypeInfo', |
| | | name: 'palletTypeInfo', |
| | | component: () => import('@/views/basic/palletTypeInfo.vue') |
| | | }] |
| | | |
| | | export default viewgird |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | <template> |
| | | <view-grid |
| | | ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend" |
| | | > |
| | | </view-grid> |
| | | </template> |
| | | <script> |
| | | import extend from "@/extension/basic/palletTypeInfo.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: "id", |
| | | footer: "Foots", |
| | | cnName: "æçç±»å", |
| | | name: "palletTypeInfo", |
| | | url: "/palletTypeInfo/", |
| | | sortName: "id", |
| | | }); |
| | | const editFormFields = ref({ |
| | | palletType: "", |
| | | typeName: "", |
| | | length: "", |
| | | width: "", |
| | | height: "", |
| | | locaitonCount: "", |
| | | }); |
| | | const editFormOptions = ref([ |
| | | [ |
| | | { |
| | | title: "æçç±»å", |
| | | required: true, |
| | | field: "palletType", |
| | | type: "int", |
| | | }, |
| | | { |
| | | title: "æçç±»ååç§°", |
| | | required: true, |
| | | field: "typeName", |
| | | type: "string", |
| | | }, |
| | | { |
| | | title: "é¿åº¦", |
| | | required: true, |
| | | field: "length", |
| | | type: "int", |
| | | }, |
| | | { |
| | | title: "宽度", |
| | | required: true, |
| | | field: "width", |
| | | type: "int", |
| | | }, |
| | | |
| | | ], |
| | | [ |
| | | { |
| | | title: "é«åº¦", |
| | | required: true, |
| | | field: "height", |
| | | type: "int", |
| | | }, |
| | | { |
| | | title: "è´§ä½å ç¨æ°", |
| | | required: true, |
| | | field: "locaitonCount", |
| | | type: "int", |
| | | }, |
| | | ], |
| | | ]); |
| | | const searchFormFields = ref({ |
| | | palletType: "", |
| | | typeName: "", |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "æçç±»å", field: "palletType", type: "like" }, |
| | | { title: "æçç±»ååç§°", field: "typeName", type: "like" }, |
| | | ], |
| | | ]); |
| | | const columns = ref([ |
| | | { |
| | | field: "id", |
| | | title: "Id", |
| | | type: "int", |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "palletType", |
| | | title: "æçç±»å", |
| | | type: "int", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "codeStartStr", |
| | | title: "æçå·èµ·å§å符串", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "typeName", |
| | | title: "æçç±»ååç§°", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "length", |
| | | title: "é¿åº¦", |
| | | type: "int", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "width", |
| | | title: "宽度", |
| | | type: "int", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "height", |
| | | title: "é«åº¦", |
| | | type: "int", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "enbale", |
| | | title: "ç¶æ", |
| | | type: "int", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "warehouseId", |
| | | title: "ä»åºç¼å·", |
| | | type: "int", |
| | | width: 180, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "sortNum", |
| | | title: "æå±å±", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "locaitonCount", |
| | | title: "å ç¨è´§ä½æ°", |
| | | type: "int", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "isOdd", |
| | | title: "大æçæ¯å¦æ¾å¥æ°å", |
| | | type: "bit", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "creater", |
| | | title: "å建人", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "createDate", |
| | | title: "å建æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifier", |
| | | title: "ä¿®æ¹äºº", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifyDate", |
| | | title: "ä¿®æ¹æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | ]); |
| | | const detail = ref({ |
| | | cnName: "#detailCnName", |
| | | table: "", |
| | | columns: [], |
| | | sortName: "", |
| | | }); |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | | |
| | |
| | | align: "left", |
| | | bind: { key: "inOrderType", data: [] }, |
| | | }, |
| | | { |
| | | field: "inoutType", |
| | | title: "åæ®å¤§ç±»", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | bind: { key: "inoutType", data: [] }, |
| | | }, |
| | | { |
| | | field: "orderStatus", |
| | | title: "åæ®ç¶æ", |
| | |
| | | "WorkspaceRootPath": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|e:\\khgithub\\jianliku\\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:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_model\\models\\inbound\\dt_receiveorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\inbound\\dt_receiveorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_model\\models\\stock\\dt_stockinfodetail.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_stockinfodetail.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{9144117D-3D55-4250-9CF5-C6A8D8A07062}|WIDESEA_BasicRepository\\WIDESEA_BasicRepository.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_basicrepository\\pallettypeinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{9144117D-3D55-4250-9CF5-C6A8D8A07062}|WIDESEA_BasicRepository\\WIDESEA_BasicRepository.csproj|solutionrelative:widesea_basicrepository\\pallettypeinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{CE0DB91F-5A68-448E-A419-4C26B5039F51}|WIDESEA_ITaskInfoService\\WIDESEA_ITaskInfoService.csproj|e:\\khgithub\\jianliku\\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:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_recordservice\\service\\stockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|solutionrelative:widesea_recordservice\\service\\stockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_basicservice\\service\\assignlocation\\locationinfoservice_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\service\\assignlocation\\locationinfoservice_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_model\\models\\record\\dt_stockquantitychangerecord.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\record\\dt_stockquantitychangerecord.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_basicservice\\service\\locationinfoservice_common.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\service\\locationinfoservice_common.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{6E0E5856-A399-4791-9EAD-84ABC43F35AA}|WIDESEA_IRecordService\\WIDESEA_IRecordService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_irecordservice\\istockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{6E0E5856-A399-4791-9EAD-84ABC43F35AA}|WIDESEA_IRecordService\\WIDESEA_IRecordService.csproj|solutionrelative:widesea_irecordservice\\istockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\basic\\pallettypeinfocontroller.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\\pallettypeinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_recordservice\\base\\stockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|solutionrelative:widesea_recordservice\\base\\stockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|e:\\khgithub\\jianliku\\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:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_stockservice\\service\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\service\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\khgithub\\jianliku\\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|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_core\\enums\\stockenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\enums\\stockenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\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:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\outbound\\outboundordercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\outbound\\outboundordercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_model\\models\\basic\\dt_materielinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\basic\\dt_materielinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{1B884AD3-7E67-44CD-B182-DEECDD671DD2}|WIDESEA_OutboundService\\WIDESEA_OutboundService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_outboundservice\\service\\outboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{1B884AD3-7E67-44CD-B182-DEECDD671DD2}|WIDESEA_OutboundService\\WIDESEA_OutboundService.csproj|solutionrelative:widesea_outboundservice\\service\\outboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{9619D9B0-7E5B-42F0-BA2C-B840B3E1C258}|WIDESEA_InboundService\\WIDESEA_InboundService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_inboundservice\\base\\inboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{9619D9B0-7E5B-42F0-BA2C-B840B3E1C258}|WIDESEA_InboundService\\WIDESEA_InboundService.csproj|solutionrelative:widesea_inboundservice\\base\\inboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_model\\models\\inbound\\dt_inboundorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\inbound\\dt_inboundorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\stock\\stockviewcontroller.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\\stockviewcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\record\\locationstatuschangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\record\\locationstatuschangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\record\\stockquantitychangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\record\\stockquantitychangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_recordservice\\base\\locationstatuschangerecordsetvice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|solutionrelative:widesea_recordservice\\base\\locationstatuschangerecordsetvice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_recordservice\\service\\locationstatuschangerecordsetvice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|solutionrelative:widesea_recordservice\\service\\locationstatuschangerecordsetvice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\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:{9619D9B0-7E5B-42F0-BA2C-B840B3E1C258}|WIDESEA_InboundService\\WIDESEA_InboundService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_inboundservice\\service\\inboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{9619D9B0-7E5B-42F0-BA2C-B840B3E1C258}|WIDESEA_InboundService\\WIDESEA_InboundService.csproj|solutionrelative:widesea_inboundservice\\service\\inboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_taskinfoservice\\partialtaskservice_inbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | |
| | | "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\partialtaskservice_outbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_model\\models\\basic\\dt_locationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\basic\\dt_locationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|e:\\khgithub\\jianliku\\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:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_basicservice\\base\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\base\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_core\\enums\\warehouseenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\enums\\warehouseenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_basicservice\\service\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\service\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_dto\\task\\wmstaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\task\\wmstaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_taskinfoservice\\task_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\task_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_common\\agvtaskfeedbackmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\agvtaskfeedbackmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{5F260E03-095A-4870-8419-5B72CB62929E}|WIDESEA_IBasicService\\WIDESEA_IBasicService.csproj|e:\\khgithub\\jianliku\\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:{1B884AD3-7E67-44CD-B182-DEECDD671DD2}|WIDESEA_OutboundService\\WIDESEA_OutboundService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_outboundservice\\service\\outboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{1B884AD3-7E67-44CD-B182-DEECDD671DD2}|WIDESEA_OutboundService\\WIDESEA_OutboundService.csproj|solutionrelative:widesea_outboundservice\\service\\outboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\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:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_wmsserver\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_dto\\task\\wmstaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\task\\wmstaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_core\\enums\\pallettypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\enums\\pallettypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{B9E62A73-1270-4FFC-B23C-F75C075D8460}|WIDESEA_StockRepository\\WIDESEA_StockRepository.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_stockrepository\\stockinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{B9E62A73-1270-4FFC-B23C-F75C075D8460}|WIDESEA_StockRepository\\WIDESEA_StockRepository.csproj|solutionrelative:widesea_stockrepository\\stockinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 27, |
| | | "SelectedChildIndex": 6, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 20, |
| | | "Title": "Dt_StockInfo.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAABwAAAAoAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:58:12.881Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "Title": "StockInfoService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\Service\\StockInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_StockService\\Service\\StockInfoService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\Service\\StockInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_StockService\\Service\\StockInfoService.cs", |
| | | "ViewState": "AgIAACkAAAAAAAAAAAAkwEIAAABQAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:54:04.24Z", |
| | | "EditorCaption": "" |
| | | "$type": "Bookmark", |
| | | "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "Dt_StockInfoDetail.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfoDetail.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfoDetail.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfoDetail.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfoDetail.cs", |
| | | "ViewState": "AgIAAC0AAAAAAAAAAAA4wDgAAABHAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:50:21.475Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "Title": "Dt_StockQuantityChangeRecord.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Record\\Dt_StockQuantityChangeRecord.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Record\\Dt_StockQuantityChangeRecord.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Record\\Dt_StockQuantityChangeRecord.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Record\\Dt_StockQuantityChangeRecord.cs", |
| | | "ViewState": "AgIAABoAAAAAAAAAAIAywCwAAAAlAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:49:43.872Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "Title": "StockEnum.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\StockEnum.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\Enums\\StockEnum.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\StockEnum.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\Enums\\StockEnum.cs", |
| | | "ViewState": "AgIAAAMAAAAAAAAAAAAAAA8AAAAWAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:48:01.473Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "Title": "IStockQuantityChangeRecordService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_IRecordService\\IStockQuantityChangeRecordService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_IRecordService\\IStockQuantityChangeRecordService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_IRecordService\\IStockQuantityChangeRecordService.cs", |
| | | "RelativeToolTip": "WIDESEA_IRecordService\\IStockQuantityChangeRecordService.cs", |
| | | "ViewState": "AgIAAAIAAAAAAAAAAAAgwBAAAAAhAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:47:00.001Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "Title": "StockQuantityChangeRecordService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Service\\StockQuantityChangeRecordService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_RecordService\\Service\\StockQuantityChangeRecordService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Service\\StockQuantityChangeRecordService.cs*", |
| | | "RelativeToolTip": "WIDESEA_RecordService\\Service\\StockQuantityChangeRecordService.cs*", |
| | | "ViewState": "AgIAAA0AAAAAAAAAAAAtwB8AAABQAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:35:11.404Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 19, |
| | | "Title": "LocationStatusChangeRecordSetvice.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Service\\LocationStatusChangeRecordSetvice.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_RecordService\\Service\\LocationStatusChangeRecordSetvice.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Service\\LocationStatusChangeRecordSetvice.cs", |
| | | "RelativeToolTip": "WIDESEA_RecordService\\Service\\LocationStatusChangeRecordSetvice.cs", |
| | | "ViewState": "AgIAABMAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:35:10.603Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "Title": "StockQuantityChangeRecordService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Base\\StockQuantityChangeRecordService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_RecordService\\Base\\StockQuantityChangeRecordService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Base\\StockQuantityChangeRecordService.cs", |
| | | "RelativeToolTip": "WIDESEA_RecordService\\Base\\StockQuantityChangeRecordService.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAuwA8AAACNAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:35:09.807Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 18, |
| | | "Title": "LocationStatusChangeRecordSetvice.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Base\\LocationStatusChangeRecordSetvice.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_RecordService\\Base\\LocationStatusChangeRecordSetvice.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Base\\LocationStatusChangeRecordSetvice.cs", |
| | | "RelativeToolTip": "WIDESEA_RecordService\\Base\\LocationStatusChangeRecordSetvice.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:35:08.92Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 17, |
| | | "Title": "StockQuantityChangeRecordController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Record\\StockQuantityChangeRecordController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Record\\StockQuantityChangeRecordController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Record\\StockQuantityChangeRecordController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Record\\StockQuantityChangeRecordController.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:34:57.504Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 16, |
| | | "Title": "LocationStatusChangeRecordController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Record\\LocationStatusChangeRecordController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Record\\LocationStatusChangeRecordController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Record\\LocationStatusChangeRecordController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Record\\LocationStatusChangeRecordController.cs", |
| | | "Title": "PalletTypeInfoRepository.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicRepository\\PalletTypeInfoRepository.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_BasicRepository\\PalletTypeInfoRepository.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicRepository\\PalletTypeInfoRepository.cs", |
| | | "RelativeToolTip": "WIDESEA_BasicRepository\\PalletTypeInfoRepository.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:34:56.091Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 15, |
| | | "Title": "StockViewController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Stock\\StockViewController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Stock\\StockViewController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Stock\\StockViewController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Stock\\StockViewController.cs", |
| | | "ViewState": "AgIAAAIAAAAAAAAAAAAYwB4AAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:24:17.428Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 14, |
| | | "Title": "Dt_InboundOrder.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Inbound\\Dt_InboundOrder.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Inbound\\Dt_InboundOrder.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Inbound\\Dt_InboundOrder.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Inbound\\Dt_InboundOrder.cs", |
| | | "ViewState": "AgIAABkAAAAAAAAAAAAIwCwAAAAwAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:20:30.323Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 13, |
| | | "Title": "InboundOrderService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_InboundService\\Base\\InboundOrderService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_InboundService\\Base\\InboundOrderService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_InboundService\\Base\\InboundOrderService.cs", |
| | | "RelativeToolTip": "WIDESEA_InboundService\\Base\\InboundOrderService.cs", |
| | | "ViewState": "AgIAAHAAAAAAAAAAAAAhwIkAAAAuAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:02:03.893Z", |
| | | "WhenOpened": "2025-07-11T06:26:56.003Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "Title": "OutboundOrderDetailService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "RelativeToolTip": "WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "ViewState": "AgIAABUAAAAAAAAAAAAqwCYAAAApAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:02:03.922Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 11, |
| | | "Title": "Dt_MaterielInfo.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Basic\\Dt_MaterielInfo.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Basic\\Dt_MaterielInfo.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Basic\\Dt_MaterielInfo.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Basic\\Dt_MaterielInfo.cs", |
| | | "ViewState": "AgIAAAsAAAAAAAAAAAAxwBoAAAAhAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:13:33.013Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 10, |
| | | "Title": "OutboundOrderController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Outbound\\OutboundOrderController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Outbound\\OutboundOrderController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Outbound\\OutboundOrderController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Outbound\\OutboundOrderController.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T02:49:47.227Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 9, |
| | | "Title": "LocationInfoController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs", |
| | | "ViewState": "AgIAADMAAAAAAAAAAAAcwD4AAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T09:22:54.013Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 28, |
| | | "Title": "WMSTaskDTO.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "RelativeToolTip": "WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvw8AAAAWAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T09:09:50.115Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 26, |
| | | "Title": "ILocationInfoService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "ViewState": "AgIAABgAAAAAAAAAAAA1wCkAAABCAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T09:07:56.247Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 23, |
| | | "Title": "Dt_LocationInfo.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Basic\\Dt_LocationInfo.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Basic\\Dt_LocationInfo.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Basic\\Dt_LocationInfo.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Basic\\Dt_LocationInfo.cs", |
| | | "ViewState": "AgIAAAMAAAAAAAAAAAAAAA8AAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T09:03:41.443Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 25, |
| | | "Title": "Dt_Task.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAABgAAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T09:03:30.993Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 24, |
| | | "Title": "LocationInfoService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Base\\LocationInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_BasicService\\Base\\LocationInfoService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Base\\LocationInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_BasicService\\Base\\LocationInfoService.cs", |
| | | "ViewState": "AgIAAAIBAAAAAAAAAAAswBwBAAALAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T09:02:07.969Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 27, |
| | | "Title": "TaskController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "ViewState": "AgIAACYAAAAAAAAAAAAQwDAAAAAWAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T08:54:59.398Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "ITaskService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "RelativeToolTip": "WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAADMAAAAoAAAAAAAAAA==", |
| | | "Title": "TaskEnumHelper.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskEnumHelper.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Common\\TaskEnum\\TaskEnumHelper.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskEnumHelper.cs", |
| | | "RelativeToolTip": "WIDESEA_Common\\TaskEnum\\TaskEnumHelper.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T08:54:50.355Z", |
| | | "WhenOpened": "2025-07-11T06:10:37.063Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 22, |
| | | "DocumentIndex": 6, |
| | | "Title": "TaskStatusEnum.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs", |
| | | "RelativeToolTip": "WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs", |
| | | "ViewState": "AgIAAHkAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-07-11T06:09:10.437Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "Title": "PalletTypeInfoController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\PalletTypeInfoController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Basic\\PalletTypeInfoController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\PalletTypeInfoController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Basic\\PalletTypeInfoController.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-07-11T06:08:37.288Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "Title": "ServiceBase.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseServices\\ServiceBase.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\BaseServices\\ServiceBase.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseServices\\ServiceBase.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\BaseServices\\ServiceBase.cs", |
| | | "ViewState": "AgIAACUAAAAAAAAAAAA0wD4AAAAeAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-07-11T06:04:27.867Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "Dt_ReceiveOrder.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Inbound\\Dt_ReceiveOrder.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Inbound\\Dt_ReceiveOrder.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Inbound\\Dt_ReceiveOrder.cs*", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Inbound\\Dt_ReceiveOrder.cs*", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-07-11T06:00:59.633Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 16, |
| | | "Title": "AGVTaskFeedBackModel.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\AGVTaskFeedBackModel.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Common\\AGVTaskFeedBackModel.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\AGVTaskFeedBackModel.cs", |
| | | "RelativeToolTip": "WIDESEA_Common\\AGVTaskFeedBackModel.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-07-04T06:00:20.735Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "Title": "WarehouseEnum.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\WarehouseEnum.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\Enums\\WarehouseEnum.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\WarehouseEnum.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\Enums\\WarehouseEnum.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAPAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-07-02T02:08:19.369Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 10, |
| | | "Title": "PartialTaskService_Outbound.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\PartialTaskService_Outbound.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\PartialTaskService_Outbound.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\PartialTaskService_Outbound.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\PartialTaskService_Outbound.cs", |
| | | "ViewState": "AgIAAMcAAAAAAAAAAAAnwMEAAAAuAAAAAAAAAA==", |
| | | "ViewState": "AgIAACsAAAAAAAAAAAAAwDUAAAAVAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T06:47:52.816Z", |
| | | "WhenOpened": "2025-07-02T02:05:02.485Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "TaskService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "ViewState": "AgIAAK8BAAAAAAAAAAAAALQBAAAPAAAAAAAAAA==", |
| | | "DocumentIndex": 18, |
| | | "Title": "OutboundOrderDetailService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "RelativeToolTip": "WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "ViewState": "AgIAAJUAAAAAAAAAAAAIwLAAAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T06:36:58.119Z", |
| | | "EditorCaption": "" |
| | | "WhenOpened": "2025-07-02T02:05:02.503Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 19, |
| | | "Title": "CustomProfile.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Filter\\CustomProfile.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Filter\\CustomProfile.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Filter\\CustomProfile.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Filter\\CustomProfile.cs", |
| | | "ViewState": "AgIAAAMAAAAAAAAAAAAAABoAAAAtAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-07-01T09:15:35.905Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 20, |
| | | "Title": "PalletTypeEnum.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\PalletTypeEnum.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\Enums\\PalletTypeEnum.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\PalletTypeEnum.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\Enums\\PalletTypeEnum.cs", |
| | | "ViewState": "AgIAAAgAAAAAAAAAAAAqwCMAAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-06T01:41:58.515Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "Title": "InboundOrderService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_InboundService\\Service\\InboundOrderService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_InboundService\\Service\\InboundOrderService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_InboundService\\Service\\InboundOrderService.cs", |
| | | "RelativeToolTip": "WIDESEA_InboundService\\Service\\InboundOrderService.cs", |
| | | "ViewState": "AgIAAKUAAAAAAAAAAAArwNoAAAAdAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-06T01:30:40.534Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 21, |
| | | "Title": "StockInfoRepository.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockRepository\\StockInfoRepository.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_StockRepository\\StockInfoRepository.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockRepository\\StockInfoRepository.cs", |
| | | "RelativeToolTip": "WIDESEA_StockRepository\\StockInfoRepository.cs", |
| | | "ViewState": "AgIAACQAAAAAAAAAAAAlwDkAAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-06T01:23:57.608Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 17, |
| | | "Title": "Dt_Task.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "ViewState": "AgIAAAMAAAAAAAAAAAAAAA4AAAARAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-06T01:21:15.122Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 15, |
| | | "Title": "Task_HtyService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\Task_HtyService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\Task_HtyService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\Task_HtyService.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\Task_HtyService.cs", |
| | | "ViewState": "AgIAAB8AAAAAAAAAAAASwE0AAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-06T01:21:26.615Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 14, |
| | | "Title": "WMSTaskDTO.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "RelativeToolTip": "WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "ViewState": "AgIAAFoAAAAAAAAAAAAAABAAAAATAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-06T01:18:00.069Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "Title": "LocationInfoService_Common.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Service\\LocationInfoService_Common.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_BasicService\\Service\\LocationInfoService_Common.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Service\\LocationInfoService_Common.cs", |
| | | "RelativeToolTip": "WIDESEA_BasicService\\Service\\LocationInfoService_Common.cs", |
| | | "ViewState": "AgIAAB4AAAAAAAAAAAAswDsAAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-05T08:00:59.718Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "Title": "LocationInfoService_BC.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Service\\AssignLocation\\LocationInfoService_BC.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_BasicService\\Service\\AssignLocation\\LocationInfoService_BC.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Service\\AssignLocation\\LocationInfoService_BC.cs", |
| | | "RelativeToolTip": "WIDESEA_BasicService\\Service\\AssignLocation\\LocationInfoService_BC.cs", |
| | | "ViewState": "AgIAACwAAAAAAAAAAAAiwCYAAAAmAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-05T08:00:59.776Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 13, |
| | | "Title": "LocationInfoService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Service\\LocationInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_BasicService\\Service\\LocationInfoService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Service\\LocationInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_BasicService\\Service\\LocationInfoService.cs", |
| | | "ViewState": "AgIAACEAAAAAAAAAAAAswO8AAAAKAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-05T07:59:30.553Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 9, |
| | | "Title": "PartialTaskService_Inbound.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\PartialTaskService_Inbound.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\PartialTaskService_Inbound.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\PartialTaskService_Inbound.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\PartialTaskService_Inbound.cs", |
| | | "ViewState": "AgIAAD4AAAAAAAAAAAAqwE8AAAAoAAAAAAAAAA==", |
| | | "ViewState": "AgIAAKsAAAAAAAAAAAAUwJ0AAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T06:36:51.492Z", |
| | | "WhenOpened": "2025-06-05T07:54:51.319Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 11, |
| | | "Title": "TaskService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "ViewState": "AgIAAFcAAAAAAAAAAAAkwFcAAAA4AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-05-29T02:46:54.347Z" |
| | | } |
| | | ] |
| | | } |
| | |
| | | "WorkspaceRootPath": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|e:\\khgithub\\jianliku\\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:{9144117D-3D55-4250-9CF5-C6A8D8A07062}|WIDESEA_BasicRepository\\WIDESEA_BasicRepository.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_basicrepository\\pallettypeinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{9144117D-3D55-4250-9CF5-C6A8D8A07062}|WIDESEA_BasicRepository\\WIDESEA_BasicRepository.csproj|solutionrelative:widesea_basicrepository\\pallettypeinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_model\\models\\stock\\dt_stockinfodetail.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_stockinfodetail.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\taskenum\\taskenumhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{CE0DB91F-5A68-448E-A419-4C26B5039F51}|WIDESEA_ITaskInfoService\\WIDESEA_ITaskInfoService.csproj|e:\\khgithub\\jianliku\\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:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_basicservice\\service\\assignlocation\\locationinfoservice_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\service\\assignlocation\\locationinfoservice_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_recordservice\\service\\stockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|solutionrelative:widesea_recordservice\\service\\stockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_basicservice\\service\\locationinfoservice_common.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\service\\locationinfoservice_common.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_model\\models\\record\\dt_stockquantitychangerecord.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\record\\dt_stockquantitychangerecord.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\basic\\pallettypeinfocontroller.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\\pallettypeinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{6E0E5856-A399-4791-9EAD-84ABC43F35AA}|WIDESEA_IRecordService\\WIDESEA_IRecordService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_irecordservice\\istockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{6E0E5856-A399-4791-9EAD-84ABC43F35AA}|WIDESEA_IRecordService\\WIDESEA_IRecordService.csproj|solutionrelative:widesea_irecordservice\\istockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|e:\\khgithub\\jianliku\\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:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_recordservice\\base\\stockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|solutionrelative:widesea_recordservice\\base\\stockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\khgithub\\jianliku\\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:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_stockservice\\service\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7DC26D42-D8EE-46F0-BA66-A13457086885}|WIDESEA_StockService\\WIDESEA_StockService.csproj|solutionrelative:widesea_stockservice\\service\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_core\\enums\\stockenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\enums\\stockenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\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:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\outbound\\outboundordercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\outbound\\outboundordercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_model\\models\\basic\\dt_materielinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\basic\\dt_materielinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{1B884AD3-7E67-44CD-B182-DEECDD671DD2}|WIDESEA_OutboundService\\WIDESEA_OutboundService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_outboundservice\\service\\outboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{1B884AD3-7E67-44CD-B182-DEECDD671DD2}|WIDESEA_OutboundService\\WIDESEA_OutboundService.csproj|solutionrelative:widesea_outboundservice\\service\\outboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{9619D9B0-7E5B-42F0-BA2C-B840B3E1C258}|WIDESEA_InboundService\\WIDESEA_InboundService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_inboundservice\\base\\inboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{9619D9B0-7E5B-42F0-BA2C-B840B3E1C258}|WIDESEA_InboundService\\WIDESEA_InboundService.csproj|solutionrelative:widesea_inboundservice\\base\\inboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_model\\models\\inbound\\dt_inboundorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\inbound\\dt_inboundorder.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\stock\\stockviewcontroller.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\\stockviewcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\record\\locationstatuschangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\record\\locationstatuschangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\record\\stockquantitychangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\record\\stockquantitychangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_recordservice\\base\\locationstatuschangerecordsetvice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|solutionrelative:widesea_recordservice\\base\\locationstatuschangerecordsetvice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_recordservice\\service\\locationstatuschangerecordsetvice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{A343A2C5-995D-45F1-A3E5-20495DD3F615}|WIDESEA_RecordService\\WIDESEA_RecordService.csproj|solutionrelative:widesea_recordservice\\service\\locationstatuschangerecordsetvice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\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:{9619D9B0-7E5B-42F0-BA2C-B840B3E1C258}|WIDESEA_InboundService\\WIDESEA_InboundService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_inboundservice\\service\\inboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{9619D9B0-7E5B-42F0-BA2C-B840B3E1C258}|WIDESEA_InboundService\\WIDESEA_InboundService.csproj|solutionrelative:widesea_inboundservice\\service\\inboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_taskinfoservice\\partialtaskservice_inbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | |
| | | "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\partialtaskservice_outbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_model\\models\\basic\\dt_locationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\basic\\dt_locationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|e:\\khgithub\\jianliku\\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:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_basicservice\\base\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\base\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_core\\enums\\warehouseenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\enums\\warehouseenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_basicservice\\service\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D11C804C-2FF4-4C18-A3EE-2F0574427BB3}|WIDESEA_BasicService\\WIDESEA_BasicService.csproj|solutionrelative:widesea_basicservice\\service\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_dto\\task\\wmstaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\task\\wmstaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_taskinfoservice\\task_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7D7534D4-51D9-46DC-A6B7-6430042F4E12}|WIDESEA_TaskInfoService\\WIDESEA_TaskInfoService.csproj|solutionrelative:widesea_taskinfoservice\\task_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_common\\agvtaskfeedbackmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{AF8F3D65-1D75-4B8F-AFD9-4150E591C44D}|WIDESEA_Common\\WIDESEA_Common.csproj|solutionrelative:widesea_common\\agvtaskfeedbackmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{00CE9885-9F24-4B6C-A7E8-0DE8C9ED7128}|WIDESEA_Model\\WIDESEA_Model.csproj|solutionrelative:widesea_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{5F260E03-095A-4870-8419-5B72CB62929E}|WIDESEA_IBasicService\\WIDESEA_IBasicService.csproj|e:\\khgithub\\jianliku\\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:{1B884AD3-7E67-44CD-B182-DEECDD671DD2}|WIDESEA_OutboundService\\WIDESEA_OutboundService.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_outboundservice\\service\\outboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{1B884AD3-7E67-44CD-B182-DEECDD671DD2}|WIDESEA_OutboundService\\WIDESEA_OutboundService.csproj|solutionrelative:widesea_outboundservice\\service\\outboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\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:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_wmsserver\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_dto\\task\\wmstaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\task\\wmstaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_core\\enums\\pallettypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{111BD7AA-9749-4506-9772-79F9EF14754C}|WIDESEA_Core\\WIDESEA_Core.csproj|solutionrelative:widesea_core\\enums\\pallettypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{B9E62A73-1270-4FFC-B23C-F75C075D8460}|WIDESEA_StockRepository\\WIDESEA_StockRepository.csproj|e:\\khgithub\\jianliku\\wms\\widesea_wmsserver\\widesea_stockrepository\\stockinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{B9E62A73-1270-4FFC-B23C-F75C075D8460}|WIDESEA_StockRepository\\WIDESEA_StockRepository.csproj|solutionrelative:widesea_stockrepository\\stockinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 27, |
| | | "SelectedChildIndex": 1, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 20, |
| | | "Title": "Dt_StockInfo.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfo.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAABwAAAAoAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:58:12.881Z" |
| | | "$type": "Bookmark", |
| | | "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "Title": "StockInfoService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\Service\\StockInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_StockService\\Service\\StockInfoService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockService\\Service\\StockInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_StockService\\Service\\StockInfoService.cs", |
| | | "ViewState": "AgIAACkAAAAAAAAAAAAkwEIAAABQAAAAAAAAAA==", |
| | | "DocumentIndex": 0, |
| | | "Title": "PalletTypeInfoRepository.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicRepository\\PalletTypeInfoRepository.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_BasicRepository\\PalletTypeInfoRepository.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicRepository\\PalletTypeInfoRepository.cs", |
| | | "RelativeToolTip": "WIDESEA_BasicRepository\\PalletTypeInfoRepository.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:54:04.24Z", |
| | | "WhenOpened": "2025-07-11T06:26:56.003Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "Dt_StockInfoDetail.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfoDetail.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfoDetail.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Stock\\Dt_StockInfoDetail.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Stock\\Dt_StockInfoDetail.cs", |
| | | "ViewState": "AgIAAC0AAAAAAAAAAAA4wDgAAABHAAAAAAAAAA==", |
| | | "Title": "TaskEnumHelper.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskEnumHelper.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Common\\TaskEnum\\TaskEnumHelper.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskEnumHelper.cs", |
| | | "RelativeToolTip": "WIDESEA_Common\\TaskEnum\\TaskEnumHelper.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:50:21.475Z", |
| | | "WhenOpened": "2025-07-11T06:10:37.063Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "Title": "TaskStatusEnum.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs", |
| | | "RelativeToolTip": "WIDESEA_Common\\TaskEnum\\TaskStatusEnum.cs", |
| | | "ViewState": "AgIAAHkAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-07-11T06:09:10.437Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "Title": "Dt_StockQuantityChangeRecord.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Record\\Dt_StockQuantityChangeRecord.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Record\\Dt_StockQuantityChangeRecord.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Record\\Dt_StockQuantityChangeRecord.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Record\\Dt_StockQuantityChangeRecord.cs", |
| | | "ViewState": "AgIAABoAAAAAAAAAAIAywCwAAAAlAAAAAAAAAA==", |
| | | "Title": "PalletTypeInfoController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\PalletTypeInfoController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Basic\\PalletTypeInfoController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\PalletTypeInfoController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Basic\\PalletTypeInfoController.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:49:43.872Z", |
| | | "WhenOpened": "2025-07-11T06:08:37.288Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "Title": "StockEnum.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\StockEnum.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\Enums\\StockEnum.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\StockEnum.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\Enums\\StockEnum.cs", |
| | | "ViewState": "AgIAAAMAAAAAAAAAAAAAAA8AAAAWAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:48:01.473Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "Title": "IStockQuantityChangeRecordService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_IRecordService\\IStockQuantityChangeRecordService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_IRecordService\\IStockQuantityChangeRecordService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_IRecordService\\IStockQuantityChangeRecordService.cs", |
| | | "RelativeToolTip": "WIDESEA_IRecordService\\IStockQuantityChangeRecordService.cs", |
| | | "ViewState": "AgIAAAIAAAAAAAAAAAAgwBAAAAAhAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:47:00.001Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "Title": "StockQuantityChangeRecordService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Service\\StockQuantityChangeRecordService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_RecordService\\Service\\StockQuantityChangeRecordService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Service\\StockQuantityChangeRecordService.cs", |
| | | "RelativeToolTip": "WIDESEA_RecordService\\Service\\StockQuantityChangeRecordService.cs", |
| | | "ViewState": "AgIAAA0AAAAAAAAAAAAtwB8AAABQAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:35:11.404Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 19, |
| | | "Title": "LocationStatusChangeRecordSetvice.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Service\\LocationStatusChangeRecordSetvice.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_RecordService\\Service\\LocationStatusChangeRecordSetvice.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Service\\LocationStatusChangeRecordSetvice.cs", |
| | | "RelativeToolTip": "WIDESEA_RecordService\\Service\\LocationStatusChangeRecordSetvice.cs", |
| | | "ViewState": "AgIAABMAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:35:10.603Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "Title": "StockQuantityChangeRecordService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Base\\StockQuantityChangeRecordService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_RecordService\\Base\\StockQuantityChangeRecordService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Base\\StockQuantityChangeRecordService.cs", |
| | | "RelativeToolTip": "WIDESEA_RecordService\\Base\\StockQuantityChangeRecordService.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAuwA8AAACNAAAAAAAAAA==", |
| | | "Title": "ServiceBase.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseServices\\ServiceBase.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\BaseServices\\ServiceBase.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\BaseServices\\ServiceBase.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\BaseServices\\ServiceBase.cs", |
| | | "ViewState": "AgIAACUAAAAAAAAAAAA0wD4AAAAeAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:35:09.807Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 18, |
| | | "Title": "LocationStatusChangeRecordSetvice.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Base\\LocationStatusChangeRecordSetvice.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_RecordService\\Base\\LocationStatusChangeRecordSetvice.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_RecordService\\Base\\LocationStatusChangeRecordSetvice.cs", |
| | | "RelativeToolTip": "WIDESEA_RecordService\\Base\\LocationStatusChangeRecordSetvice.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:35:08.92Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 17, |
| | | "Title": "StockQuantityChangeRecordController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Record\\StockQuantityChangeRecordController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Record\\StockQuantityChangeRecordController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Record\\StockQuantityChangeRecordController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Record\\StockQuantityChangeRecordController.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:34:57.504Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 16, |
| | | "Title": "LocationStatusChangeRecordController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Record\\LocationStatusChangeRecordController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Record\\LocationStatusChangeRecordController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Record\\LocationStatusChangeRecordController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Record\\LocationStatusChangeRecordController.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:34:56.091Z" |
| | | "WhenOpened": "2025-07-11T06:04:27.867Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 15, |
| | | "Title": "StockViewController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Stock\\StockViewController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Stock\\StockViewController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Stock\\StockViewController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Stock\\StockViewController.cs", |
| | | "ViewState": "AgIAAAIAAAAAAAAAAAAYwB4AAAAIAAAAAAAAAA==", |
| | | "Title": "AGVTaskFeedBackModel.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\AGVTaskFeedBackModel.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Common\\AGVTaskFeedBackModel.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Common\\AGVTaskFeedBackModel.cs", |
| | | "RelativeToolTip": "WIDESEA_Common\\AGVTaskFeedBackModel.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:24:17.428Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 14, |
| | | "Title": "Dt_InboundOrder.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Inbound\\Dt_InboundOrder.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Inbound\\Dt_InboundOrder.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Inbound\\Dt_InboundOrder.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Inbound\\Dt_InboundOrder.cs", |
| | | "ViewState": "AgIAABkAAAAAAAAAAAAIwCwAAAAwAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:20:30.323Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 13, |
| | | "Title": "InboundOrderService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_InboundService\\Base\\InboundOrderService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_InboundService\\Base\\InboundOrderService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_InboundService\\Base\\InboundOrderService.cs", |
| | | "RelativeToolTip": "WIDESEA_InboundService\\Base\\InboundOrderService.cs", |
| | | "ViewState": "AgIAAHAAAAAAAAAAAAAhwIkAAAAuAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:02:03.893Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "Title": "OutboundOrderDetailService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "RelativeToolTip": "WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "ViewState": "AgIAABUAAAAAAAAAAAAqwCYAAAApAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:02:03.922Z", |
| | | "EditorCaption": "" |
| | | "WhenOpened": "2025-07-04T06:00:20.735Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 11, |
| | | "Title": "Dt_MaterielInfo.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Basic\\Dt_MaterielInfo.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Basic\\Dt_MaterielInfo.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Basic\\Dt_MaterielInfo.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Basic\\Dt_MaterielInfo.cs", |
| | | "ViewState": "AgIAAAsAAAAAAAAAAAAxwBoAAAAhAAAAAAAAAA==", |
| | | "Title": "WarehouseEnum.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\WarehouseEnum.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\Enums\\WarehouseEnum.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\WarehouseEnum.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\Enums\\WarehouseEnum.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAPAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T06:13:33.013Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 10, |
| | | "Title": "OutboundOrderController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Outbound\\OutboundOrderController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Outbound\\OutboundOrderController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Outbound\\OutboundOrderController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Outbound\\OutboundOrderController.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-07T02:49:47.227Z" |
| | | "WhenOpened": "2025-07-02T02:08:19.369Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 9, |
| | | "Title": "LocationInfoController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Basic\\LocationInfoController.cs", |
| | | "ViewState": "AgIAADMAAAAAAAAAAAAcwD4AAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T09:22:54.013Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 28, |
| | | "Title": "WMSTaskDTO.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "RelativeToolTip": "WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAADwvw8AAAAWAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T09:09:50.115Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 26, |
| | | "Title": "ILocationInfoService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_IBasicService\\ILocationInfoService.cs", |
| | | "ViewState": "AgIAABgAAAAAAAAAAAA1wCkAAABCAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T09:07:56.247Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 23, |
| | | "Title": "Dt_LocationInfo.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Basic\\Dt_LocationInfo.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\Basic\\Dt_LocationInfo.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\Basic\\Dt_LocationInfo.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\Basic\\Dt_LocationInfo.cs", |
| | | "ViewState": "AgIAAAMAAAAAAAAAAAAAAA8AAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T09:03:41.443Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 25, |
| | | "Title": "Dt_Task.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAABgAAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T09:03:30.993Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 24, |
| | | "Title": "LocationInfoService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Base\\LocationInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_BasicService\\Base\\LocationInfoService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Base\\LocationInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_BasicService\\Base\\LocationInfoService.cs", |
| | | "ViewState": "AgIAAAIBAAAAAAAAAAAswBwBAAALAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T09:02:07.969Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 27, |
| | | "Title": "TaskController.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\TaskInfo\\TaskController.cs", |
| | | "ViewState": "AgIAACYAAAAAAAAAAAAQwDAAAAAWAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T08:54:59.398Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "ITaskService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "RelativeToolTip": "WIDESEA_ITaskInfoService\\ITaskService.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAADMAAAAoAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T08:54:50.355Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 22, |
| | | "Title": "PartialTaskService_Outbound.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\PartialTaskService_Outbound.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\PartialTaskService_Outbound.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\PartialTaskService_Outbound.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\PartialTaskService_Outbound.cs", |
| | | "ViewState": "AgIAAMcAAAAAAAAAAAAnwMEAAAAuAAAAAAAAAA==", |
| | | "ViewState": "AgIAACsAAAAAAAAAAAAAwDUAAAAVAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T06:47:52.816Z", |
| | | "WhenOpened": "2025-07-02T02:05:02.485Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "TaskService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "ViewState": "AgIAAK8BAAAAAAAAAAAAALQBAAAPAAAAAAAAAA==", |
| | | "DocumentIndex": 17, |
| | | "Title": "OutboundOrderDetailService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "RelativeToolTip": "WIDESEA_OutboundService\\Service\\OutboundOrderDetailService.cs", |
| | | "ViewState": "AgIAAJUAAAAAAAAAAAAIwLAAAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T06:36:58.119Z", |
| | | "WhenOpened": "2025-07-02T02:05:02.503Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 21, |
| | | "DocumentIndex": 18, |
| | | "Title": "CustomProfile.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Filter\\CustomProfile.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Filter\\CustomProfile.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Filter\\CustomProfile.cs", |
| | | "RelativeToolTip": "WIDESEA_WMSServer\\Filter\\CustomProfile.cs", |
| | | "ViewState": "AgIAAAMAAAAAAAAAAAAAABoAAAAtAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-07-01T09:15:35.905Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 19, |
| | | "Title": "PalletTypeEnum.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\PalletTypeEnum.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Core\\Enums\\PalletTypeEnum.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Core\\Enums\\PalletTypeEnum.cs", |
| | | "RelativeToolTip": "WIDESEA_Core\\Enums\\PalletTypeEnum.cs", |
| | | "ViewState": "AgIAAAgAAAAAAAAAAAAqwCMAAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-06T01:41:58.515Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "Title": "InboundOrderService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_InboundService\\Service\\InboundOrderService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_InboundService\\Service\\InboundOrderService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_InboundService\\Service\\InboundOrderService.cs", |
| | | "RelativeToolTip": "WIDESEA_InboundService\\Service\\InboundOrderService.cs", |
| | | "ViewState": "AgIAAKUAAAAAAAAAAAArwNoAAAAdAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-06T01:30:40.534Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 20, |
| | | "Title": "StockInfoRepository.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockRepository\\StockInfoRepository.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_StockRepository\\StockInfoRepository.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_StockRepository\\StockInfoRepository.cs", |
| | | "RelativeToolTip": "WIDESEA_StockRepository\\StockInfoRepository.cs", |
| | | "ViewState": "AgIAACQAAAAAAAAAAAAlwDkAAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-06T01:23:57.608Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 16, |
| | | "Title": "Dt_Task.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "RelativeToolTip": "WIDESEA_Model\\Models\\TaskInfo\\Dt_Task.cs", |
| | | "ViewState": "AgIAAAMAAAAAAAAAAAAAAA4AAAARAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-06T01:21:15.122Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 14, |
| | | "Title": "Task_HtyService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\Task_HtyService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\Task_HtyService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\Task_HtyService.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\Task_HtyService.cs", |
| | | "ViewState": "AgIAAB8AAAAAAAAAAAASwE0AAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-06T01:21:26.615Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 13, |
| | | "Title": "WMSTaskDTO.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "RelativeToolTip": "WIDESEA_DTO\\Task\\WMSTaskDTO.cs", |
| | | "ViewState": "AgIAAFoAAAAAAAAAAAAAABAAAAATAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-06T01:18:00.069Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "Title": "LocationInfoService_Common.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Service\\LocationInfoService_Common.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_BasicService\\Service\\LocationInfoService_Common.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Service\\LocationInfoService_Common.cs", |
| | | "RelativeToolTip": "WIDESEA_BasicService\\Service\\LocationInfoService_Common.cs", |
| | | "ViewState": "AgIAAB4AAAAAAAAAAAAswDsAAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-05T08:00:59.718Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "LocationInfoService_BC.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Service\\AssignLocation\\LocationInfoService_BC.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_BasicService\\Service\\AssignLocation\\LocationInfoService_BC.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Service\\AssignLocation\\LocationInfoService_BC.cs", |
| | | "RelativeToolTip": "WIDESEA_BasicService\\Service\\AssignLocation\\LocationInfoService_BC.cs", |
| | | "ViewState": "AgIAACwAAAAAAAAAAAAiwCYAAAAmAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-05T08:00:59.776Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "Title": "LocationInfoService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Service\\LocationInfoService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_BasicService\\Service\\LocationInfoService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_BasicService\\Service\\LocationInfoService.cs", |
| | | "RelativeToolTip": "WIDESEA_BasicService\\Service\\LocationInfoService.cs", |
| | | "ViewState": "AgIAACEAAAAAAAAAAAAswO8AAAAKAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-06-05T07:59:30.553Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "Title": "PartialTaskService_Inbound.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\PartialTaskService_Inbound.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\PartialTaskService_Inbound.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\PartialTaskService_Inbound.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\PartialTaskService_Inbound.cs", |
| | | "ViewState": "AgIAAD4AAAAAAAAAAAAqwE8AAAAoAAAAAAAAAA==", |
| | | "ViewState": "AgIAAKsAAAAAAAAAAAAUwJ0AAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-03-05T06:36:51.492Z", |
| | | "WhenOpened": "2025-06-05T07:54:51.319Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 10, |
| | | "Title": "TaskService.cs", |
| | | "DocumentMoniker": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "ToolTip": "E:\\KHGITHUB\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "RelativeToolTip": "WIDESEA_TaskInfoService\\TaskService.cs", |
| | | "ViewState": "AgIAAFcAAAAAAAAAAAAkwFcAAAA4AAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2025-05-29T02:46:54.347Z", |
| | | "EditorCaption": "" |
| | | } |
| | | ] |
| | |
| | | |
| | | public ICachePointRepository CachePointRepository { get; } |
| | | |
| | | public BasicRepository(IAreaInfoRepository areaInfoRepository, ILocationInfoRepository locationInfoRepository, IMaterielInfoRepository materielInfoRepository, IRoadwayInfoRepository roadwayInfoRepository, IWarehouseRepository warehouseRepository, IAreaRouterRepository areaRouterRepository, ICachePointRepository cachePointRepository) |
| | | public IPalletTypeInfoRepository PalletTypeInfoRepository { get; } |
| | | |
| | | public BasicRepository(IAreaInfoRepository areaInfoRepository, ILocationInfoRepository locationInfoRepository, IPalletTypeInfoRepository palletTypeInfoRepository, IMaterielInfoRepository materielInfoRepository, IRoadwayInfoRepository roadwayInfoRepository, IWarehouseRepository warehouseRepository, IAreaRouterRepository areaRouterRepository, ICachePointRepository cachePointRepository) |
| | | { |
| | | AreaInfoRepository = areaInfoRepository; |
| | | LocationInfoRepository = locationInfoRepository; |
| | |
| | | WarehouseRepository = warehouseRepository; |
| | | AreaRouterRepository = areaRouterRepository; |
| | | CachePointRepository = cachePointRepository; |
| | | PalletTypeInfoRepository = palletTypeInfoRepository; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_BasicRepository |
| | | { |
| | | public class PalletTypeInfoRepository : RepositoryBase<Dt_PalletTypeInfo>, IPalletTypeInfoRepository |
| | | { |
| | | public PalletTypeInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage) |
| | | { |
| | | } |
| | | } |
| | | } |
| | |
| | | EnableStatus = EnableStatusEnum.Normal.ObjToInt(), |
| | | Layer = k + 1, |
| | | LocationStatus = LocationStatusEnum.Free.ObjToInt(), |
| | | LocationType = LocationTypeEnum.Cube.ObjToInt(), |
| | | //LocationType = LocationTypeEnum.Cube.ObjToInt(), |
| | | RoadwayNo = initializationLocationDTO.Roadway, |
| | | Row = i + 1, |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_BasicService.Base |
| | | { |
| | | public partial class PalletTypeInfoService : ServiceBase<Dt_PalletTypeInfo, IPalletTypeInfoRepository>, IPalletTypeInfoService |
| | | { |
| | | public PalletTypeInfoService(IPalletTypeInfoRepository BaseDal) : base(BaseDal) |
| | | { |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using SqlSugar.Extensions; |
| | | using WIDESEA_Core.Enums; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_BasicService |
| | | { |
| | | public partial class LocationInfoService |
| | | { |
| | | |
| | | |
| | | private readonly static object _locker_BC = new object(); |
| | | static List<LocationCache> locationCaches_BC = new List<LocationCache>(); |
| | | /// <summary> |
| | | /// æ¿æä»è´§ä½åé
|
| | | /// </summary> |
| | | /// <param name="roadwayNo">å··éå·</param> |
| | | /// <param name="palletType"> |
| | | /// æçç±»å |
| | | /// </param> |
| | | /// <returns></returns> |
| | | public Dt_LocationInfo? AssignLocation_BC(string roadwayNo, int palletType, Dt_PalletTypeInfo palletTypeInfo, string beRelocationCode = "", int heightType = 0) |
| | | { |
| | | lock (_locker_BC) |
| | | { |
| | | List<LocationCache> removeItems = locationCaches_BC.Where(x => (DateTime.Now - x.DateTime).TotalMinutes > 5).ToList(); |
| | | int count = removeItems.Count; |
| | | for (int i = 0; i < count; i++) |
| | | { |
| | | locationCaches_BC.Remove(removeItems[i]); |
| | | } |
| | | |
| | | List<string> lockLocationCodes = locationCaches_BC.Select(x => x.LocationCode).ToList(); |
| | | |
| | | List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == roadwayNo); |
| | | if (locationInfos == null || locationInfos.Count == 0) |
| | | { |
| | | throw new Exception($"æªæ¾å°è¯¥å··éçè´§ä½ä¿¡æ¯,å··éå·:{roadwayNo}"); |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(beRelocationCode)) |
| | | { |
| | | Dt_LocationInfo? beRelocation = locationInfos.FirstOrDefault(x => x.LocationCode == beRelocationCode); |
| | | if (beRelocation == null) |
| | | { |
| | | throw new Exception($"æªæ¾å°è´§ä½ä¿¡æ¯"); |
| | | } |
| | | int maxDepth = locationInfos.Max(x => x.Depth); |
| | | int mathCurrentRow = beRelocation.Row - Convert.ToInt32(Math.Ceiling(beRelocation.Row / maxDepth / 2.0)) * maxDepth * 2; |
| | | if (mathCurrentRow <= maxDepth) |
| | | { |
| | | locationInfos = locationInfos.Where(x => x.Row - Convert.ToInt32(Math.Ceiling(x.Row / maxDepth / 2.0)) * maxDepth * 2 <= maxDepth).ToList(); |
| | | } |
| | | else |
| | | { |
| | | locationInfos = locationInfos.Where(x => x.Row - Convert.ToInt32(Math.Ceiling(x.Row / maxDepth / 2.0)) * maxDepth * 2 > maxDepth).ToList(); |
| | | } |
| | | } |
| | | |
| | | |
| | | //æªå®ä¹ç±»åçç©ºè´§ä½ |
| | | List<Dt_LocationInfo> undefinedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).ToList(); |
| | | |
| | | List<Dt_LocationInfo> definedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == palletType.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).ToList(); |
| | | |
| | | //if (heightType == 1) |
| | | //{ |
| | | // undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Layer <= 3).ToList(); |
| | | // definedTypeEmptyLocations = definedTypeEmptyLocations.Where(x => x.Layer <= 3).ToList(); |
| | | //} |
| | | //else if (heightType == 2) |
| | | //{ |
| | | // undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Layer == 4).ToList(); |
| | | // definedTypeEmptyLocations = definedTypeEmptyLocations.Where(x => x.Layer == 4).ToList(); |
| | | //} |
| | | //else if (heightType == 3) |
| | | //{ |
| | | // undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Layer == 5).ToList(); |
| | | // definedTypeEmptyLocations = definedTypeEmptyLocations.Where(x => x.Layer == 5).ToList(); |
| | | //} |
| | | //else |
| | | //{ |
| | | // undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => false).ToList(); |
| | | // definedTypeEmptyLocations = definedTypeEmptyLocations.Where(x => false).ToList(); |
| | | //} |
| | | |
| | | if (palletTypeInfo.LocaitonCount == 2) |
| | | { |
| | | if (roadwayNo != "SC01_BC") |
| | | definedTypeEmptyLocations = definedTypeEmptyLocations.Where(x => x.Column % 2 == 1).ToList(); |
| | | else |
| | | definedTypeEmptyLocations = definedTypeEmptyLocations.Where(x => x.Column % 2 == 0).ToList(); |
| | | } |
| | | |
| | | if (definedTypeEmptyLocations.Any()) |
| | | { |
| | | for (int i = 0; i < definedTypeEmptyLocations.Count; i++) |
| | | { |
| | | Dt_LocationInfo definedTypeEmptyLocation = definedTypeEmptyLocations[i]; |
| | | Dt_LocationInfo? locationInfo = GetUsableLocation_BC(locationInfos, definedTypeEmptyLocation, palletType, palletTypeInfo); |
| | | //å¤æè´§ä½ä¸¤æ·±å以䏿¯å¦åå¨åºåºéå®è´§ä½ |
| | | //if (locationInfo?.Depth == 1) |
| | | //{ |
| | | // Dt_LocationInfo? IsBebusyLocation = locationInfos.Where(x => x.Row == (locationInfo?.Row == 2 ? locationInfo?.Row - 1 : locationInfo?.Row + 1) && x.Column == locationInfo?.Column && x.Layer == locationInfo?.Layer).FirstOrDefault(); |
| | | // if (IsBebusyLocation != null && (IsBebusyLocation.LocationStatus < LocationStatusEnum.InStock.ObjToInt())) |
| | | // { |
| | | // continue; |
| | | // } |
| | | //} |
| | | if (locationInfo != null) |
| | | { |
| | | locationCaches_BC.Add(new LocationCache { LocationCode = locationInfo.LocationCode, DateTime = DateTime.Now }); |
| | | return locationInfo; |
| | | } |
| | | } |
| | | } |
| | | if ((/*locationInfos.Count * weightValue_BC >= definedTypeLocations.Count &&*/ undefinedTypeEmptyLocations.Any()))//妿已å®ä¹ç±»åè´§ä½æªè¶
è¿æ¯ä¾ï¼ä¸ææªå®ä¹ç±»åçè´§ä½ |
| | | { |
| | | if (palletTypeInfo.LocaitonCount == 2) |
| | | { |
| | | if (roadwayNo != "SC01_BC") |
| | | undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Column % 2 == 1).ToList(); |
| | | else |
| | | undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Column % 2 == 0).ToList(); |
| | | |
| | | for (int i = 0; i < undefinedTypeEmptyLocations.Count; i++) |
| | | { |
| | | Dt_LocationInfo undefinedTypeEmptyLocation = undefinedTypeEmptyLocations[i]; |
| | | Dt_LocationInfo? locationInfo = GetUsableLocation_BC(locationInfos, undefinedTypeEmptyLocation, palletType, palletTypeInfo); |
| | | //å¤æè´§ä½ä¸¤æ·±å以䏿¯å¦åå¨åºåºéå®è´§ä½ |
| | | if (locationInfo?.Depth == 1) |
| | | { |
| | | Dt_LocationInfo? IsBebusyLocation = locationInfos.Where(x => x.Row == (locationInfo?.Row == 2 ? locationInfo?.Row - 1 : locationInfo?.Row + 1) && x.Column == locationInfo?.Column && x.Layer == locationInfo?.Layer).FirstOrDefault(); |
| | | if (IsBebusyLocation != null && (IsBebusyLocation.LocationStatus < LocationStatusEnum.InStock.ObjToInt())) |
| | | { |
| | | continue; |
| | | } |
| | | } |
| | | if (locationInfo != null) |
| | | { |
| | | //UpdateLocationStatus(locationInfo, palletType, LocationStatusEnum.Lock, locationInfo.WarehouseId); |
| | | locationCaches_BC.Add(new LocationCache { LocationCode = locationInfo.LocationCode, DateTime = DateTime.Now }); |
| | | return locationInfo; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// è·åå¯ç¨è´§ä½(æµè¯æ¶ä») |
| | | /// </summary> |
| | | /// <param name="locationInfos"></param> |
| | | /// <param name="emptyLocation"></param> |
| | | /// <param name="palletType"></param> |
| | | /// <returns></returns> |
| | | private Dt_LocationInfo? GetUsableLocation_BC(List<Dt_LocationInfo> locationInfos, Dt_LocationInfo emptyLocation, int palletType, Dt_PalletTypeInfo palletTypeInfo) |
| | | { |
| | | |
| | | if (palletTypeInfo.LocaitonCount == 2) |
| | | { |
| | | Dt_LocationInfo? nearLocation = null; |
| | | if (emptyLocation.RoadwayNo != "SC01_BC" && emptyLocation.Column % 2 == 1) |
| | | nearLocation = locationInfos.FirstOrDefault(x => x.Row == emptyLocation.Row && x.Layer == emptyLocation.Layer && x.Depth == emptyLocation.Depth && x.Column == emptyLocation.Column - 1); |
| | | else if (emptyLocation.RoadwayNo == "SC01_BC" && emptyLocation.Column % 2 == 0) |
| | | nearLocation = locationInfos.FirstOrDefault(x => x.Row == emptyLocation.Row && x.Layer == emptyLocation.Layer && x.Depth == emptyLocation.Depth && x.Column == emptyLocation.Column + 1); |
| | | if (nearLocation != null && DepthLocationIsEmpty_BC(locationInfos, nearLocation) != null) |
| | | { |
| | | Dt_LocationInfo? locationInfo = DepthLocationIsEmpty_BC(locationInfos, emptyLocation); |
| | | if (locationInfo != null) |
| | | { |
| | | return locationInfo; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Dt_LocationInfo? locationInfo = DepthLocationIsEmpty_BC(locationInfos, emptyLocation); |
| | | if (locationInfo != null) |
| | | { |
| | | return locationInfo; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 夿ä¸å深度çåç»è´§ä½ç¶ææ¯å¦ä¸ºç©ºé²ç©ºä½(æµè¯æ¶ä») |
| | | /// </summary> |
| | | /// <param name="locationInfos"></param> |
| | | /// <param name="emptyLocation"></param> |
| | | /// <returns></returns> |
| | | private Dt_LocationInfo? DepthLocationIsEmpty_BC(List<Dt_LocationInfo> locationInfos, Dt_LocationInfo emptyLocation) |
| | | { |
| | | List<Dt_LocationInfo> locations = GetGroupLocations(locationInfos, emptyLocation); |
| | | |
| | | bool moreDepthFlag = false; |
| | | bool littleDepthFlag = false; |
| | | |
| | | if (emptyLocation.LocationType == 0) |
| | | { |
| | | List<Dt_LocationInfo> moreDepth = locations.Where(x => x.Depth > emptyLocation.Depth).ToList(); |
| | | moreDepthFlag = moreDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.LocationType != 0) == null;//æ¥è¯¢å¤§äºå½åè´§ä½æ·±åº¦çéåéæ¯å¦æç¶æä¸ä¸ºæè´§çè´§ä½ï¼å¦ææ¯trueï¼åè¡¨ç¤ºæ·±è´§ä½ææªè¢«ä½¿ç¨çæ
åµ |
| | | |
| | | List<Dt_LocationInfo> littleDepth = locations.Where(x => x.Depth <= emptyLocation.Depth).ToList(); |
| | | littleDepthFlag = littleDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.LocationType != 0) == null; //æ¥è¯¢å°äºå½åè´§ä½æ·±åº¦çéåéæ¯å¦æç¶æä¸ä¸ºç©ºï¼ä¸ç¦ç¨ç¶æä¸ä¸ºç¦ç¨ä»¥ååªå
¥çè´§ä½ï¼å¦ææ¯trueï¼å表示æµ
è´§ä½è¢«ä½¿ç¨æè
被ç¦ç¨çæ
åµ |
| | | } |
| | | else |
| | | { |
| | | List<Dt_LocationInfo> moreDepth = locations.Where(x => x.Depth > emptyLocation.Depth).ToList(); |
| | | moreDepthFlag = moreDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.LocationType != emptyLocation.LocationType) == null;//æ¥è¯¢å¤§äºå½åè´§ä½æ·±åº¦çéåéæ¯å¦æç¶æä¸ä¸ºæè´§çè´§ä½ï¼å¦ææ¯trueï¼åè¡¨ç¤ºæ·±è´§ä½ææªè¢«ä½¿ç¨çæ
åµ |
| | | |
| | | List<Dt_LocationInfo> littleDepth = locations.Where(x => x.Depth <= emptyLocation.Depth).ToList(); |
| | | littleDepthFlag = littleDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.LocationType != emptyLocation.LocationType) == null; //æ¥è¯¢å°äºå½åè´§ä½æ·±åº¦çéåéæ¯å¦æç¶æä¸ä¸ºç©ºï¼ä¸ç¦ç¨ç¶æä¸ä¸ºç¦ç¨ä»¥ååªå
¥çè´§ä½ï¼å¦ææ¯trueï¼å表示æµ
è´§ä½è¢«ä½¿ç¨æè
被ç¦ç¨çæ
åµ |
| | | } |
| | | if (moreDepthFlag && littleDepthFlag) |
| | | { |
| | | return emptyLocation; |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_Core.Enums; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_Core.Utilities; |
| | | using WIDESEA_DTO.Basic; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_IRecordService; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_BasicService |
| | | { |
| | | public partial class LocationInfoService |
| | | { |
| | | |
| | | public Dt_LocationInfo? AssignLocation(string roadwayNo, int palletType, int warehouseId, string beRelocationCode = "", int heightType = 0) |
| | | { |
| | | Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == warehouseId); |
| | | if (warehouse == null) |
| | | { |
| | | throw new Exception($"æªæ¾å°ä»åºä¿¡æ¯"); |
| | | } |
| | | Dt_PalletTypeInfo? palletTypeInfo = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.PalletType == palletType && x.WarehouseId == warehouseId); |
| | | if (palletTypeInfo == null) |
| | | { |
| | | if (warehouse.WarehouseCode == WarehouseEnum.SC01_BC.ToString()) |
| | | { |
| | | palletTypeInfo = new Dt_PalletTypeInfo() |
| | | { |
| | | LocaitonCount = 1, |
| | | PalletType = 1, |
| | | IsOdd = false, |
| | | }; |
| | | } |
| | | else |
| | | throw new Exception($"请é
ç½®æçç±»åä¿¡æ¯"); |
| | | } |
| | | |
| | | return warehouse.WarehouseCode switch |
| | | { |
| | | "SC01_BC" => AssignLocation_BC(roadwayNo, palletType, palletTypeInfo, beRelocationCode, heightType), |
| | | //"HA58" => AssignLocation_PP(roadwayNo, palletType, palletTypeInfo, beRelocationCode), |
| | | //"HA152" => AssignLocation_GM(roadwayNo, palletType, palletTypeInfo, beRelocationCode), |
| | | //"HA64" => AssignLocation_CSJ(roadwayNo, palletType, palletTypeInfo, beRelocationCode), |
| | | //"HA154" => AssignLocation_ZH(roadwayNo, palletType, palletTypeInfo, beRelocationCode), |
| | | //"HA153" => AssignLocation(roadwayNo), |
| | | //"HA71" => AssignLocation(roadwayNo), |
| | | //"HA60" => AssignLocation(roadwayNo), |
| | | _ => throw new Exception($"æªæ¾å°ä»åºè´§ä½åé
æ¹æ³") |
| | | }; |
| | | } |
| | | |
| | | //private readonly static object _locker = new object(); |
| | | //private static List<LocationCache> locationCaches = new List<LocationCache>(); |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="roadwayNo"></param> |
| | | /// <returns></returns> |
| | | //public Dt_LocationInfo? AssignLocation(string roadwayNo) |
| | | //{ |
| | | // lock (_locker) |
| | | // { |
| | | // List<LocationCache> removeItems = locationCaches.Where(x => (DateTime.Now - x.DateTime).TotalMinutes > 5).ToList();//æ¥è¯¢æ·»å éæåéè¶
è¿5åéçè´§ä½ |
| | | // int count = removeItems.Count; |
| | | // for (int i = 0; i < count; i++) |
| | | // { |
| | | // locationCaches.Remove(removeItems[i]);//ç§»é¤æ¥è¯¢æ·»å éæåéè¶
è¿5åéçè´§ä½ |
| | | // } |
| | | |
| | | // List<string> lockLocations = locationCaches.Select(x => x.LocationCode).ToList(); |
| | | |
| | | // List<Dt_LocationInfo> locationInfos = BaseDal.QueryData(x => x.RoadwayNo == roadwayNo);//æ¥è¯¢å··éææè´§ä½ä¿¡æ¯ |
| | | |
| | | // Dictionary<string, OrderByType> orderBy = new Dictionary<string, OrderByType>() |
| | | // { |
| | | // { nameof(Dt_LocationInfo.Layer),OrderByType.Asc }, |
| | | // { nameof(Dt_LocationInfo.Column),OrderByType.Asc }, |
| | | // { nameof(Dt_LocationInfo.Depth),OrderByType.Desc }, |
| | | // { nameof(Dt_LocationInfo.Row),OrderByType.Asc } |
| | | // }; |
| | | |
| | | // return BaseDal.QueryFirst(x => x.RoadwayNo == roadwayNo && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocations.Contains(x.LocationCode), orderBy);//æ¥è¯¢ç©ºè´§ä½ä¿¡æ¯å¹¶æé¤5åéå
åé
çè´§ä½,æ ¹æ®å±ãåãæ·±åº¦ãè¡æåº |
| | | // } |
| | | //} |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// è·åä¸å深度çåç»è´§ä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="locationInfos"></param> |
| | | /// <param name="location"></param> |
| | | /// <returns></returns> |
| | | public List<Dt_LocationInfo> GetGroupLocations(List<Dt_LocationInfo> locationInfos, Dt_LocationInfo location) |
| | | { |
| | | List<Dt_LocationInfo> groupLocations = new List<Dt_LocationInfo>() { location }; |
| | | int maxDepth = locationInfos.Max(x => x.Depth); |
| | | int row = location.Row; |
| | | for (int j = location.Depth + 1; j <= maxDepth; j++) |
| | | { |
| | | row += 1; |
| | | Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && x.Row == row); |
| | | if (locationInfo != null) |
| | | { |
| | | groupLocations.Add(locationInfo); |
| | | } |
| | | } |
| | | |
| | | for (int j = location.Depth - 1; j >= 1; j--) |
| | | { |
| | | row -= 1; |
| | | Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && x.Row == row); |
| | | if (locationInfo != null) |
| | | { |
| | | groupLocations.Add(locationInfo); |
| | | } |
| | | } |
| | | return groupLocations; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åä¸å深度çåç»è´§ä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="location"></param> |
| | | /// <returns></returns> |
| | | //public List<Dt_LocationInfo> GetGroupLocations(Dt_LocationInfo location) |
| | | //{ |
| | | // List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == location.RoadwayNo && x.WarehouseId == location.WarehouseId); |
| | | |
| | | // List<Dt_LocationInfo> groupLocations = new List<Dt_LocationInfo>() { location }; |
| | | // int maxDepth = locationInfos.Max(x => x.Depth); |
| | | // int row = location.Row; |
| | | // for (int j = location.Depth + 1; j <= maxDepth; j++) |
| | | // { |
| | | // Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && (x.Row == row + 1 || x.Row == row - 1)); |
| | | // if (locationInfo != null) |
| | | // { |
| | | // groupLocations.Add(locationInfo); |
| | | // } |
| | | // } |
| | | |
| | | // for (int j = location.Depth - 1; j >= 1; j--) |
| | | // { |
| | | // Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.Depth == j && x.Column == location.Column && x.Layer == location.Layer && (x.Row == row + 1 || x.Row == row - 1)); |
| | | // if (locationInfo != null) |
| | | // { |
| | | // groupLocations.Add(locationInfo); |
| | | // } |
| | | // } |
| | | // return groupLocations; |
| | | //} |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Common.TaskEnum |
| | | { |
| | | public static class TaskEnumHelper |
| | | { |
| | | public static List<int> GetEnumIndexList(this Type type) |
| | | { |
| | | if (type is null) throw new ArgumentNullException("type"); |
| | | if (!type.IsEnum) return new List<int>(); |
| | | return Enum.GetValues(type).Cast<int>().ToList(); |
| | | } |
| | | |
| | | public static TaskTypeGroup GetTaskTypeGroup(this int taskType) |
| | | { |
| | | if (!int.TryParse(Enum.Parse<TaskOutboundTypeEnum>(taskType.ToString()).ToString(), out int result)) |
| | | { |
| | | return TaskTypeGroup.OutbondGroup; |
| | | } |
| | | else if (!int.TryParse(Enum.Parse<TaskInboundTypeEnum>(taskType.ToString()).ToString(), out result)) |
| | | { |
| | | return TaskTypeGroup.InboundGroup; |
| | | } |
| | | else if (!int.TryParse(Enum.Parse<TaskRelocationTypeEnum>(taskType.ToString()).ToString(), out result)) |
| | | { |
| | | return TaskTypeGroup.RelocationGroup; |
| | | } |
| | | else if (!int.TryParse(Enum.Parse<TaskOtherTypeEnum>(taskType.ToString()).ToString(), out result)) |
| | | { |
| | | return TaskTypeGroup.OtherGroup; |
| | | } |
| | | else |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | } |
| | | |
| | | public static int GetNextNotCompletedStatus<T>(this int currentStatus) where T : Enum |
| | | { |
| | | Type type = typeof(T); |
| | | if (type is null) throw new ArgumentNullException(); |
| | | if (!type.IsEnum) return 0; |
| | | if (type == typeof(TaskInStatusEnum)) |
| | | { |
| | | List<int> taskInboundTypes = type.GetEnumIndexList(); |
| | | return taskInboundTypes.Where(x => x > currentStatus && x < (int)TaskInStatusEnum.InFinish).OrderBy(x => x).FirstOrDefault(); |
| | | } |
| | | else if (type == typeof(TaskOutStatusEnum)) |
| | | { |
| | | return type.GetEnumIndexList().Where(x => x > currentStatus && x < (int)TaskOutStatusEnum.OutFinish).OrderBy(x => x).FirstOrDefault(); |
| | | } |
| | | else |
| | | { |
| | | throw new NotImplementedException(); |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Common.TaskEnum |
| | | { |
| | | public enum TaskInStatusEnum |
| | | { |
| | | /// <summary> |
| | | /// æ°å»ºå
¥åºä»»å¡ |
| | | /// </summary> |
| | | [Description("æ°å»ºå
¥åºä»»å¡")] |
| | | InNew = 200, |
| | | |
| | | /// <summary> |
| | | /// ä¸åAGVå
¥åºä»»å¡ |
| | | /// </summary> |
| | | [Description("ä¸åAGVå
¥åºä»»å¡")] |
| | | AGV_InSend = 205, |
| | | |
| | | /// <summary> |
| | | /// AGVå
¥åºæ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("AGVå
¥åºæ§è¡ä¸")] |
| | | AGV_InExecuting = 210, |
| | | |
| | | /// <summary> |
| | | /// AGVå
¥åºå®æ |
| | | /// </summary> |
| | | [Description("AGVå
¥åºå®æ")] |
| | | AGV_InFinish = 215, |
| | | |
| | | /// <summary> |
| | | /// è¾é线å
¥åºæ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("è¾é线å
¥åºæ§è¡ä¸")] |
| | | Line_InExecuting = 220, |
| | | |
| | | /// <summary> |
| | | /// è¾é线å
¥åºå®æ |
| | | /// </summary> |
| | | [Description("è¾é线å
¥åºå®æ")] |
| | | Line_InFinish = 225, |
| | | |
| | | /// <summary> |
| | | /// å åæºå
¥åºæ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("å åæºå
¥åºæ§è¡ä¸")] |
| | | SC_InExecuting = 230, |
| | | |
| | | /// <summary> |
| | | /// å åæºå
¥åºå®æ |
| | | /// </summary> |
| | | [Description("å åæºå
¥åºå®æ")] |
| | | SC_InFinish = 235, |
| | | |
| | | /// <summary> |
| | | /// ç©¿æ¢è½¦å
¥åºæ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("ç©¿æ¢è½¦å
¥åºæ§è¡ä¸")] |
| | | Car_InExecuting = 240, |
| | | |
| | | /// <summary> |
| | | /// ç©¿æ¢è½¦å
¥åºå®æ |
| | | /// </summary> |
| | | [Description("ç©¿æ¢è½¦å
¥åºå®æ")] |
| | | Car_InFinish = 245, |
| | | |
| | | /// <summary> |
| | | /// å
¥åºä»»å¡å®æ |
| | | /// </summary> |
| | | [Description("å
¥åºä»»å¡å®æ")] |
| | | InFinish = 290, |
| | | |
| | | /// <summary> |
| | | /// å
¥åºä»»å¡æèµ· |
| | | /// </summary> |
| | | [Description("å
¥åºä»»å¡æèµ·")] |
| | | InPending = 297, |
| | | |
| | | /// <summary> |
| | | /// å
¥åºä»»å¡åæ¶ |
| | | /// </summary> |
| | | [Description("å
¥åºä»»å¡åæ¶")] |
| | | InCancel = 298, |
| | | |
| | | /// <summary> |
| | | /// å
¥åºä»»å¡å¼å¸¸ |
| | | /// </summary> |
| | | [Description("å
¥åºä»»å¡å¼å¸¸")] |
| | | InException = 299, |
| | | } |
| | | |
| | | public enum TaskOutStatusEnum |
| | | { |
| | | /// <summary> |
| | | /// æ°å»ºåºåºä»»å¡ |
| | | /// </summary> |
| | | [Description("æ°å»ºåºåºä»»å¡")] |
| | | OutNew = 100, |
| | | |
| | | /// <summary> |
| | | /// ç©¿æ¢è½¦åºåºæ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("ç©¿æ¢è½¦åºåºæ§è¡ä¸")] |
| | | Car_OutExecuting = 110, |
| | | |
| | | /// <summary> |
| | | /// ç©¿æ¢è½¦åºåºå®æ |
| | | /// </summary> |
| | | [Description("ç©¿æ¢è½¦åºåºå®æ")] |
| | | Car_OutFinish = 115, |
| | | |
| | | /// <summary> |
| | | /// å åæºåºåºæ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("å åæºåºåºæ§è¡ä¸")] |
| | | SC_OutExecuting = 120, |
| | | |
| | | /// <summary> |
| | | /// å åæºåºåºå®æ |
| | | /// </summary> |
| | | [Description("å åæºåºåºå®æ")] |
| | | SC_OutFinish = 125, |
| | | |
| | | /// <summary> |
| | | /// è¾é线åºåºæ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("è¾é线åºåºæ§è¡ä¸")] |
| | | Line_OutExecuting = 130, |
| | | |
| | | /// <summary> |
| | | /// è¾é线åºåºå®æ |
| | | /// </summary> |
| | | [Description("è¾é线åºåºå®æ")] |
| | | Line_OutFinish = 135, |
| | | |
| | | /// <summary> |
| | | /// ä¸åAGVåºåºä»»å¡ |
| | | /// </summary> |
| | | [Description("ä¸åAGVåºåºä»»å¡")] |
| | | AGV_OutSend = 140, |
| | | |
| | | /// <summary> |
| | | /// AGVåºåºæ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("AGVåºåºæ§è¡ä¸")] |
| | | AGV_OutExecuting = 145, |
| | | |
| | | /// <summary> |
| | | /// AGVåºåºå®æ |
| | | /// </summary> |
| | | [Description("AGVåºåºå®æ")] |
| | | AGV_OutFinish = 150, |
| | | |
| | | /// <summary> |
| | | /// åºåºä»»å¡å®æ |
| | | /// </summary> |
| | | [Description("åºåºä»»å¡å®æ")] |
| | | OutFinish = 190, |
| | | |
| | | /// <summary> |
| | | /// åºåºä»»å¡æèµ· |
| | | /// </summary> |
| | | [Description("åºåºä»»å¡æèµ·")] |
| | | OutPending = 197, |
| | | |
| | | /// <summary> |
| | | /// åºåºä»»å¡åæ¶ |
| | | /// </summary> |
| | | [Description("åºåºä»»å¡åæ¶")] |
| | | OutCancel = 198, |
| | | |
| | | /// <summary> |
| | | /// åºåºä»»å¡å¼å¸¸ |
| | | /// </summary> |
| | | [Description("åºåºä»»å¡å¼å¸¸")] |
| | | OutException = 199, |
| | | } |
| | | |
| | | public enum TaskCarStatusEnum |
| | | { |
| | | /// <summary> |
| | | /// æ°å»ºç§»è½¦ä»»å¡ |
| | | /// </summary> |
| | | [Description("æ°å»ºç§»è½¦ä»»å¡")] |
| | | CarNew = 300, |
| | | |
| | | /// <summary> |
| | | /// ç©¿æ¢è½¦æ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("ç©¿æ¢è½¦æ§è¡ä¸")] |
| | | ShuttleCar_Executing = 310, |
| | | |
| | | /// <summary> |
| | | /// ç©¿æ¢è½¦å®æ |
| | | /// </summary> |
| | | [Description("ç©¿æ¢è½¦å®æ")] |
| | | ShuttleCar_Finish = 320, |
| | | |
| | | /// <summary> |
| | | /// å åæºç§»è½¦æ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("å åæºç§»è½¦æ§è¡ä¸")] |
| | | SC_CarExecuting = 330, |
| | | |
| | | /// <summary> |
| | | /// å åæºç§»è½¦å®æ |
| | | /// </summary> |
| | | [Description("å åæºç§»è½¦å®æ")] |
| | | SC_CarFinish = 340, |
| | | |
| | | /// <summary> |
| | | /// ç§»è½¦å®æ |
| | | /// </summary> |
| | | [Description("ç§»è½¦å®æ")] |
| | | RelocationCarFinish = 390, |
| | | } |
| | | /// <summary> |
| | | /// ç§»åºä»»å¡ç¶æ |
| | | /// </summary> |
| | | public enum TaskRelocationStatusEnum |
| | | { |
| | | /// <summary> |
| | | /// æ°å»ºç§»åºä»»å¡ |
| | | /// </summary> |
| | | [Description("æ°å»ºç§»åºä»»å¡")] |
| | | RelocationNew = 400, |
| | | |
| | | /// <summary> |
| | | /// ç©¿æ¢è½¦èµ·ç¹æ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("ç©¿æ¢è½¦èµ·ç¹æ§è¡ä¸")] |
| | | CarSource_Executing = 410, |
| | | |
| | | /// <summary> |
| | | /// ç©¿æ¢è½¦èµ·ç¹å®æ |
| | | /// </summary> |
| | | [Description("ç©¿æ¢è½¦èµ·ç¹å®æ")] |
| | | CarSource_Finish = 415, |
| | | |
| | | /// <summary> |
| | | /// å åæºç§»åºæ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("å åæºç§»åºæ§è¡ä¸")] |
| | | SC_RelocationExecuting = 420, |
| | | |
| | | /// <summary> |
| | | /// å åæºç§»åºå®æ |
| | | /// </summary> |
| | | [Description("å åæºç§»åºå®æ")] |
| | | SC_RelocationFinish = 425, |
| | | |
| | | /// <summary> |
| | | /// ç©¿æ¢è½¦ç»ç¹æ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("ç©¿æ¢è½¦ç»ç¹æ§è¡ä¸")] |
| | | CarTarget_Executing = 430, |
| | | |
| | | /// <summary> |
| | | /// ç©¿æ¢è½¦ç»ç¹å®æ |
| | | /// </summary> |
| | | [Description("ç©¿æ¢è½¦ç»ç¹å®æ")] |
| | | CarTarget_Finish = 435, |
| | | |
| | | /// <summary> |
| | | /// ç§»åºå®æ |
| | | /// </summary> |
| | | [Description("ç§»åºå®æ")] |
| | | RelocationFinish = 490, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Common.TaskEnum |
| | | { |
| | | public enum TaskStatusGroup |
| | | { |
| | | NotCompleted, |
| | | Completed, |
| | | Exception |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Common.TaskEnum |
| | | { |
| | | public enum TaskInboundTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// å
¥åº |
| | | /// </summary> |
| | | [Description("å
¥åº")] |
| | | Inbound = 200, |
| | | /// <summary> |
| | | /// çç¹å
¥åº |
| | | /// </summary> |
| | | [Description("çç¹å
¥åº")] |
| | | InInventory = 201, |
| | | /// <summary> |
| | | /// 忣å
¥åº |
| | | /// </summary> |
| | | [Description("忣å
¥åº")] |
| | | InPick = 202, |
| | | /// <summary> |
| | | /// è´¨æ£å
¥åº |
| | | /// </summary> |
| | | [Description("è´¨æ£å
¥åº")] |
| | | InQuality = 203, |
| | | |
| | | /// <summary> |
| | | /// å
¥ç©ºæ |
| | | /// </summary> |
| | | [Description("å
¥ç©ºæ")] |
| | | PalletInbound = 204, |
| | | } |
| | | |
| | | public enum TaskOutboundTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// åºåº |
| | | /// </summary> |
| | | [Description("åºåº")] |
| | | Outbound = 100, |
| | | /// <summary> |
| | | /// çç¹åºåº |
| | | /// </summary> |
| | | [Description("çç¹åºåº")] |
| | | OutInventory = 101, |
| | | /// <summary> |
| | | /// 忣åºåº |
| | | /// </summary> |
| | | [Description("忣åºåº")] |
| | | OutPick = 102, |
| | | /// <summary> |
| | | /// è´¨æ£åºåº |
| | | /// </summary> |
| | | [Description("è´¨æ£åºåº")] |
| | | OutQuality = 103, |
| | | |
| | | /// <summary> |
| | | /// åºç©ºæ |
| | | /// </summary> |
| | | [Description("åºç©ºæ")] |
| | | PalletOutbound = 104, |
| | | } |
| | | |
| | | public enum TaskRelocationTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// åºå
ç§»åº |
| | | /// </summary> |
| | | [Description("åºå
ç§»åº")] |
| | | Relocation = 300, |
| | | /// <summary> |
| | | /// åºå¤ç§»åº |
| | | /// </summary> |
| | | [Description("åºå¤ç§»åº")] |
| | | RelocationIn = 301 |
| | | } |
| | | |
| | | public enum TaskOtherTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// åºå
移车 |
| | | /// </summary> |
| | | [Description("åºå
移车")] |
| | | RelocationCar = 400 |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Common.TaskEnum |
| | | { |
| | | public enum TaskTypeGroup |
| | | { |
| | | InboundGroup, |
| | | OutbondGroup, |
| | | RelocationGroup, |
| | | OtherGroup |
| | | } |
| | | } |
| | |
| | | [Description("ç¦ç¨")] |
| | | Disable = 3 |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç±»å |
| | | /// </summary> |
| | | public enum LocationTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// ç«åº |
| | | /// æªå®ä¹ |
| | | /// </summary> |
| | | [Description("ç«åºè´§ä½")] |
| | | Cube = 1, |
| | | [Description("æªå®ä¹")] |
| | | Undefined = 0, |
| | | |
| | | /// <summary> |
| | | /// å¹³åº |
| | | /// å°æç |
| | | /// </summary> |
| | | [Description("å¹³åºè´§ä½")] |
| | | Flat = 2, |
| | | [Description("å°æç")] |
| | | SmallPallet = 1, |
| | | |
| | | /// <summary> |
| | | /// æååºåºç«å° |
| | | /// 䏿ç |
| | | /// </summary> |
| | | [Description("æååºåºç«å°")] |
| | | FinishedOut = 3, |
| | | [Description("䏿ç")] |
| | | MediumPallet = 2, |
| | | |
| | | /// <summary> |
| | | /// åææåºåºç«å° |
| | | /// 大æç |
| | | /// </summary> |
| | | [Description("åææåºåºç«å°")] |
| | | RawOut = 4, |
| | | [Description("大æç")] |
| | | LargePallet = 3, |
| | | |
| | | /// <summary> |
| | | /// 空æåºåºç«å° |
| | | /// ç¹å¤§æç |
| | | /// </summary> |
| | | [Description("空æåºåºç«å°")] |
| | | EmptyOut = 5, |
| | | /// <summary> |
| | | /// æåå
¥åºç«å° |
| | | /// </summary> |
| | | [Description("æåå
¥åºç«å°")] |
| | | FinishedIn = 6, |
| | | /// <summary> |
| | | /// åææå
¥åºç«å° |
| | | /// </summary> |
| | | [Description("åææå
¥åºç«å°")] |
| | | RawIn = 7, |
| | | /// <summary> |
| | | /// 空æå
¥ç«å° |
| | | /// </summary> |
| | | [Description("空æå
¥ç«å°")] |
| | | EmptyIn = 8, |
| | | /// <summary> |
| | | /// 空æè´§ä½ |
| | | /// </summary> |
| | | [Description("空æè´§ä½")] |
| | | EmptyCube = 9, |
| | | /// <summary> |
| | | /// åææè´§ä½ |
| | | /// </summary> |
| | | [Description("åææè´§ä½")] |
| | | MaterialsCube = 10, |
| | | /// <summary> |
| | | /// æåè´§ä½ |
| | | /// </summary> |
| | | [Description("æåè´§ä½")] |
| | | ProductCube = 11, |
| | | [Description("ç¹å¤§æç")] |
| | | ExtraPallet = 4, |
| | | } |
| | | |
| | | public enum LocationChangeType |
| | |
| | | |
| | | namespace WIDESEA_Core.Enums |
| | | { |
| | | |
| | | /// <summary> |
| | | /// åæ®ç±»å |
| | | /// </summary> |
| | | public enum OrderTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// ç产å
¥åºå |
| | | /// </summary> |
| | | [Description("ç产å
¥åºå")] |
| | | ç产å
¥åºå = 0, |
| | | |
| | | /// <summary> |
| | | /// ç产åºåºå |
| | | /// </summary> |
| | | [Description("ç产åºåºå")] |
| | | ç产åºåºå = 1, |
| | | |
| | | /// <summary> |
| | | /// è°æ¨å
¥åºå |
| | | /// </summary> |
| | | [Description("è°æ¨å
¥åºå")] |
| | | è°æ¨å
¥åºå = 2, |
| | | |
| | | /// <summary> |
| | | /// è°æ¨åºåºå |
| | | /// </summary> |
| | | [Description("è°æ¨åºåºå")] |
| | | è°æ¨åºåºå = 3, |
| | | |
| | | } |
| | | /// <summary> |
| | | /// åæ®å¤§ç±» |
| | | /// </summary> |
| | | public enum InoutTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// éè´å
¥åº |
| | | /// </summary> |
| | | [Description("éè´å
¥åº")] |
| | | PurchaseIn, |
| | | |
| | | /// <summary> |
| | | /// æåå
¥åº |
| | | /// </summary> |
| | | [Description("æåå
¥åº")] |
| | | Finished, |
| | | |
| | | /// <summary> |
| | | /// åæåå
¥åº |
| | | /// </summary> |
| | | [Description("åæåå
¥åº")] |
| | | PartedIn, |
| | | |
| | | /// <summary> |
| | | /// çäº§éæ |
| | | /// </summary> |
| | | [Description("ç产éæ")] |
| | | MaterialReturn, |
| | | /// <summary> |
| | | /// éå®éè´§ |
| | | /// </summary> |
| | | [Description("éå®éè´§")] |
| | | SaleReturn, |
| | | |
| | | /// <summary> |
| | | /// å
¶ä»å
¥åº |
| | | /// </summary> |
| | | [Description("å
¶ä»å
¥åº")] |
| | | OtherIn, |
| | | |
| | | /// <summary> |
| | | /// éå®åºåº |
| | | /// </summary> |
| | | [Description("éå®åºåº")] |
| | | SaleOut, |
| | | |
| | | /// <summary> |
| | | /// å·¥ååæ |
| | | /// </summary> |
| | | [Description("å·¥ååæ")] |
| | | WorkFeed, |
| | | |
| | | /// <summary> |
| | | /// æä»è¿æ£ |
| | | /// </summary> |
| | | [Description(" æä»è¿æ£")] |
| | | OutToCheck, |
| | | |
| | | /// <summary> |
| | | /// å
¶ä»åºåº |
| | | /// </summary> |
| | | [Description("å
¶ä»åºåº")] |
| | | OtherOut, |
| | | |
| | | /// <summary> |
| | | /// ä¾åºåéè´§ |
| | | /// </summary> |
| | | [Description("ä¾åºåéè´§")] |
| | | SupplierReturn, |
| | | |
| | | /// <summary> |
| | | /// 两æ¥è°æ¨ |
| | | /// </summary> |
| | | [Description("两æ¥è°æ¨")] |
| | | TwoAllocate, |
| | | /// <summary> |
| | | /// åºåè°æ´ |
| | | /// </summary> |
| | | [Description("åºåè°æ´")] |
| | | InventoryAdjust, |
| | | |
| | | /// <summary> |
| | | /// æ åçç¹ |
| | | /// </summary> |
| | | [Description("æ åçç¹")] |
| | | StandardCount, |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºåç±»å 100 ç产å
¥åºå;200 ç产éæå;300 éè´å
¥åºå;400 è°æ¨å
¥åºå;500 éå®éè´§å;600 空çå
¥åºå;700 å
¶ä»å
¥åºå |
| | | /// </summary> |
| | |
| | | [Description("çç¹å
¥åº")] |
| | | InInventory = 135 |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç±»å |
| | | /// </summary> |
| | |
| | | /// 宿 |
| | | /// </summary> |
| | | [Description("宿")] |
| | | Over=100 |
| | | Over = 100 |
| | | } |
| | | |
| | | #region åå§åæ®åæ¥ç¶æ |
| | |
| | | /// å
¥åº |
| | | /// </summary> |
| | | [Description("å
¥åº")] |
| | | å
¥åº=0, |
| | | å
¥åº = 0, |
| | | |
| | | /// <summary> |
| | | /// åºåº |
| | | /// </summary> |
| | | [Description("åºåº")] |
| | | åºåº=1, |
| | | åºåº = 1, |
| | | |
| | | /// <summary> |
| | | /// è°æ¨å
¥åº |
| | | /// </summary> |
| | | [Description("è°æ¨å
¥åº")] |
| | | è°æ¨å
¥åº=2, |
| | | è°æ¨å
¥åº = 2, |
| | | /// <summary> |
| | | /// è°æ¨åºåº |
| | | /// </summary> |
| | | [Description("è°æ¨åºåº")] |
| | | è°æ¨åºåº=3, |
| | | è°æ¨åºåº = 3, |
| | | } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Core.Enums |
| | | { |
| | | public enum PalletTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// 空箱 |
| | | /// </summary> |
| | | Empty = -1, |
| | | |
| | | None = 0, |
| | | |
| | | /// <summary> |
| | | /// å°æç |
| | | /// </summary> |
| | | SmallPallet = 1, |
| | | |
| | | /// <summary> |
| | | /// 䏿ç |
| | | /// </summary> |
| | | MediumPallet = 2, |
| | | |
| | | /// <summary> |
| | | /// 大æç |
| | | /// </summary> |
| | | LargePallet = 3, |
| | | |
| | | /// <summary> |
| | | /// æå¤§æç |
| | | /// </summary> |
| | | LargestPallet = 4 |
| | | } |
| | | } |
| | |
| | | |
| | | [Description("çç¹ä¸")] |
| | | çç¹ä¸ = 11, |
| | | |
| | | [Description("å
¥åºä¸")] |
| | | å
¥åºä¸ = 12, |
| | | } |
| | | |
| | | public enum OutStockStatus |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Core.TaskEnum |
| | | { |
| | | /// <summary> |
| | | /// ä»»å¡ç¶æ |
| | | /// </summary> |
| | | public enum TaskStatusEnum |
| | | { |
| | | /// <summary> |
| | | /// æ°å»ºä»»å¡ |
| | | /// </summary> |
| | | [Description("æ°å»º")] |
| | | New = 100, |
| | | |
| | | /// <summary> |
| | | /// å åæºå¾
æ§è¡ |
| | | /// </summary> |
| | | [Description("å åæºå¾
æ§è¡")] |
| | | SC_Execute = 200, |
| | | |
| | | /// <summary> |
| | | /// å åæºæ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("å åæºæ§è¡ä¸")] |
| | | SC_Executing = 210, |
| | | |
| | | /// <summary> |
| | | /// å åæºå®æ |
| | | /// </summary> |
| | | [Description("å åæºå®æ")] |
| | | SC_Finish = 220, |
| | | |
| | | /// <summary> |
| | | /// è¾é线å¾
æ§è¡ |
| | | /// </summary> |
| | | [Description("è¾é线å¾
æ§è¡")] |
| | | Line_Execute = 400, |
| | | |
| | | /// <summary> |
| | | /// è¾é线æ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("è¾é线æ§è¡ä¸")] |
| | | Line_Executing = 410, |
| | | |
| | | /// <summary> |
| | | /// è¾éçº¿å®æ |
| | | /// </summary> |
| | | [Description("è¾éçº¿å®æ")] |
| | | Line_Finish = 420, |
| | | |
| | | /// <summary> |
| | | /// AGVå¾
æ§è¡ |
| | | /// </summary> |
| | | [Description("AGVå¾
æ§è¡")] |
| | | AGV_Execute = 300, |
| | | |
| | | /// <summary> |
| | | /// AGVæ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("AGVæ§è¡ä¸")] |
| | | AGV_Executing = 310, |
| | | |
| | | /// <summary> |
| | | /// AGVå¾
ç»§ç»æ§è¡ |
| | | /// </summary> |
| | | [Description("AGVå¾
ç»§ç»æ§è¡")] |
| | | AGV_WaitToExecute = 320, |
| | | /// <summary> |
| | | /// AGVæ¾è´§ä¸ |
| | | /// </summary> |
| | | [Description("AGVæ¾è´§ä¸")] |
| | | AGV_Puting = 325, |
| | | |
| | | /// <summary> |
| | | /// AGV宿 |
| | | /// </summary> |
| | | [Description("AGV宿")] |
| | | AGV_Finish = 330, |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å®æ |
| | | /// </summary> |
| | | [Description("ä»»å¡å®æ")] |
| | | Finish = 900, |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡æèµ· |
| | | /// </summary> |
| | | [Description("ä»»å¡æèµ·")] |
| | | Pending = 970, |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡åæ¶ |
| | | /// </summary> |
| | | [Description("ä»»å¡åæ¶")] |
| | | Cancel = 980, |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å¼å¸¸ |
| | | /// </summary> |
| | | [Description("ä»»å¡å¼å¸¸")] |
| | | Exception = 990, |
| | | /// <summary> |
| | | /// æåæºæ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("æåæºæ§è¡ä¸")] |
| | | HT_Executing = 110, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Core.Enums |
| | | { |
| | | public enum WarehouseEnum |
| | | { |
| | | /// <summary> |
| | | /// æ¿æä» |
| | | /// </summary> |
| | | [Description("æ¿æä»")] |
| | | SC01_BC, |
| | | } |
| | | } |
| | |
| | | /// <summary> |
| | | /// WMSä»»å¡ä¸»é® |
| | | /// </summary> |
| | | public int Id { get; set; } |
| | | public int TaskId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | |
| | | /// </summary> |
| | | public int PalletType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CurrentAddress { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string NextAddress { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int Depth { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int SourceKey { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime Dispatchertime { get; set; } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public int MaterialType { get; set; } |
| | | |
| | | } |
| | | } |
| | |
| | | IAreaRouterRepository AreaRouterRepository { get; } |
| | | |
| | | ICachePointRepository CachePointRepository { get; } |
| | | |
| | | IPalletTypeInfoRepository PalletTypeInfoRepository { get; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_IBasicRepository |
| | | { |
| | | public interface IPalletTypeInfoRepository : IRepository<Dt_PalletTypeInfo> |
| | | { |
| | | } |
| | | } |
| | |
| | | |
| | | Dt_LocationInfo? AssignLocation(string stationCode, int inboundType); |
| | | Dt_LocationInfo? AssignLocation(string RoadwayNo); |
| | | |
| | | /// <summary> |
| | | /// è´§ä½åé
é»è¾ |
| | | /// </summary> |
| | | /// <param name="roadwayNo">å··éå·</param> |
| | | /// <param name="palletType">æçç±»å</param> |
| | | /// <returns></returns> |
| | | Dt_LocationInfo? AssignLocation(string roadwayNo, int palletType, int warehouseId, string beRelocationCode = "", int heightType = 0); |
| | | |
| | | void UpdateLocationLock(Dt_LocationInfo locationInfo,int task, int changType,bool black); |
| | | void UpdateLocationFree(Dt_LocationInfo locationInfo, int task, int changType, bool black); |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_IBasicService |
| | | { |
| | | public interface IPalletTypeInfoService : IService<Dt_PalletTypeInfo> |
| | | { |
| | | } |
| | | } |
| | |
| | | WebResponseContent InventoryIn(string name); |
| | | |
| | | WebResponseContent CancelIn(HouseCancelIn houseCancelIn); |
| | | |
| | | Dt_InboundOrder GetInboundOrder(string InboundOrderNo); |
| | | } |
| | | } |
| | |
| | | IInboundOrderDetail_HtyService InboundOrderDetail_HtyService { get; } |
| | | |
| | | IInboundOrderService InbounOrderService { get; } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | |
| | | void AddLocationStatusChangeRecord(Dt_LocationInfo locationInfo, int lastStatus, int changeType, string orderNo, int? taskNum); |
| | | //void AddLocationStatusChangeRecord(Dt_LocationInfo locationInfo, LocationStatusEnum lastStatus, LocationChangeType changeType, string? orderNo = null, int? taskNum = null); |
| | | void AddLocationStatusChangeRecord(Dt_LocationInfo locationInfo, int lastStatus, int newStatus, int changeType, string? orderNo = null, int? taskNum = null); |
| | | |
| | | void AddLocationStatusChangeRecord(List<Dt_LocationInfo> locationInfos, int newStatus, int changeType, string? orderNo, List<int>? taskNums); |
| | | } |
| | |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.Enums; |
| | | using WIDESEA_DTO.Stock; |
| | | using WIDESEA_Model.Models; |
| | | |
| | |
| | | |
| | | List<Dt_StockInfo> GetStockInfosByIds(List<int> ids); |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®è´§ä½ç¼å·è·åç»çåºåä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="materielCode"></param> |
| | | /// <returns></returns> |
| | | List<Dt_StockInfo> LocationCodesGetStockInfos(List<string> locationCodes, StockStatusEmun statusEmun = StockStatusEmun.å·²å
¥åº); |
| | | List<Dt_StockInfo> GetStockInfosByPalletCodes(List<string> palletCodes); |
| | | List<Dt_StockInfo> GetStockInfosByPalletCode(List<string> palletCodes); |
| | | |
| | |
| | | public interface ITaskService : IService<Dt_Task> |
| | | { |
| | | ITaskRepository Repository { get; } |
| | | WebResponseContent InboundRequest(SaveModel saveModel); |
| | | WebResponseContent InboundRequest(string stationCode, string roadwayNo, string palletCode); |
| | | |
| | | WebResponseContent TaskCompleted(int taskNum); |
| | | |
| | | WebResponseContent UpdateTaskStatus(int tasknum, int tasktype); |
| | | |
| | | WebResponseContent GenerateOutboundTask(int orderDetailId, List<StockSelectViewDTO> stockSelectViews); |
| | | |
| | | WebResponseContent GenerateOutboundTask(int[] keys); |
| | |
| | | |
| | | public IInboundOrderRepository Repository => BaseDal; |
| | | |
| | | public InboundOrderService(IInboundOrderRepository BaseDal, IMapper mapper, IBasicService basicService,IBasicRepository basicRepository, IInboundRepository inboundRepository, IUnitOfWorkManage unitOfWorkManage, ITaskRepository taskRepository, IStockService stockService, IInboundOrderDetailService inboundOrderDetailService, IInboundOrder_HtyService inboundOrderHtyService, IInboundOrderDetail_HtyService inboundOrderDetail_HtyService) : base(BaseDal) |
| | | public InboundOrderService(IInboundOrderRepository BaseDal, IMapper mapper, IBasicService basicService, IBasicRepository basicRepository, IInboundRepository inboundRepository, IUnitOfWorkManage unitOfWorkManage, ITaskRepository taskRepository, IStockService stockService, IInboundOrderDetailService inboundOrderDetailService, IInboundOrder_HtyService inboundOrderHtyService, IInboundOrderDetail_HtyService inboundOrderDetail_HtyService) : base(BaseDal) |
| | | { |
| | | _mapper = mapper; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | |
| | | { |
| | | Dt_InboundOrderDetail orderDetail = new Dt_InboundOrderDetail() |
| | | { |
| | | OrderId = inboundOrderOld.Id, |
| | | MaterielCode = item.MaterielCode, |
| | | BatchNo = item.BatchNo, |
| | | OrderQuantity = item.OrderQuantity, |
| | |
| | | OverInQuantity = 0, |
| | | OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(), |
| | | LinId = item.LinId, |
| | | LPNNo=item.LPN_No, |
| | | LPNNo = item.LPN_No, |
| | | MaterielName = item.MaterielName, |
| | | MaterieSpec = item.MaterieSpec |
| | | MaterieSpec = item.MaterieSpec, |
| | | Creater = "䏿¸¸WMS" |
| | | }; |
| | | |
| | | Dt_InboundOrder inboundOrder = new Dt_InboundOrder() |
| | | { |
| | | OrderNo = model.AsnNo, |
| | | UpperOrderNo = model.AsnNo, |
| | | WarehouseId = warehouse.WarehouseId, |
| | | //SupplierId = "", |
| | |
| | | TransactionCode = model.TransactionCode, |
| | | InoutType = model.OrderType, |
| | | OrderType = model.InoutType.ObjToInt(), |
| | | Creater = "䏿¸¸WMS", |
| | | Details = new List<Dt_InboundOrderDetail> { orderDetail } |
| | | }; |
| | | //switch (model.OrderType)//åæ®ç±»å |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Core.DB.Models; |
| | | |
| | | namespace WIDESEA_Model.Models |
| | | { |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | [SugarTable(nameof(Dt_PalletTypeInfo), "æçç±»å")] |
| | | public class Dt_PalletTypeInfo : BaseEntity |
| | | { |
| | | /// <summary> |
| | | /// ä¸»é® |
| | | /// </summary> |
| | | [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "主é®")] |
| | | public int Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "æçç±»å")] |
| | | public int PalletType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçå·èµ·å§å符串 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "æçå·èµ·å§å符串")] |
| | | public string CodeStartStr { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»ååç§° |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "æçç±»ååç§°")] |
| | | public string TypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "é¿åº¦")] |
| | | public int Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宽度 |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "宽度")] |
| | | public int Width { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é«åº¦ |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "é«åº¦")] |
| | | public int Height { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¶æ |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "ç¶æ")] |
| | | public int Enbale { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºç¼å· |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "ä»åºç¼å·")] |
| | | public int WarehouseId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå±å± |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "æå±å±")] |
| | | public string SortNum { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å ç¨è´§ä½æ° |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "å ç¨è´§ä½æ°")] |
| | | public int LocaitonCount { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 大æçæ¯å¦æ¾å¥æ°å |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "大æçæ¯å¦æ¾å¥æ°å")] |
| | | public bool IsOdd { get; set; } |
| | | } |
| | | } |
| | |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "ä»åºä¸»é®")] |
| | | public int WarehouseId { get; set; } |
| | | |
| | | [ImporterHeader(Name = "ç©æè¯¦æ
")] |
| | | [ExporterHeader(DisplayName = "ç©æè¯¦æ
")] |
| | | [ImporterHeader(Name = "åæ®ç¼å·")] |
| | | [ExporterHeader(DisplayName = "åæ®ç¼å·")] |
| | | [CodeRule(WIDESEA_Core.Enums.RuleCode.InboundOrderRule)] |
| | | [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "ç©æè¯¦æ
")] |
| | | [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "åæ®ç¼å·")] |
| | | public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | [CodeRule(WIDESEA_Core.Enums.RuleCode.InboundOrderRule)] |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "åæ®ç¼å·")] |
| | | public string InboundOrderNo { get; set; } |
| | | ///// <summary> |
| | | ///// åæ®ç¼å· |
| | | ///// </summary> |
| | | //[CodeRule(WIDESEA_Core.Enums.RuleCode.InboundOrderRule)] |
| | | //[SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "åæ®ç¼å·")] |
| | | //public string InboundOrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 䏿¸¸åæ®ç¼å· |
| | |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "夿³¨")] |
| | | public string Remark { get; set; } |
| | | [ImporterHeader(Name = "åæ®å°ç±»")] |
| | | [ExporterHeader(DisplayName = "åæ®å°ç±»")] |
| | | |
| | | /// <summary> |
| | | /// åæ®å°ç±» |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "åæ®å°ç±»")] |
| | | public string TransactionCode { get; set; } |
| | | [ImporterHeader(Name = "åºå
¥åºç±»å")] |
| | | [ExporterHeader(DisplayName = "åºå
¥åºç±»å")] |
| | | /// <summary> |
| | | /// åºå
¥åºç±»å |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "åºå
¥åºç±»å")] |
| | | public string InoutType { get; set; } |
| | | |
| | |
| | | [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "䏿¸¸åæ®ç¼å·")] |
| | | public string UpperOrderNo { get; set; } |
| | | |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "åæ®ç±»å")] |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "åæ®ç±»å")] |
| | | public int OrderType { get; set; } |
| | | |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "åæ®ç¶æ")] |
| | |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "ç±»å")] |
| | | public int MaterialType { get; set; } |
| | | |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "å
¥åºåºå·", DefaultValue = "0")] |
| | | public int SerialNumber { get; set; } |
| | | |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "å
¥åºæ¶é´")] |
| | | public DateTime? InDate { get; set; } |
| | | /// <summary> |
| | | /// ä»åºä¸»é® |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "ä»åºä¸»é®")] |
| | | public int WarehouseId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "æçç±»å")] |
| | | public int PalletType { get; set; } |
| | | |
| | | [SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "è´§ä½ç¼å·")] |
| | | public string LocationCode { get; set; } |
| | | |
| | |
| | | public string PalletCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | [SugarColumn(IsNullable = false, ColumnDescription = "æçç±»å")] |
| | | public int PalletType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å··éå· |
| | | /// </summary> |
| | | [ImporterHeader(Name = "å··éå·")] |
| | |
| | | [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "夿³¨")] |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçæ°é |
| | | /// </summary> |
| | | [ImporterHeader(Name = "æçæ°é")] |
| | | [ExporterHeader(DisplayName = "æçæ°é")] |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "æçæ°é")] |
| | | public int PalletCodequantity { get; set; } |
| | | /// <summary> |
| | | /// åææå»å |
| | | /// </summary> |
| | | [ImporterHeader(Name = "åææå»å")] |
| | | [ExporterHeader(DisplayName = "åææå»å")] |
| | | [SugarColumn(IsNullable = true, ColumnDescription = "åææå»å")] |
| | | public int PLCTo { get; set; } |
| | | ///// <summary> |
| | | ///// æçæ°é |
| | | ///// </summary> |
| | | //[ImporterHeader(Name = "æçæ°é")] |
| | | //[ExporterHeader(DisplayName = "æçæ°é")] |
| | | //[SugarColumn(IsNullable = true, ColumnDescription = "æçæ°é")] |
| | | //public int PalletCodequantity { get; set; } |
| | | ///// <summary> |
| | | ///// åææå»å |
| | | ///// </summary> |
| | | //[ImporterHeader(Name = "åææå»å")] |
| | | //[ExporterHeader(DisplayName = "åææå»å")] |
| | | //[SugarColumn(IsNullable = true, ColumnDescription = "åææå»å")] |
| | | //public int PLCTo { get; set; } |
| | | /// <summary> |
| | | /// ç©æç±»å |
| | | /// </summary> |
| | |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_Core.DB; |
| | | using WIDESEA_Core.Enums; |
| | | using WIDESEA_Core.Seed; |
| | | using WIDESEA_IRecordRepository; |
| | | using WIDESEA_IRecordService; |
| | |
| | | BaseDal.AddData(locationStatusChangeRecord); |
| | | } |
| | | |
| | | public void AddLocationStatusChangeRecord(Dt_LocationInfo locationInfo, int lastStatus, int newStatus, int changeType, string? orderNo = null, int? taskNum = null) |
| | | { |
| | | try |
| | | { |
| | | Dt_LocationStatusChangeRecord locationStatusChangeRecord = new Dt_LocationStatusChangeRecord() |
| | | { |
| | | AfterStatus = newStatus, |
| | | BeforeStatus = lastStatus, |
| | | ChangeType = changeType, |
| | | LocationCode = locationInfo.LocationCode, |
| | | LocationId = locationInfo.Id, |
| | | TaskNum = taskNum, |
| | | OrderNo = orderNo ?? "", |
| | | Creater = App.User.UserId == 0 ? "" : "WCS", |
| | | CreateDate = App.User.UserId == 0 ? DateTime.Now : DateTime.Now, |
| | | }; |
| | | |
| | | BaseDal.AddData(locationStatusChangeRecord); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception($"{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | public void AddLocationStatusChangeRecord(List<Dt_LocationInfo> locationInfos, int newStatus, int changeType, string? orderNo, List<int>? taskNums) |
| | | { |
| | | List<Dt_LocationStatusChangeRecord> records = new List<Dt_LocationStatusChangeRecord>(); |
| | |
| | | //ISugarQueryable<Dt_StockInfo> sugarQueryable1 = Db.Queryable<Dt_StockInfo>().Includes(x => x.Details).Where(x => x.Details.Any(v => v.MaterielCode == materielCode)); |
| | | //return sugarQueryable.InnerJoin(sugarQueryable1, (a, b) => a.LocationCode == b.LocationCode).Select((a, b) => b).OrderBy(a => a.CreateDate).Includes(a => a.Details).ToList(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®è´§ä½ç¼å·è·åç»çåºåä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="locationCodes"></param> |
| | | /// <returns></returns> |
| | | public List<Dt_StockInfo> LocationCodesGetStockInfos(List<string> locationCodes, StockStatusEmun statusEmun = StockStatusEmun.å·²å
¥åº) |
| | | { |
| | | return Db.Queryable<Dt_StockInfo>().Where(x => locationCodes.Contains(x.LocationCode) /*&& x.StockStatus == statusEmun.ObjToInt()*/).Includes(x => x.Details).ToList(); |
| | | } |
| | | public List<Dt_StockInfo> GetStockInfosByIds(List<int> ids) |
| | | { |
| | | return Db.Queryable<Dt_StockInfo>().Where(x => ids.Contains(x.Id)).Includes(x => x.Details).ToList(); |
| | |
| | | using Newtonsoft.Json; |
| | | using Microsoft.AspNetCore.Mvc.ViewFeatures; |
| | | using Newtonsoft.Json; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Information; |
| | | using System; |
| | | using System.Collections.Generic; |
| | |
| | | result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; |
| | | } |
| | | break; |
| | | case "inoutType": |
| | | { |
| | | List<object> data = new List<object>(); |
| | | Type type = typeof(InoutTypeEnum); |
| | | List<int> enums = Enum.GetValues(typeof(InoutTypeEnum)).Cast<int>().ToList(); |
| | | int index = 0; |
| | | foreach (var item in enums) |
| | | { |
| | | FieldInfo? fieldInfo = typeof(InoutTypeEnum).GetField(((InoutTypeEnum)item).ToString()); |
| | | DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); |
| | | if (description != null) |
| | | { |
| | | data.Add(new { key = item.ToString(), value = description.Description }); |
| | | } |
| | | else |
| | | { |
| | | data.Add(new { key = item.ToString(), value = item.ToString() }); |
| | | } |
| | | index++; |
| | | } |
| | | |
| | | result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; |
| | | } |
| | | break; |
| | | case "outboundStatusEnum": |
| | | { |
| | | List<object> data = new List<object>(); |
| | |
| | | List<object> data = new List<object>(); |
| | | |
| | | { |
| | | Type type = typeof(InOrderTypeEnum); |
| | | List<int> enums = Enum.GetValues(typeof(InOrderTypeEnum)).Cast<int>().ToList(); |
| | | Type type = typeof(OrderTypeEnum); |
| | | List<int> enums = Enum.GetValues(typeof(OrderTypeEnum)).Cast<int>().ToList(); |
| | | int index = 0; |
| | | foreach (var item in enums) |
| | | { |
| | | FieldInfo? fieldInfo = typeof(InOrderTypeEnum).GetField(((InOrderTypeEnum)item).ToString()); |
| | | FieldInfo? fieldInfo = typeof(OrderTypeEnum).GetField(((OrderTypeEnum)item).ToString()); |
| | | DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); |
| | | if (description != null) |
| | | { |
| | |
| | | using static WIDESEA_Common.HouseInventoryIn; |
| | | using WIDESEA_Common; |
| | | using Parameter = WIDESEA_Common.Parameter; |
| | | using WIDESEA_Core.LogHelper; |
| | | using WIDESEA_DTO.Task; |
| | | using WIDESEA_Core.TaskEnum; |
| | | |
| | | namespace WIDESEA_TaskInfoService |
| | | { |
| | |
| | | /// <param name="stationCode">èµ·å§å°å</param> |
| | | /// <param name="palletCode">æçç¼å·</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | public WebResponseContent InboundRequest(SaveModel saveModel) |
| | | public WebResponseContent InboundRequest(string stationCode, string roadwayNo, string palletCode) |
| | | { |
| | | string palletCode = saveModel.palletCode; |
| | | if (saveModel.palletCode == null) return WebResponseContent.Instance.Error($"请è¾å
¥æ£ç¡®æçå·"); |
| | | WebResponseContent content = new WebResponseContent(); |
| | | // è¾å
¥éªè¯ |
| | | if (string.IsNullOrWhiteSpace(palletCode)) |
| | | return WebResponseContent.Instance.Error("请è¾å
¥æ£ç¡®æçå·"); |
| | | |
| | | try |
| | | { |
| | | Dt_InboundOrderDetail inboundOrderDet = BaseDal.Db.Queryable<Dt_InboundOrderDetail>().Where(x => x.LPNNo == palletCode).First(); |
| | | Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == inboundOrderDet.OrderId).Includes(x => x.Details).First(); |
| | | Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode); |
| | | if (task != null) |
| | | { |
| | | PushTasksToWCS(new List<Dt_Task> { task }); |
| | | return WebResponseContent.Instance.OK($"该æçå·²çæä»»å¡", _mapper.Map<WMSTaskDTO>(task)); |
| | | } |
| | | // è·åå
¥åºåæç» |
| | | var inboundOrderDet = GetInboundOrderDetail(palletCode); |
| | | if (inboundOrderDet == null) |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°æçå· {palletCode} 对åºçå
¥åºåæç»"); |
| | | |
| | | // è·åå
¥åºå |
| | | var inboundOrder = GetInboundOrder(inboundOrderDet.OrderId); |
| | | if (inboundOrder == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°å
¥åºåä¿¡æ¯"); |
| | | } |
| | | Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseId == inboundOrder.WarehouseId); |
| | | Dt_RoadwayInfo roadwayInfo = _basicService.RoadwayInfoService.Repository.QueryFirst(x => x.RoadwayNo == warehouse.WarehouseCode); |
| | | if (roadwayInfo != null) { } |
| | | |
| | | if (inboundOrder.Details == null || inboundOrder.Details.Count <= 0) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°å
¥åºåæç»ä¿¡æ¯"); |
| | | } |
| | | Dt_StockInfo stockInfo1 = BaseDal.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); |
| | | if (stockInfo1 == null) |
| | | { |
| | | Dt_StockInfo dt_Stock = new() |
| | | { |
| | | BatchNo = inboundOrderDet.BatchNo, |
| | | PalletCode = palletCode, |
| | | IsFull = true, |
| | | StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | MaterialType = (int)InventoryMaterialType.æå, |
| | | Materialweight = 0, |
| | | Wlstatus = (int)InventoryMaterialStatus.åæ ¼, |
| | | Mgeneratetime = DateTime.Now, |
| | | }; |
| | | _stockService.StockInfoService.Repository.AddData(dt_Stock); |
| | | // éªè¯å
¥åºåæç» |
| | | if (inboundOrder.Details == null || inboundOrder.Details.Count == 0) |
| | | return WebResponseContent.Instance.Error($"å
¥åºå {inboundOrder.OrderNo} 没ææç»ä¿¡æ¯"); |
| | | |
| | | Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.GetStockInfo(palletCode); |
| | | Dt_StockInfoDetail dt_StockInfoDetail = new() |
| | | { |
| | | StockId = dt_StockInfo.Id, |
| | | MaterielCode = inboundOrderDet.MaterielCode, //ç©æå· |
| | | MaterielName = inboundOrderDet.MaterielName, //ç©æåç§° |
| | | OrderNo = inboundOrder.OrderNo, //ç©æè¯¦æ
|
| | | BatchNo = inboundOrderDet.BatchNo, //ç©ææ¹æ¬¡ |
| | | LinId = inboundOrderDet.LinId, //SerialNumber = targetCodes[2].ToString(), //å
å· |
| | | //BatchNoName = dt_Int.OrderNo, |
| | | StockQuantity = inboundOrderDet.OrderQuantity, //éé |
| | | //OutboundQuantity = 1, //åºåå· |
| | | Status = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | Id = inboundOrderDet.LinId.ObjToInt(), |
| | | }; |
| | | _stockService.StockInfoDetailService.Repository.AddData(dt_StockInfoDetail); |
| | | // è·åä»åºåå··éä¿¡æ¯ |
| | | var warehouse = GetWarehouse(inboundOrder.WarehouseId); |
| | | var roadwayInfo = GetRoadwayInfo(warehouse.WarehouseCode); |
| | | |
| | | // å¤çåºåä¿¡æ¯ |
| | | //var stockInfo = GetOrCreateStockInfo(palletCode, inboundOrder, inboundOrderDet, warehouse); |
| | | var dt_StockInfoDetail = new Dt_StockInfoDetail |
| | | { |
| | | //StockId = stockInfo.Id, |
| | | MaterielCode = inboundOrderDet.MaterielCode, |
| | | MaterielName = inboundOrderDet.MaterielName, |
| | | OrderNo = inboundOrder.OrderNo, |
| | | BatchNo = inboundOrderDet.BatchNo, |
| | | LinId = inboundOrderDet.LinId, |
| | | StockQuantity = inboundOrderDet.OrderQuantity, |
| | | Status = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | Id = inboundOrderDet.LinId.ObjToInt(), |
| | | }; |
| | | |
| | | var dt_Stock = new Dt_StockInfo |
| | | { |
| | | BatchNo = inboundOrderDet.BatchNo, |
| | | PalletCode = palletCode, |
| | | PalletType = GetPalletType(warehouse, palletCode), |
| | | IsFull = true, |
| | | StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | MaterialType = (int)InventoryMaterialType.æå, |
| | | Materialweight = 0, |
| | | Wlstatus = (int)InventoryMaterialStatus.åæ ¼, |
| | | Mgeneratetime = DateTime.Now, |
| | | WarehouseId = warehouse.WarehouseId, |
| | | Details = new List<Dt_StockInfoDetail> { dt_StockInfoDetail } |
| | | }; |
| | | |
| | | // æ£æ¥å
¥åºè¯·æ± |
| | | var checkResult = CheckRequestInbound(roadwayInfo.InSCStationCode, palletCode, true, dt_Stock); |
| | | if (!checkResult.Item1) |
| | | return WebResponseContent.Instance.Error(checkResult.Item2); |
| | | |
| | | // åé
åºä½å¹¶æ´æ°æ°æ® |
| | | Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayNo, dt_Stock.PalletType, dt_Stock.WarehouseId); |
| | | //Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(stationCode, TaskTypeEnum.Inbound.ObjToInt()); |
| | | if (locationInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è´§ä½åé
失败,æªæ¾å°å¯åé
è´§ä½"); |
| | | } |
| | | Dt_StockInfo stockInfo = BaseDal.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); |
| | | (bool, string) result = CheckRequestInbound(roadwayInfo.InSCStationCode, palletCode, true, stockInfo); |
| | | if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2); |
| | | content = AssignLocUpdateData(roadwayInfo.InSCStationCode, TaskTypeEnum.Inbound.ObjToInt(), palletCode, true, stockInfo, inboundOrder.OrderNo); |
| | | |
| | | Dt_Task newTask = new Dt_Task() |
| | | { |
| | | CurrentAddress = stationCode, |
| | | Grade = 0, |
| | | NextAddress = locationInfo.LocationCode, |
| | | PalletCode = palletCode, |
| | | Roadway = roadwayNo, |
| | | SourceAddress = stationCode, |
| | | TargetAddress = locationInfo.LocationCode, |
| | | TaskType = TaskTypeEnum.Inbound.ObjToInt(), |
| | | TaskStatus = TaskStatusEnum.New.ObjToInt(), |
| | | WarehouseId = dt_Stock.WarehouseId, |
| | | PalletType = dt_Stock.PalletType, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | |
| | | LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus; |
| | | _unitOfWorkManage.BeginTran(); |
| | | Db.InsertNav(dt_Stock).Include(x => x.Details).ExecuteCommand(); |
| | | _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, lastStatus.ObjToInt(), LocationStatusEnum.Lock.ObjToInt(), LocationChangeType.InboundAssignLocation.ObjToInt()); |
| | | //_basicService.LocationInfoService.UpdateLocationStatus(locationInfo, newTask.PalletType, LocationStatusEnum.Lock, newTask.WarehouseId); |
| | | int taskId = BaseDal.AddData(newTask); |
| | | newTask.TaskId = taskId; |
| | | _stockRepository.StockInfoRepository.UpdateData(dt_Stock); |
| | | _unitOfWorkManage.CommitTran(); |
| | | WMSTaskDTO wMSTaskDTO = _mapper.Map<WMSTaskDTO>(newTask); |
| | | |
| | | PushTasksToWCS(new List<Dt_Task> { newTask }); |
| | | if (newTask.WarehouseId == 5) PutFinish(stationCode); |
| | | return WebResponseContent.Instance.OK(data: wMSTaskDTO); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | private Dt_InboundOrderDetail GetInboundOrderDetail(string palletCode) |
| | | { |
| | | return BaseDal.Db.Queryable<Dt_InboundOrderDetail>() |
| | | .Where(x => x.LPNNo == palletCode) |
| | | .First(); |
| | | } |
| | | |
| | | private Dt_InboundOrder GetInboundOrder(int orderId) |
| | | { |
| | | return BaseDal.Db.Queryable<Dt_InboundOrder>() |
| | | .Where(x => x.Id == orderId) |
| | | .Includes(x => x.Details) |
| | | .First(); |
| | | } |
| | | |
| | | private Dt_Warehouse GetWarehouse(int warehouseId) |
| | | { |
| | | return _basicService.WarehouseService.Repository |
| | | .QueryFirst(x => x.WarehouseId == warehouseId); |
| | | } |
| | | |
| | | private Dt_RoadwayInfo GetRoadwayInfo(string warehouseCode) |
| | | { |
| | | return _basicService.RoadwayInfoService.Repository |
| | | .QueryFirst(x => x.RoadwayNo == warehouseCode); |
| | | } |
| | | |
| | | private Dt_StockInfo GetOrCreateStockInfo(string palletCode, Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDet, Dt_Warehouse warehouse) |
| | | { |
| | | var stockInfo = BaseDal.Db.Queryable<Dt_StockInfo>() |
| | | .Where(x => x.PalletCode == palletCode) |
| | | .Includes(x => x.Details) |
| | | .First(); |
| | | decimal beforeQuantity = 0; |
| | | if (stockInfo == null) |
| | | { |
| | | stockInfo = CreateNewStockInfo(palletCode, inboundOrder, inboundOrderDet, warehouse); |
| | | //CreateStockInfoDetail(stockInfo, inboundOrder, inboundOrderDet); |
| | | } |
| | | else |
| | | { |
| | | if (stockInfo.StockStatus != StockStatusEmun.ç»çæå.ObjToInt()) |
| | | { |
| | | return null; |
| | | } |
| | | beforeQuantity = stockInfo.Details.Sum(x => x.StockQuantity); |
| | | } |
| | | |
| | | return stockInfo; |
| | | } |
| | | |
| | | private Dt_StockInfo CreateNewStockInfo(string palletCode, Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDet, Dt_Warehouse warehouse) |
| | | { |
| | | var dt_StockInfoDetail = new Dt_StockInfoDetail |
| | | { |
| | | //StockId = stockInfo.Id, |
| | | MaterielCode = inboundOrderDet.MaterielCode, |
| | | MaterielName = inboundOrderDet.MaterielName, |
| | | OrderNo = inboundOrder.OrderNo, |
| | | BatchNo = inboundOrderDet.BatchNo, |
| | | LinId = inboundOrderDet.LinId, |
| | | StockQuantity = inboundOrderDet.OrderQuantity, |
| | | Status = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | Id = inboundOrderDet.LinId.ObjToInt(), |
| | | }; |
| | | |
| | | var dt_Stock = new Dt_StockInfo |
| | | { |
| | | BatchNo = inboundOrderDet.BatchNo, |
| | | PalletCode = palletCode, |
| | | PalletType = GetPalletType(warehouse, palletCode), |
| | | IsFull = true, |
| | | StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | MaterialType = (int)InventoryMaterialType.æå, |
| | | Materialweight = 0, |
| | | Wlstatus = (int)InventoryMaterialStatus.åæ ¼, |
| | | Mgeneratetime = DateTime.Now, |
| | | WarehouseId = warehouse.WarehouseId, |
| | | Details = new List<Dt_StockInfoDetail> { dt_StockInfoDetail } |
| | | }; |
| | | |
| | | //_stockService.StockInfoService.Repository.AddData(dt_Stock); |
| | | Db.InsertNav(dt_Stock).Include(x => x.Details).ExecuteCommand(); |
| | | return _stockService.StockInfoService.Repository.GetStockInfo(palletCode); |
| | | } |
| | | |
| | | private void CreateStockInfoDetail(Dt_StockInfo stockInfo, Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDet) |
| | | { |
| | | var dt_StockInfoDetail = new Dt_StockInfoDetail |
| | | { |
| | | StockId = stockInfo.Id, |
| | | MaterielCode = inboundOrderDet.MaterielCode, |
| | | MaterielName = inboundOrderDet.MaterielName, |
| | | OrderNo = inboundOrder.OrderNo, |
| | | BatchNo = inboundOrderDet.BatchNo, |
| | | LinId = inboundOrderDet.LinId, |
| | | StockQuantity = inboundOrderDet.OrderQuantity, |
| | | Status = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | Id = inboundOrderDet.LinId.ObjToInt(), |
| | | }; |
| | | |
| | | _stockService.StockInfoDetailService.Repository.AddData(dt_StockInfoDetail); |
| | | } |
| | | |
| | | //æ¥è¯¢ä»åºæçè´§ç©ç±»å |
| | | public int GetPalletType(Dt_Warehouse warehouse, string palletCode) |
| | | { |
| | | if (warehouse.WarehouseCode == WarehouseEnum.SC01_BC.ToString()) |
| | | { |
| | | if (palletCode.Substring(0, 1) == "6") |
| | | { |
| | | return PalletTypeEnum.MediumPallet.ObjToInt(); |
| | | } |
| | | else |
| | | { |
| | | return PalletTypeEnum.LargestPallet.ObjToInt(); |
| | | } |
| | | } |
| | | else if (warehouse.WarehouseCode == WarehouseEnum.SC01_BC.ObjToString()) |
| | | { |
| | | Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 1)); |
| | | if (palletTypeInfo == null) |
| | | { |
| | | throw new Exception($"æçå·é误"); |
| | | } |
| | | return palletTypeInfo.PalletType; |
| | | } |
| | | //else if (warehouse.WarehouseCode == WarehouseEnum.HA152.ObjToString()) |
| | | //{ |
| | | // Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 2)); |
| | | // if (palletTypeInfo == null) |
| | | // { |
| | | // throw new Exception($"æçå·é误"); |
| | | // } |
| | | // return palletTypeInfo.PalletType; |
| | | //} |
| | | //else if (warehouse.WarehouseCode == WarehouseEnum.HA57.ObjToString()) |
| | | //{ |
| | | // Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 3)); |
| | | // if (palletTypeInfo == null) |
| | | // { |
| | | // throw new Exception($"æçå·é误"); |
| | | // } |
| | | // return palletTypeInfo.PalletType; |
| | | //} |
| | | return -1; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | #region |
| | | //public WebResponseContent InboundRequest(SaveModel saveModel) |
| | | //{ |
| | | // string palletCode = saveModel.palletCode; |
| | | // if (saveModel.palletCode == null) return WebResponseContent.Instance.Error($"请è¾å
¥æ£ç¡®æçå·"); |
| | | // WebResponseContent content = new WebResponseContent(); |
| | | // try |
| | | // { |
| | | // Dt_InboundOrderDetail inboundOrderDet = BaseDal.Db.Queryable<Dt_InboundOrderDetail>().Where(x => x.LPNNo == palletCode).First(); |
| | | // Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == inboundOrderDet.OrderId).Includes(x => x.Details).First(); |
| | | // if (inboundOrder == null) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"æªæ¾å°å
¥åºåä¿¡æ¯"); |
| | | // } |
| | | // Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseId == inboundOrder.WarehouseId); |
| | | // Dt_RoadwayInfo roadwayInfo = _basicService.RoadwayInfoService.Repository.QueryFirst(x => x.RoadwayNo == warehouse.WarehouseCode); |
| | | // if (roadwayInfo != null) { } |
| | | |
| | | // if (inboundOrder.Details == null || inboundOrder.Details.Count <= 0) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"æªæ¾å°å
¥åºåæç»ä¿¡æ¯"); |
| | | // } |
| | | // Dt_StockInfo stockInfo1 = BaseDal.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); |
| | | // if (stockInfo1 == null) |
| | | // { |
| | | // Dt_StockInfo dt_Stock = new() |
| | | // { |
| | | // BatchNo = inboundOrderDet.BatchNo, |
| | | // PalletCode = palletCode, |
| | | // IsFull = true, |
| | | // StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // MaterialType = (int)InventoryMaterialType.æå, |
| | | // Materialweight = 0, |
| | | // Wlstatus = (int)InventoryMaterialStatus.åæ ¼, |
| | | // Mgeneratetime = DateTime.Now, |
| | | // }; |
| | | // _stockService.StockInfoService.Repository.AddData(dt_Stock); |
| | | |
| | | // Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.GetStockInfo(palletCode); |
| | | // Dt_StockInfoDetail dt_StockInfoDetail = new() |
| | | // { |
| | | // StockId = dt_StockInfo.Id, |
| | | // MaterielCode = inboundOrderDet.MaterielCode, //ç©æå· |
| | | // MaterielName = inboundOrderDet.MaterielName, //ç©æåç§° |
| | | // OrderNo = inboundOrder.OrderNo, //ç©æè¯¦æ
|
| | | // BatchNo = inboundOrderDet.BatchNo, //ç©ææ¹æ¬¡ |
| | | // LinId = inboundOrderDet.LinId, //SerialNumber = targetCodes[2].ToString(), //å
å· |
| | | // //BatchNoName = dt_Int.OrderNo, |
| | | // StockQuantity = inboundOrderDet.OrderQuantity, //éé |
| | | // //OutboundQuantity = 1, //åºåå· |
| | | // Status = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // Id = inboundOrderDet.LinId.ObjToInt(), |
| | | // }; |
| | | // _stockService.StockInfoDetailService.Repository.AddData(dt_StockInfoDetail); |
| | | // } |
| | | // Dt_StockInfo stockInfo = BaseDal.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); |
| | | // (bool, string) result = CheckRequestInbound(roadwayInfo.InSCStationCode, palletCode, true, stockInfo); |
| | | // if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2); |
| | | // content = AssignLocUpdateData(roadwayInfo.InSCStationCode, TaskTypeEnum.Inbound.ObjToInt(), palletCode, true, stockInfo, inboundOrder.OrderNo); |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // content = WebResponseContent.Instance.Error(ex.Message); |
| | | // } |
| | | // return content; |
| | | //} |
| | | #endregion |
| | | public string ReceiveWMSInventoryIn = WIDESEA_Core.Helper.AppSettings.Configuration["ReceiveWMSInventoryIn"]; |
| | | /// <summary> |
| | | /// çç¹å·®å¼æ°éåä¼ |
| | |
| | | return (true, "æå"); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æçæ¡ç ï¼èµ·ç¹ä½ç½®ï¼çæå
¥åºä¿¡æ¯ |
| | | /// </summary> |
| | |
| | | WebResponseContent content = new(); |
| | | try |
| | | { |
| | | OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO(); |
| | | orderAddDTO1.OrderNo = orderAddDTO.No; |
| | | orderAddDTO1.UpperOrderNo = orderAddDTO.No; |
| | | orderAddDTO1.OutWareHouse = orderAddDTO.OutWareHouse; |
| | | orderAddDTO1.TransactionCode = orderAddDTO.TransactionCode; |
| | | orderAddDTO1.InoutType = orderAddDTO.OrderType; |
| | | orderAddDTO1.OrderType = orderAddDTO.InoutType.ObjToInt(); |
| | | IEnumerable<int> inOrderTypes = Enum.GetValues<OrderTypeEmun>().Cast<int>(); |
| | | //orderAddDTO1.OrderType = orderAddDTO.OrderType.ObjToInt(); |
| | | orderAddDTO1.Details = orderAddDTO.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>(); |
| | | #region éªè¯æ°æ® |
| | | (bool, string, object?) result = CheckOutboundOrderAddData(orderAddDTO1); |
| | | if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2); |
| | | #endregion |
| | | |
| | | Dt_OutboundOrder inboundOrder = _mapper.Map<Dt_OutboundOrder>(orderAddDTO1); |
| | | inboundOrder.OrderStatus = InboundStatusEnum.æªå¼å§.ObjToInt(); |
| | | inboundOrder.Creater = "WMS"; |
| | | inboundOrder.CreateDate = DateTime.Now; |
| | | |
| | | |
| | | Dt_OutboundOrder oldOutboundOrder = BaseDal.Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First(); |
| | | Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.OrderId == oldOutboundOrder.Id); |
| | | List<StockSelectViewDTO> stockSelectViews = new List<StockSelectViewDTO>(); |
| | | StockSelectViewDTO stockSelectViewDTO = new() |
| | | Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseCode == orderAddDTO.OutWareHouse); |
| | | if (warehouse == null) |
| | | { |
| | | OrderNo = orderAddDTO1.OrderNo, |
| | | MaterielCode = outboundOrderDetail.MaterielCode, |
| | | MaterielName = outboundOrderDetail.MaterielName, |
| | | UseableQuantity = outboundOrderDetail.OrderQuantity, |
| | | BatchNo = outboundOrderDetail.BatchNo, |
| | | LinId = outboundOrderDetail.LinId, |
| | | PalletCode = outboundOrderDetail.LPNNo, |
| | | }; |
| | | _unitOfWorkManage.BeginTran(); |
| | | bool a = BaseDal.Db.InsertNav(inboundOrder).Include(x => x.Details).ExecuteCommand(); |
| | | stockSelectViews.Add(stockSelectViewDTO); |
| | | GenerateOutboundTasks(oldOutboundOrder.Id, stockSelectViews); |
| | | _unitOfWorkManage.CommitTran(); |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»åºä¿¡æ¯"); |
| | | } |
| | | Dt_OutboundOrder oldOuboundOrder = BaseDal.Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == orderAddDTO.No).Includes(x => x.Details).First(); |
| | | if (oldOuboundOrder != null) |
| | | { |
| | | //if (oldOuboundOrder.Details.FirstOrDefault(x => x.LinId == Convert.ToInt32(orderAddDTO.LinId)) != null) |
| | | //{ |
| | | // return WebResponseContent.Instance.Error($"该æç»è¡å·å·²åå¨"); |
| | | //} |
| | | if (oldOuboundOrder.OutWareHouse != warehouse.WarehouseCode) |
| | | { |
| | | return WebResponseContent.Instance.Error($"ä»åºä¸ä¸è´"); |
| | | } |
| | | else |
| | | { |
| | | OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO(); |
| | | orderAddDTO1.Details = orderAddDTO.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>(); |
| | | var details = orderAddDTO1.Details.FirstOrDefault(); |
| | | Dt_OutboundOrderDetail outboundOrderDetail = new Dt_OutboundOrderDetail() |
| | | { |
| | | LPNNo = details.LPNNo, |
| | | BatchNo = details.BatchNo, |
| | | MaterielCode = details.MaterielCode, |
| | | MaterielName = details.MaterielName, |
| | | MaterieSpec = details.MaterieSpec, |
| | | OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(), |
| | | OrderQuantity = details.OrderQuantity, |
| | | OrderId = oldOuboundOrder.Id, |
| | | Creater = "WMS", |
| | | CreateDate= DateTime.Now, |
| | | }; |
| | | _outboundOrderDetailRepository.AddData(outboundOrderDetail); |
| | | //_outboundOrderDetailRepository.AddData(outboundOrderDetail); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO(); |
| | | orderAddDTO1.OrderNo = orderAddDTO.No; |
| | | orderAddDTO1.UpperOrderNo = orderAddDTO.No; |
| | | orderAddDTO1.OutWareHouse = orderAddDTO.OutWareHouse; |
| | | orderAddDTO1.TransactionCode = orderAddDTO.TransactionCode; |
| | | orderAddDTO1.InoutType = orderAddDTO.OrderType; |
| | | orderAddDTO1.OrderType = orderAddDTO.InoutType.ObjToInt(); |
| | | IEnumerable<int> inOrderTypes = Enum.GetValues<OrderTypeEmun>().Cast<int>(); |
| | | //orderAddDTO1.OrderType = orderAddDTO.OrderType.ObjToInt(); |
| | | orderAddDTO1.Details = orderAddDTO.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>(); |
| | | #region éªè¯æ°æ® |
| | | (bool, string, object?) result = CheckOutboundOrderAddData(orderAddDTO1); |
| | | if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2); |
| | | #endregion |
| | | |
| | | Dt_OutboundOrder inboundOrder = _mapper.Map<Dt_OutboundOrder>(orderAddDTO1); |
| | | inboundOrder.OrderStatus = InboundStatusEnum.æªå¼å§.ObjToInt(); |
| | | inboundOrder.Creater = "WMS"; |
| | | inboundOrder.CreateDate = DateTime.Now; |
| | | bool a = BaseDal.Db.InsertNav(inboundOrder).Include(x => x.Details).ExecuteCommand(); |
| | | |
| | | Dt_OutboundOrder oldOutboundOrder = BaseDal.Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First(); |
| | | Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.OrderId == oldOutboundOrder.Id); |
| | | List<StockSelectViewDTO> stockSelectViews = new List<StockSelectViewDTO>(); |
| | | StockSelectViewDTO stockSelectViewDTO = new() |
| | | { |
| | | OrderNo = orderAddDTO1.OrderNo, |
| | | MaterielCode = outboundOrderDetail.MaterielCode, |
| | | MaterielName = outboundOrderDetail.MaterielName, |
| | | UseableQuantity = outboundOrderDetail.OrderQuantity, |
| | | BatchNo = outboundOrderDetail.BatchNo, |
| | | LinId = outboundOrderDetail.LinId, |
| | | PalletCode = outboundOrderDetail.LPNNo, |
| | | }; |
| | | _unitOfWorkManage.BeginTran(); |
| | | |
| | | stockSelectViews.Add(stockSelectViewDTO); |
| | | GenerateOutboundTasks(oldOutboundOrder.Id, stockSelectViews); |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | |
| | | |
| | | content = WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | |
| | | using AutoMapper; |
| | | using MailKit.Search; |
| | | using Microsoft.AspNetCore.SignalR; |
| | | using Newtonsoft.Json; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using Org.BouncyCastle.Asn1.Tsp; |
| | |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_BasicRepository; |
| | | using WIDESEA_Common; |
| | | using WIDESEA_Common.TaskEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_Core.Enums; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_Core.TaskEnum; |
| | | using WIDESEA_DTO.Inbound; |
| | | using WIDESEA_DTO.Stock; |
| | | using WIDESEA_DTO.Task; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_IInboundService; |
| | |
| | | private readonly IInboundOrderDetail_HtyService _inboundOrderDetail_HtyService; |
| | | private readonly IOutboundOrder_HtyService _outboundOrder_HtyService; |
| | | private readonly IOutboundOrderDetail_HtyService _outboundOrderDetail_HtyService; |
| | | |
| | | private readonly IPalletTypeInfoRepository _palletTypeInfoRepository; |
| | | private readonly IOutboundOrderDetailRepository _outboundOrderDetailRepository; |
| | | public ITaskRepository Repository => BaseDal; |
| | | |
| | | public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IMaterielInfoService materielInfoService, IInboundOrderDetail_HtyService inboundOrderDetail_HtyService, IOutboundOrder_HtyService outboundOrder_HtyService, IOutboundOrderDetail_HtyService outboundOrderDetail_HtyService, IInboundOrder_HtyService inboundOrder_HtyService, IStockRepository stockRepository, IInboundOrderDetailService inboundOrderDetailService, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService) : base(BaseDal) |
| | | public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IMaterielInfoService materielInfoService, IInboundOrderDetail_HtyService inboundOrderDetail_HtyService, IOutboundOrder_HtyService outboundOrder_HtyService, IOutboundOrderDetail_HtyService outboundOrderDetail_HtyService, IInboundOrder_HtyService inboundOrder_HtyService, IStockRepository stockRepository, IInboundOrderDetailService inboundOrderDetailService, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService, IOutboundOrderDetailRepository outboundOrderDetailRepository) : base(BaseDal) |
| | | { |
| | | _mapper = mapper; |
| | | _stockRepository = stockRepository; |
| | |
| | | _inboundOrderDetail_HtyService = inboundOrderDetail_HtyService; |
| | | _outboundOrder_HtyService = outboundOrder_HtyService; |
| | | _outboundOrderDetail_HtyService = outboundOrderDetail_HtyService; |
| | | |
| | | _outboundOrderDetailRepository = outboundOrderDetailRepository; |
| | | } |
| | | |
| | | public string ReceiveWMSTaskin = WIDESEA_Core.Helper.AppSettings.Configuration["ReceiveWMSTaskin"]; |
| | | public string ReceiveWMSTaskout = WIDESEA_Core.Helper.AppSettings.Configuration["ReceiveWMSTaskout"]; |
| | | public string ReceiveWMSTaskAUT = WIDESEA_Core.Helper.AppSettings.Configuration["ReceiveWMSTaskAUT"]; |
| | | public string ReceiveWMSTaskAllocatein = WIDESEA_Core.Helper.AppSettings.Configuration["ReceiveWMSTaskAllocatein"]; |
| | | |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ä¿¡æ¯æ¨éè³WCS |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent PushTasksToWCS(List<Dt_Task> tasks, string agvDescription = "") |
| | | { |
| | | try |
| | | { |
| | | List<WMSTaskDTO> taskDTOs = _mapper.Map<List<WMSTaskDTO>>(tasks); |
| | | taskDTOs.ForEach(x => |
| | | { |
| | | x.AGVArea = agvDescription; |
| | | }); |
| | | string url = AppSettings.app("WCS"); |
| | | if (string.IsNullOrEmpty(url)) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°WCSApiå°å,è¯·æ£æ¥é
ç½®æä»¶"); |
| | | } |
| | | string response = HttpHelper.Post($"{url}/api/Task/ReceiveTask", taskDTOs.Serialize()); |
| | | |
| | | return JsonConvert.DeserializeObject<WebResponseContent>(response) ?? WebResponseContent.Instance.Error("è¿åé误"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// æ¾è´§å®æ |
| | | /// </summary> |
| | | /// <param name="code"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent PutFinish(string code) |
| | | { |
| | | try |
| | | { |
| | | string url = AppSettings.app("WCS"); |
| | | if (string.IsNullOrEmpty(url)) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°WCSAApiå°å,è¯·æ£æ¥é
ç½®æä»¶"); |
| | | } |
| | | string response = HttpHelper.Post($"{url}/api/CTU_AGV/PutFinish?code=" + code); |
| | | |
| | | return JsonConvert.DeserializeObject<WebResponseContent>(response) ?? WebResponseContent.Instance.Error("è¿åé误"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å®æ |
| | |
| | | } |
| | | |
| | | } |
| | | public WebResponseContent UpdateTaskStatus(int taskNum, int tasktype) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.TaskType == tasktype); |
| | | if (task == null) return WebResponseContent.Instance.Error("æªæ¾å°ä»»å¡ä¿¡æ¯"); |
| | | if (TaskEnumHelper.GetTaskTypeGroup(task.TaskType) == TaskTypeGroup.InboundGroup) |
| | | { |
| | | task.TaskStatus = TaskInStatusEnum.InFinish.ObjToInt(); |
| | | content = UpdateTaskStatusInFinish(task); |
| | | } |
| | | } |
| | | catch (Exception) |
| | | { |
| | | |
| | | throw; |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | public WebResponseContent UpdateTaskStatusInFinish(Dt_Task task) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);//ç»çåºå |
| | | Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);//è´§ä½ |
| | | var result = CheckCompleted(stockInfo, locationInfo); |
| | | if (!result.Item1) |
| | | { |
| | | throw new Exception(result.Item2); |
| | | } |
| | | |
| | | if (stockInfo.StockStatus != StockStatusEmun.å
¥åºä¸.ObjToInt()) throw new Exception($"æç[{task.PalletCode}],该ç»çç¶æä¸å¯å
¥åº"); |
| | | Dt_StockInfoDetail stockInfoDetail = stockInfo.Details.FirstOrDefault(x => x.StockId == stockInfo.Id); |
| | | |
| | | List<Dt_StockInfo> stockInfos = _stockService.StockInfoService.Repository.LocationCodesGetStockInfos(new List<string> { stockInfo.LocationCode }).Where(x => x.StockStatus == (int)StockStatusEmun.å·²å
¥åº.ObjToInt()).ToList(); |
| | | if (task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt()) |
| | | { |
| | | stockInfo.SerialNumber = stockInfos.Count + 1; |
| | | stockInfo.InDate = DateTime.Now; |
| | | stockInfo.StockStatus = StockStatusEmun.å·²å
¥åº.ObjToInt(); |
| | | stockInfoDetail.Status = StockStatusEmun.å·²å
¥åº.ObjToInt(); |
| | | locationInfo.LocationStatus = LocationStatusEnum.Pallet.ObjToInt(); |
| | | task.CurrentAddress = task.NextAddress; |
| | | task.NextAddress = string.Empty; |
| | | Db.Ado.BeginTran(); |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | _basicService.LocationInfoService.Repository.UpdateData(locationInfo); |
| | | _stockService.StockInfoService.Repository.UpdateData(stockInfo); |
| | | _stockService.StockInfoDetailService.Repository.UpdateData(stockInfoDetail); |
| | | Db.Ado.CommitTran(); |
| | | return content; |
| | | } |
| | | #region å
¥åºå |
| | | Dt_InboundOrder inboundOrder = _inboundService.InbounOrderService.GetInboundOrder(stockInfoDetail.OrderNo); |
| | | if (inboundOrder != null || inboundOrder.Details.Count < 1) throw new Exception($"æªæ¾å°æç[{task.PalletCode}]çå
¥åºåæç»ä¿¡æ¯"); |
| | | Dt_InboundOrderDetail inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.BatchNo == stockInfoDetail.BatchNo && x.MaterielCode == stockInfoDetail.MaterielCode); |
| | | inboundOrderDetail.OrderDetailStatus = inboundOrderDetail.OverInQuantity == inboundOrderDetail.OrderQuantity ? OrderDetailStatusEnum.Over.ObjToInt() : OrderDetailStatusEnum.GroupAndInbound.ObjToInt(); |
| | | if (inboundOrder.Details.FirstOrDefault(x => x.OrderDetailStatus != OrderDetailStatusEnum.Over.ObjToInt()) == null) |
| | | { |
| | | inboundOrder.OrderStatus = InboundStatusEnum.å
¥åºå®æ.ObjToInt(); |
| | | } |
| | | else if (inboundOrder.OrderStatus == InboundStatusEnum.æªå¼å§.ObjToInt()) |
| | | { |
| | | inboundOrder.OrderStatus = InboundStatusEnum.å
¥åºä¸.ObjToInt(); |
| | | } |
| | | stockInfo.SerialNumber = stockInfos.Count + 1; |
| | | stockInfo.InDate = DateTime.Now; |
| | | stockInfo.StockStatus = StockStatusEmun.å·²å
¥åº.ObjToInt(); |
| | | stockInfoDetail.Status = StockStatusEmun.å·²å
¥åº.ObjToInt(); |
| | | locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | task.CurrentAddress = task.NextAddress; |
| | | task.NextAddress = string.Empty; |
| | | Db.Ado.BeginTran(); |
| | | #region ä»»å¡åå
¥åºå |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | if (inboundOrder.OrderStatus != InboundStatusEnum.å
¥åºå®æ.ObjToInt()) |
| | | { |
| | | _inboundService.InbounOrderService.Repository.UpdateData(inboundOrder); |
| | | _inboundService.InboundOrderDetailService.Repository.UpdateData(inboundOrderDetail); |
| | | } |
| | | else |
| | | { |
| | | List<Dt_InboundOrderDetail> orderDetails = inboundOrder.Details; |
| | | inboundOrder.Details = null; |
| | | _inboundService.InbounOrderService.Repository.DeleteAndMoveIntoHty(inboundOrder, OperateType.èªå¨å®æ); |
| | | _inboundService.InboundOrderDetailService.Repository.DeleteAndMoveIntoHty(orderDetails, OperateType.èªå¨å®æ); |
| | | } |
| | | #endregion |
| | | _basicService.LocationInfoService.Repository.UpdateData(locationInfo); |
| | | _stockService.StockInfoService.Repository.UpdateData(stockInfo); |
| | | _stockService.StockInfoDetailService.Repository.UpdateData(stockInfoDetail); |
| | | //_recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum); |
| | | Db.Ado.CommitTran(); |
| | | SendInboundInfoToWMS(task, inboundOrder, stockInfoDetail); |
| | | #endregion |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Db.Ado.RollbackTran(); |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éªè¯æ°æ® |
| | | /// </summary> |
| | | /// <param name="stockInfo"></param> |
| | | /// <param name="locationInfo"></param> |
| | | /// <returns></returns> |
| | | private (bool, string) CheckCompleted(Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo, bool isCheckStockDetail = true) |
| | | { |
| | | if (stockInfo == null) |
| | | { |
| | | return (false, "æªæ¾å°ç»çä¿¡æ¯"); |
| | | } |
| | | |
| | | if (locationInfo == null) |
| | | { |
| | | return (false, "æªæ¾å°è´§ä½ä¿¡æ¯"); |
| | | } |
| | | |
| | | if (isCheckStockDetail && (stockInfo.Details == null || stockInfo.Details.Count == 0)) |
| | | { |
| | | return (false, "æªæ¾å°ç»çæç»ä¿¡æ¯"); |
| | | } |
| | | |
| | | return (true, "æå"); |
| | | } |
| | | |
| | | #region å
¥åºä»»å¡å®æ |
| | | public WebResponseContent InboundTaskCompleted(int taskNum) |
| | | { |
| | | try |
| | |
| | | { |
| | | return WebResponseContent.Instance.Error($"è´§ä½ç¶æä¸æ£ç¡®"); |
| | | } |
| | | int lastStatus = dt_LocationInfo.LocationStatus; |
| | | dt_LocationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | //int lastStatus = dt_LocationInfo.LocationStatus; |
| | | //dt_LocationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseId == task.WarehouseId); |
| | | |
| | | dt_StockInfo.LocationCode = dt_LocationInfo.LocationCode; |
| | | |
| | | |
| | | Dt_InboundOrder? inboundOrder = _inboundService.InbounOrderService.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == dt_StockInfo.Details.FirstOrDefault().OrderNo).Includes(x => x.Details).First(); |
| | | Dt_InboundOrder? inboundOrder = _inboundService.InbounOrderService.Db.Queryable<Dt_InboundOrder>().Where(x => x.OrderNo == dt_StockInfo.Details.FirstOrDefault().OrderNo).Includes(x => x.Details).First(); |
| | | Dt_InboundOrderDetail? inboundOrderDetail = null; |
| | | //å¤æåæ®ç±»åæ¯å
¥åºè¿æ¯è°æ¨å
¥åºãããå
¥åº |
| | | if (inboundOrder.OrderType == 0 && inboundOrder != null && dt_StockInfo.StockStatus == StockStatusEmun.å
¥åºç¡®è®¤.ObjToInt()) |
| | | { |
| | | #region //夿å
¥åºåæ®æç»åªææå䏿¡å®ææ¶å é¤å
¥åºå |
| | | //æ¥è¯¢å宿çå
¥åºæç»æ°é |
| | | int overCount = inboundOrder.Details.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count; |
| | | //æç»idæ¥è¯¢ |
| | | inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.LinId == dt_StockInfo.Details.FirstOrDefault()?.LinId); |
| | | foreach (var item in dt_StockInfo.Details) |
| | | { |
| | | if (inboundOrderDetail == null) |
| | | { |
| | | continue; |
| | | } |
| | | inboundOrderDetail.OverInQuantity += item.StockQuantity; |
| | | if (inboundOrderDetail.OverInQuantity == inboundOrderDetail.OrderQuantity) |
| | | { |
| | | inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt(); |
| | | overCount += 1; |
| | | } |
| | | else if (inboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()) |
| | | { |
| | | inboundOrderDetail.OrderDetailStatus = InboundStatusEnum.å
¥åºä¸.ObjToInt(); |
| | | } |
| | | } |
| | | dt_StockInfo.Details.ForEach(x => |
| | | { |
| | | x.Status = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | }); |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt(); |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateType.äººå·¥å®æ : OperateType.èªå¨å®æ); |
| | | |
| | | _basicService.LocationInfoService.Repository.UpdateData(dt_LocationInfo); |
| | | _stockRepository.StockInfoRepository.UpdateData(dt_StockInfo); |
| | | _stockRepository.StockInfoDetailRepository.UpdateData(dt_StockInfo.Details); |
| | | _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(dt_LocationInfo, lastStatus, StockChangeType.Inbound.ObjToInt(), "", task.TaskNum); |
| | | _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(dt_StockInfo, dt_StockInfo.Details, dt_StockInfo.Details.Sum(x => x.StockQuantity), dt_StockInfo.Details.Sum(x => x.StockQuantity), StockChangeType.Inbound, task.TaskNum); |
| | | if (inboundOrder != null) |
| | | { |
| | | _inboundService.InbounOrderService.UpdateData(inboundOrder); |
| | | _inboundService.InboundOrderDetailService.UpdateData(inboundOrderDetail); |
| | | } |
| | | _unitOfWorkManage.CommitTran(); |
| | | |
| | | |
| | | |
| | | |
| | | if (inboundOrder.Details.Count == 1) |
| | | { |
| | | var stockInfoDetail = dt_StockInfo.Details.FirstOrDefault(); |
| | | // Dt_InboundOrder_Hty inboundOrder_Hty = new Dt_InboundOrder_Hty |
| | | // { |
| | | // OrderStatus = inboundOrder.OrderStatus, |
| | | // CreateType = inboundOrder.CreateType, |
| | | // //SourceId = oldOutboundOrder.SourceId, |
| | | // UpperOrderNo = inboundOrder.UpperOrderNo, |
| | | // OrderNo = inboundOrder.OrderNo, |
| | | // //OutWareHouse = inboundOrder.OutWareHouse, |
| | | // TransactionCode = inboundOrder.TransactionCode, |
| | | // InoutType = inboundOrder.InoutType, |
| | | // OrderType = inboundOrder.OrderType, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // }; |
| | | // //_inboundOrder_HtyService.AddData(inboundOrder_Hty); |
| | | // //_inboundService.InbounOrderService.DeleteData(inboundOrder); |
| | | //} |
| | | //Dt_InboundOrderDetail_Hty dt_InboundOrderDetail_Hty = new Dt_InboundOrderDetail_Hty |
| | | //{ |
| | | // OrderId = inboundOrderDetail.OrderId, |
| | | // MaterielCode = inboundOrderDetail.MaterielCode, |
| | | // MaterielName = inboundOrderDetail.MaterielName, |
| | | // BatchNo = inboundOrderDetail.BatchNo, |
| | | // OrderQuantity = inboundOrderDetail.OrderQuantity, |
| | | // ReceiptQuantity = inboundOrderDetail.ReceiptQuantity, |
| | | // OverInQuantity = inboundOrderDetail.OverInQuantity, |
| | | // OrderDetailStatus = inboundOrderDetail.OrderDetailStatus, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | //}; |
| | | //_inboundOrderDetail_HtyService.AddData(dt_InboundOrderDetail_Hty); |
| | | //_inboundService.InboundOrderDetailService.DeleteData(inboundOrderDetail); |
| | | #endregion |
| | | #region//å
¥åºä¿¡æ¯è¿åä¸ä½WMSããç«åºå
¥åºæ°éåä¼ |
| | | HouseInboundPassBack houseInboundPassBack = new HouseInboundPassBack(); |
| | | houseInboundPassBack.ApiType = "AsnController"; |
| | | houseInboundPassBack.Method = "AsrsGroudingAsn"; |
| | | data data = new data(); |
| | | data.data1 data1 = new data.data1(); |
| | | data1.AsnNo = task.OrderNo; |
| | | data1.InWarehouse = task.Roadway; |
| | | data1.TransactionCode = inboundOrder.TransactionCode; |
| | | data1.InoutType = inboundOrder.OrderType; |
| | | data1.OrderType = inboundOrder.InoutType; |
| | | data.data1.Inbound inbound = new data.data1.Inbound |
| | | { |
| | | LinId = stockInfoDetail.LinId, |
| | | MaterielCode = stockInfoDetail.MaterielCode, |
| | | OrderQuantity = stockInfoDetail.StockQuantity, |
| | | BatchNo = stockInfoDetail.BatchNo, |
| | | FinishQty = stockInfoDetail.StockQuantity, |
| | | LocationName = task.TargetAddress |
| | | }; |
| | | data.Value.Add(data1); |
| | | data1.DetailList.Add(inbound); |
| | | houseInboundPassBack.Parameters.Add(data); |
| | | Authentication authentication = new Authentication() |
| | | { |
| | | ApiType = "AuthenticationController", |
| | | Parameters = new List<Parameter> |
| | | { |
| | | new Parameter { Value = "LKAdmin"}, |
| | | new Parameter { Value = "LKAdmin"}, |
| | | }, |
| | | Method = "Login", |
| | | }; |
| | | var responses1 = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAUT, authentication, "ç»å½WMSè´¦å·"); |
| | | var Ticket = responses1.Context["Ticket"].ToString(); |
| | | var InvOrgId = responses1.Context["InvOrgId"].ToString(); |
| | | if (Ticket != null) |
| | | { |
| | | houseInboundPassBack.Context = new Dictionary<string, string>(); |
| | | houseInboundPassBack.Context.Add("Ticket", Ticket); |
| | | houseInboundPassBack.Context.Add("InvOrgId", InvOrgId); |
| | | var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskin, houseInboundPassBack, "ç«åºå
¥åºæ°éåä¼ WMS"); |
| | | } |
| | | #endregion |
| | | } |
| | | } |
| | | else |
| | | { |
| | | #region //å¤æè°æ¨å
¥åºåæ®æç»åªææå䏿¡å®ææ¶å é¤å
¥åºå并䏿¬¡è¿åå
¥åºæç»ä¿¡æ¯ |
| | | if (inboundOrder.Details.Count == 1) |
| | | { |
| | | List<Dt_StockInfo> StockInfo = _stockService.StockInfoService.Repository.QueryData(x => x.BatchNo == inboundOrderDetail.BatchNo); |
| | | Dt_InboundOrder_Hty inboundOrder_Hty = new Dt_InboundOrder_Hty |
| | | { |
| | | OrderStatus = inboundOrder.OrderStatus, |
| | | CreateType = inboundOrder.CreateType, |
| | | //SourceId = oldOutboundOrder.SourceId, |
| | | UpperOrderNo = inboundOrder.UpperOrderNo, |
| | | OrderNo = inboundOrder.OrderNo, |
| | | //OutWareHouse = inboundOrder.OutWareHouse, |
| | | TransactionCode = inboundOrder.TransactionCode, |
| | | InoutType = inboundOrder.InoutType, |
| | | OrderType = inboundOrder.OrderType, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | _inboundOrder_HtyService.AddData(inboundOrder_Hty); |
| | | _inboundService.InbounOrderService.DeleteData(inboundOrder); |
| | | Dt_InboundOrderDetail_Hty dt_InboundOrderDetail_HtyS = new Dt_InboundOrderDetail_Hty |
| | | { |
| | | OrderId = inboundOrderDetail.OrderId, |
| | | MaterielCode = inboundOrderDetail.MaterielCode, |
| | | MaterielName = inboundOrderDetail.MaterielName, |
| | | BatchNo = inboundOrderDetail.BatchNo, |
| | | OrderQuantity = inboundOrderDetail.OrderQuantity, |
| | | ReceiptQuantity = inboundOrderDetail.ReceiptQuantity, |
| | | OverInQuantity = inboundOrderDetail.OverInQuantity, |
| | | OrderDetailStatus = inboundOrderDetail.OrderDetailStatus, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | _inboundOrderDetail_HtyService.AddData(dt_InboundOrderDetail_HtyS); |
| | | _inboundService.InboundOrderDetailService.DeleteData(inboundOrderDetail); |
| | | #endregion |
| | | #region//è°æ¨ä»»å¡æ°éåä¼ WMS |
| | | InventoryAllocate inventoryAllocate = new InventoryAllocate(); |
| | | inventoryAllocate.ApiType = "InventoryAllocateController"; |
| | | inventoryAllocate.Method = "AsrsFinishedStockCount"; |
| | | |
| | | Allocate allocate = new Allocate(); |
| | | |
| | | Allocate.data1 data1 = new Allocate.data1(); |
| | | data1.No = task.OrderNo; |
| | | data1.InWarehouse = task.Roadway; |
| | | data1.TransactionCode = inboundOrder.TransactionCode; |
| | | data1.InoutType = inboundOrder.OrderType; |
| | | data1.OrderType = inboundOrder.InoutType; |
| | | foreach (var item in StockInfo) |
| | | { |
| | | Dt_StockInfoDetail detail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == item.Id); |
| | | Allocate.data1.Inventory inbound = new Allocate.data1.Inventory(); |
| | | inbound.LinId = detail.LinId; |
| | | inbound.LPN_No = item.PalletCode; |
| | | inbound.MaterielCode = detail.MaterielCode; |
| | | inbound.OrderQuantity = detail.StockQuantity; |
| | | inbound.BatchNo = detail.BatchNo; |
| | | inbound.FinishQty = detail.StockQuantity; |
| | | inbound.LocationName = item.LocationCode; |
| | | data1.DetailList.Add(inbound); |
| | | } |
| | | allocate.Value.Add(data1); |
| | | inventoryAllocate.Parameters.Add(allocate); |
| | | Authentication authentication = new Authentication() |
| | | { |
| | | ApiType = "AuthenticationController", |
| | | Parameters = new List<Parameter> |
| | | { |
| | | new Parameter { Value = "LKAdmin"}, |
| | | new Parameter { Value = "LKAdmin"}, |
| | | }, |
| | | Method = "Login", |
| | | }; |
| | | var responses1 = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAUT, authentication, "ç»å½WMSè´¦å·"); |
| | | var Ticket = responses1.Context["Ticket"].ToString(); |
| | | var InvOrgId = responses1.Context["InvOrgId"].ToString(); |
| | | if (Ticket != null) |
| | | { |
| | | inventoryAllocate.Context = new Dictionary<string, string>(); |
| | | inventoryAllocate.Context.Add("Ticket", Ticket); |
| | | inventoryAllocate.Context.Add("InvOrgId", InvOrgId); |
| | | var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAllocatein, inventoryAllocate, "è°æ¨å
¥åºæ°éåä¼ WMS"); |
| | | } |
| | | } |
| | | #endregion |
| | | Dt_InboundOrderDetail_Hty dt_InboundOrderDetail_Hty = new Dt_InboundOrderDetail_Hty |
| | | { |
| | | OrderId = inboundOrderDetail.OrderId, |
| | | MaterielCode = inboundOrderDetail.MaterielCode, |
| | | MaterielName = inboundOrderDetail.MaterielName, |
| | | BatchNo = inboundOrderDetail.BatchNo, |
| | | OrderQuantity = inboundOrderDetail.OrderQuantity, |
| | | ReceiptQuantity = inboundOrderDetail.ReceiptQuantity, |
| | | OverInQuantity = inboundOrderDetail.OverInQuantity, |
| | | OrderDetailStatus = inboundOrderDetail.OrderDetailStatus, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | _inboundOrderDetail_HtyService.AddData(dt_InboundOrderDetail_Hty); |
| | | _inboundService.InboundOrderDetailService.DeleteData(inboundOrderDetail); |
| | | } |
| | | return WebResponseContent.Instance.OK(); |
| | | // 3. å¤çå
¥åºé»è¾ |
| | | return ProcessInbound(task, dt_StockInfo, dt_LocationInfo); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | private WebResponseContent ProcessInbound(Dt_Task task, Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo) |
| | | { |
| | | int lastStatus = locationInfo.LocationStatus; |
| | | locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | |
| | | Dt_InboundOrder inboundOrder = _inboundService.InbounOrderService.Db.Queryable<Dt_InboundOrder>() |
| | | .Where(x => x.OrderNo == stockInfo.Details.FirstOrDefault().OrderNo) |
| | | .Includes(x => x.Details) |
| | | .First(); |
| | | |
| | | if (inboundOrder == null) return WebResponseContent.Instance.Error("æªæ¾å°å
¥åºåä¿¡æ¯"); |
| | | |
| | | Dt_InboundOrderDetail inboundOrderDetail = inboundOrder.Details |
| | | .FirstOrDefault(x => x.LinId == stockInfo.Details.FirstOrDefault()?.LinId); |
| | | |
| | | if (inboundOrder.OrderType == 0 && inboundOrder != null && stockInfo.StockStatus == StockStatusEmun.å
¥åºç¡®è®¤.ObjToInt()) |
| | | { |
| | | //å
¥åºæ°éåä¼ |
| | | return ProcessNormalInbound(task, stockInfo, locationInfo, lastStatus, inboundOrder, inboundOrderDetail); |
| | | } |
| | | else |
| | | { |
| | | //è°æ¨åºå
¥åºä»»å¡æ°éåä¼ |
| | | return ProcessAllocateInbound(task, stockInfo, locationInfo, lastStatus, inboundOrder, inboundOrderDetail); |
| | | } |
| | | } |
| | | |
| | | private WebResponseContent ProcessNormalInbound(Dt_Task task, Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo, |
| | | int lastStatus, Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDetail) |
| | | { |
| | | // æ´æ°å
¥åºåæç»ç¶æ |
| | | UpdateInboundOrderDetails(stockInfo, inboundOrder, ref inboundOrderDetail); |
| | | |
| | | // æ´æ°åºåæç»ç¶æ |
| | | stockInfo.Details.ForEach(x => x.Status = StockStatusEmun.å
¥åºå®æ.ObjToInt()); |
| | | |
| | | try |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | |
| | | // æ´æ°ä»»å¡ç¶æ |
| | | UpdateTaskStatus(task); |
| | | |
| | | // æ´æ°è´§ä½ç¶æ |
| | | UpdateLocationStatus(locationInfo, lastStatus); |
| | | |
| | | // æ´æ°åºåä¿¡æ¯ |
| | | UpdateStockInfo(stockInfo); |
| | | |
| | | // æ·»å è®°å½ |
| | | AddRecords(task, stockInfo, locationInfo, lastStatus); |
| | | |
| | | // æ´æ°å
¥åºå |
| | | UpdateInboundOrder(inboundOrder, inboundOrderDetail); |
| | | |
| | | // å¦ææ¯æå䏿¡æç»ï¼å¤çWMSåä¼ |
| | | if (inboundOrder.Details.Count == 1) |
| | | { |
| | | var stockInfoDetail = stockInfo.Details.FirstOrDefault(); |
| | | SendInboundInfoToWMS(task, inboundOrder, stockInfoDetail); |
| | | } |
| | | |
| | | _unitOfWorkManage.CommitTran(); |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | private WebResponseContent ProcessAllocateInbound(Dt_Task task, Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo, |
| | | int lastStatus, Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDetail) |
| | | { |
| | | // å¦ææ¯æå䏿¡æç» |
| | | if (inboundOrder.Details.Count == 1) |
| | | { |
| | | try |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | |
| | | // å¤çè°æ¨å
¥åºå |
| | | //ProcessAllocateInboundOrder(inboundOrder, inboundOrderDetail); |
| | | |
| | | // è·åç¸å
³åºåä¿¡æ¯ |
| | | var relatedStockInfo = _stockService.StockInfoService.Repository |
| | | .QueryData(x => x.BatchNo == inboundOrderDetail.BatchNo); |
| | | |
| | | // åéè°æ¨ä¿¡æ¯å°WMS |
| | | SendAllocateInfoToWMS(task, inboundOrder, relatedStockInfo); |
| | | |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | catch |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | // æ·»å åå²è®°å½ |
| | | AddInboundOrderDetailHistory(inboundOrderDetail); |
| | | |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | |
| | | #region Helper Methods |
| | | |
| | | private void UpdateInboundOrderDetails(Dt_StockInfo stockInfo, Dt_InboundOrder inboundOrder, |
| | | ref Dt_InboundOrderDetail inboundOrderDetail) |
| | | { |
| | | int overCount = inboundOrder.Details.Count(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()); |
| | | inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.LinId == stockInfo.Details.FirstOrDefault()?.LinId); |
| | | |
| | | foreach (var item in stockInfo.Details) |
| | | { |
| | | if (inboundOrderDetail == null) continue; |
| | | |
| | | inboundOrderDetail.OverInQuantity += item.StockQuantity; |
| | | |
| | | if (inboundOrderDetail.OverInQuantity == inboundOrderDetail.OrderQuantity) |
| | | { |
| | | inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt(); |
| | | overCount++; |
| | | } |
| | | else if (inboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()) |
| | | { |
| | | inboundOrderDetail.OrderDetailStatus = InboundStatusEnum.å
¥åºä¸.ObjToInt(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void UpdateTaskStatus(Dt_Task task) |
| | | { |
| | | task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt(); |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateType.äººå·¥å®æ : OperateType.èªå¨å®æ); |
| | | } |
| | | |
| | | private void UpdateLocationStatus(Dt_LocationInfo locationInfo, int lastStatus) |
| | | { |
| | | _basicService.LocationInfoService.Repository.UpdateData(locationInfo); |
| | | } |
| | | |
| | | private void UpdateStockInfo(Dt_StockInfo stockInfo) |
| | | { |
| | | _stockRepository.StockInfoRepository.UpdateData(stockInfo); |
| | | _stockRepository.StockInfoDetailRepository.UpdateData(stockInfo.Details); |
| | | } |
| | | |
| | | private void AddRecords(Dt_Task task, Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo, int lastStatus) |
| | | { |
| | | _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord( |
| | | locationInfo, lastStatus, StockChangeType.Inbound.ObjToInt(), "", task.TaskNum); |
| | | |
| | | _recordService.StockQuantityChangeRecordService.AddStockChangeRecord( |
| | | stockInfo, stockInfo.Details, |
| | | stockInfo.Details.Sum(x => x.StockQuantity), |
| | | stockInfo.Details.Sum(x => x.StockQuantity), |
| | | StockChangeType.Inbound, task.TaskNum); |
| | | } |
| | | |
| | | private void UpdateInboundOrder(Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDetail) |
| | | { |
| | | if (inboundOrder != null) |
| | | { |
| | | _inboundService.InbounOrderService.UpdateData(inboundOrder); |
| | | _inboundService.InboundOrderDetailService.UpdateData(inboundOrderDetail); |
| | | } |
| | | } |
| | | |
| | | private void SendInboundInfoToWMS(Dt_Task task, Dt_InboundOrder inboundOrder, Dt_StockInfoDetail stockInfoDetail) |
| | | { |
| | | if (stockInfoDetail == null) return; |
| | | |
| | | var houseInboundPassBack = new HouseInboundPassBack |
| | | { |
| | | ApiType = "AsnController", |
| | | Method = "AsrsGroudingAsn", |
| | | Parameters = new List<HouseInboundPassBack.data> |
| | | { |
| | | new HouseInboundPassBack.data |
| | | { |
| | | Value = new List<data.data1> |
| | | { |
| | | new data.data1 |
| | | { |
| | | AsnNo = task.OrderNo, |
| | | InWarehouse = task.Roadway, |
| | | TransactionCode = inboundOrder.TransactionCode, |
| | | InoutType = inboundOrder.OrderType, |
| | | OrderType = inboundOrder.InoutType, |
| | | DetailList = new List<data.data1.Inbound> |
| | | { |
| | | new data.data1.Inbound |
| | | { |
| | | LinId = stockInfoDetail.LinId, |
| | | MaterielCode = stockInfoDetail.MaterielCode, |
| | | OrderQuantity = stockInfoDetail.StockQuantity, |
| | | BatchNo = stockInfoDetail.BatchNo, |
| | | FinishQty = stockInfoDetail.StockQuantity, |
| | | LocationName = task.TargetAddress |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | |
| | | var authResult = AuthenticateWithWMS(); |
| | | if (authResult.IsSuccess) |
| | | { |
| | | houseInboundPassBack.Context = new Dictionary<string, string> |
| | | { |
| | | { "Ticket", authResult.Ticket }, |
| | | { "InvOrgId", authResult.InvOrgId } |
| | | }; |
| | | |
| | | HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskin, houseInboundPassBack, "ç«åºå
¥åºæ°éåä¼ WMS"); |
| | | } |
| | | } |
| | | |
| | | private void ProcessAllocateInboundOrder(Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDetail) |
| | | { |
| | | // æ·»å åå²è®°å½ |
| | | var history = new Dt_InboundOrder_Hty |
| | | { |
| | | OrderStatus = inboundOrder.OrderStatus, |
| | | CreateType = inboundOrder.CreateType, |
| | | UpperOrderNo = inboundOrder.UpperOrderNo, |
| | | OrderNo = inboundOrder.OrderNo, |
| | | TransactionCode = inboundOrder.TransactionCode, |
| | | InoutType = inboundOrder.InoutType, |
| | | OrderType = inboundOrder.OrderType, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | _inboundOrder_HtyService.AddData(history); |
| | | |
| | | // æ·»å æç»åå²è®°å½ |
| | | var detailHistory = new Dt_InboundOrderDetail_Hty |
| | | { |
| | | OrderId = inboundOrderDetail.OrderId, |
| | | MaterielCode = inboundOrderDetail.MaterielCode, |
| | | MaterielName = inboundOrderDetail.MaterielName, |
| | | BatchNo = inboundOrderDetail.BatchNo, |
| | | OrderQuantity = inboundOrderDetail.OrderQuantity, |
| | | ReceiptQuantity = inboundOrderDetail.ReceiptQuantity, |
| | | OverInQuantity = inboundOrderDetail.OverInQuantity, |
| | | OrderDetailStatus = inboundOrderDetail.OrderDetailStatus, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | _inboundOrderDetail_HtyService.AddData(detailHistory); |
| | | |
| | | // å é¤åæ°æ® |
| | | _inboundService.InbounOrderService.DeleteData(inboundOrder); |
| | | _inboundService.InboundOrderDetailService.DeleteData(inboundOrderDetail); |
| | | } |
| | | |
| | | private void SendAllocateInfoToWMS(Dt_Task task, Dt_InboundOrder inboundOrder, List<Dt_StockInfo> stockInfos) |
| | | { |
| | | |
| | | var detail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == stockInfos.FirstOrDefault().Id); |
| | | var inventoryAllocate = new InventoryAllocate |
| | | { |
| | | ApiType = "AsnController", |
| | | Method = "AsrsGroudingAsn", |
| | | Parameters = new List<InventoryAllocate.Allocate> |
| | | { |
| | | new InventoryAllocate.Allocate |
| | | { |
| | | Value = new List<Allocate.data1> |
| | | { |
| | | new Allocate.data1 |
| | | { |
| | | No = task.OrderNo, |
| | | InWarehouse = task.Roadway, |
| | | TransactionCode = inboundOrder.TransactionCode, |
| | | InoutType = inboundOrder.OrderType, |
| | | OrderType = inboundOrder.InoutType, |
| | | DetailList = new List<Allocate.data1.Inventory> |
| | | { |
| | | new Allocate.data1.Inventory |
| | | { |
| | | LinId = detail.LinId, |
| | | MaterielCode = detail.MaterielCode, |
| | | OrderQuantity = detail.StockQuantity, |
| | | BatchNo = detail.BatchNo, |
| | | FinishQty = detail.StockQuantity, |
| | | LocationName = task.TargetAddress |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | |
| | | var authResult = AuthenticateWithWMS(); |
| | | if (authResult.IsSuccess) |
| | | { |
| | | inventoryAllocate.Context = new Dictionary<string, string> |
| | | { |
| | | { "Ticket", authResult.Ticket }, |
| | | { "InvOrgId", authResult.InvOrgId } |
| | | }; |
| | | |
| | | HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAllocatein, inventoryAllocate, "è°æ¨å
¥åºæ°éåä¼ WMS"); |
| | | } |
| | | } |
| | | |
| | | private void AddInboundOrderDetailHistory(Dt_InboundOrderDetail inboundOrderDetail) |
| | | { |
| | | var history = new Dt_InboundOrderDetail_Hty |
| | | { |
| | | OrderId = inboundOrderDetail.OrderId, |
| | | MaterielCode = inboundOrderDetail.MaterielCode, |
| | | MaterielName = inboundOrderDetail.MaterielName, |
| | | BatchNo = inboundOrderDetail.BatchNo, |
| | | OrderQuantity = inboundOrderDetail.OrderQuantity, |
| | | ReceiptQuantity = inboundOrderDetail.ReceiptQuantity, |
| | | OverInQuantity = inboundOrderDetail.OverInQuantity, |
| | | OrderDetailStatus = inboundOrderDetail.OrderDetailStatus, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | _inboundOrderDetail_HtyService.AddData(history); |
| | | _inboundService.InboundOrderDetailService.DeleteData(inboundOrderDetail); |
| | | } |
| | | |
| | | private (bool IsSuccess, string Ticket, string InvOrgId) AuthenticateWithWMS() |
| | | { |
| | | var authentication = new Authentication |
| | | { |
| | | ApiType = "AuthenticationController", |
| | | Parameters = new List<Parameter> |
| | | { |
| | | new Parameter { Value = "LKAdmin" }, |
| | | new Parameter { Value = "LKAdmin" } |
| | | }, |
| | | Method = "Login", |
| | | }; |
| | | |
| | | var response = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAUT, authentication, "ç»å½WMSè´¦å·"); |
| | | |
| | | if (response.Status && response.Context != null) |
| | | { |
| | | return (true, response.Context["Ticket"].ToString(), response.Context["InvOrgId"].ToString()); |
| | | } |
| | | |
| | | return (false, null, null); |
| | | } |
| | | |
| | | #endregion |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | #region//åºåºä»»å¡å®æ |
| | | public WebResponseContent OutboundTaskCompleted(int taskNum) |
| | | { |
| | | try |
| | | { |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (task == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°ä»»å¡ä¿¡æ¯"); |
| | | } |
| | | // 1. éªè¯ä»»å¡åè·ååºç¡æ°æ® |
| | | var validationResult = ValidateAndGetBaseData(taskNum, out var task, out var stockInfo, |
| | | out var locationInfo, out var outStockLockInfos); |
| | | if (!validationResult.Status) return validationResult; |
| | | |
| | | Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); |
| | | // 2. å¤çåºåºè®¢å详æ
|
| | | var outboundOrderDetails = ProcessOutboundOrderDetails(outStockLockInfos); |
| | | |
| | | Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress); |
| | | if (stockInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°åºåä¿¡æ¯"); |
| | | } |
| | | if (locationInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°è´§ä½ä¿¡æ¯"); |
| | | } |
| | | |
| | | List<Dt_OutStockLockInfo> outStockLockInfos = _outboundService.OutboundStockLockInfoService.Repository.QueryData(x => x.TaskNum == taskNum); |
| | | if (outStockLockInfos == null || outStockLockInfos.Count == 0) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°åºåºè¯¦æ
ä¿¡æ¯"); |
| | | } |
| | | |
| | | List<Dt_OutboundOrderDetail> outboundOrderDetails = new List<Dt_OutboundOrderDetail>(); |
| | | for (int i = 0; i < outStockLockInfos.Count; i++) |
| | | { |
| | | Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.Id == outStockLockInfos[i].OrderDetailId); |
| | | if (outboundOrderDetail != null) |
| | | { |
| | | outboundOrderDetail.OverOutQuantity = outboundOrderDetail.LockQuantity; |
| | | if (outboundOrderDetail.LockQuantity == outboundOrderDetail.OrderQuantity) |
| | | { |
| | | outboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt(); |
| | | } |
| | | outboundOrderDetails.Add(outboundOrderDetail); |
| | | } |
| | | } |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | _outboundService.OutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails); |
| | | |
| | | stockInfo.LocationCode = locationInfo.LocationCode; |
| | | stockInfo.StockStatus = StockStatusEmun.åºåºå®æ.ObjToInt(); |
| | | _stockService.StockInfoService.Repository.UpdateData(stockInfo); |
| | | |
| | | int beforeStatus = locationInfo.LocationStatus; |
| | | locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt(); |
| | | _basicService.LocationInfoService.Repository.UpdateData(locationInfo); |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | |
| | | _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Outbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum); |
| | | _unitOfWorkManage.CommitTran(); |
| | | Dt_StockInfoDetail stockInfoDetail = _stockRepository.StockInfoDetailRepository.Db.Queryable<Dt_StockInfoDetail>().Where(x => x.StockId == stockInfo.Id).First(); |
| | | Dt_OutboundOrderDetail outDetail = _outboundService.OutboundOrderDetailService.Db.Queryable<Dt_OutboundOrderDetail>().Where(x => x.LPNNo == stockInfo.PalletCode).First(); |
| | | Dt_OutboundOrder outboundOrder = _outboundService.OutboundOrderService.Db.Queryable<Dt_OutboundOrder>().Where(x => x.Id == outDetail.OrderId).Includes(x => x.Details).First(); |
| | | //å¤æåæ®ç±»åæ¯åºåºè¿æ¯è°æ¨åºåºãããåºåº |
| | | if (outboundOrder.OrderType == 1) |
| | | { |
| | | #region //夿åºåºåæ®æç»åªææå䏿¡å®ææ¶å é¤åºåºå |
| | | if (outboundOrder.Details.Count == 1) |
| | | { |
| | | Dt_OutboundOrder_Hty inboundOrder_Hty = new Dt_OutboundOrder_Hty |
| | | { |
| | | OrderStatus = outboundOrder.OrderStatus, |
| | | CreateType = outboundOrder.CreateType, |
| | | //SourceId = oldOutboundOrder.SourceId, |
| | | UpperOrderNo = outboundOrder.UpperOrderNo, |
| | | OrderNo = outboundOrder.OrderNo, |
| | | OutWareHouse = outboundOrder.OutWareHouse, |
| | | TransactionCode = outboundOrder.TransactionCode, |
| | | InoutType = outboundOrder.InoutType, |
| | | OrderType = outboundOrder.OrderType, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | _outboundOrder_HtyService.AddData(inboundOrder_Hty); |
| | | _outboundService.OutboundOrderService.DeleteData(outboundOrder); |
| | | } |
| | | Dt_OutboundOrderDetail_Hty dt_InboundOrderDetail_Hty = new Dt_OutboundOrderDetail_Hty |
| | | { |
| | | OrderId = outDetail.OrderId, |
| | | MaterielCode = outDetail.MaterielCode, |
| | | MaterielName = outDetail.MaterielName, |
| | | BatchNo = outDetail.BatchNo, |
| | | OrderQuantity = outDetail.OrderQuantity, |
| | | //ReceiptQuantity = outDetail.ReceiptQuantity, |
| | | //OverInQuantity = outDetail.OverInQuantity, |
| | | OrderDetailStatus = outDetail.OrderDetailStatus, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | _outboundOrderDetail_HtyService.AddData(dt_InboundOrderDetail_Hty); |
| | | _outboundService.OutboundOrderService.DeleteData(outDetail); |
| | | #endregion |
| | | #region//åºåºä¿¡æ¯è¿åä¸ä½WMSãããç«åºåºåºæ°éåä¼ |
| | | HouseoutboundPassBack houseInboundPassBack = new HouseoutboundPassBack(); |
| | | houseInboundPassBack.ApiType = "ShippingOrderController"; |
| | | houseInboundPassBack.Method = "AsrsOutboundSO"; |
| | | datas datas = new datas(); |
| | | datas.data1 data1 = new datas.data1(); |
| | | data1.No = outboundOrder.OrderNo; |
| | | data1.OutWareHouse = task.Roadway; |
| | | data1.TransactionCode = outboundOrder.TransactionCode; |
| | | data1.InoutType = outboundOrder.OrderType; |
| | | data1.OrderType = outboundOrder.InoutType; |
| | | |
| | | datas.data1.Inbound inbound = new datas.data1.Inbound(); |
| | | inbound.LinId = outDetail.LinId; |
| | | inbound.LPN_No = task.PalletCode; |
| | | inbound.MaterielCode = stockInfoDetail.MaterielCode; |
| | | inbound.OrderQuantity = stockInfoDetail.OutboundQuantity; |
| | | inbound.BatchNo = stockInfoDetail.BatchNo; |
| | | inbound.FinishQty = stockInfoDetail.OutboundQuantity; |
| | | inbound.LocationName = task.SourceAddress; |
| | | datas.Value.Add(data1); |
| | | data1.DetailList.Add(inbound); |
| | | houseInboundPassBack.Parameters.Add(datas); |
| | | Authentication authentication = new Authentication() |
| | | { |
| | | ApiType = "AuthenticationController", |
| | | Parameters = new List<Parameter> |
| | | { |
| | | new Parameter { Value = "LKAdmin"}, |
| | | new Parameter { Value = "LKAdmin"}, |
| | | }, |
| | | Method = "Login", |
| | | }; |
| | | var responses1 = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAUT, authentication, "ç»å½WMSè´¦å·"); |
| | | var Ticket = responses1.Context["Ticket"].ToString(); |
| | | var InvOrgId = responses1.Context["InvOrgId"].ToString(); |
| | | if (Ticket != null) |
| | | { |
| | | houseInboundPassBack.Context = new Dictionary<string, string>(); |
| | | houseInboundPassBack.Context.Add("Ticket", Ticket); |
| | | houseInboundPassBack.Context.Add("InvOrgId", InvOrgId); |
| | | var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskout, houseInboundPassBack, "ç«åºåºåºæ°éåä¼ WMS"); |
| | | } |
| | | #endregion |
| | | //å é¤åºåä¿¡æ¯ |
| | | _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | } |
| | | else if (outboundOrder.OrderType == 240) |
| | | { |
| | | //çç¹åºåºä»»å¡å®æãããããããããä¸è½å é¤åºåçé»è¾ |
| | | } |
| | | else |
| | | { |
| | | |
| | | List<Dt_StockInfo> StockInfo = _stockService.StockInfoService.Repository.QueryData(x => x.BatchNo == outDetail.BatchNo); |
| | | if (outboundOrder.Details.Count == 1) |
| | | { |
| | | Dt_OutboundOrder_Hty inboundOrder_Hty = new Dt_OutboundOrder_Hty |
| | | { |
| | | OrderStatus = outboundOrder.OrderStatus, |
| | | CreateType = outboundOrder.CreateType, |
| | | //SourceId = oldOutboundOrder.SourceId, |
| | | UpperOrderNo = outboundOrder.UpperOrderNo, |
| | | OrderNo = outboundOrder.OrderNo, |
| | | OutWareHouse = outboundOrder.OutWareHouse, |
| | | TransactionCode = outboundOrder.TransactionCode, |
| | | InoutType = outboundOrder.InoutType, |
| | | OrderType = outboundOrder.OrderType, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | _outboundOrder_HtyService.AddData(inboundOrder_Hty); |
| | | _outboundService.OutboundOrderService.DeleteData(outboundOrder); |
| | | } |
| | | Dt_OutboundOrderDetail_Hty dt_InboundOrderDetail_Hty = new Dt_OutboundOrderDetail_Hty |
| | | { |
| | | OrderId = outDetail.OrderId, |
| | | MaterielCode = outDetail.MaterielCode, |
| | | MaterielName = outDetail.MaterielName, |
| | | BatchNo = outDetail.BatchNo, |
| | | OrderQuantity = outDetail.OrderQuantity, |
| | | //ReceiptQuantity = outDetail.ReceiptQuantity, |
| | | //OverInQuantity = outDetail.OverInQuantity, |
| | | OrderDetailStatus = outDetail.OrderDetailStatus, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | _outboundOrderDetail_HtyService.AddData(dt_InboundOrderDetail_Hty); |
| | | _outboundService.OutboundOrderService.DeleteData(outDetail); |
| | | |
| | | InventoryAllocate inventoryAllocate = new InventoryAllocate(); |
| | | inventoryAllocate.ApiType = "InventoryAllocateController"; |
| | | inventoryAllocate.Method = "AsrsFinishedStockCount"; |
| | | |
| | | Allocate allocate = new Allocate(); |
| | | |
| | | Allocate.data1 data1 = new Allocate.data1(); |
| | | data1.No = outboundOrder.OrderNo; |
| | | data1.InWarehouse = task.Roadway; |
| | | data1.TransactionCode = outboundOrder.TransactionCode; |
| | | data1.InoutType = outboundOrder.OrderType; |
| | | data1.OrderType = outboundOrder.InoutType; |
| | | |
| | | foreach (var item in StockInfo) |
| | | { |
| | | Dt_StockInfoDetail detail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == item.Id); |
| | | Allocate.data1.Inventory inbound = new Allocate.data1.Inventory(); |
| | | inbound.LinId = outDetail.LinId; |
| | | inbound.LPN_No = item.PalletCode; |
| | | inbound.MaterielCode = detail.MaterielCode; |
| | | inbound.OrderQuantity = detail.OutboundQuantity; |
| | | inbound.BatchNo = detail.BatchNo; |
| | | inbound.FinishQty = detail.OutboundQuantity; |
| | | inbound.LocationName = task.SourceAddress; |
| | | data1.DetailList.Add(inbound); |
| | | } |
| | | |
| | | |
| | | allocate.Value.Add(data1); |
| | | inventoryAllocate.Parameters.Add(allocate); |
| | | Authentication authentication = new Authentication() |
| | | { |
| | | ApiType = "AuthenticationController", |
| | | Parameters = new List<Parameter> |
| | | { |
| | | new Parameter { Value = "LKAdmin"}, |
| | | new Parameter { Value = "LKAdmin"}, |
| | | }, |
| | | Method = "Login", |
| | | }; |
| | | var responses1 = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAUT, authentication, "ç»å½WMSè´¦å·"); |
| | | var Ticket = responses1.Context["Ticket"].ToString(); |
| | | var InvOrgId = responses1.Context["InvOrgId"].ToString(); |
| | | if (Ticket != null) |
| | | { |
| | | inventoryAllocate.Context = new Dictionary<string, string>(); |
| | | inventoryAllocate.Context.Add("Ticket", Ticket); |
| | | inventoryAllocate.Context.Add("InvOrgId", InvOrgId); |
| | | var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAllocatein, inventoryAllocate, "è°æ¨åºåºæ°éåä¼ WMS"); |
| | | } |
| | | _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | } |
| | | return WebResponseContent.Instance.OK(); |
| | | // 3. æ§è¡æ ¸å¿åºåºé»è¾ |
| | | return ExecuteOutboundLogic(task, stockInfo, locationInfo, outboundOrderDetails); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | #region ç§ææ¹æ³ |
| | | |
| | | private WebResponseContent ValidateAndGetBaseData(int taskNum, out Dt_Task task, |
| | | out Dt_StockInfo stockInfo, out Dt_LocationInfo locationInfo, |
| | | out List<Dt_OutStockLockInfo> outStockLockInfos) |
| | | { |
| | | task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (task == null) |
| | | { |
| | | stockInfo = null; |
| | | locationInfo = null; |
| | | outStockLockInfos = null; |
| | | return WebResponseContent.Instance.Error("æªæ¾å°ä»»å¡ä¿¡æ¯"); |
| | | } |
| | | var SourceAddress = task.SourceAddress; |
| | | stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); |
| | | locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == SourceAddress); |
| | | outStockLockInfos = _outboundService.OutboundStockLockInfoService.Repository.QueryData(x => x.TaskNum == taskNum); |
| | | |
| | | if (stockInfo == null) return WebResponseContent.Instance.Error("æªæ¾å°åºåä¿¡æ¯"); |
| | | if (locationInfo == null) return WebResponseContent.Instance.Error("æªæ¾å°è´§ä½ä¿¡æ¯"); |
| | | if (outStockLockInfos == null || outStockLockInfos.Count == 0) |
| | | return WebResponseContent.Instance.Error("æªæ¾å°åºåºè¯¦æ
ä¿¡æ¯"); |
| | | |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | |
| | | private List<Dt_OutboundOrderDetail> ProcessOutboundOrderDetails(List<Dt_OutStockLockInfo> outStockLockInfos) |
| | | { |
| | | var outboundOrderDetails = new List<Dt_OutboundOrderDetail>(); |
| | | |
| | | foreach (var lockInfo in outStockLockInfos) |
| | | { |
| | | var detail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.Id == lockInfo.OrderDetailId); |
| | | if (detail != null) |
| | | { |
| | | detail.OverOutQuantity = detail.LockQuantity; |
| | | if (detail.LockQuantity == detail.OrderQuantity) |
| | | { |
| | | detail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt(); |
| | | } |
| | | outboundOrderDetails.Add(detail); |
| | | } |
| | | } |
| | | |
| | | return outboundOrderDetails; |
| | | } |
| | | |
| | | private WebResponseContent ExecuteOutboundLogic(Dt_Task task, Dt_StockInfo stockInfo, |
| | | Dt_LocationInfo locationInfo, List<Dt_OutboundOrderDetail> outboundOrderDetails) |
| | | { |
| | | try |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | |
| | | // æ´æ°åºåºè®¢å详æ
|
| | | _outboundService.OutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails); |
| | | |
| | | // æ´æ°åºåç¶æ |
| | | UpdateStockStatus(stockInfo, locationInfo); |
| | | |
| | | // æ´æ°è´§ä½ç¶æ |
| | | UpdateLocationStatus(locationInfo); |
| | | |
| | | // å¤çä»»å¡å®æ |
| | | CompleteTask(task); |
| | | |
| | | // æ·»å ç¶æåæ´è®°å½ |
| | | AddStatusChangeRecord(task, stockInfo, locationInfo); |
| | | |
| | | // æ ¹æ®è®¢åç±»åå¤çä¸åé»è¾ |
| | | var outDetail = _outboundService.OutboundOrderDetailService.Db.Queryable<Dt_OutboundOrderDetail>() |
| | | .Where(x => x.LPNNo == stockInfo.PalletCode).First(); |
| | | var outboundOrder = _outboundService.OutboundOrderService.Db.Queryable<Dt_OutboundOrder>() |
| | | .Where(x => x.Id == outDetail.OrderId).Includes(x => x.Details).First(); |
| | | |
| | | if (outboundOrder.OrderType == 1) // æ®éåºåº |
| | | { |
| | | ProcessNormalOutbound(task, stockInfo, outboundOrder, outDetail); |
| | | } |
| | | else if (outboundOrder.OrderType == 240) // çç¹åºåº |
| | | { |
| | | // çç¹åºåºç¹æ®å¤çé»è¾ |
| | | } |
| | | else // è°æ¨åºåº |
| | | { |
| | | ProcessAllocateOutbound(task, stockInfo, outboundOrder, outDetail); |
| | | } |
| | | |
| | | _unitOfWorkManage.CommitTran(); |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | private void UpdateStockStatus(Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo) |
| | | { |
| | | stockInfo.LocationCode = locationInfo.LocationCode; |
| | | stockInfo.StockStatus = StockStatusEmun.åºåºå®æ.ObjToInt(); |
| | | _stockService.StockInfoService.Repository.UpdateData(stockInfo); |
| | | } |
| | | |
| | | private void UpdateLocationStatus(Dt_LocationInfo locationInfo) |
| | | { |
| | | int beforeStatus = locationInfo.LocationStatus; |
| | | locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt(); |
| | | _basicService.LocationInfoService.Repository.UpdateData(locationInfo); |
| | | } |
| | | |
| | | private void CompleteTask(Dt_Task task) |
| | | { |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | } |
| | | |
| | | private void AddStatusChangeRecord(Dt_Task task, Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo) |
| | | { |
| | | _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord( |
| | | locationInfo, |
| | | locationInfo.LocationStatus, |
| | | StockChangeType.Outbound.ObjToInt(), |
| | | stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", |
| | | task.TaskNum); |
| | | } |
| | | |
| | | private void ProcessNormalOutbound(Dt_Task task, Dt_StockInfo stockInfo, |
| | | Dt_OutboundOrder outboundOrder, Dt_OutboundOrderDetail outDetail) |
| | | { |
| | | var stockInfoDetail = _stockRepository.StockInfoDetailRepository.Db.Queryable<Dt_StockInfoDetail>() |
| | | .Where(x => x.StockId == stockInfo.Id).First(); |
| | | |
| | | if (outboundOrder.Details.Count == 1) |
| | | { |
| | | MoveOutboundOrderToHistory(outboundOrder); |
| | | } |
| | | |
| | | MoveOutboundDetailToHistory(outDetail); |
| | | |
| | | // åéåºåºä¿¡æ¯å°WMS |
| | | SendNormalOutboundToWMS(task, outboundOrder, stockInfoDetail, outDetail); |
| | | |
| | | // å é¤åºåä¿¡æ¯ |
| | | DeleteStockInfo(stockInfo); |
| | | } |
| | | |
| | | private void ProcessAllocateOutbound(Dt_Task task, Dt_StockInfo stockInfo, |
| | | Dt_OutboundOrder outboundOrder, Dt_OutboundOrderDetail outDetail) |
| | | { |
| | | var relatedStockInfos = _stockService.StockInfoService.Repository.QueryData(x => x.BatchNo == outDetail.BatchNo); |
| | | |
| | | if (outboundOrder.Details.Count == 1) |
| | | { |
| | | MoveOutboundOrderToHistory(outboundOrder); |
| | | } |
| | | |
| | | MoveOutboundDetailToHistory(outDetail); |
| | | |
| | | // åéè°æ¨åºåºä¿¡æ¯å°WMS |
| | | SendAllocateOutboundToWMS(task, outboundOrder, outDetail, relatedStockInfos); |
| | | |
| | | // å é¤åºåä¿¡æ¯ |
| | | DeleteStockInfo(stockInfo); |
| | | } |
| | | |
| | | private void MoveOutboundOrderToHistory(Dt_OutboundOrder outboundOrder) |
| | | { |
| | | var history = new Dt_OutboundOrder_Hty |
| | | { |
| | | OrderStatus = outboundOrder.OrderStatus, |
| | | CreateType = outboundOrder.CreateType, |
| | | UpperOrderNo = outboundOrder.UpperOrderNo, |
| | | OrderNo = outboundOrder.OrderNo, |
| | | OutWareHouse = outboundOrder.OutWareHouse, |
| | | TransactionCode = outboundOrder.TransactionCode, |
| | | InoutType = outboundOrder.InoutType, |
| | | OrderType = outboundOrder.OrderType, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | _outboundOrder_HtyService.AddData(history); |
| | | _outboundService.OutboundOrderService.DeleteData(outboundOrder); |
| | | } |
| | | |
| | | private void MoveOutboundDetailToHistory(Dt_OutboundOrderDetail outDetail) |
| | | { |
| | | var detailHistory = new Dt_OutboundOrderDetail_Hty |
| | | { |
| | | OrderId = outDetail.OrderId, |
| | | MaterielCode = outDetail.MaterielCode, |
| | | MaterielName = outDetail.MaterielName, |
| | | BatchNo = outDetail.BatchNo, |
| | | OrderQuantity = outDetail.OrderQuantity, |
| | | OrderDetailStatus = outDetail.OrderDetailStatus, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | _outboundOrderDetail_HtyService.AddData(detailHistory); |
| | | _outboundService.OutboundOrderService.DeleteData(outDetail); |
| | | } |
| | | |
| | | private void SendNormalOutboundToWMS(Dt_Task task, Dt_OutboundOrder outboundOrder, |
| | | Dt_StockInfoDetail stockInfoDetail, Dt_OutboundOrderDetail outDetail) |
| | | { |
| | | var passBack = new HouseoutboundPassBack |
| | | { |
| | | ApiType = "ShippingOrderController", |
| | | Method = "AsrsOutboundSO", |
| | | Parameters = new List<HouseoutboundPassBack.datas> |
| | | { |
| | | new HouseoutboundPassBack.datas |
| | | { |
| | | Value = new List<HouseoutboundPassBack.datas.data1> |
| | | { |
| | | new HouseoutboundPassBack.datas.data1 |
| | | { |
| | | No = outboundOrder.OrderNo, |
| | | OutWareHouse = task.Roadway, |
| | | TransactionCode = outboundOrder.TransactionCode, |
| | | InoutType = outboundOrder.OrderType, |
| | | OrderType = outboundOrder.InoutType, |
| | | DetailList = new List<HouseoutboundPassBack.datas.data1.Inbound> |
| | | { |
| | | new HouseoutboundPassBack.datas.data1.Inbound |
| | | { |
| | | LinId = outDetail.LinId, |
| | | LPN_No = task.PalletCode, |
| | | MaterielCode = stockInfoDetail.MaterielCode, |
| | | OrderQuantity = stockInfoDetail.OutboundQuantity, |
| | | BatchNo = stockInfoDetail.BatchNo, |
| | | FinishQty = stockInfoDetail.OutboundQuantity, |
| | | LocationName = task.SourceAddress |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | |
| | | var authResult = AuthenticateWithWMS(); |
| | | if (authResult.IsSuccess) |
| | | { |
| | | passBack.Context = new Dictionary<string, string> |
| | | { |
| | | { "Ticket", authResult.Ticket }, |
| | | { "InvOrgId", authResult.InvOrgId } |
| | | }; |
| | | |
| | | HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskin, passBack, "ç«åºå
¥åºæ°éåä¼ WMS"); |
| | | } |
| | | } |
| | | |
| | | private void SendAllocateOutboundToWMS(Dt_Task task, Dt_OutboundOrder outboundOrder, |
| | | Dt_OutboundOrderDetail outDetail, List<Dt_StockInfo> stockInfos) |
| | | { |
| | | var allocate = new InventoryAllocate |
| | | { |
| | | ApiType = "InventoryAllocateController", |
| | | Method = "AsrsFinishedStockCount", |
| | | Parameters = new List<Allocate> |
| | | { |
| | | new Allocate |
| | | { |
| | | Value = new List<Allocate.data1> |
| | | { |
| | | new Allocate.data1 |
| | | { |
| | | No = outboundOrder.OrderNo, |
| | | InWarehouse = task.Roadway, |
| | | TransactionCode = outboundOrder.TransactionCode, |
| | | InoutType = outboundOrder.OrderType, |
| | | OrderType = outboundOrder.InoutType, |
| | | DetailList = stockInfos.Select(item => |
| | | { |
| | | var detail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == item.Id); |
| | | return new Allocate.data1.Inventory |
| | | { |
| | | LinId = outDetail.LinId, |
| | | LPN_No = item.PalletCode, |
| | | MaterielCode = detail.MaterielCode, |
| | | OrderQuantity = detail.OutboundQuantity, |
| | | BatchNo = detail.BatchNo, |
| | | FinishQty = detail.OutboundQuantity, |
| | | LocationName = task.SourceAddress |
| | | }; |
| | | }).ToList() |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | |
| | | var authResult = AuthenticateWithWMS(); |
| | | if (authResult.IsSuccess) |
| | | { |
| | | allocate.Context = new Dictionary<string, string> |
| | | { |
| | | { "Ticket", authResult.Ticket }, |
| | | { "InvOrgId", authResult.InvOrgId } |
| | | }; |
| | | |
| | | HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskin, allocate, "ç«åºå
¥åºæ°éåä¼ WMS"); |
| | | } |
| | | } |
| | | |
| | | private void DeleteStockInfo(Dt_StockInfo stockInfo) |
| | | { |
| | | _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, |
| | | App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, |
| | | App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | } |
| | | |
| | | #endregion |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | #region |
| | | //public WebResponseContent InboundTaskCompleted(int taskNum) |
| | | //{ |
| | | // try |
| | | // { |
| | | // Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | // if (task == null) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡"); |
| | | // } |
| | | // if (task.TaskType != TaskTypeEnum.Inbound.ObjToInt()) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"ä»»å¡ç±»åé误"); |
| | | // } |
| | | // Dt_StockInfo dt_StockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == task.PalletCode).Includes(x => x.Details).First(); |
| | | // if (dt_StockInfo == null) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"æªæ¾å°æç对åºçç»çä¿¡æ¯"); |
| | | // } |
| | | |
| | | // if (!string.IsNullOrEmpty(dt_StockInfo.LocationCode)) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"该æçå·²ç»å®è´§ä½"); |
| | | // } |
| | | |
| | | // if (dt_StockInfo.Details == null || dt_StockInfo.Details.Count == 0) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥æçåºåæç»ä¿¡æ¯"); |
| | | // } |
| | | // Dt_LocationInfo dt_LocationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress); |
| | | // if (dt_LocationInfo == null) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"æªæ¾å°ç®æ è´§ä½ä¿¡æ¯"); |
| | | // } |
| | | |
| | | // if (dt_LocationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt()) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"è´§ä½ç¶æä¸æ£ç¡®"); |
| | | // } |
| | | // int lastStatus = dt_LocationInfo.LocationStatus; |
| | | // dt_LocationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | // Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseId == task.WarehouseId); |
| | | |
| | | // dt_StockInfo.LocationCode = dt_LocationInfo.LocationCode; |
| | | |
| | | |
| | | // Dt_InboundOrder? inboundOrder = _inboundService.InbounOrderService.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == dt_StockInfo.Details.FirstOrDefault().OrderNo).Includes(x => x.Details).First(); |
| | | // Dt_InboundOrderDetail? inboundOrderDetail = null; |
| | | // //å¤æåæ®ç±»åæ¯å
¥åºè¿æ¯è°æ¨å
¥åºãããå
¥åº |
| | | // if (inboundOrder.OrderType == 0 && inboundOrder != null && dt_StockInfo.StockStatus == StockStatusEmun.å
¥åºç¡®è®¤.ObjToInt()) |
| | | // { |
| | | // #region //夿å
¥åºåæ®æç»åªææå䏿¡å®ææ¶å é¤å
¥åºå |
| | | // //æ¥è¯¢å宿çå
¥åºæç»æ°é |
| | | // int overCount = inboundOrder.Details.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count; |
| | | // //æç»idæ¥è¯¢ |
| | | // inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.LinId == dt_StockInfo.Details.FirstOrDefault()?.LinId); |
| | | // foreach (var item in dt_StockInfo.Details) |
| | | // { |
| | | // if (inboundOrderDetail == null) |
| | | // { |
| | | // continue; |
| | | // } |
| | | // inboundOrderDetail.OverInQuantity += item.StockQuantity; |
| | | // if (inboundOrderDetail.OverInQuantity == inboundOrderDetail.OrderQuantity) |
| | | // { |
| | | // inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt(); |
| | | // overCount += 1; |
| | | // } |
| | | // else if (inboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()) |
| | | // { |
| | | // inboundOrderDetail.OrderDetailStatus = InboundStatusEnum.å
¥åºä¸.ObjToInt(); |
| | | // } |
| | | // } |
| | | // dt_StockInfo.Details.ForEach(x => |
| | | // { |
| | | // x.Status = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | // }); |
| | | |
| | | // _unitOfWorkManage.BeginTran(); |
| | | // task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt(); |
| | | // BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateType.äººå·¥å®æ : OperateType.èªå¨å®æ); |
| | | |
| | | // _basicService.LocationInfoService.Repository.UpdateData(dt_LocationInfo); |
| | | // _stockRepository.StockInfoRepository.UpdateData(dt_StockInfo); |
| | | // _stockRepository.StockInfoDetailRepository.UpdateData(dt_StockInfo.Details); |
| | | // _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(dt_LocationInfo, lastStatus, StockChangeType.Inbound.ObjToInt(), "", task.TaskNum); |
| | | // _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(dt_StockInfo, dt_StockInfo.Details, dt_StockInfo.Details.Sum(x => x.StockQuantity), dt_StockInfo.Details.Sum(x => x.StockQuantity), StockChangeType.Inbound, task.TaskNum); |
| | | // if (inboundOrder != null) |
| | | // { |
| | | // _inboundService.InbounOrderService.UpdateData(inboundOrder); |
| | | // _inboundService.InboundOrderDetailService.UpdateData(inboundOrderDetail); |
| | | // } |
| | | // _unitOfWorkManage.CommitTran(); |
| | | |
| | | |
| | | |
| | | |
| | | // if (inboundOrder.Details.Count == 1) |
| | | // { |
| | | // var stockInfoDetail = dt_StockInfo.Details.FirstOrDefault(); |
| | | |
| | | // #region//å
¥åºä¿¡æ¯è¿åä¸ä½WMSããç«åºå
¥åºæ°éåä¼ |
| | | // HouseInboundPassBack houseInboundPassBack = new HouseInboundPassBack(); |
| | | // houseInboundPassBack.ApiType = "AsnController"; |
| | | // houseInboundPassBack.Method = "AsrsGroudingAsn"; |
| | | // data data = new data(); |
| | | // data.data1 data1 = new data.data1(); |
| | | // data1.AsnNo = task.OrderNo; |
| | | // data1.InWarehouse = task.Roadway; |
| | | // data1.TransactionCode = inboundOrder.TransactionCode; |
| | | // data1.InoutType = inboundOrder.OrderType; |
| | | // data1.OrderType = inboundOrder.InoutType; |
| | | // data.data1.Inbound inbound = new data.data1.Inbound |
| | | // { |
| | | // LinId = stockInfoDetail.LinId, |
| | | // MaterielCode = stockInfoDetail.MaterielCode, |
| | | // OrderQuantity = stockInfoDetail.StockQuantity, |
| | | // BatchNo = stockInfoDetail.BatchNo, |
| | | // FinishQty = stockInfoDetail.StockQuantity, |
| | | // LocationName = task.TargetAddress |
| | | // }; |
| | | // data.Value.Add(data1); |
| | | // data1.DetailList.Add(inbound); |
| | | // houseInboundPassBack.Parameters.Add(data); |
| | | // Authentication authentication = new Authentication() |
| | | // { |
| | | // ApiType = "AuthenticationController", |
| | | // Parameters = new List<Parameter> |
| | | // { |
| | | // new Parameter { Value = "LKAdmin"}, |
| | | // new Parameter { Value = "LKAdmin"}, |
| | | // }, |
| | | // Method = "Login", |
| | | // }; |
| | | // var responses1 = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAUT, authentication, "ç»å½WMSè´¦å·"); |
| | | // var Ticket = responses1.Context["Ticket"].ToString(); |
| | | // var InvOrgId = responses1.Context["InvOrgId"].ToString(); |
| | | // if (Ticket != null) |
| | | // { |
| | | // houseInboundPassBack.Context = new Dictionary<string, string>(); |
| | | // houseInboundPassBack.Context.Add("Ticket", Ticket); |
| | | // houseInboundPassBack.Context.Add("InvOrgId", InvOrgId); |
| | | // var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskin, houseInboundPassBack, "ç«åºå
¥åºæ°éåä¼ WMS"); |
| | | // } |
| | | // #endregion |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // #region //å¤æè°æ¨å
¥åºåæ®æç»åªææå䏿¡å®ææ¶å é¤å
¥åºå并䏿¬¡è¿åå
¥åºæç»ä¿¡æ¯ |
| | | // if (inboundOrder.Details.Count == 1) |
| | | // { |
| | | // List<Dt_StockInfo> StockInfo = _stockService.StockInfoService.Repository.QueryData(x => x.BatchNo == inboundOrderDetail.BatchNo); |
| | | // Dt_InboundOrder_Hty inboundOrder_Hty = new Dt_InboundOrder_Hty |
| | | // { |
| | | // OrderStatus = inboundOrder.OrderStatus, |
| | | // CreateType = inboundOrder.CreateType, |
| | | // //SourceId = oldOutboundOrder.SourceId, |
| | | // UpperOrderNo = inboundOrder.UpperOrderNo, |
| | | // OrderNo = inboundOrder.OrderNo, |
| | | // //OutWareHouse = inboundOrder.OutWareHouse, |
| | | // TransactionCode = inboundOrder.TransactionCode, |
| | | // InoutType = inboundOrder.InoutType, |
| | | // OrderType = inboundOrder.OrderType, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // }; |
| | | // _inboundOrder_HtyService.AddData(inboundOrder_Hty); |
| | | // _inboundService.InbounOrderService.DeleteData(inboundOrder); |
| | | // Dt_InboundOrderDetail_Hty dt_InboundOrderDetail_HtyS = new Dt_InboundOrderDetail_Hty |
| | | // { |
| | | // OrderId = inboundOrderDetail.OrderId, |
| | | // MaterielCode = inboundOrderDetail.MaterielCode, |
| | | // MaterielName = inboundOrderDetail.MaterielName, |
| | | // BatchNo = inboundOrderDetail.BatchNo, |
| | | // OrderQuantity = inboundOrderDetail.OrderQuantity, |
| | | // ReceiptQuantity = inboundOrderDetail.ReceiptQuantity, |
| | | // OverInQuantity = inboundOrderDetail.OverInQuantity, |
| | | // OrderDetailStatus = inboundOrderDetail.OrderDetailStatus, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // }; |
| | | // _inboundOrderDetail_HtyService.AddData(dt_InboundOrderDetail_HtyS); |
| | | // _inboundService.InboundOrderDetailService.DeleteData(inboundOrderDetail); |
| | | // #endregion |
| | | // #region//è°æ¨ä»»å¡æ°éåä¼ WMS |
| | | // InventoryAllocate inventoryAllocate = new InventoryAllocate(); |
| | | // inventoryAllocate.ApiType = "InventoryAllocateController"; |
| | | // inventoryAllocate.Method = "AsrsFinishedStockCount"; |
| | | |
| | | // Allocate allocate = new Allocate(); |
| | | |
| | | // Allocate.data1 data1 = new Allocate.data1(); |
| | | // data1.No = task.OrderNo; |
| | | // data1.InWarehouse = task.Roadway; |
| | | // data1.TransactionCode = inboundOrder.TransactionCode; |
| | | // data1.InoutType = inboundOrder.OrderType; |
| | | // data1.OrderType = inboundOrder.InoutType; |
| | | // foreach (var item in StockInfo) |
| | | // { |
| | | // Dt_StockInfoDetail detail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == item.Id); |
| | | // Allocate.data1.Inventory inbound = new Allocate.data1.Inventory(); |
| | | // inbound.LinId = detail.LinId; |
| | | // inbound.LPN_No = item.PalletCode; |
| | | // inbound.MaterielCode = detail.MaterielCode; |
| | | // inbound.OrderQuantity = detail.StockQuantity; |
| | | // inbound.BatchNo = detail.BatchNo; |
| | | // inbound.FinishQty = detail.StockQuantity; |
| | | // inbound.LocationName = item.LocationCode; |
| | | // data1.DetailList.Add(inbound); |
| | | // } |
| | | // allocate.Value.Add(data1); |
| | | // inventoryAllocate.Parameters.Add(allocate); |
| | | // Authentication authentication = new Authentication() |
| | | // { |
| | | // ApiType = "AuthenticationController", |
| | | // Parameters = new List<Parameter> |
| | | // { |
| | | // new Parameter { Value = "LKAdmin"}, |
| | | // new Parameter { Value = "LKAdmin"}, |
| | | // }, |
| | | // Method = "Login", |
| | | // }; |
| | | // var responses1 = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAUT, authentication, "ç»å½WMSè´¦å·"); |
| | | // var Ticket = responses1.Context["Ticket"].ToString(); |
| | | // var InvOrgId = responses1.Context["InvOrgId"].ToString(); |
| | | // if (Ticket != null) |
| | | // { |
| | | // inventoryAllocate.Context = new Dictionary<string, string>(); |
| | | // inventoryAllocate.Context.Add("Ticket", Ticket); |
| | | // inventoryAllocate.Context.Add("InvOrgId", InvOrgId); |
| | | // var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAllocatein, inventoryAllocate, "è°æ¨å
¥åºæ°éåä¼ WMS"); |
| | | // } |
| | | // } |
| | | // #endregion |
| | | // Dt_InboundOrderDetail_Hty dt_InboundOrderDetail_Hty = new Dt_InboundOrderDetail_Hty |
| | | // { |
| | | // OrderId = inboundOrderDetail.OrderId, |
| | | // MaterielCode = inboundOrderDetail.MaterielCode, |
| | | // MaterielName = inboundOrderDetail.MaterielName, |
| | | // BatchNo = inboundOrderDetail.BatchNo, |
| | | // OrderQuantity = inboundOrderDetail.OrderQuantity, |
| | | // ReceiptQuantity = inboundOrderDetail.ReceiptQuantity, |
| | | // OverInQuantity = inboundOrderDetail.OverInQuantity, |
| | | // OrderDetailStatus = inboundOrderDetail.OrderDetailStatus, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // }; |
| | | // _inboundOrderDetail_HtyService.AddData(dt_InboundOrderDetail_Hty); |
| | | // _inboundService.InboundOrderDetailService.DeleteData(inboundOrderDetail); |
| | | // } |
| | | // return WebResponseContent.Instance.OK(); |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // _unitOfWorkManage.RollbackTran(); |
| | | // return WebResponseContent.Instance.Error(ex.Message); |
| | | // } |
| | | //} |
| | | #endregion |
| | | #region |
| | | //public WebResponseContent OutboundTaskCompleted(int taskNum) |
| | | //{ |
| | | // try |
| | | // { |
| | | // Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | // if (task == null) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"æªæ¾å°ä»»å¡ä¿¡æ¯"); |
| | | // } |
| | | |
| | | // Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); |
| | | |
| | | // Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress); |
| | | // if (stockInfo == null) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"æªæ¾å°åºåä¿¡æ¯"); |
| | | // } |
| | | // if (locationInfo == null) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"æªæ¾å°è´§ä½ä¿¡æ¯"); |
| | | // } |
| | | |
| | | // List<Dt_OutStockLockInfo> outStockLockInfos = _outboundService.OutboundStockLockInfoService.Repository.QueryData(x => x.TaskNum == taskNum); |
| | | // if (outStockLockInfos == null || outStockLockInfos.Count == 0) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"æªæ¾å°åºåºè¯¦æ
ä¿¡æ¯"); |
| | | // } |
| | | |
| | | // List<Dt_OutboundOrderDetail> outboundOrderDetails = new List<Dt_OutboundOrderDetail>(); |
| | | // for (int i = 0; i < outStockLockInfos.Count; i++) |
| | | // { |
| | | // Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.Id == outStockLockInfos[i].OrderDetailId); |
| | | // if (outboundOrderDetail != null) |
| | | // { |
| | | // outboundOrderDetail.OverOutQuantity = outboundOrderDetail.LockQuantity; |
| | | // if (outboundOrderDetail.LockQuantity == outboundOrderDetail.OrderQuantity) |
| | | // { |
| | | // outboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt(); |
| | | // } |
| | | // outboundOrderDetails.Add(outboundOrderDetail); |
| | | // } |
| | | // } |
| | | |
| | | // _unitOfWorkManage.BeginTran(); |
| | | // _outboundService.OutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails); |
| | | |
| | | // stockInfo.LocationCode = locationInfo.LocationCode; |
| | | // stockInfo.StockStatus = StockStatusEmun.åºåºå®æ.ObjToInt(); |
| | | // _stockService.StockInfoService.Repository.UpdateData(stockInfo); |
| | | |
| | | // int beforeStatus = locationInfo.LocationStatus; |
| | | // locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt(); |
| | | // _basicService.LocationInfoService.Repository.UpdateData(locationInfo); |
| | | // BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | |
| | | // _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Outbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum); |
| | | // _unitOfWorkManage.CommitTran(); |
| | | // Dt_StockInfoDetail stockInfoDetail = _stockRepository.StockInfoDetailRepository.Db.Queryable<Dt_StockInfoDetail>().Where(x => x.StockId == stockInfo.Id).First(); |
| | | // Dt_OutboundOrderDetail outDetail = _outboundService.OutboundOrderDetailService.Db.Queryable<Dt_OutboundOrderDetail>().Where(x => x.LPNNo == stockInfo.PalletCode).First(); |
| | | // Dt_OutboundOrder outboundOrder = _outboundService.OutboundOrderService.Db.Queryable<Dt_OutboundOrder>().Where(x => x.Id == outDetail.OrderId).Includes(x => x.Details).First(); |
| | | // //å¤æåæ®ç±»åæ¯åºåºè¿æ¯è°æ¨åºåºãããåºåº |
| | | // if (outboundOrder.OrderType == 1) |
| | | // { |
| | | // #region //夿åºåºåæ®æç»åªææå䏿¡å®ææ¶å é¤åºåºå |
| | | // if (outboundOrder.Details.Count == 1) |
| | | // { |
| | | // Dt_OutboundOrder_Hty inboundOrder_Hty = new Dt_OutboundOrder_Hty |
| | | // { |
| | | // OrderStatus = outboundOrder.OrderStatus, |
| | | // CreateType = outboundOrder.CreateType, |
| | | // //SourceId = oldOutboundOrder.SourceId, |
| | | // UpperOrderNo = outboundOrder.UpperOrderNo, |
| | | // OrderNo = outboundOrder.OrderNo, |
| | | // OutWareHouse = outboundOrder.OutWareHouse, |
| | | // TransactionCode = outboundOrder.TransactionCode, |
| | | // InoutType = outboundOrder.InoutType, |
| | | // OrderType = outboundOrder.OrderType, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // }; |
| | | // _outboundOrder_HtyService.AddData(inboundOrder_Hty); |
| | | // _outboundService.OutboundOrderService.DeleteData(outboundOrder); |
| | | // } |
| | | // Dt_OutboundOrderDetail_Hty dt_InboundOrderDetail_Hty = new Dt_OutboundOrderDetail_Hty |
| | | // { |
| | | // OrderId = outDetail.OrderId, |
| | | // MaterielCode = outDetail.MaterielCode, |
| | | // MaterielName = outDetail.MaterielName, |
| | | // BatchNo = outDetail.BatchNo, |
| | | // OrderQuantity = outDetail.OrderQuantity, |
| | | // //ReceiptQuantity = outDetail.ReceiptQuantity, |
| | | // //OverInQuantity = outDetail.OverInQuantity, |
| | | // OrderDetailStatus = outDetail.OrderDetailStatus, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // }; |
| | | // _outboundOrderDetail_HtyService.AddData(dt_InboundOrderDetail_Hty); |
| | | // _outboundService.OutboundOrderService.DeleteData(outDetail); |
| | | // #endregion |
| | | // #region//åºåºä¿¡æ¯è¿åä¸ä½WMSãããç«åºåºåºæ°éåä¼ |
| | | // HouseoutboundPassBack houseInboundPassBack = new HouseoutboundPassBack(); |
| | | // houseInboundPassBack.ApiType = "ShippingOrderController"; |
| | | // houseInboundPassBack.Method = "AsrsOutboundSO"; |
| | | // datas datas = new datas(); |
| | | // datas.data1 data1 = new datas.data1(); |
| | | // data1.No = outboundOrder.OrderNo; |
| | | // data1.OutWareHouse = task.Roadway; |
| | | // data1.TransactionCode = outboundOrder.TransactionCode; |
| | | // data1.InoutType = outboundOrder.OrderType; |
| | | // data1.OrderType = outboundOrder.InoutType; |
| | | |
| | | // datas.data1.Inbound inbound = new datas.data1.Inbound(); |
| | | // inbound.LinId = outDetail.LinId; |
| | | // inbound.LPN_No = task.PalletCode; |
| | | // inbound.MaterielCode = stockInfoDetail.MaterielCode; |
| | | // inbound.OrderQuantity = stockInfoDetail.OutboundQuantity; |
| | | // inbound.BatchNo = stockInfoDetail.BatchNo; |
| | | // inbound.FinishQty = stockInfoDetail.OutboundQuantity; |
| | | // inbound.LocationName = task.SourceAddress; |
| | | // datas.Value.Add(data1); |
| | | // data1.DetailList.Add(inbound); |
| | | // houseInboundPassBack.Parameters.Add(datas); |
| | | // Authentication authentication = new Authentication() |
| | | // { |
| | | // ApiType = "AuthenticationController", |
| | | // Parameters = new List<Parameter> |
| | | // { |
| | | // new Parameter { Value = "LKAdmin"}, |
| | | // new Parameter { Value = "LKAdmin"}, |
| | | // }, |
| | | // Method = "Login", |
| | | // }; |
| | | // var responses1 = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAUT, authentication, "ç»å½WMSè´¦å·"); |
| | | // var Ticket = responses1.Context["Ticket"].ToString(); |
| | | // var InvOrgId = responses1.Context["InvOrgId"].ToString(); |
| | | // if (Ticket != null) |
| | | // { |
| | | // houseInboundPassBack.Context = new Dictionary<string, string>(); |
| | | // houseInboundPassBack.Context.Add("Ticket", Ticket); |
| | | // houseInboundPassBack.Context.Add("InvOrgId", InvOrgId); |
| | | // var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskout, houseInboundPassBack, "ç«åºåºåºæ°éåä¼ WMS"); |
| | | // } |
| | | // #endregion |
| | | // //å é¤åºåä¿¡æ¯ |
| | | // _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | // _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | // } |
| | | // else if (outboundOrder.OrderType == 240) |
| | | // { |
| | | // //çç¹åºåºä»»å¡å®æãããããããããä¸è½å é¤åºåçé»è¾ |
| | | // } |
| | | // else |
| | | // { |
| | | |
| | | // List<Dt_StockInfo> StockInfo = _stockService.StockInfoService.Repository.QueryData(x => x.BatchNo == outDetail.BatchNo); |
| | | // if (outboundOrder.Details.Count == 1) |
| | | // { |
| | | // Dt_OutboundOrder_Hty inboundOrder_Hty = new Dt_OutboundOrder_Hty |
| | | // { |
| | | // OrderStatus = outboundOrder.OrderStatus, |
| | | // CreateType = outboundOrder.CreateType, |
| | | // //SourceId = oldOutboundOrder.SourceId, |
| | | // UpperOrderNo = outboundOrder.UpperOrderNo, |
| | | // OrderNo = outboundOrder.OrderNo, |
| | | // OutWareHouse = outboundOrder.OutWareHouse, |
| | | // TransactionCode = outboundOrder.TransactionCode, |
| | | // InoutType = outboundOrder.InoutType, |
| | | // OrderType = outboundOrder.OrderType, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // }; |
| | | // _outboundOrder_HtyService.AddData(inboundOrder_Hty); |
| | | // _outboundService.OutboundOrderService.DeleteData(outboundOrder); |
| | | // } |
| | | // Dt_OutboundOrderDetail_Hty dt_InboundOrderDetail_Hty = new Dt_OutboundOrderDetail_Hty |
| | | // { |
| | | // OrderId = outDetail.OrderId, |
| | | // MaterielCode = outDetail.MaterielCode, |
| | | // MaterielName = outDetail.MaterielName, |
| | | // BatchNo = outDetail.BatchNo, |
| | | // OrderQuantity = outDetail.OrderQuantity, |
| | | // //ReceiptQuantity = outDetail.ReceiptQuantity, |
| | | // //OverInQuantity = outDetail.OverInQuantity, |
| | | // OrderDetailStatus = outDetail.OrderDetailStatus, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // }; |
| | | // _outboundOrderDetail_HtyService.AddData(dt_InboundOrderDetail_Hty); |
| | | // _outboundService.OutboundOrderService.DeleteData(outDetail); |
| | | |
| | | // InventoryAllocate inventoryAllocate = new InventoryAllocate(); |
| | | // inventoryAllocate.ApiType = "InventoryAllocateController"; |
| | | // inventoryAllocate.Method = "AsrsFinishedStockCount"; |
| | | |
| | | // Allocate allocate = new Allocate(); |
| | | |
| | | // Allocate.data1 data1 = new Allocate.data1(); |
| | | // data1.No = outboundOrder.OrderNo; |
| | | // data1.InWarehouse = task.Roadway; |
| | | // data1.TransactionCode = outboundOrder.TransactionCode; |
| | | // data1.InoutType = outboundOrder.OrderType; |
| | | // data1.OrderType = outboundOrder.InoutType; |
| | | |
| | | // foreach (var item in StockInfo) |
| | | // { |
| | | // Dt_StockInfoDetail detail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == item.Id); |
| | | // Allocate.data1.Inventory inbound = new Allocate.data1.Inventory(); |
| | | // inbound.LinId = outDetail.LinId; |
| | | // inbound.LPN_No = item.PalletCode; |
| | | // inbound.MaterielCode = detail.MaterielCode; |
| | | // inbound.OrderQuantity = detail.OutboundQuantity; |
| | | // inbound.BatchNo = detail.BatchNo; |
| | | // inbound.FinishQty = detail.OutboundQuantity; |
| | | // inbound.LocationName = task.SourceAddress; |
| | | // data1.DetailList.Add(inbound); |
| | | // } |
| | | |
| | | |
| | | // allocate.Value.Add(data1); |
| | | // inventoryAllocate.Parameters.Add(allocate); |
| | | // Authentication authentication = new Authentication() |
| | | // { |
| | | // ApiType = "AuthenticationController", |
| | | // Parameters = new List<Parameter> |
| | | // { |
| | | // new Parameter { Value = "LKAdmin"}, |
| | | // new Parameter { Value = "LKAdmin"}, |
| | | // }, |
| | | // Method = "Login", |
| | | // }; |
| | | // var responses1 = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAUT, authentication, "ç»å½WMSè´¦å·"); |
| | | // var Ticket = responses1.Context["Ticket"].ToString(); |
| | | // var InvOrgId = responses1.Context["InvOrgId"].ToString(); |
| | | // if (Ticket != null) |
| | | // { |
| | | // inventoryAllocate.Context = new Dictionary<string, string>(); |
| | | // inventoryAllocate.Context.Add("Ticket", Ticket); |
| | | // inventoryAllocate.Context.Add("InvOrgId", InvOrgId); |
| | | // var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAllocatein, inventoryAllocate, "è°æ¨åºåºæ°éåä¼ WMS"); |
| | | // } |
| | | // _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | // _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | // } |
| | | // return WebResponseContent.Instance.OK(); |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // _unitOfWorkManage.RollbackTran(); |
| | | // return WebResponseContent.Instance.Error(ex.Message); |
| | | // } |
| | | //} |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | ModifyDate = DateTime.Now, |
| | | Modifier = task.Modifier, |
| | | Remark = task.Remark, |
| | | PLCTo=task.PLCTo, |
| | | PalletCodequantity=task.PalletCodequantity, |
| | | //PLCTo=task.PLCTo, |
| | | //PalletCodequantity=task.PalletCodequantity, |
| | | MaterialType = task.MaterialType |
| | | }; |
| | | BaseDal.AddData(task_Hty); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using WIDESEA_Core.BaseController; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_WMSServer.Controllers.Basic |
| | | { |
| | | [Route("api/palletTypeInfo")] |
| | | [ApiController] |
| | | public class PalletTypeInfoController : ApiBaseController<IPalletTypeInfoService, Dt_PalletTypeInfo> |
| | | { |
| | | public PalletTypeInfoController(IPalletTypeInfoService service) : base(service) |
| | | { |
| | | } |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | /// <param name="taskNum"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InboundRequest"),AllowAnonymous] |
| | | public WebResponseContent InboundRequest([FromBody] SaveModel saveModel) |
| | | [HttpPost, Route("InboundRequest"), AllowAnonymous] |
| | | public WebResponseContent InboundRequest(string stationCode, string roadwayNo, string palletCode) |
| | | { |
| | | return Service.InboundRequest(saveModel); |
| | | return Service.InboundRequest(stationCode, roadwayNo, palletCode); |
| | | } |
| | | /// <summary> |
| | | /// 夿巷éå
ç§»åº |
| | |
| | | /// <param name="qty"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InventoryIn"), AllowAnonymous] |
| | | public WebResponseContent InventoryIn([FromBody] string name,int qty) |
| | | public WebResponseContent InventoryIn([FromBody] string name, int qty) |
| | | { |
| | | return Service.InventoryIn(name,qty); |
| | | return Service.InventoryIn(name, qty); |
| | | } |
| | | |
| | | |
| | | [HttpPost,Route("UpdateTaskStatus") ,AllowAnonymous] |
| | | public WebResponseContent UpdateTaskStatus(int tasknum, int tasktype) |
| | | { |
| | | return Service.UpdateTaskStatus(tasknum, tasktype); |
| | | } |
| | | } |
| | | } |
| | |
| | | using WIDESEA_DTO.Inbound; |
| | | using WIDESEA_DTO.Outbound; |
| | | using WIDESEA_DTO.System; |
| | | using WIDESEA_DTO.Task; |
| | | using WIDESEA_Model.Models; |
| | | |
| | | namespace WIDESEA_WMSServer.Filter |
| | |
| | | CreateMap<Sys_Menu, MenuDTO>(); |
| | | CreateMap<InboundOrderDetailAddDTO, Dt_InboundOrderDetail>().ForMember(x => x.OrderDetailStatus, b => b.MapFrom(b => 0)); |
| | | CreateMap<InboundOrderAddDTO, Dt_InboundOrder>(); |
| | | CreateMap<Dt_Task, WMSTaskDTO>(); |
| | | CreateMap<MatSerialNumberDTO, Dt_StockInfoDetail>().ForMember(x => x.StockQuantity, b => b.MapFrom(b => b.MaterielQuantity)); |
| | | 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<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>(); |
| | | } |
| | |
| | | }); ; |
| | | builder.ConfigureApplication(); |
| | | |
| | | App.ExpDateTime = DateTime.Parse("2025-05-31 00:00:00"); |
| | | //App.ExpDateTime = DateTime.Parse("2025-05-31 00:00:00"); |
| | | |
| | | // 2ãé
ç½®æå¡ |
| | | builder.Services.AddSingleton(new AppSettings(builder.Configuration));//注å |
| | |
| | | "Microsoft.AspNetCore": "Warning" |
| | | } |
| | | }, |
| | | "dics": "inOrderType,outOrderType,inboundState,createType,enableEnum,enableStatusEnum,locationStatusEnum,locationTypeEnum,taskTypeEnum,taskStatusEnum,outboundStatusEnum,orderDetailStatusEnum,stockStatusEmun,stockChangeType,outStockStatus,InventoryMaterialType,InventoryMaterialStatus", |
| | | "dics": "inOrderType,inoutType,outOrderType,inboundState,createType,enableEnum,enableStatusEnum,locationStatusEnum,locationTypeEnum,taskTypeEnum,taskStatusEnum,outboundStatusEnum,orderDetailStatusEnum,stockStatusEmun,stockChangeType,outStockStatus,InventoryMaterialType,InventoryMaterialStatus", |
| | | "AllowedHosts": "*", |
| | | |
| | | "ReceiveTask": "http://192.168.110.172:9291/api/Task/ReceiveTask", //ä¸ååºåºä»»å¡è³WCS |