1
hutongqing
2024-08-30 2cc4dfef234b47bef364edf798b5051a25f33217
1
已修改22个文件
已添加4个文件
已重命名7个文件
已删除4个文件
1593 ■■■■■ 文件已修改
WIDESEAWCS_Client/src/views/system/Sys_Dictionary.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Client/src/views/system/Sys_Menu.vue 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/2f837522-9b6d-41cb-92d7-533c1d9bb909.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/32c5916d-65bb-438b-9e5d-c00e23dc21a0.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/43e13bd9-f8d3-454f-9a4f-1b1d51741150.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/57b01f95-2389-4f2b-a60f-15733dafcedd.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/5b8285ca-24aa-4af3-8df7-9efc192c6a87.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/86c97b31-f4c8-46ca-90c0-b311702fcc53.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b3e9f823-2eb5-4161-b8d9-12710cb88c79.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b6011de2-6b92-44e3-9e30-3a4ddf14264f.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d432f789-86c0-4e8a-a056-700bfe523798.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json 1141 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_DTO/WIDESEAWCS_DTO.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_MenuService.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_DictionaryList.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/RoutersAddDTO.cs 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/IDevice.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_Router.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/JobFactory.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IRouterRepository.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/RouterRepository.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDispatchInfoService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IRouterService.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/RouterService.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/CommonStackerCrane.cs 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/RouterController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_MenuController.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_MenuService.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Client/src/views/system/Sys_Dictionary.vue
@@ -37,7 +37,6 @@
      parentId: "",
      orderNo: "",
      enable: "",
      createDate: "",
      dbSql: "",
      remark: "",
      systemType: 1,
@@ -57,12 +56,6 @@
          required: true,
          field: "enable",
          type: "select",
        },
        {
          title: "创建时间",
          field: "createDate",
          disabled: true,
          type: "datetime",
        },
      ],
      [
WIDESEAWCS_Client/src/views/system/Sys_Menu.vue
@@ -176,7 +176,7 @@
        tigger = true;
        let menuId = this.fields.menuId;
        this.http
          .post("/api/menu/delMenu?menuId=" + menuId, {}, "正在删除数据....")
          .post("/api/Sys_Menu/delMenu?menuId=" + menuId, {}, "正在删除数据....")
          .then((x) => {
            if (!x.status) return this.$Message.error(x.message);
            this.$refs.form.reset();
@@ -227,6 +227,7 @@
            orderNo: this.fields.orderNo,
            parentId: this.fields.parentId,
          });
          console.log(this.tree)
        });
      });
    },
@@ -247,6 +248,9 @@
      this.getTreeItem(node[node.length > 1 ? node.length - 1 : 0]);
    }
  },
  created(){
  },
  setup() {
    const tree = ref([]);
    const actionValues = ref([]);
@@ -257,8 +261,8 @@
      { text: "编辑", value: "Update" },
      { text: "导入", value: "Import" },
      { text: "导出", value: "Export" },
      { text: "上传", value: "Upload" },
      { text: "审核", value: "Audit" },
      // { text: "上传", value: "Upload" },
      // { text: "审核", value: "Audit" },
    ]);
    const actions = ref([]);
    actionValues.value = action.value.map((x) => {
@@ -268,9 +272,6 @@
      http.post("/api/Sys_Menu/getMenu", {}, true).then((x) => {
        x.forEach(item => {
          item.icon = 'el-icon-menu';
          if (item.menuType == 1 && !item.parentId) {
            // item.name="(app)"+item.name;
          }
        })
        
        tree.value = x;
@@ -293,7 +294,6 @@
      icon: "",
      orderNo: "",
      enable: 1,
      menuType: null,
      createDate: "",
      creator: "",
      modifyDate: "",
@@ -379,19 +379,19 @@
            { key: 0, value: "禁用" },
          ],
        },
        {
          // 2022.03.26增移动端加菜单类型
          title: "菜单类型",
          field: "menuType",
          required: true,
          type: "select",
          colSize: 4,
          data: [
            { key: 1, value: "WCS菜单" },
            { key: 0, value: "WMS菜单" },
            { key: 99, value: "共用" }
          ],
        },
        // {
        //   // 2022.03.26增移动端加菜单类型
        //   title: "菜单类型",
        //   field: "menuType",
        //   required: true,
        //   type: "select",
        //   colSize: 4,
        //   data: [
        //     { key: 1, value: "WCS菜单" },
        //     { key: 0, value: "WMS菜单" },
        //     { key: 99, value: "共用" }
        //   ],
        // },
        {
          title: "图标Icon",
          field: "icon",
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/2f837522-9b6d-41cb-92d7-533c1d9bb909.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/32c5916d-65bb-438b-9e5d-c00e23dc21a0.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/43e13bd9-f8d3-454f-9a4f-1b1d51741150.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/57b01f95-2389-4f2b-a60f-15733dafcedd.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/5b8285ca-24aa-4af3-8df7-9efc192c6a87.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/86c97b31-f4c8-46ca-90c0-b311702fcc53.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b3e9f823-2eb5-4161-b8d9-12710cb88c79.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b6011de2-6b92-44e3-9e30-3a4ddf14264f.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d432f789-86c0-4e8a-a056-700bfe523798.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -3,228 +3,104 @@
  "WorkspaceRootPath": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\service\\deviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\wideseawcs_core.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\wideseawcs_core.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\middlewares\\exceptionhandlermiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\middlewares\\exceptionhandlermiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\routerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\routerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\models\\dt_deviceinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_router.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_router.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\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:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\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:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\basicinfo\\routercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\basicinfo\\routercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\irouterservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\irouterservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\idispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\idispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\routerrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\routerrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\irouterrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\irouterrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\ideviceprotocolrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\ideviceprotocolrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\idispatchinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\idispatchinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_deviceinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_deviceinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_dispatchinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_dispatchinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_tasks\\wideseawcs_tasks.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\wideseawcs_tasks.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\stackercrane\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_tasks\\stackercranejob\\stackercranedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\stackercranedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\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:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\devicebase\\idevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\idevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\models\\dt_deviceprotocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_deviceprotocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_server\\controllers\\quartzjob\\deviceprotocolcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\quartzjob\\deviceprotocolcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_communicator\\siemens\\siemensdbdatatype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\siemens\\siemensdbdatatype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_server\\controllers\\quartzjob\\deviceinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\quartzjob\\deviceinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\service\\ideviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\ideviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\basecontroller\\apibasecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\basecontroller\\apibasecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\middlewares\\httprequestmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\middlewares\\httprequestmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\filter\\apiauthorizefilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\filter\\apiauthorizefilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\middlewares\\middlewarehelpers.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\middlewares\\middlewarehelpers.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\middlewares\\apilogmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\middlewares\\apilogmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\helper\\httpcontexthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\helper\\httpcontexthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\seed\\dbcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\seed\\dbcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\httpcontextuser\\aspnetuser.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\httpcontextuser\\aspnetuser.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\extensions\\httpcontextsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\httpcontextsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\aop\\logaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\logaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\middlewares\\swaggermiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\middlewares\\swaggermiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\middlewares\\swaggerauthmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\middlewares\\swaggerauthmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\middlewares\\iplimitmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\middlewares\\iplimitmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\extensions\\dbsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\dbsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\extensions\\autofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\autofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\extensions\\applicationsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\applicationsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\extensions\\alloptionregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\alloptionregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\extensions\\swaggersetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\swaggersetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\filter\\actionexecutefilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\filter\\actionexecutefilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\authorization\\authorizationsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\authorization\\authorizationsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\authorization\\authorizationresponse.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\authorization\\authorizationresponse.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_server\\controllers\\system\\sys_usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\authorization\\jwthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\authorization\\jwthelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_systemservices\\sys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\baseservices\\iservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baseservices\\iservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_server\\wideseawcs_server.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wideseawcs_server.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\models\\dt_dispatchinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_dispatchinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_quartzjob\\models\\dt_deviceprotocoldetail.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_deviceprotocoldetail.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_model\\models\\taskinfo\\dt_taskexecutedetail.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\taskinfo\\dt_taskexecutedetail.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_model\\models\\basicinfo\\dt_router.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\basicinfo\\dt_router.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_server\\filter\\automappersetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\automappersetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\extensions\\sqlsugarsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\sqlsugarsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\extensions\\miniprofilersetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\miniprofilersetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\extensions\\memorycachesetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\memorycachesetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\extensions\\ippolicyratelimitsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\ippolicyratelimitsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\extensions\\corssetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\corssetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\db\\repositorysetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\db\\repositorysetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\db\\maindb.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\db\\maindb.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\db\\basedbconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\db\\basedbconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\core\\internalapp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\core\\internalapp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\core\\iconfigurableoptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\core\\iconfigurableoptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\core\\configurableoptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\core\\configurableoptions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\caches\\sqlsugarcacheservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\caches\\sqlsugarcacheservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\caches\\icaching.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\caches\\icaching.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\caches\\caching.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\caches\\caching.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\aop\\sqlsugaraop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\sqlsugaraop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
@@ -234,8 +110,86 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 10,
          "SelectedChildIndex": 0,
          "Children": [
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "WIDESEAWCS_Core",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "RelativeToolTip": "WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2024-08-30T02:52:55.547Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "RouterController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAA8AAAAfAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-30T01:49:09.79Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "RouterService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "ViewState": "AQIAABYAAAAAAAAAAAAAwEEAAAAJAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-30T01:47:20.004Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "IRouterService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAYAAAAjAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-30T01:47:06.865Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "IDispatchInfoService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDispatchInfoService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IDispatchInfoService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDispatchInfoService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IDispatchInfoService.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAABYAAAAjAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-30T01:47:00.849Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "RouterRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\RouterRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\RouterRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\RouterRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\RouterRepository.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAUAAAAlAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-30T01:46:26.867Z",
              "EditorCaption": ""
            },
            {
              "$type": "Bookmark",
              "Name": "ST:12:0:{2456bd12-ecf7-4988-a4a6-67d49173f565}"
@@ -254,676 +208,241 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "TaskService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AQIAABEAAAAAAAAAAAASwCsAAABNAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-29T11:58:29.741Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "DeviceProtocolController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceProtocolController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceProtocolController.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceProtocolController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceProtocolController.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAABEAAAAnAAAA",
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ViewState": "AQIAAFYAAAAAAAAAAAAIwBsAAAAdAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T01:57:14.144Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAABgAAAATAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2024-08-28T01:43:48.493Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "ApiBaseController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseController\\ApiBaseController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseController\\ApiBaseController.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseController\\ApiBaseController.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\BaseController\\ApiBaseController.cs",
              "ViewState": "AQIAADIAAAAAAAAAAIA6wF4AAABEAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T02:01:07.973Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "ApiLogMiddleware.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
              "ViewState": "AQIAAAMAAAAAAAAAAAAuwBUAAAAvAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T08:05:02.326Z"
              "WhenOpened": "2024-08-29T11:32:06.014Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "Dt_DeviceProtocol.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "ViewState": "AQIAABgAAAAAAAAAAAAAACYAAAApAAAA",
              "Title": "CommonStackerCraneJob.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ViewState": "AQIAABoAAAAAAAAAAADwvzwAAAAhAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T01:47:31.274Z"
              "WhenOpened": "2024-08-29T11:10:29.565Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "Dt_Router.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
              "ViewState": "AQIAAEwAAAAAAAAAAAAgwAoAAAAlAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-30T01:45:37.749Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "IRouterRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IRouterRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\IRouterRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IRouterRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\IRouterRepository.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAUAAAAlAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-30T01:46:15.196Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "IDeviceProtocolRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolRepository.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-30T01:46:13.262Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "IDispatchInfoRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDispatchInfoRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\IDispatchInfoRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDispatchInfoRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\IDispatchInfoRepository.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAABoAAAApAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-30T01:46:08.776Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "Dt_DeviceInfo.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "ViewState": "AQIAACgAAAAAAAAAAAAxwGoAAAAIAAAA",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAABoAAAAlAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T01:53:23.226Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "DeviceProtocolService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
              "ViewState": "AQIAAEAAAAAAAAAAAAAuwEkAAAAkAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T07:37:15.84Z",
              "WhenOpened": "2024-08-30T01:45:36.363Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "ExceptionHandlerMiddleware.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\ExceptionHandlerMiddleware.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\ExceptionHandlerMiddleware.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\ExceptionHandlerMiddleware.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Middlewares\\ExceptionHandlerMiddleware.cs",
              "ViewState": "AQIAABsAAAAAAAAAAAAuwAwAAAArAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T08:05:00.601Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 20,
              "Title": "IpLimitMiddleware.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\IpLimitMiddleware.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\IpLimitMiddleware.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\IpLimitMiddleware.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Middlewares\\IpLimitMiddleware.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T08:04:59.762Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "ApiAuthorizeFilter.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Filter\\ApiAuthorizeFilter.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Filter\\ApiAuthorizeFilter.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Filter\\ApiAuthorizeFilter.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Filter\\ApiAuthorizeFilter.cs",
              "ViewState": "AQIAADIAAAAAAAAAAAArwE0AAABOAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T06:31:50.139Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "IDeviceProtocolService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolService.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAuwCAAAAAIAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T07:37:27.87Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "HttpRequestMiddleware.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\HttpRequestMiddleware.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\HttpRequestMiddleware.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\HttpRequestMiddleware.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Middlewares\\HttpRequestMiddleware.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAABQAAABZAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T07:05:00.511Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "DeviceInfoController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceInfoController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceInfoController.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceInfoController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\DeviceInfoController.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAABcAAAA+AAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T01:58:40.244Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "MiddlewareHelpers.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\MiddlewareHelpers.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\MiddlewareHelpers.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\MiddlewareHelpers.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Middlewares\\MiddlewareHelpers.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAABIAAAA5AAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T08:04:57.054Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "DBContext.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Seed\\DBContext.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Seed\\DBContext.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Seed\\DBContext.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Seed\\DBContext.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T07:06:19.46Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "HttpContextHelper.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\HttpContextHelper.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\HttpContextHelper.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\HttpContextHelper.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\HttpContextHelper.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAA4AAAAkAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T07:06:26.224Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "HttpContextSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\HttpContextSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\HttpContextSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\HttpContextSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\HttpContextSetup.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:52:55.361Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "AspNetUser.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
              "ViewState": "AQIAAE4AAAAAAAAAAAAowC0AAAAjAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T06:26:07.062Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 21,
              "Title": "DbSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\DbSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\DbSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\DbSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\DbSetup.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:52:54.182Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 22,
              "Title": "AutofacModuleRegister.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
              "ViewState": "AQIAAAYAAAAAAAAAAAAAABIAAAAFAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:52:32.561Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "Title": "SwaggerAuthMiddleware.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\SwaggerAuthMiddleware.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\SwaggerAuthMiddleware.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\SwaggerAuthMiddleware.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Middlewares\\SwaggerAuthMiddleware.cs",
              "ViewState": "AQIAAA4AAAAAAAAAAADwvwAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T08:04:52.726Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "LogAOP.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\LogAOP.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\LogAOP.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\LogAOP.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\AOP\\LogAOP.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:51:44.291Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 23,
              "Title": "ApplicationSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\ApplicationSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\ApplicationSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\ApplicationSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\ApplicationSetup.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:52:28.653Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 24,
              "Title": "AllOptionRegister.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\AllOptionRegister.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\AllOptionRegister.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\AllOptionRegister.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\AllOptionRegister.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:52:27.634Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 18,
              "Title": "SwaggerMiddleware.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\SwaggerMiddleware.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\SwaggerMiddleware.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\SwaggerMiddleware.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Middlewares\\SwaggerMiddleware.cs",
              "ViewState": "AQIAABEAAAAAAAAAAADwvwAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T08:04:48.721Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 25,
              "Title": "SwaggerSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SwaggerSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\SwaggerSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SwaggerSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\SwaggerSetup.cs",
              "ViewState": "AQIAAB4AAAAAAAAAAAAEwDUAAABUAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:53:18.229Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 31,
              "Title": "Sys_UserService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_UserService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs",
              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_UserService.cs",
              "ViewState": "AQIAAIkAAAAAAAAAAAAcwAAAAAAkAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T03:49:44.756Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 32,
              "Title": "QuartzJobHostedService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "ViewState": "AQIAAC0AAAAAAAAAAAAAwEcAAAB5AAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T06:10:25.295Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 33,
              "Title": "IService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\IService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\IService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\IService.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\IService.cs",
              "ViewState": "AQIAAEcAAAAAAAAAAAAjwGkAAAAbAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T02:04:11.581Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 30,
              "Title": "JwtHelper.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Authorization\\JwtHelper.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Authorization\\JwtHelper.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Authorization\\JwtHelper.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Authorization\\JwtHelper.cs",
              "ViewState": "AQIAABoAAAAAAAAAAAAWwDcAAAAeAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:51:42.453Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 39,
              "Title": "Dt_Router.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_Router.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_Router.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_Router.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_Router.cs",
              "ViewState": "AQIAAAYAAAAAAAAAAAAAABQAAAAIAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T01:49:41.909Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 38,
              "Title": "Dt_Task.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "ViewState": "AQIAABIAAAAAAAAAAAAAACQAAAAIAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T01:51:06.375Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 26,
              "Title": "ActionExecuteFilter.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Filter\\ActionExecuteFilter.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Filter\\ActionExecuteFilter.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Filter\\ActionExecuteFilter.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Filter\\ActionExecuteFilter.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T06:31:49.487Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 28,
              "Title": "AuthorizationResponse.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Authorization\\AuthorizationResponse.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Authorization\\AuthorizationResponse.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Authorization\\AuthorizationResponse.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Authorization\\AuthorizationResponse.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:51:39.476Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 27,
              "Title": "AuthorizationSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Authorization\\AuthorizationSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Authorization\\AuthorizationSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Authorization\\AuthorizationSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Authorization\\AuthorizationSetup.cs",
              "ViewState": "AQIAABQAAAAAAAAAAADwvwAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:51:40.668Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 29,
              "Title": "Sys_UserController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
              "ViewState": "AQIAACwAAAAAAAAAAAAnwEQAAABKAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T03:49:03.307Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 37,
              "Title": "Dt_TaskExecuteDetail.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_TaskExecuteDetail.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_TaskExecuteDetail.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_TaskExecuteDetail.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_TaskExecuteDetail.cs",
              "ViewState": "AQIAABgAAAAAAAAAAAAAACQAAAAIAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T01:48:05.083Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 34,
              "Title": "WIDESEAWCS_Server",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
              "RelativeToolTip": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2024-08-27T07:56:47.128Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 36,
              "Title": "Dt_DeviceProtocolDetail.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
              "ViewState": "AQIAABUAAAAAAAAAAAAAACcAAAAIAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T01:54:33.711Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 35,
              "Title": "Dt_DispatchInfo.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "ViewState": "AQIAABsAAAAAAAAAAAAAAC4AAAAkAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-28T01:55:11.759Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 40,
              "Title": "AutoMapperSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T08:11:36.519Z"
              "WhenOpened": "2024-08-30T01:45:37.059Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 41,
              "Title": "SqlsugarSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
              "ViewState": "AQIAAAYAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:53:07.406Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 42,
              "Title": "MiniProfilerSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\MiniProfilerSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\MiniProfilerSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\MiniProfilerSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\MiniProfilerSetup.cs",
              "DocumentIndex": 18,
              "Title": "StackerCraneDBName.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:53:05.014Z"
              "WhenOpened": "2024-08-29T11:30:57.917Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 43,
              "Title": "MemoryCacheSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\MemoryCacheSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\MemoryCacheSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\MemoryCacheSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\MemoryCacheSetup.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "DocumentIndex": 19,
              "Title": "StackerCraneTaskCommand.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskCommand.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskCommand.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskCommand.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneTaskCommand.cs",
              "ViewState": "AQIAABgAAAAAAAAAAAAuwBsAAAA4AAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:53:03.987Z"
              "WhenOpened": "2024-08-29T11:10:38.27Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 44,
              "Title": "IpPolicyRateLimitSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\IpPolicyRateLimitSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\IpPolicyRateLimitSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\IpPolicyRateLimitSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\IpPolicyRateLimitSetup.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "DocumentIndex": 17,
              "Title": "CommonStackerCrane.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\CommonStackerCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\CommonStackerCrane.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\CommonStackerCrane.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\CommonStackerCrane.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAHsBAAANAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:52:57.581Z"
              "WhenOpened": "2024-08-29T11:04:46.116Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 45,
              "Title": "CorsSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\CorsSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\CorsSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\CorsSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\CorsSetup.cs",
              "ViewState": "AQIAAA4AAAAAAAAAAADwvwAAAAAAAAAA",
              "DocumentIndex": 16,
              "Title": "SiemensS7Communicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAACABAAAjAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:52:50.096Z"
              "WhenOpened": "2024-08-29T10:58:24.015Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 46,
              "Title": "RepositorySetting.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\RepositorySetting.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\DB\\RepositorySetting.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\RepositorySetting.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\DB\\RepositorySetting.cs",
              "ViewState": "AQIAABQAAAAAAAAAAADwvwAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:52:19.638Z"
              "DocumentIndex": 15,
              "Title": "WIDESEAWCS_Tasks.csproj",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj",
              "ViewState": "AQIAAAAAAAAAAAAAAADwvwAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2024-08-29T11:11:54.978Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 47,
              "Title": "MainDb.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\MainDb.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\DB\\MainDb.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\MainDb.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\DB\\MainDb.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "DocumentIndex": 20,
              "Title": "CommonConveyorLine.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "ViewState": "AQIAAIoAAAAAAAAAAAA+wLoAAABAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:52:18.738Z"
              "WhenOpened": "2024-08-29T11:16:55.244Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 48,
              "Title": "BaseDBConfig.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\BaseDBConfig.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\DB\\BaseDBConfig.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\BaseDBConfig.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\DB\\BaseDBConfig.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "DocumentIndex": 21,
              "Title": "IDevice.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
              "ViewState": "AQIAABYAAAAAAAAAAAAAwBsAAAANAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:52:17.238Z"
              "WhenOpened": "2024-08-29T11:16:45.45Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 49,
              "Title": "InternalApp.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Core\\InternalApp.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Core\\InternalApp.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Core\\InternalApp.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Core\\InternalApp.cs",
              "ViewState": "AQIAAAkAAAAAAAAAAAAAAAAAAAAAAAAA",
              "DocumentIndex": 22,
              "Title": "Dt_DeviceProtocol.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "ViewState": "AQIAAFgAAAAAAAAAAAA3wGAAAAAoAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:52:12.55Z"
              "WhenOpened": "2024-08-29T11:14:33.434Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 50,
              "Title": "IConfigurableOptions.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Core\\IConfigurableOptions.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Core\\IConfigurableOptions.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Core\\IConfigurableOptions.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Core\\IConfigurableOptions.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "DocumentIndex": 23,
              "Title": "SiemensDBDataType.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "ViewState": "AQIAAB0AAAAAAAAAAAAwwEsAAAAzAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:52:10.931Z"
              "WhenOpened": "2024-08-29T11:00:58.514Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 51,
              "Title": "ConfigurableOptions.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Core\\ConfigurableOptions.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Core\\ConfigurableOptions.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Core\\ConfigurableOptions.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Core\\ConfigurableOptions.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "DocumentIndex": 24,
              "Title": "BaseCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "ViewState": "AQIAAGAAAAAAAAAAAAAmwDMAAAAnAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:52:08.71Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 52,
              "Title": "SqlSugarCacheService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\SqlSugarCacheService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Caches\\SqlSugarCacheService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\SqlSugarCacheService.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Caches\\SqlSugarCacheService.cs",
              "ViewState": "AQIAAAYAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:51:58.833Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 53,
              "Title": "ICaching.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\ICaching.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Caches\\ICaching.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\ICaching.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Caches\\ICaching.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:51:57.17Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 54,
              "Title": "Caching.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\Caching.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Caches\\Caching.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\Caching.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Caches\\Caching.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:51:53.111Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 55,
              "Title": "SqlSugarAop.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-08-27T07:51:46.878Z"
              "WhenOpened": "2024-08-29T10:57:42.018Z"
            }
          ]
        }
WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs
@@ -21,7 +21,7 @@
namespace WIDESEAWCS_Communicator
{
    public abstract class BaseCommunicator
    public abstract class BaseCommunicator: IDisposable
    {
        /// <summary>
        /// æž„造函数
@@ -108,5 +108,7 @@
        public abstract T ReadCustomer<T>(string address) where T : IDataTransfer, new();
        public abstract bool WriteCustomer<T>(string address, [NotNull] T value) where T : IDataTransfer, new();
        public abstract void Dispose();
    }
}
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs
@@ -27,6 +27,7 @@
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Net;
using System.Net.NetworkInformation;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
@@ -38,7 +39,7 @@
    /// è¥¿é—¨å­S7通讯类
    /// </summary>
    [Description("西门子S7")]
    public class SiemensS7 : BaseCommunicator, IDisposable
    public class SiemensS7 : BaseCommunicator
    {
        #region Private Member
        /// <summary>
@@ -67,6 +68,8 @@
        private string _name;
        private ILogNet _logNet;
        private bool _isPing = true;
        #endregion Private Member
        #region Public Member
@@ -272,6 +275,29 @@
                throw new CommunicationException($"读取数据异常,错误信息:{ex.Message}", CommunicationErrorType.ReadException, innerException: ex);
            }
        }
        private void Ping()
        {
            Task.Run(() =>
            {
                while (_isPing)
                {
                    try
                    {
                        IPStatus status = plc.IpAddressPing();
                        if (status == IPStatus.Success)
                            _connected = true;
                        else
                            _connected = false;
                    }
                    finally
                    {
                        Thread.Sleep(100);
                    }
                }
            });
        }
        #endregion
        #region Public Method
@@ -284,6 +310,7 @@
        {
            try
            {
                //实例化一个西门子的S7协议的通讯对象
                plc = new SiemensS7Net(SiemensPLCS.S1500)
                {
@@ -297,7 +324,7 @@
                    LogNet.WriteInfo(Name, string.Format(CommunicationInfoMessage.ConnectSuccess, _ipAddress, _port));
                else
                    LogNet.WriteError(Name, string.Format(CommunicationExceptionMessage.ConnectFaild, _ipAddress, _port, operateResult.Message));
                Ping();
                return operateResult.IsSuccess;
            }
            catch (Exception ex)
@@ -625,9 +652,11 @@
        #endregion
        // æ˜¾å¼å®žçްIDisposable接口以提供垃圾回收时的清理  
        public void Dispose()
        public override void Dispose()
        {
            _isPing = false;
            Disconnect();
            plc.Dispose();
            GC.SuppressFinalize(this);
        }
WIDESEAWCS_Server/WIDESEAWCS_DTO/WIDESEAWCS_DTO.csproj
@@ -10,4 +10,8 @@
        <ProjectReference Include="..\WIDESEAWCS_Model\WIDESEAWCS_Model.csproj" />
    </ItemGroup>
    <ItemGroup>
      <Folder Include="BasicInfo\" />
    </ItemGroup>
</Project>
WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_MenuService.cs
@@ -22,5 +22,7 @@
        object GetTreeItem(int menuId);
        WebResponseContent Save(Sys_Menu menu);
        WebResponseContent DelMenu(int menuId);
    }
}
WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -24,6 +24,7 @@
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_Model.Models;
@@ -54,36 +55,44 @@
        WebResponseContent ReceiveWMSTask([NotNull] List<WMSTaskDTO> taskDTOs);
        /// <summary>
        ///
        /// æ ¹æ®æ‰˜ç›˜å·ã€èµ·å§‹åœ°å€å‘WMS请求任务
        /// </summary>
        /// <param name="palletCode"></param>
        /// <param name="sourceAddress"></param>
        /// <param name="palletCode">托盘号</param>
        /// <param name="sourceAddress">起始地址</param>
        /// <returns></returns>
        WebResponseContent RequestWMsTask(string palletCode, string sourceAddress);
        WebResponseContent RequestWMSTask(string palletCode, string sourceAddress);
        /// <summary>
        ///
        /// æ ¹æ®è®¾å¤‡ç¼–号、当前地址查询输送线未执行的任务
        /// </summary>
        /// <param name="deviceNo"></param>
        /// <param name="currentAddress"></param>
        /// <param name="deviceNo">设备编号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <returns></returns>
        Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress);
        /// <summary>
        ///
        /// æ ¹æ®ä»»åŠ¡å·ã€ä¸‹ä¸€åœ°å€æŸ¥è¯¢è¾“é€çº¿æ‰§è¡Œä¸­çš„ä»»åŠ¡
        /// </summary>
        /// <param name="taskNum"></param>
        /// <param name="nextAddress"></param>
        /// <param name="taskNum">任务号</param>
        /// <param name="nextAddress">下一地址</param>
        /// <returns></returns>
        Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress);
        /// <summary>
        ///
        /// æ ¹æ®ä»»åŠ¡å·ã€å½“å‰åœ°å€æŸ¥è¯¢è¾“é€çº¿å®Œæˆçš„ä»»åŠ¡
        /// </summary>
        /// <param name="taskNum"></param>
        /// <param name="currentAddress"></param>
        /// <param name="taskNum">任务号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <returns></returns>
        Dt_Task QueryCompletedConveyorLineTask(int taskNum, string currentAddress);
        /// <summary>
        /// æ ¹æ®è®¾å¤‡ç¼–号、任务类型分组(可选)按照优先级以及创建时间排序查询任务池新增的任务
        /// </summary>
        /// <param name="deviceNo">设备编号</param>
        /// <param name="taskTypeGroup">任务类型分组(可选)</param>
        /// <returns></returns>
        Dt_Task? QuertStackerCraneTask(string deviceNo, TaskTypeGroup? taskTypeGroup = null);
        /// <summary>
        /// æ ¹æ®è®¾å¤‡ç¼–号、当前地址按照优先级以及创建时间排序查询任务池新增的任务
@@ -137,13 +146,19 @@
        /// <param name="taskNum">任务号</param>
        WebResponseContent UpdateTaskStatusToNext(int taskNum);
        /// <summary>
        /// å°†ä»»åŠ¡çŠ¶æ€ä¿®æ”¹ä¸ºä¸‹ä¸€ä¸ªçŠ¶æ€
        /// </summary>
        /// <param name="task">任务实体对象</param>
        /// <returns></returns>
        WebResponseContent UpdateTaskStatusToNext([NotNull] Dt_Task task);
        /// <summary>
        ///
        /// æ ¹æ®ä»»åŠ¡å·ã€å½“å‰åœ°å€æ›´æ–°ä»»åŠ¡ä½ç½®ä¿¡æ¯
        /// </summary>
        /// <param name="taskNum"></param>
        /// <param name="currentAddress"></param>
        /// <param name="taskNum">任务号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <returns></returns>
        Dt_Task? UpdatePosition(int taskNum, string currentAddress);
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_DictionaryList.cs
@@ -34,7 +34,7 @@
        /// æ•°æ®æºID
        /// </summary>
        [SugarColumn(IsNullable = false, ColumnDescription = "数据源ID")]
        public string DicId { get; set; }
        public int DicId { get; set; }
        /// <summary>
        /// æ˜¯å¦å¯ç”¨
WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj
@@ -15,4 +15,8 @@
        <ProjectReference Include="..\WIDESEAWCS_Core\WIDESEAWCS_Core.csproj" />
    </ItemGroup>
    <ItemGroup>
      <Folder Include="Models\BasicInfo\" />
    </ItemGroup>
</Project>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
@@ -30,7 +30,7 @@
namespace WIDESEAWCS_QuartzJob
{
    [Description("通用输送线")]
    [Description("输送线")]
    public class CommonConveyorLine : IConveyorLine
    {
        #region Private Member
@@ -38,22 +38,30 @@
        /// å †åž›æœºé€šè®¯å¯¹è±¡
        /// </summary>
        private readonly BaseCommunicator _communicator;
        /// <summary>
        /// å †åž›æœºåè®®ä¿¡æ¯
        /// </summary>
        private readonly List<DeviceProDTO> _deviceProDTOs;
        /// <summary>
        /// å †åž›æœºåè®®æ˜Žç»†ä¿¡æ¯
        /// </summary>
        private readonly List<DeviceProtocolDetailDTO> _deviceProtocolDetailDTOs;
        /// <summary>
        /// è®¾å¤‡ç¼–号
        /// </summary>
        public readonly string _deviceCode;
        /// <summary>
        /// è®¾å¤‡åç§°
        /// </summary>
        public readonly string _deviceName;
        private bool _heartStatr = true;
        private bool _isConnected = true;
        #endregion
        #region Public Member
@@ -69,7 +77,7 @@
        public bool IsFault => false;
        public bool IsConnected => Communicator.IsConnected;
        public bool IsConnected => Communicator.IsConnected && _isConnected;
        public DeviceStatus Status => DeviceStatus.Offline;
        #endregion
@@ -90,15 +98,40 @@
            _deviceProtocolDetailDTOs = deviceProtocolDetailDTOs;
            _deviceCode = deviceCode;
            _deviceName = deviceName;
            CheckConnect();
        }
        #endregion
        #region Private Method
        private void CheckConnect()
        {
            Task.Run(() =>
            {
                while (_heartStatr)
                {
                    try
                    {
                        DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault();
                        if (devicePro == null)
                            _isConnected = false;
                        else
                            Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
                        _isConnected = true;
                    }
                    catch (Exception ex)
                    {
                        _isConnected = false;
                    }
                    Thread.Sleep(500);
                }
            });
        }
        #endregion
        #region Public Method
        public TRsult GetValue<TEnum, TRsult>(TEnum value, string deviceChildCode) where TEnum : Enum
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
            DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == value.ToString() && x.DeviceChildCode == deviceChildCode);
            return devicePro == null ? throw new Exception() : (TRsult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
        }
@@ -110,6 +143,7 @@
        public bool SendCommand<T>(T command, string deviceChildCode) where T : IDataTransfer, new()
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
            DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand) && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
            if (devicePro == null)
            {
@@ -124,6 +158,7 @@
        public T ReadCustomer<T>(string deviceChildCode) where T : IDataTransfer, new()
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
            DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == "ReadDeviceCommand" && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
            if (devicePro == null)
@@ -140,6 +175,7 @@
            where TEnum : Enum
            where TValue : notnull
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
            DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == @enum.ToString() && x.DeviceChildCode == deviceChildCode);
            return devicePro == null ? throw new Exception() : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value);
        }
@@ -170,6 +206,13 @@
            //todo é€šè®¯æœªè¿žæŽ¥æ—¶æŠ›å‡ºå¼‚常
            return false;
        }
        public void Dispose()
        {
            _heartStatr = false;
            _communicator.Dispose();
            GC.SuppressFinalize(this);
        }
        #endregion
    }
}
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/RoutersAddDTO.cs
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/IDevice.cs
@@ -27,7 +27,7 @@
    /// <summary>
    /// è®¾å¤‡æŽ¥å£å±‚
    /// </summary>
    public interface IDevice
    public interface IDevice : IDisposable
    {
        /// <summary>
        /// è®¾å¤‡ç¼–号
@@ -53,6 +53,6 @@
        /// è®¾å¤‡çŠ¶æ€(空闲/运行中...)
        /// </summary>
        DeviceStatus Status { get; }
    }
}
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_Router.cs
ÎļþÃû´Ó WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_Router.cs ÐÞ¸Ä
@@ -8,7 +8,7 @@
using WIDESEAWCS_Core.DB.Models;
using WIDESEAWCS_Core.Enums;
namespace WIDESEAWCS_Model.Models
namespace WIDESEAWCS_QuartzJob.Models
{
    [SugarTable(nameof(Dt_Router), "设备路由配置")]
    public class Dt_Router : BaseEntity
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/JobFactory.cs
@@ -46,6 +46,7 @@
        {
            try
            {
                Console.Out.WriteLine(1);
                IServiceScope serviceScope = _serviceProvider.CreateScope();
                IJob? job = serviceScope.ServiceProvider.GetService(bundle.JobDetail.JobType) as IJob;
                return job;
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IRouterRepository.cs
ÎļþÃû´Ó WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/IRouterRepository.cs ÐÞ¸Ä
@@ -4,9 +4,9 @@
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Models;
namespace WIDESEAWCS_IBasicInfoRepository
namespace WIDESEAWCS_QuartzJob.Repository
{
    public interface IRouterRepository : IRepository<Dt_Router>
    {
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/RouterRepository.cs
ÎļþÃû´Ó WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/RouterRepository.cs ÐÞ¸Ä
@@ -4,10 +4,9 @@
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_IBasicInfoRepository;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Models;
namespace WIDESEAWCS_BasicInfoRepository
namespace WIDESEAWCS_QuartzJob.Repository
{
    public class RouterRepository : RepositoryBase<Dt_Router>, IRouterRepository
    {
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDispatchInfoService.cs
@@ -21,7 +21,6 @@
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_QuartzJob.DTO;
using WIDESEAWCS_QuartzJob.Models;
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IRouterService.cs
ÎļþÃû´Ó WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IRouterService.cs ÐÞ¸Ä
@@ -6,9 +6,9 @@
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_DTO.BasicInfo;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Models;
namespace WIDESEAWCS_IBasicInfoService
namespace WIDESEAWCS_QuartzJob.Service
{
    public interface IRouterService : IService<Dt_Router>
    {
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/RouterService.cs
ÎļþÃû´Ó WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/RouterService.cs ÐÞ¸Ä
@@ -8,11 +8,9 @@
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_DTO.BasicInfo;
using WIDESEAWCS_IBasicInfoRepository;
using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
namespace WIDESEAWCS_BasicInfoService
{
@@ -25,6 +23,7 @@
            _deviceProtocolRepository = deviceProtocolRepository;
            _deviceInfoRepository = deviceInfoRepository;
        }
        //todo æ–¹æ³•需优化
        public List<Dt_Router> QueryNextRoutes(string startPosi, string endPosi)
        {
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/CommonStackerCrane.cs
@@ -37,14 +37,14 @@
    /// <summary>
    /// ä¸€èˆ¬å †åž›æœºå®žçŽ°ç±»ï¼Œå®žçŽ°å †åž›æœºæŽ¥å£å±‚
    /// </summary>
    [Description("通用堆垛机")]
    [Description("堆垛机")]
    public class CommonStackerCrane : IStackerCrane
    {
        #region Private Member
        /// <summary>
        /// å †åž›æœºé€šè®¯å¯¹è±¡
        /// </summary>
        private readonly BaseCommunicator _communicator;
        private BaseCommunicator _communicator;
        /// <summary>
        /// å †åž›æœºåè®®ä¿¡æ¯
        /// </summary>
@@ -66,7 +66,11 @@
        /// </summary>
        private int _lastTaskNum;
        private bool _isChecked;
        private bool _isChecked = false;
        private bool _heartStatr = true;
        private bool _isConnected = true;
        #endregion Private Member
        #region Public Member
@@ -148,7 +152,7 @@
        /// <summary>
        /// é€šè®¯æ˜¯å¦å·²è¿žæŽ¥
        /// </summary>
        public bool IsConnected => Communicator.IsConnected;
        public bool IsConnected => Communicator.IsConnected && _isConnected;
        /// <summary>
        /// å †åž›æœºä»»åŠ¡å®Œæˆäº‹ä»¶
@@ -184,6 +188,7 @@
            _deviceProtocolDetailDTOs = deviceProtocolDetailDTOs;
            _deviceCode = deviceCode;
            _deviceName = deviceName;
            CheckConnect();
        }
        #endregion
@@ -314,6 +319,30 @@
        {
            return value.Equals(paramValue);
        }
        private void CheckConnect()
        {
            Task.Run(() =>
            {
                while (_heartStatr)
                {
                    try
                    {
                        DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault();
                        if (devicePro == null)
                            _isConnected = false;
                        else
                            Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
                        _isConnected = true;
                    }
                    catch (Exception ex)
                    {
                        _isConnected = false;
                    }
                    Thread.Sleep(500);
                }
            });
        }
        #endregion
        #region Public Method
@@ -322,8 +351,9 @@
        /// </summary>
        /// <param name="command">任务命令</param>
        /// <returns></returns>
        public bool SendCommand<T>(T command)where T : IDataTransfer, new()
        public bool SendCommand<T>(T command) where T : IDataTransfer, new()
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
            DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
            if (devicePro == null)
            {
@@ -413,6 +443,7 @@
        /// <exception cref="Exception"></exception>
        public TRsult GetValue<TEnum, TRsult>(TEnum value) where TEnum : Enum
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
            DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == value.ToString());
            return devicePro == null ? throw new Exception() : (TRsult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
        }
@@ -423,9 +454,9 @@
        public void Heartbeat()
        {
            //todo å¿ƒè·³å†™å…¥
            throw new NotImplementedException();
        }
        /// <summary>
        /// æ ¹æ®å‚数名称写入堆垛机对应的数据。
@@ -440,9 +471,17 @@
            where TEnum : Enum
            where TValue : notnull
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
            DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == @enum.ToString());
            return devicePro == null ? throw new Exception() : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value);
        }
        public void Dispose()
        {
            _heartStatr = false;
            _communicator.Dispose();
            GC.SuppressFinalize(this);
        }
        #endregion
    }
}
WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/RouterController.cs
@@ -14,10 +14,10 @@
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO.BasicInfo;
using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
namespace WIDESEAWCS_Server.Controllers.BasicInfo
{
WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_MenuController.cs
@@ -37,7 +37,7 @@
        [HttpPost, Route("save")]
        public ActionResult Save([FromBody] Sys_Menu menu)
        {
            if (App.User.IsSuperAdmin)
            if (App.User.UserId == 1)
            {
                return Json(Service.Save(menu));
            }
@@ -46,5 +46,10 @@
                return Json(WebResponseContent.Instance.Error("仅限超级管理员修改数据"));
            }
        }
        [HttpPost, Route("delMenu")]
        public WebResponseContent DelMenu(int menuId)
        {
            return Service.DelMenu(menuId);
        }
    }
}
WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs
@@ -61,7 +61,7 @@
builder.Services.AddHttpContextSetup();
//builder.Services.AddHostedService<QuartzJobHostedService>();
builder.Services.AddHostedService<QuartzJobHostedService>();
builder.Services.AddMvc(options =>
{
WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_MenuService.cs
@@ -146,7 +146,8 @@
                bool _changed = false;
                if (menu.MenuId <= 0)
                {
                    BaseDal.AddData(menu);
                    int id = BaseDal.AddData(menu);
                    menu.MenuId = id;
                }
                else
                {
@@ -173,5 +174,17 @@
            return webResponse;
        }
        public WebResponseContent DelMenu(int menuId)
        {
            WebResponseContent webResponse = new WebResponseContent();
            if(BaseDal.QueryFirst(x=>x.ParentId == menuId) != null)
            {
                return webResponse = WebResponseContent.Instance.Error("当前菜单存在子菜单,请先删除子菜单!");
            }
            BaseDal.DeleteDataById(menuId);
            return webResponse = WebResponseContent.Instance.OK("删除成功");
        }
    }
}
WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -30,11 +30,11 @@
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_IBasicInfoRepository;
using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Service;
namespace WIDESEAWCS_TaskInfoService
{
@@ -121,7 +121,13 @@
            return content;
        }
        public WebResponseContent RequestWMsTask(string palletCode, string sourceAddress)
        /// <summary>
        /// æ ¹æ®æ‰˜ç›˜å·ã€èµ·å§‹åœ°å€å‘WMS请求任务
        /// </summary>
        /// <param name="palletCode">托盘号</param>
        /// <param name="sourceAddress">起始地址</param>
        /// <returns></returns>
        public WebResponseContent RequestWMSTask(string palletCode, string sourceAddress)
        {
            WebResponseContent content = new WebResponseContent();
            try
@@ -148,19 +154,54 @@
            return content;
        }
        /// <summary>
        /// æ ¹æ®è®¾å¤‡ç¼–号、当前地址查询输送线未执行的任务
        /// </summary>
        /// <param name="deviceNo">设备编号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <returns></returns>
        public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress)
        {
            return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy);
        }
        /// <summary>
        /// æ ¹æ®ä»»åŠ¡å·ã€ä¸‹ä¸€åœ°å€æŸ¥è¯¢è¾“é€çº¿æ‰§è¡Œä¸­çš„ä»»åŠ¡
        /// </summary>
        /// <param name="taskNum">任务号</param>
        /// <param name="nextAddress">下一地址</param>
        /// <returns></returns>
        public Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress)
        {
            return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.NextAddress == nextAddress, TaskOrderBy);
            return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.NextAddress == nextAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy);
        }
        /// <summary>
        /// æ ¹æ®ä»»åŠ¡å·ã€å½“å‰åœ°å€æŸ¥è¯¢è¾“é€çº¿å®Œæˆçš„ä»»åŠ¡
        /// </summary>
        /// <param name="taskNum">任务号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <returns></returns>
        public Dt_Task QueryCompletedConveyorLineTask(int taskNum, string currentAddress)
        {
            return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress, TaskOrderBy);
            return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InFinish || x.TaskState == (int)TaskOutStatusEnum.Line_OutFinish), TaskOrderBy);
        }
        /// <summary>
        /// æ ¹æ®è®¾å¤‡ç¼–号、任务类型分组(可选)按照优先级以及创建时间排序查询任务池新增的任务
        /// </summary>
        /// <param name="deviceNo">设备编号</param>
        /// <param name="taskTypeGroup">任务类型分组(可选)</param>
        /// <returns></returns>
        public Dt_Task? QuertStackerCraneTask(string deviceNo, TaskTypeGroup? taskTypeGroup = null)
        {
            if(taskTypeGroup == null)
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
            if(taskTypeGroup.Value == TaskTypeGroup.InboundGroup)
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish, TaskOrderBy);
            if(taskTypeGroup.Value == TaskTypeGroup.OutbondGroup)
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy);
            return null;
        }
        /// <summary>
@@ -285,6 +326,11 @@
            return content;
        }
        /// <summary>
        /// å°†ä»»åŠ¡çŠ¶æ€ä¿®æ”¹ä¸ºä¸‹ä¸€ä¸ªçŠ¶æ€
        /// </summary>
        /// <param name="task">任务实体对象</param>
        /// <returns></returns>
        public WebResponseContent UpdateTaskStatusToNext([NotNull] Dt_Task task)
        {
            WebResponseContent content = new WebResponseContent();
@@ -345,6 +391,12 @@
            return content;
        }
        /// <summary>
        /// æ ¹æ®ä»»åŠ¡å·ã€å½“å‰åœ°å€æ›´æ–°ä»»åŠ¡ä½ç½®ä¿¡æ¯
        /// </summary>
        /// <param name="taskNum">任务号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <returns></returns>
        public Dt_Task? UpdatePosition(int taskNum, string currentAddress)
        {
            try
WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -26,11 +26,11 @@
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DTO;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_Tasks.ConveyorLineJob;
namespace WIDESEAWCS_Tasks
@@ -53,33 +53,40 @@
        public Task Execute(IJobExecutionContext context)
        {
            Console.Out.WriteLine(DateTime.Now);
            try
            {
                CommonConveyorLine conveyorLine = (CommonConveyorLine)context.JobDetail.JobDataMap.Get("JobParams");
                if (conveyorLine != null)
                {
                    List<string> childDeviceCodes = _routerService.QueryAllPositions(conveyorLine.DeviceCode);
                    List<Task> tasks = new List<Task>();
                    foreach (string childDeviceCode in childDeviceCodes)
                    {
                        ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(childDeviceCode);
                        if (command != null)
                        {
                            DeviceProtocolDetailDTO? deviceProtocolDetail = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.ProtocalDetailValue == command.InteractiveSignal.ToString() && x.DeviceProParamName == nameof(ConveyorLineTaskCommand.InteractiveSignal));
                            if (deviceProtocolDetail != null)
                        //Task task = Task.Run(() =>
                        //{
                            ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(childDeviceCode);
                            if (command != null)
                            {
                                MethodInfo? method = GetType().GetMethod(deviceProtocolDetail.ProtocolDetailType);
                                if (method != null)
                                DeviceProtocolDetailDTO? deviceProtocolDetail = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.ProtocalDetailValue == command.InteractiveSignal.ToString() && x.DeviceProParamName == nameof(ConveyorLineTaskCommand.InteractiveSignal));
                                if (deviceProtocolDetail != null)
                                {
                                    method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode });
                                }
                                else
                                {
                                    //todo æœªæ‰¾åˆ°å¯¹åº”处理方法
                                    MethodInfo? method = GetType().GetMethod(deviceProtocolDetail.ProtocolDetailType);
                                    if (method != null)
                                    {
                                        method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode });
                                    }
                                    else
                                    {
                                        //todo æœªæ‰¾åˆ°æ–¹æ³•æ—¶
                                    }
                                }
                            }
                        }
                        //});
                        //tasks.Add(task);
                    }
                    Task.WaitAll(tasks.ToArray());
                }
            }
@@ -87,26 +94,41 @@
            {
                Console.Out.WriteLine(nameof(CommonConveyorLineJob) + ":" + ex.ToString());
            }
            finally
            {
                Console.Out.WriteLine(DateTime.Now);
            }
            return Task.CompletedTask;
        }
        /// <summary>
        /// è¾“送线请求入库
        /// </summary>
        /// <param name="conveyorLine">输送线实例对象</param>
        /// <param name="command">读取的请求信息</param>
        /// <param name="childDeviceCode">子设备编号</param>
        public void RequestInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command,string childDeviceCode)
        {
            if (_taskService.RequestWMsTask(command.Barcode, childDeviceCode).Status)
            if (_taskService.RequestWMSTask(command.Barcode, childDeviceCode).Status)
            {
                Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
                if (task != null)
                {
                    ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(task);
                    taskCommand.InteractiveSignal = command.InteractiveSignal;
                    bool t = conveyorLine.SendCommand(taskCommand, childDeviceCode);
                    conveyorLine.SendCommand(taskCommand, childDeviceCode);
                    _taskService.UpdateTaskStatusToNext(task);
                }
            }
        }
        /// <summary>
        /// è¾“送线请求入库下一地址
        /// </summary>
        /// <param name="conveyorLine">输送线实例对象</param>
        /// <param name="command">读取的请求信息</param>
        /// <param name="childDeviceCode">子设备编号</param>
        public void RequestInNextAddress(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode)
        {
            Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
@@ -117,11 +139,17 @@
                {
                    ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(newTask);
                    taskCommand.InteractiveSignal = command.InteractiveSignal;
                    bool t = conveyorLine.SendCommand(taskCommand, childDeviceCode);
                    conveyorLine.SendCommand(taskCommand, childDeviceCode);
                }
            }
        }
        /// <summary>
        /// è¾“送线入库完成
        /// </summary>
        /// <param name="conveyorLine">输送线实例对象</param>
        /// <param name="command">读取的请求信息</param>
        /// <param name="childDeviceCode">子设备编号</param>
        public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode)
        {
            Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
@@ -133,6 +161,12 @@
            }
        }
        /// <summary>
        /// è¾“送线请求出信息
        /// </summary>
        /// <param name="conveyorLine">输送线实例对象</param>
        /// <param name="command">读取的请求信息</param>
        /// <param name="childDeviceCode">子设备编号</param>
        public void RequestOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode)
        {
            Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
@@ -140,12 +174,18 @@
            {
                ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(task);
                taskCommand.InteractiveSignal = command.InteractiveSignal;
                bool t = conveyorLine.SendCommand(taskCommand, childDeviceCode);
                conveyorLine.SendCommand(taskCommand, childDeviceCode);
                _taskService.UpdateTaskStatusToNext(task);
            }
        }
        /// <summary>
        /// è¾“送线请求出库下一地址
        /// </summary>
        /// <param name="conveyorLine">输送线实例对象</param>
        /// <param name="command">读取的请求信息</param>
        /// <param name="childDeviceCode">子设备编号</param>
        public void RequestOutNextAddress(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode)
        {
            Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
@@ -156,17 +196,23 @@
                {
                    ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(newTask);
                    taskCommand.InteractiveSignal = command.InteractiveSignal;
                    bool t = conveyorLine.SendCommand(taskCommand, childDeviceCode);
                    conveyorLine.SendCommand(taskCommand, childDeviceCode);
                }
            }
        }
        /// <summary>
        /// è¾“送线出库完成
        /// </summary>
        /// <param name="conveyorLine">输送线实例对象</param>
        /// <param name="command">读取的请求信息</param>
        /// <param name="childDeviceCode">子设备编号</param>
        public void ConveyorLineOutFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode)
        {
            Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
            if (task != null)
            {
                bool t = conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, 0, childDeviceCode);
                conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, 0, childDeviceCode);
                WebResponseContent content = _taskService.UpdateTaskStatusToNext(task);
                Console.Out.WriteLine(content.Serialize());
            }
WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -7,12 +7,13 @@
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
using WIDESEAWCS_Tasks.StackerCraneJob;