1
duyongjia
2025-02-20 e949e6c395aa94e64204b5f4a7be0a86626db8a0
1
已修改14个文件
已添加9个文件
1036 ■■■■ 文件已修改
项目代码/WCS/WIDESEAWCS_Client/public/Error.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/public/Inbound.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/public/Lock.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/public/Outbound.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/public/Stored.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/public/Stored2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/router/viewGird.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/locationview/LocationInfo.vue 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/locationview/StockPlan.vue 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/locationview/StockPlanView.vue 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json 429 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationInfoService.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationInfoController.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationStatusChangeRecordController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetailController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetail_HtyController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfo_HtyController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockQuantityChangeRecordController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/public/Error.png
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/public/Inbound.png
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/public/Lock.png
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/public/Outbound.png
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/public/Stored.png
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/public/Stored2.png
ÏîÄ¿´úÂë/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
ÏîÄ¿´úÂë/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>
ÏîÄ¿´úÂë/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>
ÏîÄ¿´úÂë/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>
ÏîÄ¿´úÂë/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"
            }
          ]
        }
ÏîÄ¿´úÂë/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"
            }
          ]
        }
ÏîÄ¿´úÂë/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);
    }
}
ÏîÄ¿´úÂë/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();
        }
    }
}
ÏîÄ¿´úÂë/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>
    /// è´§ä½çŠ¶æ€å˜åŠ¨è®°å½•
ÏîÄ¿´úÂë/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>
    /// åº“å­˜
ÏîÄ¿´úÂë/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>
    /// åº“存明细
ÏîÄ¿´úÂë/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>
    /// åº“存明细历史
ÏîÄ¿´úÂë/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>
    /// åº“存历史
ÏîÄ¿´úÂë/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>
    /// åº“存数量变动记录
ÏîÄ¿´úÂë/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();
ÏîÄ¿´úÂë/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>
ÏîÄ¿´úÂë/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; }
    }
}