From e949e6c395aa94e64204b5f4a7be0a86626db8a0 Mon Sep 17 00:00:00 2001
From: duyongjia <adu_555@163.com>
Date: 星期四, 20 二月 2025 09:09:54 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                                 |   12 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetail_HtyController.cs        |    2 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetailController.cs            |    2 
 项目代码/WCS/WIDESEAWCS_Client/public/Error.png                                                              |    0 
 项目代码/WCS/WIDESEAWCS_Client/public/Lock.png                                                               |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationInfoService.cs                                   |    5 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockQuantityChangeRecordController.cs  |    2 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json                          |  429 +++++++++++++++++------
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfo_HtyController.cs              |    2 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs                                     |   95 +++++
 项目代码/WCS/WIDESEAWCS_Client/src/views/locationview/StockPlan.vue                                          |  167 +++++++++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj                                    |    2 
 项目代码/WCS/WIDESEAWCS_Client/public/Inbound.png                                                            |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationStatusChangeRecordController.cs |    2 
 项目代码/WCS/WIDESEAWCS_Client/src/views/locationview/StockPlanView.vue                                      |  171 +++++++++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationInfoController.cs               |   15 
 项目代码/WCS/WIDESEAWCS_Client/public/Outbound.png                                                           |    0 
 项目代码/WCS/WIDESEAWCS_Client/public/Stored.png                                                             |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoController.cs                  |    2 
 项目代码/WCS/WIDESEAWCS_Client/public/Stored2.png                                                            |    0 
 项目代码/WCS/WIDESEAWCS_Client/src/views/locationview/LocationInfo.vue                                       |  115 ++++++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs                                                  |    9 
 项目代码/WCS/WIDESEAWCS_Client/src/router/viewGird.js                                                        |    4 
 23 files changed, 898 insertions(+), 138 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Error.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Error.png"
new file mode 100644
index 0000000..89fc7bb
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Error.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Inbound.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Inbound.png"
new file mode 100644
index 0000000..cd65b72
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Inbound.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Lock.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Lock.png"
new file mode 100644
index 0000000..e812b32
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Lock.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Outbound.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Outbound.png"
new file mode 100644
index 0000000..5fe6465
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Outbound.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Stored.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Stored.png"
new file mode 100644
index 0000000..129e5bb
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Stored.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Stored2.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Stored2.png"
new file mode 100644
index 0000000..0c64032
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/public/Stored2.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/router/viewGird.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/router/viewGird.js"
index e0fb072..9650f2b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/router/viewGird.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/router/viewGird.js"
@@ -77,6 +77,10 @@
     path: '/stockInfoDetail_Hty',
     name: 'stockInfoDetail_Hty',
     component: () => import('@/views/wmsPart/stockInfoDetail_Hty.vue')
+  }, {
+    path: '/StockPlanView',
+    name: 'StockPlanView',
+    component: () => import('@/views/locationview/StockPlanView.vue')
   }]
 
 export default viewgird
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/locationview/LocationInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/locationview/LocationInfo.vue"
new file mode 100644
index 0000000..1839ddc
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/locationview/LocationInfo.vue"
@@ -0,0 +1,115 @@
+<template>
+  <div
+    v-show="location"
+    style="
+      border: 1px solid lightskyblue;
+      color: #000000;
+      height: 25px;
+      width: 25px;
+      margin-top: 0px;
+    "
+  >
+    <img
+      v-if="location && location.state === 'LocationState_Empty'"
+      src=""
+      :style="{
+        width: 23 + 'px',
+      }"
+    />
+
+    <img
+      v-else-if="location && location.state === 'LocationState_Stored'"
+      src="../../../public/Stored.png"
+      :style="{
+        width: 23 + 'px',
+      }"
+    />
+    <img
+      v-else-if="location && location.state === 'LocationState_Error'"
+      src="../../../public/Error.png"
+      :style="{
+        width: 23 + 'px',
+      }"
+    />
+    <img
+      v-else-if="
+        location &&
+        (location.state === 'LocationState_InboundUnexecute' ||
+          location.state === 'LocationState_InboundExecuting')
+      "
+      src="../../../public/Inbound.png"
+      :style="{
+        width: 23 + 'px',
+      }"
+    />
+    <img
+      v-else-if="
+        location &&
+        (location.state === 'LocationState_OutExecuting' ||
+          location.state === 'LocationState_OutboundUnexecute')
+      "
+      src="../../../public/Outbound.png"
+      :style="{
+        width: 23 + 'px',
+      }"
+    />
+    <img
+      v-else-if="location && location.state === 'LocationState_Lock'"
+      src="../../../public/Lock.png"
+      :style="{
+        width: 23 + 'px',
+      }"
+    />
+    <!-- <img
+    v-show="location && location.state === 'LocationState_Empty'"
+      src=""
+      :style="{
+        width: 23 + 'px',
+      }"
+    /> -->
+    <!-- <img
+    v-show="location.state === 'LocationState_Empty'"
+      src=""
+      :style="{
+        width: 23 + 'px',
+      }"
+    />
+    <img
+    v-show="location.state === 'LocationState_Empty'"
+      src=""
+      :style="{
+        width: 23 + 'px',
+      }"
+    />
+    <img
+    v-show="location.state === 'LocationState_Empty'"
+      src=""
+      :style="{
+        width: 23 + 'px',
+      }"
+    /> -->
+  </div>
+</template>
+      
+      <script>
+export default {
+  name: "LocationInfo",
+  props: {
+    location: {
+      type: Object,
+      default: null,
+    },
+  },
+  data() {
+    return {
+      url: "",
+    };
+  },
+  computed: {},
+  async created() {},
+  mounted() {},
+  methods: {},
+};
+</script>
+<style scoped>
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/locationview/StockPlan.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/locationview/StockPlan.vue"
new file mode 100644
index 0000000..2122b91
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/locationview/StockPlan.vue"
@@ -0,0 +1,167 @@
+<template>
+  <div style="border: 1px solid lightseagreen; margin-top: 10px">
+    <div v-for="row in gridRows" :key="row" style="margin: 5px 5px 5px 5px">
+      <div
+        style="display: grid"
+        :style="{
+          gridTemplateColumns: `repeat(${gridColumnNum}, 1fr)`,
+          width: size * gridColumnNum + 'px',
+        }"
+      >
+        <div
+          :id="getLocationCode(row, col)"
+          v-for="col in gridColmuns"
+          :key="getLocationCode(row, col)"
+          :style="{
+            width: size + 'px',
+            height: size + 'px',
+          }"
+        >
+          <el-popover placement="bottom" :width="300" trigger="click">
+            <template #reference>
+              <location-info :location="getLocation(row, col)"></location-info>
+            </template>
+            <el-row>
+              <el-col>
+                璐т綅缂栧彿锛歿{
+                getLocation(row, col) ? getLocation(row, col).code : ""
+                }}
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col>
+                鎵樼洏鏉$爜锛歿{
+                getLocation(row, col) ? getLocation(row, col).barcode : ""
+                }}
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col>
+                鐗╂枡缂栫爜锛歿{
+                getLocation(row, col) ? getLocation(row, col).materiaCode : ""
+                }}
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col>
+                鐗╂枡鍚嶇О锛歿{
+                getLocation(row, col)
+                ? getLocation(row, col).materialName
+                : ""
+                }}
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col>
+                鏁伴噺锛歿{
+                getLocation(row, col) ? getLocation(row, col).qty : ""
+                }}
+              </el-col>
+            </el-row>
+          </el-popover>
+        </div>
+      </div>
+
+      <el-divider
+        v-if="row === tunnelRowNo - 1 && tunnelRowNo !== 0"
+        content-position="center"
+      >{{ tunnel }}#宸烽亾</el-divider>
+    </div>
+  </div>
+</template>
+    
+    <script>
+import LocationInfo from "./LocationInfo.vue";
+export default {
+  name: "StockPlan",
+  props: {
+    gridColumnNum: {
+      type: Number,
+      default: 1
+    },
+    gridRowNum: {
+      type: Number,
+      default: 1
+    },
+    locationList: {
+      type: Array,
+      default: () => []
+    },
+    tunnelRowNo: {
+      type: Number,
+      default: 0
+    },
+    tunnel: {
+      type: String,
+      default: "1"
+    },
+    layer: {
+      type: String,
+      default: "1"
+    }
+  },
+  data() {
+    return {
+      gridColmuns: [],
+      gridRows: [],
+      size: 60
+    };
+  },
+  components: {
+    LocationInfo
+  },
+  computed: {},
+  async created() {
+    for (let i = 0; i < this.gridColumnNum; i++) {
+      this.gridColmuns.push(i);
+    }
+    for (let i = 0; i < this.gridRowNum + 1; i++) {
+      this.gridRows.push(i);
+    }
+    this.size = this.itemSize;
+  },
+  mounted() {},
+  methods: {
+    // getLocationCode(row, col) {
+    //   let location = this.locationList.find(
+    //     (item) => item.row === row && item.col === col + 1
+    //   );
+    //   if (location) {
+    //     return true;
+    //   }
+    //   return false;
+    // },
+    getLocation(row, col) {
+      let location = this.locationList.find(
+        item => item.row === row && item.col === col + 1
+      );
+      // console.log(location);
+      return location;
+    },
+    isExist(row, col) {
+      let location = this.getLocation(row, col);
+      if (location) {
+        return true;
+      }
+      return false;
+    },
+    getLocationStateImg(row, col) {
+      let location = this.getLocation(row, col);
+      if (location) {
+        if (location.state === "LocationState_Empty") {
+          return "";
+        } else if (location.state === "LocationState_Stored") {
+          return "../../public/Stored.png";
+        }
+      }
+      return "";
+    },
+    getLocationCode(row, col) {
+      return row + "-" + (col + 1);
+    }
+  }
+};
+</script>
+    
+    <style scoped>
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/locationview/StockPlanView.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/locationview/StockPlanView.vue"
new file mode 100644
index 0000000..3df06ce
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/locationview/StockPlanView.vue"
@@ -0,0 +1,171 @@
+<template>
+  <div style="display: grid; grid-template-columns: 94% 5%">
+    <el-tabs
+      tab-position="left"
+      style="margin-left: 1%; width: 98%"
+      v-model="activeName"
+      @tab-click="handleClick"
+    >
+      <el-tab-pane
+        v-for="item in locationLayer"
+        :key="item.value"
+        :label="item.label"
+        :name="item.value"
+        :lazy="true"
+      >
+        <div v-if="isLoad(item.value)">
+          <stock-plan
+            v-for="(tunnels, index) in locationConfigs"
+            :key="index"
+            :gridColumnNum="tunnels.colNum"
+            :gridRowNum="tunnels.rowNum"
+            :locationList="tunnels.locationList"
+            :tunnelRowNo="tunnels.tunnelRowNo"
+            :tunnel="tunnels.tunnel"
+            :layer="item.value"
+          ></stock-plan>
+        </div>
+      </el-tab-pane>
+    </el-tabs>
+    <div style="margin-top: 10%; height: 90%; margin-left: 20%">
+      <div
+        style="
+          margin-top: 30%;
+          margin-left: 20%;
+          border: 1px solid lightskyblue;
+          color: #000000;
+          height: 32px;
+          width: 32px;
+        "
+      ></div>
+      <div style="margin-left: 20%"><span>绌洪棽</span></div>
+      <div
+        style="
+          margin-top: 30%;
+          margin-left: 20%;
+          border: 1px solid lightskyblue;
+          color: #000000;
+          height: 32px;
+          width: 32px;
+        "
+      >
+        <img src="../../../public/Stored.png" width="30px" />
+      </div>
+      <div><span>鏈夎揣鍗犵敤</span></div>
+      <div
+        style="
+          margin-top: 30%;
+          margin-left: 20%;
+          border: 1px solid lightskyblue;
+          color: #000000;
+          height: 32px;
+          width: 32px;
+        "
+      >
+        <img src="../../../public/Inbound.png" width="30px" />
+      </div>
+      <div><span>鍏ュ簱鍗犵敤</span></div>
+      <div
+        style="
+          margin-top: 30%;
+          margin-left: 20%;
+          border: 1px solid lightskyblue;
+          color: #000000;
+          height: 32px;
+          width: 32px;
+        "
+      >
+        <img src="../../../public/Outbound.png" width="30px" />
+      </div>
+      <div><span>鍑哄簱閿佸畾</span></div>
+      <div
+        style="
+          margin-top: 30%;
+          margin-left: 20%;
+          border: 1px solid lightskyblue;
+          color: #000000;
+          height: 32px;
+          width: 32px;
+        "
+      >
+        <img src="../../../public/Lock.png" width="30px" />
+      </div>
+      <div style="margin-left: 20%"><span>閿佸畾</span></div>
+      <div
+        style="
+          margin-top: 30%;
+          margin-left: 20%;
+          border: 1px solid lightskyblue;
+          color: #000000;
+          height: 32px;
+          width: 32px;
+        "
+      >
+        <img src="../../../public/Error.png" width="30px" />
+      </div>
+      <div style="margin-left: 20%"><span>绂佺敤</span></div>
+    </div>
+  </div>
+</template>
+<script>
+import { ref, reactive } from "vue";
+import StockPlan from "./StockPlan.vue";
+export default {
+  data() {
+    return {
+      activeName: 1,
+      locationConfigs: [],
+      locationLayer: [],
+    };
+  },
+  components: {
+    StockPlan,
+  },
+  created() {
+    this.http
+      .post("/api/locationInfo/GetLocationLayer", "", "鍔犺浇涓�")
+      .then((x) => {
+        if (x.status) {
+          this.locationLayer = x.data;
+          // setTimeout(() => {
+          //   this.initLocation(1);
+          //   this.activeName = "1";
+          // }, 1000);
+        } else {
+          this.$Message.error(x.message);
+        }
+      });
+  },
+  beforeDestroy() {},
+  mounted() {},
+  methods: {
+    handleClick(tab, event) {
+      this.initLocation(tab.props.name);
+    },
+
+    initLocation(layer) {
+      console.log(this.activeName);
+      this.http
+        .post(
+          "/api/locationInfo/GetLocationConfigs?layer=" + layer,
+          "",
+          "鍔犺浇涓�"
+        )
+        .then((x) => {
+          if (x.status) {
+            this.locationConfigs = x.data;
+          } else {
+            this.$Message.error(x.message);
+          }
+        });
+    },
+    isLoad(layer) {
+      let config = this.locationConfigs.find((x) => x.layer === layer);
+      if (config) {
+        return true;
+      }
+      return false;
+    },
+  },
+};
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
index 4fbf556..224909b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
@@ -3,32 +3,56 @@
   "WorkspaceRootPath": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\sys_log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\system\\sys_log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
       "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\wwwroot\\wideseawcs_db.dbseed.json\\dt_dispatchinfo.tsv||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wwwroot\\wideseawcs_db.dbseed.json\\dt_dispatchinfo.tsv||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\wwwroot\\wideseawcs_db.dbseed.json\\dt_deviceinfo.tsv||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wwwroot\\wideseawcs_db.dbseed.json\\dt_deviceinfo.tsv||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\wmspart\\stockinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\wmspart\\stockinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\wmspart\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\wmspart\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_wmspart\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|solutionrelative:wideseawcs_wmspart\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}|WIDESEAWCS_IWMSPart\\WIDESEAWCS_IWMSPart.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_iwmspart\\ilocationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}|WIDESEAWCS_IWMSPart\\WIDESEAWCS_IWMSPart.csproj|solutionrelative:wideseawcs_iwmspart\\ilocationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\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:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_wmspart\\stockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|solutionrelative:wideseawcs_wmspart\\stockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_wmspart\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|solutionrelative:wideseawcs_wmspart\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_wmspart\\stockinfodetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|solutionrelative:wideseawcs_wmspart\\stockinfodetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_wmspart\\stockinfodetail_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|solutionrelative:wideseawcs_wmspart\\stockinfodetail_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_wmspart\\locationstatuschangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|solutionrelative:wideseawcs_wmspart\\locationstatuschangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}|WIDESEAWCS_IWMSPart\\WIDESEAWCS_IWMSPart.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_iwmspart\\istockinfo_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}|WIDESEAWCS_IWMSPart\\WIDESEAWCS_IWMSPart.csproj|solutionrelative:wideseawcs_iwmspart\\istockinfo_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\wmspart\\locationstatuschangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\wmspart\\locationstatuschangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\wmspart\\stockquantitychangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -47,12 +71,32 @@
       "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\wmspart\\stockinfo_htycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\wmspart\\locationstatuschangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\wmspart\\locationstatuschangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\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:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\wmspart\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\wmspart\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\sys_log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\system\\sys_log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\wwwroot\\wideseawcs_db.dbseed.json\\dt_dispatchinfo.tsv||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wwwroot\\wideseawcs_db.dbseed.json\\dt_dispatchinfo.tsv||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\wwwroot\\wideseawcs_db.dbseed.json\\dt_deviceinfo.tsv||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wwwroot\\wideseawcs_db.dbseed.json\\dt_deviceinfo.tsv||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -62,63 +106,89 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 0,
+          "SelectedChildIndex": 6,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 0,
-              "Title": "Sys_Log.cs",
-              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
-              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
-              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwoAAAAmAAAAAAAAAA==",
+              "DocumentIndex": 4,
+              "Title": "ILocationInfoService.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\ILocationInfoService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_IWMSPart\\ILocationInfoService.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\ILocationInfoService.cs",
+              "RelativeToolTip": "WIDESEAWCS_IWMSPart\\ILocationInfoService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAuwBIAAAA5AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-02-18T06:26:39.431Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 1,
-              "Title": "CustomProfile.cs",
-              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
-              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvxUAAAArAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-02-18T06:25:21.8Z",
+              "WhenOpened": "2025-02-18T06:46:59.712Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 3,
-              "Title": "Dt_DispatchInfo.tsv",
-              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DispatchInfo.tsv",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DispatchInfo.tsv",
-              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DispatchInfo.tsv",
-              "RelativeToolTip": "WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DispatchInfo.tsv",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwEAAAACAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001001|",
-              "WhenOpened": "2025-02-18T06:12:25.234Z",
+              "Title": "LocationInfoService.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\LocationInfoService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_WMSPart\\LocationInfoService.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\LocationInfoService.cs",
+              "RelativeToolTip": "WIDESEAWCS_WMSPart\\LocationInfoService.cs",
+              "ViewState": "AgIAACwAAAAAAAAAAAApwEwAAAAbAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T06:48:26.378Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 4,
-              "Title": "Dt_DeviceInfo.tsv",
-              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DeviceInfo.tsv",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DeviceInfo.tsv",
-              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DeviceInfo.tsv",
-              "RelativeToolTip": "WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DeviceInfo.tsv",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvxEAAAAGAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001001|",
-              "WhenOpened": "2025-02-18T06:10:57.854Z",
+              "DocumentIndex": 5,
+              "Title": "Sys_UserController.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "ViewState": "AgIAACQAAAAAAAAAAAAYwAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T06:59:03.175Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 2,
+              "Title": "LocationInfoController.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAAMAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T05:54:41.41Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "Title": "StockInfoDetailService.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\StockInfoDetailService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_WMSPart\\StockInfoDetailService.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\StockInfoDetailService.cs",
+              "RelativeToolTip": "WIDESEAWCS_WMSPart\\StockInfoDetailService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T06:58:14.92Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "StockInfoService.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\StockInfoService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_WMSPart\\StockInfoService.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\StockInfoService.cs",
+              "RelativeToolTip": "WIDESEAWCS_WMSPart\\StockInfoService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T06:58:15.857Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
               "Title": "appsettings.json",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
@@ -131,91 +201,91 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 5,
-              "Title": "TestJob.cs",
-              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\TestJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TestJob.cs",
-              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\TestJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\TestJob.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-02-18T05:58:02.164Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 11,
-              "Title": "LocationStatusChangeRecordController.cs",
-              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationStatusChangeRecordController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationStatusChangeRecordController.cs",
-              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationStatusChangeRecordController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationStatusChangeRecordController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwgAAAAyAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-02-18T05:56:07.625Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 10,
-              "Title": "StockInfo_HtyController.cs",
-              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfo_HtyController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfo_HtyController.cs",
-              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfo_HtyController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfo_HtyController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwcAAAAyAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-02-18T05:56:20.314Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 6,
+              "DocumentIndex": 1,
               "Title": "StockInfoController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoController.cs",
               "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoController.cs",
               "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAABAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-02-18T05:56:27.134Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 9,
-              "Title": "StockInfoDetail_HtyController.cs",
-              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetail_HtyController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetail_HtyController.cs",
-              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetail_HtyController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetail_HtyController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwcAAAAyAAAAAAAAAA==",
+              "DocumentIndex": 10,
+              "Title": "LocationStatusChangeRecordService.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\LocationStatusChangeRecordService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_WMSPart\\LocationStatusChangeRecordService.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\LocationStatusChangeRecordService.cs",
+              "RelativeToolTip": "WIDESEAWCS_WMSPart\\LocationStatusChangeRecordService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-02-18T05:56:38.127Z",
+              "WhenOpened": "2025-02-18T06:58:13.407Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 8,
+              "DocumentIndex": 9,
+              "Title": "StockInfoDetail_HtyService.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\StockInfoDetail_HtyService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_WMSPart\\StockInfoDetail_HtyService.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\StockInfoDetail_HtyService.cs",
+              "RelativeToolTip": "WIDESEAWCS_WMSPart\\StockInfoDetail_HtyService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T06:58:14.267Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "StockQuantityChangeRecordService.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\StockQuantityChangeRecordService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_WMSPart\\StockQuantityChangeRecordService.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\StockQuantityChangeRecordService.cs",
+              "RelativeToolTip": "WIDESEAWCS_WMSPart\\StockQuantityChangeRecordService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T06:58:16.483Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 11,
+              "Title": "IStockInfo_HtyService.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
+              "RelativeToolTip": "WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T06:58:10.317Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 14,
               "Title": "StockInfoDetailController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
               "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
               "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwYAAAAyAAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwYAAAAbAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-02-18T05:56:45.933Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 7,
+              "DocumentIndex": 13,
               "Title": "StockQuantityChangeRecordController.cs",
               "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
               "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
               "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwYAAAAyAAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwYAAAAbAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-02-18T05:56:52.984Z",
               "EditorCaption": ""
@@ -223,15 +293,128 @@
             {
               "$type": "Document",
               "DocumentIndex": 12,
-              "Title": "LocationInfoController.cs",
-              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
-              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAyAAAAAAAAAA==",
+              "Title": "LocationStatusChangeRecordController.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationStatusChangeRecordController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationStatusChangeRecordController.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationStatusChangeRecordController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationStatusChangeRecordController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwgAAAAbAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-02-18T05:54:41.41Z",
+              "WhenOpened": "2025-02-18T05:56:07.625Z",
               "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 15,
+              "Title": "StockInfoDetail_HtyController.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetail_HtyController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetail_HtyController.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetail_HtyController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetail_HtyController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwcAAAAbAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T05:56:38.127Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 16,
+              "Title": "StockInfo_HtyController.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfo_HtyController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfo_HtyController.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfo_HtyController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfo_HtyController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwcAAAAbAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T05:56:20.314Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 23,
+              "Title": "TestJob.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\TestJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TestJob.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\TestJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\TestJob.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T05:58:02.164Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 22,
+              "Title": "Dt_DeviceInfo.tsv",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DeviceInfo.tsv",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DeviceInfo.tsv",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DeviceInfo.tsv",
+              "RelativeToolTip": "WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DeviceInfo.tsv",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvxEAAAAGAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001001|",
+              "WhenOpened": "2025-02-18T06:10:57.854Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 21,
+              "Title": "Dt_DispatchInfo.tsv",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DispatchInfo.tsv",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DispatchInfo.tsv",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DispatchInfo.tsv",
+              "RelativeToolTip": "WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Dt_DispatchInfo.tsv",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwEAAAACAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001001|",
+              "WhenOpened": "2025-02-18T06:12:25.234Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 18,
+              "Title": "Program.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
+              "ViewState": "AgIAABIAAAAAAAAAAADwvy4AAABCAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T06:49:08.318Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 17,
+              "Title": "RouterController.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T06:48:57.803Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 19,
+              "Title": "Sys_Log.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvxMAAAAVAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T06:26:39.431Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 20,
+              "Title": "CustomProfile.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvxUAAAArAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T06:25:21.8Z"
             }
           ]
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
index 5154662..579ed71 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
@@ -125,6 +125,18 @@
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-02-18T06:50:46.477Z",
               "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 22,
+              "Title": "CustomProfile.cs",
+              "DocumentMoniker": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
+              "ToolTip": "E:\\0.\u9879\u76EE\u96C6\\\u682A\u6D32\u4F18\u745E\u79D1\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvxUAAAArAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-02-18T06:25:21.8Z"
             }
           ]
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationInfoService.cs"
index 0318cf9..926a4d5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationInfoService.cs"
@@ -1,4 +1,5 @@
 锘�
+using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseRepository;
 using WIDESEAWCS_Core.BaseServices;
 using WIDESEAWCS_Model.Models;
@@ -12,5 +13,9 @@
     {
         IRepository<Dt_LocationInfo> Repository { get; }
 
+
+        WebResponseContent GetLocationLayer();
+
+        WebResponseContent GetLocationConfigs(int layer);
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationInfoController.cs"
index d999269..c402e3e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationInfoController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationInfoController.cs"
@@ -9,7 +9,7 @@
 using WIDESEAWCS_IWMSPart;
 using WIDESEAWCS_Model.Models;
 
-namespace WIDESEAWCS_WMSServer.Controllers.WMSPart
+namespace WIDESEAWCS_Server.Controllers.WMSPart
 {
     /// <summary>
     /// 璐т綅
@@ -23,5 +23,18 @@
         {
         }
 
+        [HttpPost, Route("GetLocationConfigs"), AllowAnonymous]
+        public WebResponseContent GetLocationConfigs(int layer)
+        {
+            DateTime s = DateTime.Now;
+            WebResponseContent content = Service.GetLocationConfigs(layer);
+            double d = (DateTime.Now - s).TotalMilliseconds;
+            return content;
+        }
+        [HttpPost, Route("GetLocationLayer"), AllowAnonymous]
+        public WebResponseContent GetLocationLayer()
+        {
+            return Service.GetLocationLayer();
+        }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationStatusChangeRecordController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationStatusChangeRecordController.cs"
index d5eab71..d04c92d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationStatusChangeRecordController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationStatusChangeRecordController.cs"
@@ -6,7 +6,7 @@
 using WIDESEAWCS_IWMSPart;
 using WIDESEAWCS_Model.Models;
 
-namespace WIDESEAWCS_WMSServer.Controllers.WMSPart
+namespace WIDESEAWCS_Server.Controllers.WMSPart
 {
     /// <summary>
     /// 璐т綅鐘舵�佸彉鍔ㄨ褰�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoController.cs"
index cf6dc32..d7d9609 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoController.cs"
@@ -6,7 +6,7 @@
 using WIDESEAWCS_IWMSPart;
 using WIDESEAWCS_Model.Models;
 
-namespace WIDESEAWCS_WMSServer.Controllers.WMSPart
+namespace WIDESEAWCS_Server.Controllers.WMSPart
 {
     /// <summary>
     /// 搴撳瓨
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetailController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetailController.cs"
index 71f447f..89ec6dc 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetailController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetailController.cs"
@@ -4,7 +4,7 @@
 using WIDESEAWCS_IWMSPart;
 using WIDESEAWCS_Model.Models;
 
-namespace WIDESEAWCS_WMSServer.Controllers.WMSPart
+namespace WIDESEAWCS_Server.Controllers.WMSPart
 {
     /// <summary>
     /// 搴撳瓨鏄庣粏
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetail_HtyController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetail_HtyController.cs"
index fb706c0..0d46fff 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetail_HtyController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetail_HtyController.cs"
@@ -5,7 +5,7 @@
 using WIDESEAWCS_IWMSPart;
 using WIDESEAWCS_Model.Models;
 
-namespace WIDESEAWCS_WMSServer.Controllers.WMSPart
+namespace WIDESEAWCS_Server.Controllers.WMSPart
 {
     /// <summary>
     /// 搴撳瓨鏄庣粏鍘嗗彶
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfo_HtyController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfo_HtyController.cs"
index ba930df..1a61bee 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfo_HtyController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfo_HtyController.cs"
@@ -5,7 +5,7 @@
 using WIDESEAWCS_IWMSPart;
 using WIDESEAWCS_Model.Models;
 
-namespace WIDESEAWCS_WMSServer.Controllers.WMSPart
+namespace WIDESEAWCS_Server.Controllers.WMSPart
 {
     /// <summary>
     /// 搴撳瓨鍘嗗彶
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockQuantityChangeRecordController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockQuantityChangeRecordController.cs"
index 912b20b..b26af8d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockQuantityChangeRecordController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockQuantityChangeRecordController.cs"
@@ -4,7 +4,7 @@
 using WIDESEAWCS_IWMSPart;
 using WIDESEAWCS_Model.Models;
 
-namespace WIDESEAWCS_WMSServer.Controllers.WMSPart
+namespace WIDESEAWCS_Server.Controllers.WMSPart
 {
     /// <summary>
     /// 搴撳瓨鏁伴噺鍙樺姩璁板綍
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs"
index f877d14..ac56e77 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs"
@@ -22,6 +22,7 @@
 using WIDESEAWCS_QuartzJob.QuartzExtensions;
 using Microsoft.AspNetCore.Builder;
 using WIDESEAWCS_Server.HostedService;
+using WIDESEAWCS_Server.Filter;
 
 var builder = WebApplication.CreateBuilder(args);
 
@@ -44,14 +45,16 @@
 builder.Services.AddAllOptionRegister();//读取配置文件
 builder.Services.AddMemoryCacheSetup();//缓存
 builder.Services.AddSqlsugarSetup();//SqlSugar 启动服务
-builder.Services.AddInitializationHostServiceSetup();//应用初始化服务注入
+//builder.Services.AddInitializationHostServiceSetup();//应用初始化服务注入
 builder.Services.AddDbSetup();//Db 启动服务
 
-builder.Services.AddScoped<QuartzJobCreateDataTabel>();
-builder.Services.AddHostedService<QuartzJobDataTableHostedService>();
+//builder.Services.AddScoped<QuartzJobCreateDataTabel>();
+//builder.Services.AddHostedService<QuartzJobDataTableHostedService>();
 
 builder.Services.AddWebSocketSetup();
 
+builder.Services.AddHostedService<WebSocketHostService>();
+
 builder.Services.AddAutoMapperSetup();
 
 builder.Services.AddCorsSetup();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj"
index 0df6c95..5fa3995 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj"
@@ -67,10 +67,10 @@
 	</ItemGroup>
 
 	<ItemGroup>
-		<ProjectReference Include="..\WIDESEAWCS_IWMSPart\WIDESEAWCS_IWMSPart.csproj" />
 		<ProjectReference Include="..\WIDESEAWCS_SystemServices\WIDESEAWCS_SystemServices.csproj" />
 		<ProjectReference Include="..\WIDESEAWCs_TaskInfoService\WIDESEAWCs_TaskInfoService.csproj" />
 		<ProjectReference Include="..\WIDESEAWCS_Tasks\WIDESEAWCS_Tasks.csproj" />
+		<ProjectReference Include="..\WIDESEAWCS_WMSPart\WIDESEAWCS_WMSPart.csproj" />
 	</ItemGroup>
 
 	<ItemGroup>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs"
index 58435f7..8aa16a2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs"
@@ -1,5 +1,6 @@
 锘�
 
+using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseRepository;
 using WIDESEAWCS_Core.BaseServices;
 using WIDESEAWCS_IWMSPart;
@@ -12,14 +13,100 @@
     /// </summary>
     public partial class LocationInfoService : ServiceBase<Dt_LocationInfo, IRepository<Dt_LocationInfo>>, ILocationInfoService
     {
-        private readonly IUnitOfWorkManage _unitOfWorkManage;
         public IRepository<Dt_LocationInfo> Repository => BaseDal;
 
-        public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+        public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal) : base(BaseDal)
         {
-            _unitOfWorkManage = unitOfWorkManage;
         }
 
-       
+        public override PageGridData<Dt_LocationInfo> GetPageData(PageDataOptions options)
+        {
+            return base.GetPageData(options);
+        }
+
+        public WebResponseContent GetLocationLayer()
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                List<object> data = new List<object>();
+                var layerNum = Repository.QueryData().Max(v => v.Layer);
+                for (int i = 0; i < layerNum; i++)
+                {
+                    object obj = new
+                    {
+                        value = i + 1,
+                        label = (i + 1) + "灞�"
+                    };
+                    data.Add(obj);
+                }
+                return content = WebResponseContent.Instance.OK(data: data);
+            }
+            catch (Exception ex)
+            {
+                return content = WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        public WebResponseContent GetLocationConfigs(int layer)
+        {
+            try
+            {
+                object locationConfigs = Repository.QueryData(x => x.Layer == layer).GroupBy(x => x.RoadwayNo).Select(x => new
+                {
+                    colNum = x.Max(v => v.Column),
+                    rowNum = x.Max(v => v.Row),
+                    layer = layer,
+                    tunnel = x.Key,
+                    tunnelRowNo = x.Key,
+                    location = layer + "灞�",
+                    locationList = x.Select(v => new LocationConfig
+                    {
+                        col = v.Column,
+                        row = v.Row,
+                        state = v.LocationStatus,
+                        code = v.LocationCode,
+                        islock = v.EnableStatus,
+                        layer = layer,
+                        name = v.LocationName,
+                        materiaCode = "",
+                        materialName = "",
+                        barcode = "",
+                        qty = 0
+                    })
+                }).ToList();
+
+                return WebResponseContent.Instance.OK(data: locationConfigs);
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+    }
+
+    public class LocationConfig
+    {
+        public int layer { get; set; }
+        public int col { get; set; }
+
+        public int row { get; set; }
+
+        public string name { get; set; }
+
+        public string code { get; set; }
+
+        public int state { get; set; }
+
+        public int islock { get; set; }
+
+        public string materiaCode { get; set; }
+
+        public string materialName { get; set; }
+
+        public string barcode { get; set; }
+
+        public decimal? qty { get; set; }
     }
 }

--
Gitblit v1.9.3