From bf44ae2dd15b2b139ce56b1ba1294fdfd220c763 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 25 十二月 2024 17:13:34 +0800
Subject: [PATCH] #问题修复 1. 列表字段空间调整 2. 地址链接放至配置文件中 3. 定时任务执行完成后,状态修改补上 4. 修改状态时,需校验上一步状态是否对应 5. 下发任务完成后,查看是否修改状态为2 7. 任务状态列表,数据显示不全问题修复 8. 波次列表,表格合并问题导致多订单出库问题

---
 zy-asrs-wms/src/main/resources/application.yml                                          |   13 
 zy-asrs-admin/src/assets/main.css                                                       |   26 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/CacheSite.java                    |    2 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java      |    8 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/CacheStatisticsTimer.java          |    2 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/schedule/ScheduleJobs.java           |  365 ++++++++++-----------
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java |    7 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java                  |    6 
 zy-asrs-admin/src/views/task/task/index.vue                                             |    6 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java                 |    4 
 zy-asrs-wms/src/main/resources/mapper/asrs/ViewLocDetlMapper.xml                        |    4 
 zy-asrs-admin/src/views/out/wave/index.vue                                              |   13 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/Order.java                        |    3 
 zy-asrs-admin/src/views/base/locTypeBind/index.vue                                      |   85 ++--
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/LocUtils.java                           |    4 
 /dev/null                                                                               |   11 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/enums/TaskStsType.java            |   38 +-
 zy-asrs-admin/src/components/order/order/orderOut.vue                                   |   28 
 zy-asrs-admin/src/views/IndexView.vue                                                   |  230 +++++++------
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java        |    5 
 zy-asrs-wms/src/main/resources/mapper/asrs/ViewTaskDetlMapper.xml                       |    4 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java                    |    4 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java                     |   65 ++-
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/entity/domain/SystemProperties.java  |   25 +
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java          |    7 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/OrderTimer.java                    |    4 
 26 files changed, 515 insertions(+), 454 deletions(-)

diff --git a/zy-asrs-admin/src/assets/main.css b/zy-asrs-admin/src/assets/main.css
index d0b512f..fa22eaa 100644
--- a/zy-asrs-admin/src/assets/main.css
+++ b/zy-asrs-admin/src/assets/main.css
@@ -3,29 +3,35 @@
 .main {
   height: 100vh;
   overflow: hidden;
+  overflow-y: scroll;
 }
 
-.main .main-sider {
-  overflow-x: hidden;
-  overflow-y: scroll;
+.main-sider {
+  min-height: 100vh;
+  /*overflow-y: scroll;*/
   user-select: none;
 }
+
+.sider-style {
+  min-height: 100vh;
+  background: #01101E;
+}
  
-.main .main-sider::-webkit-scrollbar {
+.main-sider::-webkit-scrollbar {
   width: 5px !important;
 }
  
-.main .main-sider::-webkit-scrollbar-track {
+.main-sider::-webkit-scrollbar-track {
   background: #f1f1f1;
   border-radius: 10px;
 }
  
-.main .main-sider::-webkit-scrollbar-thumb {
+ .main-sider::-webkit-scrollbar-thumb {
   background: #888;
   border-radius: 10px;
 }
  
-.main .main-sider::-webkit-scrollbar-thumb:hover {
+.main-sider::-webkit-scrollbar-thumb:hover {
   background: #555;
 }
 
@@ -215,9 +221,9 @@
 }
 
 .content-view {
-  margin: 45px 16px;
-  margin-top: 60px;
-  padding: 24px;
+  margin: 10px 10px 20px;
+  overflow: hidden;
+  overflow-y: scroll;
   background: #fff;
   min-height: 280px;
 }
diff --git a/zy-asrs-admin/src/components/order/order/orderOut.vue b/zy-asrs-admin/src/components/order/order/orderOut.vue
index 5fdbe08..8b776d7 100644
--- a/zy-asrs-admin/src/components/order/order/orderOut.vue
+++ b/zy-asrs-admin/src/components/order/order/orderOut.vue
@@ -52,16 +52,16 @@
     {
         title: formatMessage('db.man_order.order_no', '璁㈠崟缂栧彿'),
         dataIndex: 'orderNo',
-        width: 140,
+        width: 160,
         ellipsis: true,
         ...getColumnSearchProps('orderNo'),
     },
     {
-        title: formatMessage('db.man_order.order_time', '鍗曟嵁鏃ユ湡'),
-        dataIndex: 'orderTime',
-        width: 140,
+        title: formatMessage('db.man_order.wave_no', '娉㈡缂栧彿'),
+        dataIndex: 'waveNo',
+        width: 160,
         ellipsis: true,
-        ...getColumnSearchProps('orderTime'),
+        ...getColumnSearchProps('waveNo'),
     },
     {
         title: formatMessage('db.man_order.order_type', '鍗曟嵁绫诲瀷'),
@@ -80,25 +80,25 @@
     {
         title: formatMessage('db.man_order.ioPri', '浼樺厛绾�'),
         dataIndex: 'ioPri',
-        width: 140,
+        width: 100,
         ellipsis: true,
         ...getColumnSearchProps('ioPri'),
     },
     {
-        title: formatMessage('db.man_order.wave_no', '娉㈡缂栧彿'),
-        dataIndex: 'waveNo',
-        width: 140,
-        ellipsis: true,
-        ...getColumnSearchProps('waveNo'),
-    },
-    {
         title: formatMessage('db.man_order.status', '鐘舵��'),
         dataIndex: 'status$',
-        width: 140,
+        width: 80,
         ellipsis: true,
         ...getColumnSearchProps('status$'),
     },
     {
+        title: formatMessage('db.man_order.order_time', '鍗曟嵁鏃ユ湡'),
+        dataIndex: 'orderTime',
+        width: 160,
+        ellipsis: true,
+        ...getColumnSearchProps('orderTime'),
+    },
+    {
         title: formatMessage('db.man_order.create_time', '娣诲姞鏃堕棿'),
         dataIndex: 'createTime$',
         width: 140,
diff --git a/zy-asrs-admin/src/views/IndexView.vue b/zy-asrs-admin/src/views/IndexView.vue
index 25a8473..a455b88 100644
--- a/zy-asrs-admin/src/views/IndexView.vue
+++ b/zy-asrs-admin/src/views/IndexView.vue
@@ -226,130 +226,138 @@
 </script>
 
 <template>
-  <a-layout class="main">
-    <a-layout-sider class="main-sider" v-model:collapsed="collapsed" :trigger="null" collapsible theme="dark">
-      <div class="logo" />
-      <a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" @select="menuSelect" theme="dark"
-        mode="inline">
-        <div>
-          <a-menu-item key="/" name="涓婚〉">
-            <HomeOutlined /> {{ formatMessage('common.home', '涓婚〉') }}
-          </a-menu-item>
-        </div>
+  <a-flex gap="middle" horizontal>
+      <div class="sider-style">
+        <a-layout-sider class="main-sider" v-model:collapsed="collapsed" :trigger="null" collapsible theme="dark">
+        <div class="logo" />
+        <a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" @select="menuSelect" theme="dark"
+                mode="inline" >
+          <div>
+            <a-menu-item key="/" name="涓婚〉">
+              <HomeOutlined /> {{ formatMessage('common.home', '涓婚〉') }}
+            </a-menu-item>
+          </div>
 
-        <div v-for="(item, index) in menuCache" :key="index">
-          <a-sub-menu :key="item.route" v-if="item.type == 0">
-            <template #title>
+          <div v-for="(item, index) in menuCache" :key="index">
+            <a-sub-menu :key="item.route" v-if="item.type == 0">
+              <template #title>
               <span>
                 <component :is="components[ref(item.icon).value]" />
                 {{ formatMessage(item.languageId, item.name) }}
               </span>
-            </template>
-            <div v-for="(child, idx) in item.children">
-              <a-menu-item v-if="child.status == 1" :key="child.route" :name="child.name"
-                :languageId="child.languageId">
-                {{ formatMessage(child.languageId, child.name) }}
-              </a-menu-item>
-            </div>
-          </a-sub-menu>
-        </div>
-      </a-menu>
-
-    </a-layout-sider>
-    <a-layout>
-      <a-layout-header style="background: #fff; padding: 0;">
-        <div class="header-top">
-          <div class="header-top-left">
-            <MenuUnfoldOutlined v-if="collapsed" class="trigger triggerLarge" @click="() => (collapsed = !collapsed)" />
-            <MenuFoldOutlined v-else class="trigger" @click="() => (collapsed = !collapsed)" />
-            <RedoOutlined class="trigger" @click="windowReload()" />
+              </template>
+              <div v-for="(child, idx) in item.children">
+                <a-menu-item v-if="child.status == 1" :key="child.route" :name="child.name"
+                             :languageId="child.languageId">
+                  {{ formatMessage(child.languageId, child.name) }}
+                </a-menu-item>
+              </div>
+            </a-sub-menu>
           </div>
-          <div class="header-top-right">
-            <div class="trigger" style="color: red;" v-if="licenseDays <= 30">
-              璁稿彲璇佹湁鏁堟湡锛歿{ licenseDays }}澶�
+        </a-menu>
+      </a-layout-sider>
+      </div>
+    <a-layout class="main">
+      <a-layout>
+        <a-layout-header style="background: #fff; padding: 0;">
+          <div class="header-top">
+            <div class="header-top-left">
+              <MenuUnfoldOutlined v-if="collapsed" class="trigger triggerLarge" @click="() => (collapsed = !collapsed)" />
+              <MenuFoldOutlined v-else class="trigger" @click="() => (collapsed = !collapsed)" />
+              <RedoOutlined class="trigger" @click="windowReload()" />
             </div>
-            <div class="trigger" v-if="globalState.currentHost">
-              <a-dropdown>
-                <div>
-                  <ApartmentOutlined />
-                  {{ globalState.currentHost?.name }}
-                </div>
-                <template #overlay>
-                  <a-menu>
-                    <a-menu-item v-for="(item, index) in hostList" :key="index" @click="switchHost(item)"
-                      :class="globalState.currentHost?.id == item.id ? 'active' : ''">{{ item.name }}</a-menu-item>
-                  </a-menu>
-                </template>
-              </a-dropdown>
-            </div>
-            <div class="trigger">
-              <a-dropdown>
-                <div>
-                  <TranslationOutlined />
-                  {{ globalState.localeList[globalState.locale]?.desc }}
-                </div>
-                <template #overlay>
-                  <a-menu>
-                    <div v-for="(item, key) in globalState.localeList" :key="key">
-                      <a-menu-item @click="switchLocale(key)" :class="globalState.locale == key ? 'active' : ''">{{
-                        item.desc }}</a-menu-item>
-                    </div>
-                  </a-menu>
-                </template>
-              </a-dropdown>
-            </div>
-            <div>
-              <a-dropdown>
-                <a class="header-user" @click.prevent>
-                  <UserOutlined />
-                  <span>{{ globalState.user.username }}</span>
-                </a>
-                <template #overlay>
-                  <a-menu @click="logout">
-                    <a-menu-item key="logout">{{ formatMessage('common.account.logout', '閫�鍑�') }}</a-menu-item>
-                  </a-menu>
-                </template>
-              </a-dropdown>
-            </div>
-          </div>
-        </div>
-      </a-layout-header>
-      <a-layout-content class="content-view">
-        <div class="tabs-fixed">
-          <div class="tabs-arrow-left" @click="handleScroll('left')">
-            <CaretLeftOutlined />
-          </div>
-
-          <div class="tabs-content" ref="tabsContent">
-            <div class="tabs-content-item">
-              <div v-for="(item, index) in routerCacheList" :key="index" @click="switchTabs(item)" class="tabs-item"
-                :class="currentCache == item.name ? 'tabs-item-active' : ''">
-                <div :class="currentCache == item.name ? '' : 'tabs-item-reload-none'" @click="reloadTabs" @click.stop>
-                  <RedoOutlined />
-                </div>
-                <div>{{ formatMessage(item.languageId, item.name) }}</div>
-                <div @click="closeTabs(item)" @click.stop>
-                  <CloseOutlined />
-                </div>
+            <div class="header-top-right">
+              <div class="trigger" style="color: red;" v-if="licenseDays <= 30">
+                璁稿彲璇佹湁鏁堟湡锛歿{ licenseDays }}澶�
+              </div>
+              <div class="trigger" v-if="globalState.currentHost">
+                <a-dropdown>
+                  <div>
+                    <ApartmentOutlined />
+                    {{ globalState.currentHost?.name }}
+                  </div>
+                  <template #overlay>
+                    <a-menu>
+                      <a-menu-item v-for="(item, index) in hostList" :key="index" @click="switchHost(item)"
+                                   :class="globalState.currentHost?.id == item.id ? 'active' : ''">{{ item.name }}</a-menu-item>
+                    </a-menu>
+                  </template>
+                </a-dropdown>
+              </div>
+              <div class="trigger">
+                <a-dropdown>
+                  <div>
+                    <TranslationOutlined />
+                    {{ globalState.localeList[globalState.locale]?.desc }}
+                  </div>
+                  <template #overlay>
+                    <a-menu>
+                      <div v-for="(item, key) in globalState.localeList" :key="key">
+                        <a-menu-item @click="switchLocale(key)" :class="globalState.locale == key ? 'active' : ''">{{
+                          item.desc }}</a-menu-item>
+                      </div>
+                    </a-menu>
+                  </template>
+                </a-dropdown>
+              </div>
+              <div>
+                <a-dropdown>
+                  <a class="header-user" @click.prevent>
+                    <UserOutlined />
+                    <span>{{ globalState.user.username }}</span>
+                  </a>
+                  <template #overlay>
+                    <a-menu @click="logout">
+                      <a-menu-item key="logout">{{ formatMessage('common.account.logout', '閫�鍑�') }}</a-menu-item>
+                    </a-menu>
+                  </template>
+                </a-dropdown>
               </div>
             </div>
           </div>
+        </a-layout-header>
+        <a-layout-content class="content-view">
+          <div class="tabs-fixed">
+            <div class="tabs-arrow-left" @click="handleScroll('left')">
+              <CaretLeftOutlined />
+            </div>
 
-          <div class="tabs-arrow-right" @click="handleScroll('right')">
-            <CaretRightOutlined />
+            <div class="tabs-content" ref="tabsContent">
+              <div class="tabs-content-item">
+                <div v-for="(item, index) in routerCacheList" :key="index" @click="switchTabs(item)" class="tabs-item"
+                     :class="currentCache == item.name ? 'tabs-item-active' : ''">
+                  <div :class="currentCache == item.name ? '' : 'tabs-item-reload-none'" @click="reloadTabs" @click.stop>
+                    <RedoOutlined />
+                  </div>
+                  <div>{{ formatMessage(item.languageId, item.name) }}</div>
+                  <div @click="closeTabs(item)" @click.stop>
+                    <CloseOutlined />
+                  </div>
+                </div>
+              </div>
+            </div>
+
+            <div class="tabs-arrow-right" @click="handleScroll('right')">
+              <CaretRightOutlined />
+            </div>
           </div>
-        </div>
 
-        <router-view v-slot="{ Component, route }" v-if="isRouterAlive">
-          <keep-alive :include="routerCache">
-            <component :is="Component" @pageReload="reloadTabs" />
-          </keep-alive>
-        </router-view>
-      </a-layout-content>
+          <router-view v-slot="{ Component, route }" v-if="isRouterAlive">
+            <keep-alive :include="routerCache">
+              <component :is="Component" @pageReload="reloadTabs" />
+            </keep-alive>
+          </router-view>
+        </a-layout-content>
+      </a-layout>
     </a-layout>
-  </a-layout>
-
-  <AiView />
+  </a-flex>
+  <!--<AiView />-->
 </template>
 
-<style scoped></style>
+<style scoped>
+  .ant-layout-sider ant-layout-sider-dark main-sider {
+     min-height: 100vh;
+    background: #01101E;
+  }
+
+</style>
diff --git a/zy-asrs-admin/src/views/base/locTypeBind/index.vue b/zy-asrs-admin/src/views/base/locTypeBind/index.vue
index 8dc5248..81ca934 100644
--- a/zy-asrs-admin/src/views/base/locTypeBind/index.vue
+++ b/zy-asrs-admin/src/views/base/locTypeBind/index.vue
@@ -2,7 +2,7 @@
 import { getCurrentInstance, ref, computed, reactive } from 'vue';
 import { useRouter } from "vue-router";
 import { get, post, postBlob } from '@/utils/request.js'
-import { message, Modal } from 'ant-design-vue';
+import { message, Modal, Col, Divider, Row, Flex } from 'ant-design-vue';
 import { logout } from '@/config.js';
 import EditView from './edit.vue'
 import InitView from './init.vue'
@@ -257,47 +257,50 @@
 </script>
 
 <template>
-  <div style="display: flex;">
-    <a-card :title="formatMessage('db.man_loc_area_type.type_id', '搴撲綅绫诲瀷')" style="flex: 3;margin-right: 30px;">
-      <a-input v-model:value="searchLocType" @change="handleLocAreaTypeDept"
-        :placeholder="formatMessage('page.input', '璇疯緭鍏�')" style="margin-bottom: 8px" />
-      <a-tree v-model:expandedKeys="locTypeExpandedKeys" @select="handleLocTypeSelected"
-        :tree-data="locTypeData" blockNode>
-        <template #title="{ name }">
-          <span>{{ name }}</span>
-        </template>
-      </a-tree>
-    </a-card>
-
-    <a-card style="flex: 10;">
-      <InitView ref="initChild" @tableReload="handleTableReload" />
-      <EditView ref="editChild" @tableReload="handleTableReload" />
-      <div class="table-header">
-        <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
-          style="width: 200px;" @search="onSearch" />
-        <div class="table-header-right">
-          <a-button @click="handleInit(null)" type="primary">{{ formatMessage('page.init', '鍒濆鍖�') }}</a-button>
-          <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button>
-          <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
-        </div>
-      </div>
-      <a-table :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }"
-        :data-source="tableData.records" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id"
-        :pagination="{ total: tableData.total, onChange: onPageChange }"
-        :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns" :loading="state.loading">
-        <template #bodyCell="{ column, text, record }">
-          <template v-if="column.dataIndex === 'oper'">
-            <div style="display: flex;justify-content: space-evenly;">
-              <a-button type="link" primary @click="handleEdit(record)">{{ formatMessage('page.edit', '缂栬緫')
-                }}</a-button>
-              <a-button type="link" danger @click="handleDel([record])">{{ formatMessage('page.delete', '鍒犻櫎')
-                }}</a-button>
-            </div>
+  <Row>
+    <Col :span="5">
+      <a-card :title="formatMessage('db.man_loc_area_type.type_id', '搴撲綅绫诲瀷')" style="flex: 3;margin-right: 30px;">
+        <a-input v-model:value="searchLocType" @change="handleLocAreaTypeDept"
+                 :placeholder="formatMessage('page.input', '璇疯緭鍏�')" style="margin-bottom: 8px" />
+        <a-tree v-model:expandedKeys="locTypeExpandedKeys" @select="handleLocTypeSelected"
+                :tree-data="locTypeData" blockNode>
+          <template #title="{ name }">
+            <span>{{ name }}</span>
           </template>
-        </template>
-      </a-table>
-    </a-card>
-  </div>
+        </a-tree>
+      </a-card>
+    </Col>
+    <Col :span="19">
+      <a-card style="flex: 10;">
+        <InitView ref="initChild" @tableReload="handleTableReload" />
+        <EditView ref="editChild" @tableReload="handleTableReload" />
+        <div class="table-header">
+          <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
+                          style="width: 200px;" @search="onSearch" />
+          <div class="table-header-right">
+            <a-button @click="handleInit(null)" type="primary">{{ formatMessage('page.init', '鍒濆鍖�') }}</a-button>
+            <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button>
+            <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
+          </div>
+        </div>
+        <a-table :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }"
+                 :data-source="tableData.records" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id"
+                 :pagination="{ total: tableData.total, onChange: onPageChange }"
+                 :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns" :loading="state.loading">
+          <template #bodyCell="{ column, text, record }">
+            <template v-if="column.dataIndex === 'oper'">
+              <div style="display: flex;justify-content: space-evenly;">
+                <a-button type="link" primary @click="handleEdit(record)">{{ formatMessage('page.edit', '缂栬緫')
+                  }}</a-button>
+                <a-button type="link" danger @click="handleDel([record])">{{ formatMessage('page.delete', '鍒犻櫎')
+                  }}</a-button>
+              </div>
+            </template>
+          </template>
+        </a-table>
+      </a-card>
+    </Col>
+  </Row>
 </template>
 
 <style></style>
diff --git a/zy-asrs-admin/src/views/out/wave/index.vue b/zy-asrs-admin/src/views/out/wave/index.vue
index 1223551..cae5cfd 100644
--- a/zy-asrs-admin/src/views/out/wave/index.vue
+++ b/zy-asrs-admin/src/views/out/wave/index.vue
@@ -41,10 +41,12 @@
 let tableDataColSpan = []
 const customColSpanProps = (index) => {
   let count = tableDataColSpan[index];
-  if (count == null) {
+  console.log(index + ' ----=====-->' + count)
+  if (count == null || count == undefined) {
     count = 0;
   }
-  return {
+    console.log(' ----=====-->' + count)
+    return {
     rowSpan: count,
   };
 }
@@ -150,13 +152,11 @@
       let colSpan = []
       data.forEach((item) => {
         let count = 0;
-
         item.waveDetlList.forEach((detl) => {
           detl.waveStatus = item.waveStatus;
           detl.waveStatus$ = item.waveStatus$;
           detl.waveType = item.waveType;
           detl.waveType$ = item.waveType$;
-
           count++;
           tmp.push(detl)
         })
@@ -166,10 +166,11 @@
       })
 
       tableDataColSpan = colSpan;
+      console.log('=========>');
+      console.log(tmp)
+      console.log(tableDataColSpan);
       tableData.value = tmp;
-
       state.loading = false;
-
     } else if (result.code === 401) {
       message.error(result.msg);
       logout()
diff --git a/zy-asrs-admin/src/views/task/task/index.vue b/zy-asrs-admin/src/views/task/task/index.vue
index 049dd9d..342cc03 100644
--- a/zy-asrs-admin/src/views/task/task/index.vue
+++ b/zy-asrs-admin/src/views/task/task/index.vue
@@ -44,14 +44,14 @@
   {
     title: formatMessage('db.man_task.task_no', '浠诲姟缂栧彿'),
     dataIndex: 'taskNo',
-    width: 140,
+    width: 120,
     ellipsis: true,
     ...getColumnSearchProps('taskNo'),
   },
   {
     title: formatMessage('db.man_task.task_sts', '浠诲姟鐘舵��'),
     dataIndex: 'taskSts$',
-    width: 140,
+    width: 200,
     ellipsis: true,
     ...getColumnSearchProps('taskSts$'),
   },
@@ -65,7 +65,7 @@
   {
     title: formatMessage('db.man_task.io_pri', '浼樺厛绾�'),
     dataIndex: 'ioPri',
-    width: 140,
+    width: 120,
     ellipsis: true,
     ...getColumnSearchProps('ioPri'),
   },
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/entity/domain/Constant.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/entity/domain/Constant.java
deleted file mode 100644
index 36295fd..0000000
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/entity/domain/Constant.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.zy.asrs.wms.apis.wcs.entity.domain;
-
-
-public class Constant {
-
-    private static String HOST = "http://localhost:8080";
-
-    public static String ISSUE_TASK_OF_EVENT = HOST +  "/task/create";
-
-    public static String CONVEYOR_START = HOST + "/conveyor/moveContainer";
-}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/entity/domain/SystemProperties.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/entity/domain/SystemProperties.java
new file mode 100644
index 0000000..17db6da
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/entity/domain/SystemProperties.java
@@ -0,0 +1,25 @@
+package com.zy.asrs.wms.apis.wcs.entity.domain;
+
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Data
+@ConfigurationProperties(prefix = "rcs")
+@Component
+public class SystemProperties {
+    /***RCS鍩虹API HOST*/
+    private String baseHost;
+    /***RRCS涓婃姤浠诲姟鐘舵��*/
+    private String issueTaskOfEvent;
+    /**RCS閫氱煡浼犺緭绾挎祦鍔�*/
+    private String conveyorStart;
+    private static String HOST = "http://localhost:8080";
+
+    public static String ISSUE_TASK_OF_EVENT = HOST +  "/task/create";
+
+    public static String CONVEYOR_START = HOST + "/conveyor/moveContainer";
+
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/schedule/ScheduleJobs.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/schedule/ScheduleJobs.java
index f4c88e5..ab96923 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/schedule/ScheduleJobs.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/schedule/ScheduleJobs.java
@@ -1,39 +1,20 @@
 package com.zy.asrs.wms.apis.wcs.schedule;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.zy.asrs.framework.exception.CoolException;
-import com.zy.asrs.wms.apis.wcs.entity.domain.Constant;
-import com.zy.asrs.wms.apis.wcs.entity.request.ConveyorStarParam;
-import com.zy.asrs.wms.apis.wcs.entity.request.PublishTasksParam;
-import com.zy.asrs.wms.apis.wcs.entity.request.TaskDescribe;
-import com.zy.asrs.wms.apis.wcs.entity.request.TaskParam;
-import com.zy.asrs.wms.apis.wcs.entity.response.CommonReponse;
 import com.zy.asrs.wms.asrs.entity.Task;
 import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
 import com.zy.asrs.wms.asrs.service.TaskService;
 import com.zy.asrs.wms.asrs.service.WorkService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
-import org.springframework.transaction.TransactionDefinition;
-import org.springframework.transaction.TransactionStatus;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.transaction.support.DefaultTransactionDefinition;
-import org.springframework.util.LinkedMultiValueMap;
-import org.springframework.util.MultiValueMap;
 import org.springframework.web.client.RestTemplate;
 
-import java.util.ArrayList;
 import java.util.Comparator;
-import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -54,45 +35,45 @@
     /***
      * 鍏ュ簱浠诲姟---閫氱煡ESS杈撻�佺嚎娴佸姩
      */
-    //    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/3 * * * * ? ")
     @Transactional(rollbackFor = Exception.class)
     public void conveyorStart() {
         List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
-                .eq(Task::getTaskSts, TaskStsType.WCS_CONTAINER_RECEIVE.id).eq(Task::getStatus, 0));
+                .eq(Task::getTaskSts, TaskStsType.WCS_CONTAINER_RECEIVE.id).eq(Task::getStatus, 1));
         tasks.forEach(task -> {
             try {
-                ConveyorStarParam conveyorStarParam = new ConveyorStarParam();
-                conveyorStarParam.setSlotCode(task.getOriginLoc())
-                        .setContainerCode(task.getBarcode());
-                //璋冪敤涓夋柟鎺ュ彛锛屽皢浠诲姟鎺ㄩ�佽嚦ESS骞冲彴
-                MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-                // 璁剧疆璇锋眰鍙傛暟
-                params.add("params", JSONObject.toJSONString(conveyorStarParam));
-                log.info("璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", Constant.CONVEYOR_START, JSONObject.toJSONString(conveyorStarParam));
-                HttpHeaders headers = new HttpHeaders();
-                headers.add("Content-Type", "application/json");
-                HttpEntity httpEntity = new HttpEntity<>(params, headers);
-                // 璇锋眰
-                ResponseEntity<String> exchange = restTemplate.exchange(Constant.CONVEYOR_START, HttpMethod.POST, httpEntity, String.class);
-                log.info("涓嬪彂娴佸姩閫氱煡 杩斿洖缁撴灉锛歿}", exchange);
-                if (exchange.getBody() == null) {
-                    throw new CoolException("涓嬪彂娴佸姩閫氱煡澶辫触锛侊紒");
-                } else {
-                    CommonReponse commonReponse = JSON.toJavaObject(JSON.parseObject(exchange.getBody()), CommonReponse.class);
-                    if (commonReponse.getCode() == 0) {
+//                ConveyorStarParam conveyorStarParam = new ConveyorStarParam();
+//                conveyorStarParam.setSlotCode(task.getOriginLoc())
+//                        .setContainerCode(task.getBarcode());
+//                //璋冪敤涓夋柟鎺ュ彛锛屽皢浠诲姟鎺ㄩ�佽嚦ESS骞冲彴
+//                MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+//                // 璁剧疆璇锋眰鍙傛暟
+//                params.add("params", JSONObject.toJSONString(conveyorStarParam));
+//                log.info("璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", Constant.CONVEYOR_START, JSONObject.toJSONString(conveyorStarParam));
+//                HttpHeaders headers = new HttpHeaders();
+//                headers.add("Content-Type", "application/json");
+//                HttpEntity httpEntity = new HttpEntity<>(params, headers);
+//                // 璇锋眰
+//                ResponseEntity<String> exchange = restTemplate.exchange(Constant.CONVEYOR_START, HttpMethod.POST, httpEntity, String.class);
+//                log.info("涓嬪彂娴佸姩閫氱煡 杩斿洖缁撴灉锛歿}", exchange);
+//                if (exchange.getBody() == null) {
+//                    throw new CoolException("涓嬪彂娴佸姩閫氱煡澶辫触锛侊紒");
+//                } else {
+//                    CommonReponse commonReponse = JSON.toJavaObject(JSON.parseObject(exchange.getBody()), CommonReponse.class);
+//                    if (commonReponse.getCode() == 0) {
                         taskService.update(new LambdaUpdateWrapper<Task>()
                                 .eq(Task::getId, task.getId())
-                                .set(Task::getTaskType, TaskStsType.WCS_CONVEYOR_START.id));
-                        log.info(task.getTaskNo() + "涓嬪彂娴佸姩閫氱煡"  + commonReponse.getMsg());
-                    } else {
-                        throw new CoolException("涓嬪彂娴佸姩閫氱煡澶辫触锛侊紒");
-                    }
-                }
+                                .set(Task::getTaskSts, TaskStsType.WCS_CONVEYOR_START.id));
+//                        log.info(task.getTaskNo() + "涓嬪彂娴佸姩閫氱煡" + commonReponse.getMsg());
+//                    } else {
+//                        throw new CoolException("涓嬪彂娴佸姩閫氱煡澶辫触锛侊紒");
+//                    }
+//                }
             } catch (Exception ex) {
                 log.error(ex.getMessage());
             } finally {
                 //濡傛灉寮傚父淇敼绂佺敤鐘舵��
-                taskService.update(new LambdaUpdateWrapper<Task>().set(Task::getStatus, 1).eq(Task::getId, task.getId()));
+//                taskService.update(new LambdaUpdateWrapper<Task>().set(Task::getStatus, 0).eq(Task::getId, task.getId()));
             }
         });
 
@@ -100,129 +81,127 @@
 
 
     /***
-     * 鍏ュ簱浠诲姟---姣忛殧3绉掞紝鍒锋柊褰撳墠閫氱煡妗e垪琛紝涓嬪彂寰呭叆搴撹鍗曡嚦ESS
+     * 鍏ュ簱浠诲姟---涓嬪彂鍏ュ簱浠诲姟
+     * 姣忛殧3绉掞紝鍒锋柊褰撳墠閫氱煡妗e垪琛紝涓嬪彂寰呭叆搴撹鍗曡嚦ESS
      * 鏌ヨ褰撳墠浠诲姟鍒楄〃锛�
      */
-//    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/3 * * * * ? ")
     @Transactional(rollbackFor = Exception.class)
     public void waitPakinSchedule() {
         //鑾峰彇褰撳墠浠诲姟妗d腑锛屾墍鏈変负寰呭叆搴撶姸鎬佺殑浠诲姟妗o紝鎸夋椂闂村崌搴忔帓鍒�
         List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
-                        .eq(Task::getTaskType, 1)
-                        .eq(Task::getTaskSts, TaskStsType.GENERATE_IN))
+//                        .eq(Task::getTaskType, 1)
+                        .eq(Task::getTaskSts, TaskStsType.GENERATE_IN.id))
                 .stream().sorted(Comparator.comparing(Task::getTaskSts))
                 .collect(Collectors.toList());
 
         // 鏁版嵁缁勮
-        PublishTasksParam tasksParam = new PublishTasksParam();
-        //TODO 纭鏄惁闇�瑕佸崟浠诲姟澶氬鍣ㄧ爜鐨勯渶姹傦紝鐩墠绯荤粺閮芥槸鍗曞鍣ㄧ爜鐢熸垚鍗曚换鍔★紝澶氫换鍔℃槑缁嗭紙鐗╂枡娣疯锛�
-        tasks.forEach(task -> {
-            List<TaskParam> params = new ArrayList<>();
-            TaskParam param = new TaskParam();
-            //璁剧疆瀹瑰櫒缂栫爜
-            param.setTaskCode(task.getTaskNo());
-            List<TaskDescribe> taskDescribes = new ArrayList<>();
-            TaskDescribe describe = new TaskDescribe();
-            //璁剧疆鐩爣搴撲綅锛岀珯鐐�
-            describe.setContainerCode(task.getBarcode())
-                    .setToLocationCode(task.getTargetLoc())
-                    .setToStationCode(task.getTargetSite());
-            taskDescribes.add(describe);
-            param.setTaskDescribe(taskDescribes);
-            params.add(param);
-            tasksParam.setTasks(params);
-        });
-
-        tasksParam.setTaskType("putaway");
-        // TODO 澶氫换鍔″璁㈠崟锛岀粺涓�璋冨害锛屾槸鍚︿細鍑虹幇閮ㄥ垎鎴愬姛锛岄儴鍒嗗け璐ョ殑鎯呭喌
-        //璋冪敤涓夋柟鎺ュ彛锛屽皢浠诲姟鎺ㄩ�佽嚦ESS骞冲彴
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        // 璁剧疆璇锋眰鍙傛暟
-        params.add("params", JSONObject.toJSONString(tasksParam));
-        log.info("璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", Constant.ISSUE_TASK_OF_EVENT, JSONObject.toJSONString(tasksParam));
-        HttpHeaders headers = new HttpHeaders();
-        headers.add("Content-Type", "application/json");
-        HttpEntity httpEntity = new HttpEntity<>(params, headers);
-        // 璇锋眰
-        ResponseEntity<String> exchange = restTemplate.exchange(Constant.ISSUE_TASK_OF_EVENT, HttpMethod.POST, httpEntity, String.class);
-        log.info("涓嬪彂浠诲姟 杩斿洖缁撴灉锛歿}", exchange);
-        if (exchange.getBody() == null) {
-            throw new CoolException("涓嬪彂浠诲姟澶辫触锛侊紒");
-        } else {
-            CommonReponse reponse = (CommonReponse) JSON.parse(exchange.getBody());
-            if (reponse.getCode() == 0) {
+//        PublishTasksParam tasksParam = new PublishTasksParam();
+//        //TODO 纭鏄惁闇�瑕佸崟浠诲姟澶氬鍣ㄧ爜鐨勯渶姹傦紝鐩墠绯荤粺閮芥槸鍗曞鍣ㄧ爜鐢熸垚鍗曚换鍔★紝澶氫换鍔℃槑缁嗭紙鐗╂枡娣疯锛�
+//        tasks.forEach(task -> {
+//            List<TaskParam> params = new ArrayList<>();
+//            TaskParam param = new TaskParam();
+//            //璁剧疆瀹瑰櫒缂栫爜
+//            param.setTaskCode(task.getTaskNo());
+//            List<TaskDescribe> taskDescribes = new ArrayList<>();
+//            TaskDescribe describe = new TaskDescribe();
+//            //璁剧疆鐩爣搴撲綅锛岀珯鐐�
+//            describe.setContainerCode(task.getBarcode())
+//                    .setToLocationCode(task.getTargetLoc())
+//                    .setToStationCode(task.getTargetSite());
+//            taskDescribes.add(describe);
+//            param.setTaskDescribe(taskDescribes);
+//            params.add(param);
+//            tasksParam.setTasks(params);
+//        });
+//
+//        tasksParam.setTaskType("putaway");
+//        // TODO 澶氫换鍔″璁㈠崟锛岀粺涓�璋冨害锛屾槸鍚︿細鍑虹幇閮ㄥ垎鎴愬姛锛岄儴鍒嗗け璐ョ殑鎯呭喌
+//        //璋冪敤涓夋柟鎺ュ彛锛屽皢浠诲姟鎺ㄩ�佽嚦ESS骞冲彴
+//        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+//        // 璁剧疆璇锋眰鍙傛暟
+//        params.add("params", JSONObject.toJSONString(tasksParam));
+//        log.info("璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", Constant.ISSUE_TASK_OF_EVENT, JSONObject.toJSONString(tasksParam));
+//        HttpHeaders headers = new HttpHeaders();
+//        headers.add("Content-Type", "application/json");
+//        HttpEntity httpEntity = new HttpEntity<>(params, headers);
+//        // 璇锋眰
+//        ResponseEntity<String> exchange = restTemplate.exchange(Constant.ISSUE_TASK_OF_EVENT, HttpMethod.POST, httpEntity, String.class);
+//        log.info("涓嬪彂浠诲姟 杩斿洖缁撴灉锛歿}", exchange);
+//        if (exchange.getBody() == null) {
+//            throw new CoolException("涓嬪彂浠诲姟澶辫触锛侊紒");
+//        } else {
+//            CommonReponse reponse = (CommonReponse) JSON.parse(exchange.getBody());
+//            if (reponse.getCode() == 0) {
                 //璇锋眰鎴愬姛鍚庯紝缁熶竴淇敼鎵�鏈変换鍔℃。鐘舵�佷负鍏ュ簱鎵ц涓��
                 tasks.forEach(task -> {
                     taskService.update(new LambdaUpdateWrapper<Task>()
                             .set(Task::getTaskSts, TaskStsType.WCS_EXECUTE_IN.id)
                             .eq(Task::getBarcode, task.getBarcode()));
                 });
-            } else {
-                // TODO 璇锋眰澶辫触闇�纭鏄惁瀛樺湪閮ㄥ垎鎴愬姛鐨勬儏鍐碉紝閮ㄥ垎鎴愬姛闇�瑕佸崟鐙埛鏂版垚鍔熺殑浠诲姟妗g姸鎬�
-                throw new CoolException(reponse.getMsg());
-            }
-        }
+//            } else {
+//                // TODO 璇锋眰澶辫触闇�纭鏄惁瀛樺湪閮ㄥ垎鎴愬姛鐨勬儏鍐碉紝閮ㄥ垎鎴愬姛闇�瑕佸崟鐙埛鏂版垚鍔熺殑浠诲姟妗g姸鎬�
+//                throw new CoolException(reponse.getMsg());
+//            }
+//        }
     }
 
 
     /**
-     * 鍑哄簱浠诲姟--- 姣忛殧3绉掞紝鑾峰彇褰撳墠鍑哄簱浠诲姟鍒楄〃鐘舵�佷负WCS_EXECUTE_OUT_ARRIVED鐨勪换鍔★紝骞堕�氱煡ESS娴佸姩杈撻�佺嚎
-     * */
-//    @Scheduled(cron = "0/3 * * * * ? ")
+     * 鍑哄簱浠诲姟---閫氱煡瀹瑰櫒娴佸姩
+     * 姣忛殧3绉掞紝鑾峰彇褰撳墠鍑哄簱浠诲姟鍒楄〃鐘舵�佷负WCS_EXECUTE_OUT_ARRIVED鐨勪换鍔★紝骞堕�氱煡ESS娴佸姩杈撻�佺嚎
+     */
+    @Scheduled(cron = "0/5 * * * * ? ")
     @Transactional(rollbackFor = Exception.class)
     public void conveyorToNotify() {
         List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
-                .eq(Task::getTaskSts, TaskStsType.WCS_EXECUTE_OUT_ARRIVED.id).eq(Task::getStatus, 0));
-        tasks.forEach(task -> {
-            try {
-                ConveyorStarParam conveyorStarParam = new ConveyorStarParam();
-                conveyorStarParam.setSlotCode(task.getOriginLoc())
-                        .setContainerCode(task.getBarcode());
-                if (task.getTaskType() == 101) { //浠诲姟绫诲瀷涓�101鍏ㄧ洏鍑哄簱锛岀洿鎺ュ彇涓嬪鍣紝浼�200
-                    conveyorStarParam.setDirection("200");
-                } else if (task.getTaskType() == 103) { //濡傛灉涓轰换鍔$被鍨嬩负103锛岄渶璧板洖搴撴搷浣滐紝浼�100
-                    conveyorStarParam.setDirection("100");
-                }
-                //璋冪敤涓夋柟鎺ュ彛锛屽皢浠诲姟鎺ㄩ�佽嚦ESS骞冲彴
-                MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-                // 璁剧疆璇锋眰鍙傛暟
-                params.add("params", JSONObject.toJSONString(conveyorStarParam));
-                log.info("璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", Constant.CONVEYOR_START, JSONObject.toJSONString(conveyorStarParam));
-                HttpHeaders headers = new HttpHeaders();
-                headers.add("Content-Type", "application/json");
-                HttpEntity httpEntity = new HttpEntity<>(params, headers);
-                // 璇锋眰
-                ResponseEntity<String> exchange = restTemplate.exchange(Constant.CONVEYOR_START, HttpMethod.POST, httpEntity, String.class);
-                log.info("涓嬪彂娴佸姩閫氱煡 杩斿洖缁撴灉锛歿}", exchange);
-                if (exchange.getBody() == null) {
-                    throw new CoolException("涓嬪彂娴佸姩閫氱煡澶辫触锛侊紒");
-                } else {
-                    CommonReponse commonReponse = JSON.toJavaObject(JSON.parseObject(exchange.getBody()), CommonReponse.class);
-                    if (commonReponse.getCode() == 0) {
-                        //娴佸姩閫氱煡涓嬪彂瀹屾垚鍚庯紝淇敼浠诲姟鐘舵�佷负杈撻�佺嚎娴佸姩涓�傘��
-                        if (task.getTaskType() == 101) {
-                            taskService.update(new LambdaUpdateWrapper<Task>()
-                                    .eq(Task::getId, task.getId())
-                                    .set(Task::getTaskType, TaskStsType.COMPLETE_OUT.id));
-                        } else {
-                            taskService.update(new LambdaUpdateWrapper<Task>()
-                                    .eq(Task::getId, task.getId())
-                                    .set(Task::getTaskType, TaskStsType.WCS_EXECUTE_OUT_CONVEYOR.id));
-                        }
+                .eq(Task::getTaskSts, TaskStsType.WCS_EXECUTE_OUT_ARRIVED.id).eq(Task::getStatus, 1));
 
-                        log.info(task.getTaskNo() + "涓嬪彂娴佸姩閫氱煡"  + commonReponse.getMsg());
-                    } else {
-                        throw new CoolException("涓嬪彂娴佸姩閫氱煡澶辫触锛侊紒");
-                    }
-                }
-            } catch (Exception ex) {
-                log.error(ex.getMessage());
-            } finally {
-                //濡傛灉寮傚父淇敼绂佺敤鐘舵��
-                taskService.update(new LambdaUpdateWrapper<Task>().set(Task::getStatus, 1)
-                        .set(Task::getUpdateTime, new Date())
-                        .eq(Task::getId, task.getId()));
-            }
+        // 杩橀渶瑕佸啀淇敼
+        tasks.forEach(task -> {
+//            try {
+//                ConveyorStarParam conveyorStarParam = new ConveyorStarParam();
+//                conveyorStarParam.setSlotCode(task.getOriginLoc())
+//                        .setContainerCode(task.getBarcode());
+//                if (task.getTaskType() == 101) { //浠诲姟绫诲瀷涓�101鍏ㄧ洏鍑哄簱锛岀洿鎺ュ彇涓嬪鍣紝浼�200
+//                    conveyorStarParam.setDirection("200");
+//                } else if (task.getTaskType() == 103) { //濡傛灉涓轰换鍔$被鍨嬩负103锛岄渶璧板洖搴撴搷浣滐紝浼�100
+//                    conveyorStarParam.setDirection("100");
+//                }
+//                //璋冪敤涓夋柟鎺ュ彛锛屽皢浠诲姟鎺ㄩ�佽嚦ESS骞冲彴
+//                MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+//                // 璁剧疆璇锋眰鍙傛暟
+//                params.add("params", JSONObject.toJSONString(conveyorStarParam));
+//                log.info("璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", Constant.CONVEYOR_START, JSONObject.toJSONString(conveyorStarParam));
+//                HttpHeaders headers = new HttpHeaders();
+//                headers.add("Content-Type", "application/json");
+//                HttpEntity httpEntity = new HttpEntity<>(params, headers);
+//                // 璇锋眰
+//                ResponseEntity<String> exchange = restTemplate.exchange(Constant.CONVEYOR_START, HttpMethod.POST, httpEntity, String.class);
+//                log.info("涓嬪彂娴佸姩閫氱煡 杩斿洖缁撴灉锛歿}", exchange);
+//                if (exchange.getBody() == null) {
+//                    throw new CoolException("涓嬪彂娴佸姩閫氱煡澶辫触锛侊紒");
+//                } else {
+//                    CommonReponse commonReponse = JSON.toJavaObject(JSON.parseObject(exchange.getBody()), CommonReponse.class);
+//                    if (commonReponse.getCode() == 0) {
+                        //娴佸姩閫氱煡涓嬪彂瀹屾垚鍚庯紝淇敼浠诲姟鐘舵�佷负杈撻�佺嚎娴佸姩涓�傘��
+                        taskService.update(new LambdaUpdateWrapper<Task>()
+                                .eq(Task::getId, task.getId())
+                                .set(Task::getTaskSts, TaskStsType.COMPLETE_OUT.id));
+
+//                        log.info(task.getTaskNo() + "涓嬪彂娴佸姩閫氱煡" + commonReponse.getMsg());
+//                    } else {
+//                        throw new CoolException("涓嬪彂娴佸姩閫氱煡澶辫触锛侊紒");
+//                    }
+//                }
+//            } catch (Exception ex) {
+//                log.error(ex.getMessage());
+//            } finally {
+//                //濡傛灉寮傚父淇敼绂佺敤鐘舵��
+//                taskService.update(new LambdaUpdateWrapper<Task>().set(Task::getStatus, 0)
+//                        .set(Task::getUpdateTime, new Date())
+//                        .eq(Task::getId, task.getId()));
+//            }
         });
     }
 
@@ -233,64 +212,64 @@
      * //TODO 1. 姝e父鍑哄簱鍚庯紝娓呴櫎浠诲姟锛�
      * //TODO 2. 鍑哄簱鍚庤繕鏈夊簱瀛橈紝闇�瑕佹坊鍔犲鍣ㄥ洖搴撴搷浣�
      */
-    //@Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/3 * * * * ? ")
     @Transactional(rollbackFor = Exception.class)
     public void waveToTask() {
         //鑾峰彇褰撳墠浠诲姟妗d腑锛屾墍鏈変负寰呭嚭搴撶姸鎬佺殑浠诲姟妗o紝鎸夋椂闂村崌搴忔帓鍒�
         List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
-                        .eq(Task::getTaskType, 101) //TODO 濡備綍纭鏄�101锛岃繕鏄�103
-                        .eq(Task::getTaskSts, TaskStsType.GENERATE_OUT))
+                        .ge(Task::getTaskType, 101) //TODO 濡備綍纭鏄�101锛岃繕鏄�103
+                        .eq(Task::getTaskSts, TaskStsType.GENERATE_OUT.id))
                 .stream().sorted(Comparator.comparing(Task::getTaskSts))
                 .collect(Collectors.toList());
 
         // 鏁版嵁缁勮
-        PublishTasksParam tasksParam = new PublishTasksParam();
-        //TODO 纭鏄惁闇�瑕佸崟浠诲姟澶氬鍣ㄧ爜鐨勯渶姹傦紝鐩墠绯荤粺閮芥槸鍗曞鍣ㄧ爜鐢熸垚鍗曚换鍔★紝澶氫换鍔℃槑缁嗭紙鐗╂枡娣疯锛�
-        tasks.forEach(task -> {
-            List<TaskParam> params = new ArrayList<>();
-            TaskParam param = new TaskParam();
-            //璁剧疆瀹瑰櫒缂栫爜
-            param.setTaskCode(task.getTaskNo());
-            List<TaskDescribe> taskDescribes = new ArrayList<>();
-            TaskDescribe describe = new TaskDescribe();
-            //璁剧疆鐩爣搴撲綅锛岀珯鐐�
-            describe.setContainerCode(task.getBarcode())
-                    .setToLocationCode(task.getTargetLoc())
-                    .setToStationCode(task.getTargetSite());
-            taskDescribes.add(describe);
-            param.setTaskDescribe(taskDescribes);
-            params.add(param);
-            tasksParam.setTasks(params);
-        });
-
-        tasksParam.setTaskType("carry");
-        // TODO 澶氫换鍔″璁㈠崟锛岀粺涓�璋冨害锛屾槸鍚︿細鍑虹幇閮ㄥ垎鎴愬姛锛岄儴鍒嗗け璐ョ殑鎯呭喌
-        //璋冪敤涓夋柟鎺ュ彛锛屽皢浠诲姟鎺ㄩ�佽嚦ESS骞冲彴
-        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-        // 璁剧疆璇锋眰鍙傛暟
-        params.add("params", JSONObject.toJSONString(tasksParam));
-        log.info("璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", Constant.ISSUE_TASK_OF_EVENT, JSONObject.toJSONString(tasksParam));
-        HttpHeaders headers = new HttpHeaders();
-        headers.add("Content-Type", "application/json");
-        HttpEntity httpEntity = new HttpEntity<>(params, headers);
-        // 璇锋眰
-        ResponseEntity<String> exchange = restTemplate.exchange(Constant.ISSUE_TASK_OF_EVENT, HttpMethod.POST, httpEntity, String.class);
-        log.info("涓嬪彂浠诲姟 杩斿洖缁撴灉锛歿}", exchange);
-        if (exchange.getBody() == null) {
-            throw new CoolException("涓嬪彂浠诲姟澶辫触锛侊紒");
-        } else {
-            CommonReponse reponse = (CommonReponse) JSON.parse(exchange.getBody());
-            if (reponse.getCode() == 0) {
+//        PublishTasksParam tasksParam = new PublishTasksParam();
+//        //TODO 纭鏄惁闇�瑕佸崟浠诲姟澶氬鍣ㄧ爜鐨勯渶姹傦紝鐩墠绯荤粺閮芥槸鍗曞鍣ㄧ爜鐢熸垚鍗曚换鍔★紝澶氫换鍔℃槑缁嗭紙鐗╂枡娣疯锛�
+//        tasks.forEach(task -> {
+//            List<TaskParam> params = new ArrayList<>();
+//            TaskParam param = new TaskParam();
+//            //璁剧疆瀹瑰櫒缂栫爜
+//            param.setTaskCode(task.getTaskNo());
+//            List<TaskDescribe> taskDescribes = new ArrayList<>();
+//            TaskDescribe describe = new TaskDescribe();
+//            //璁剧疆鐩爣搴撲綅锛岀珯鐐�
+//            describe.setContainerCode(task.getBarcode())
+//                    .setToLocationCode(task.getTargetLoc())
+//                    .setToStationCode(task.getTargetSite());
+//            taskDescribes.add(describe);
+//            param.setTaskDescribe(taskDescribes);
+//            params.add(param);
+//            tasksParam.setTasks(params);
+//        });
+//
+//        tasksParam.setTaskType("carry");
+//        // TODO 澶氫换鍔″璁㈠崟锛岀粺涓�璋冨害锛屾槸鍚︿細鍑虹幇閮ㄥ垎鎴愬姛锛岄儴鍒嗗け璐ョ殑鎯呭喌
+//        //璋冪敤涓夋柟鎺ュ彛锛屽皢浠诲姟鎺ㄩ�佽嚦ESS骞冲彴
+//        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+//        // 璁剧疆璇锋眰鍙傛暟
+//        params.add("params", JSONObject.toJSONString(tasksParam));
+//        log.info("璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", Constant.ISSUE_TASK_OF_EVENT, JSONObject.toJSONString(tasksParam));
+//        HttpHeaders headers = new HttpHeaders();
+//        headers.add("Content-Type", "application/json");
+//        HttpEntity httpEntity = new HttpEntity<>(params, headers);
+//        // 璇锋眰
+//        ResponseEntity<String> exchange = restTemplate.exchange(Constant.ISSUE_TASK_OF_EVENT, HttpMethod.POST, httpEntity, String.class);
+//        log.info("涓嬪彂浠诲姟 杩斿洖缁撴灉锛歿}", exchange);
+//        if (exchange.getBody() == null) {
+//            throw new CoolException("涓嬪彂浠诲姟澶辫触锛侊紒");
+//        } else {
+//            CommonReponse reponse = (CommonReponse) JSON.parse(exchange.getBody());
+//            if (reponse.getCode() == 0) {
                 //璇锋眰鎴愬姛鍚庯紝缁熶竴淇敼鎵�鏈変换鍔℃。鐘舵�佷负鍏ュ簱鎵ц涓��
                 tasks.forEach(task -> {
                     taskService.update(new LambdaUpdateWrapper<Task>()
                             .set(Task::getTaskSts, TaskStsType.WCS_EXECUTE_OUT.id)
-                            .eq(Task::getBarcode, task.getBarcode()));
+                            .eq(Task::getId, task.getId()));
                 });
-            } else {
-                // TODO 璇锋眰澶辫触闇�纭鏄惁瀛樺湪閮ㄥ垎鎴愬姛鐨勬儏鍐碉紝閮ㄥ垎鎴愬姛闇�瑕佸崟鐙埛鏂版垚鍔熺殑浠诲姟妗g姸鎬�
-                throw new CoolException(reponse.getMsg());
-            }
-        }
+//            } else {
+//                // TODO 璇锋眰澶辫触闇�纭鏄惁瀛樺湪閮ㄥ垎鎴愬姛鐨勬儏鍐碉紝閮ㄥ垎鎴愬姛闇�瑕佸崟鐙埛鏂版垚鍔熺殑浠诲姟妗g姸鎬�
+//                throw new CoolException(reponse.getMsg());
+//            }
+//        }
     }
 }
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
index 07fcfd6..e59287e 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
@@ -63,10 +63,11 @@
                     .set(Task::getOriginLoc, arrivedParam.getSlotCode())
                     .eq(Task::getBarcode, arrivedParam.getContainerCode()));
         } else {
-            taskService.update(new LambdaUpdateWrapper<Task>()
+            boolean update = taskService.update(new LambdaUpdateWrapper<Task>()
                     .set(Task::getTaskSts, TaskStsType.WCS_EXECUTE_OUT_ARRIVED.id)
                     .set(Task::getOriginLoc, arrivedParam.getSlotCode())
                     .eq(Task::getBarcode, arrivedParam.getContainerCode()));
+
         }
 
         return R.success("success");
@@ -75,17 +76,15 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void receiveTaskStatus(TasksStatusCallbackParam callbackParam, String stockType) {
-        Long type = 100L;
         List<Task> list = taskService.list(new LambdaQueryWrapper<Task>()
                 .eq(Task::getBarcode, callbackParam.getContainerCode())
-                .ge(Task::getTaskType, type)
                 .eq(Task::getTaskNo, callbackParam.getTaskCode()));
         if (!Collections.isEmpty(list)) {
             list.forEach(task -> {
                     TaskStsType taskStsType = null;
                     if (stockType.equals("inStock")) { //鍏ュ簱浠诲姟
                         if (callbackParam.getEventType().equals(EssTaskStatus.TASK_EVENT_TOTE_LOAD.event)) { //涓婃姤鍙栫鐘舵��
-                            if (task.getTaskSts() == TaskStsType.WCS_CONTAINER_RECEIVE.id) {
+                            if (task.getTaskSts() == TaskStsType.WCS_CONVEYOR_START.id) {
                                 taskStsType = TaskStsType.WCS_TOTE_LOAD;
                             } else {
                                 String errMsg = "浠诲姟缂栧彿锛�" + task.getTaskNo() +  "鐘舵�佷负涓嶅尮閰嶏紝"  + "涓嶈兘鎵ц锛�" + TaskStsType.WCS_TOTE_LOAD.desc + "浠诲姟";
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java
index 40a8429..804b1f0 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java
@@ -88,6 +88,7 @@
                 }
             }
         }
+        wrapper.orderByDesc("create_time");
 
         return R.ok().add(orderService.page(pageParam, wrapper));
     }
@@ -131,20 +132,20 @@
                 }
             }
         }
-
+        wrapper.orderByDesc("create_time");
         return R.ok().add(orderService.page(pageParam, wrapper));
     }
 
     @PreAuthorize("hasAuthority('asrs:order:list')")
     @PostMapping("/order/list")
-    @CacheData(tableName = {"man_order"})
+//    @CacheData(tableName = {"man_order"})
     public R list(@RequestBody Map<String, Object> map) {
         return R.ok().add(orderService.list());
     }
 
     @PreAuthorize("hasAuthority('asrs:order:list')")
     @GetMapping("/order/{id}")
-    @CacheData(tableName = {"man_order"})
+//    @CacheData(tableName = {"man_order"})
     public R get(@PathVariable("id") Long id) {
         return R.ok().add(orderService.getById(id));
     }
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/CacheSite.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/CacheSite.java
index 0b25877..533066b 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/CacheSite.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/CacheSite.java
@@ -8,6 +8,7 @@
 import com.zy.asrs.wms.asrs.service.OrderService;
 import com.zy.asrs.wms.system.entity.Host;
 import com.zy.asrs.wms.system.entity.User;
+import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -27,6 +28,7 @@
 
 @Data
 @TableName("man_cache_site")
+@Accessors(chain = true)
 public class CacheSite implements Serializable {
 
     private static final long serialVersionUID = 1L;
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/Order.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/Order.java
index d220b0a..051eb49 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/Order.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/Order.java
@@ -5,6 +5,7 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zy.asrs.wms.asrs.service.OrderSettleService;
 import com.zy.asrs.wms.asrs.service.OrderTypeService;
 import com.zy.asrs.wms.system.entity.Host;
@@ -48,6 +49,8 @@
      * 鍗曟嵁鏃ユ湡
      */
     @ApiModelProperty(value= "鍗曟嵁鏃ユ湡")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private String orderTime;
 
     /**
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/enums/TaskStsType.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/enums/TaskStsType.java
index a875b74..70d4136 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/enums/TaskStsType.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/enums/TaskStsType.java
@@ -2,41 +2,41 @@
 
 public enum TaskStsType {
 
-    GENERATE_IN(1L, "鐢熸垚鍏ュ簱浠诲姟"),
-    WCS_EXECUTE_IN(2L, "鍏ュ簱鎵ц涓�"),
-    WCS_CONTAINER_RECEIVE(3L, "瀹瑰櫒鍒拌揪鎵弿鍖�"),
+    GENERATE_IN(1L, "鍒涘缓鍏ュ簱浠诲姟"),
+    WCS_EXECUTE_IN(2L, "RCS浠诲姟宸蹭笅鍙�"),
+    WCS_CONTAINER_RECEIVE(3L, "RCS瀹瑰櫒鍒拌揪"),
 
-    WCS_CONVEYOR_START(14L, "閫氱煡瀹瑰櫒娴佸姩"),
+    WCS_CONVEYOR_START(4L, "RCS瀹瑰櫒娴佸姩浠诲姟宸蹭笅鍙�"),
 
-    WCS_TOTE_LOAD(4L, "鏈哄櫒浜哄彇绠�"),
+    WCS_TOTE_LOAD(5L, "RCS鍙栫瀹屾垚"),
 
-    WCS_TOTE_UNLOAD(5L, "鏈哄櫒浜烘斁绠�"),
+    WCS_TOTE_UNLOAD(6L, "RCS鏀剧瀹屾垚"),
 
-    WCS_PUTAWAY_SUCESS(10L, "浠诲姟鎴愬姛"),
+    WCS_PUTAWAY_SUCESS(7L, "RCS浠诲姟瀹屾垚"),
 
-    WCS_PUTAWAY_FAILED(11L, "浠诲姟澶辫触"),
-
-    WCS_PUTAWAY_CANCEL(12L, "浠诲姟鍙栨秷"),
-
-    WCS_PUTAWAY_SUSPEND(13L, "鍏ュ簱浠诲姟鎸傝捣"),
+//    WCS_PUTAWAY_FAILED(11L, "浠诲姟澶辫触"),
+//
+//    WCS_PUTAWAY_CANCEL(12L, "浠诲姟鍙栨秷"),
+//
+//    WCS_PUTAWAY_SUSPEND(13L, "鍏ュ簱浠诲姟鎸傝捣"),
 
     COMPLETE_IN(99L, "鍏ュ簱瀹屾垚"),
 
     UPDATED_IN(100L, "搴撳瓨鏇存柊瀹屾垚"),
 
-    GENERATE_OUT(101L, "鐢熸垚鍑哄簱浠诲姟"),
+    GENERATE_OUT(101L, "鍒涘缓鍑哄簱浠诲姟"),
 
-    WCS_EXECUTE_OUT(102L, "鍑哄簱鎵ц涓�"),
+    WCS_EXECUTE_OUT(102L, "RCS鍑哄簱浠诲姟宸蹭笅鍙�"),
 
-    WCS_EXECUTE_OUT_TOTE_LOAD(113L, "鏈哄櫒浜哄彇绠�"),
+    WCS_EXECUTE_OUT_TOTE_LOAD(103L, "RCS鍙栫瀹屾垚"),
 
-    WCS_EXECUTE_OUT_TOTE_UNLOAD(114L, "鏈哄櫒浜烘斁绠�"),
+    WCS_EXECUTE_OUT_TOTE_UNLOAD(104L, "RCS鏀剧瀹屾垚"),
 
-    WCS_EXECUTE_OUT_TASK_DONE(115L, "浠诲姟鐘舵�佸洖璋冨畬鎴�"),
+    WCS_EXECUTE_OUT_TASK_DONE(105L, "RCS浠诲姟瀹屾垚"),
 
-    WCS_EXECUTE_OUT_ARRIVED(116L, "瀹瑰櫒鍒拌揪鎵爜鍖�"),
+    WCS_EXECUTE_OUT_ARRIVED(106L, "RCS瀹瑰櫒宸插埌杈�"),
 
-    WCS_EXECUTE_OUT_CONVEYOR(117L, "閫氱煡瀹瑰櫒娴佸姩"),
+    WCS_EXECUTE_OUT_CONVEYOR(107L, "RCS瀹瑰櫒娴佸姩浠诲姟宸蹭笅鍙�"),
 
     WAVE_SEED(198L, "鎾涓�"),
     COMPLETE_OUT(199L, "鍑哄簱瀹屾垚"),
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
index eb495cf..45893a6 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
@@ -932,7 +932,7 @@
                 //TODO 纭鍚庯紝闇�灏嗘敞閲婃墦寮�
                 String matUniqueKey = Utils.getMatUniqueKey(taskDetl.getMatnr(), taskDetl.getBatch(), taskDetl.getUniqueField());
 //                WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, waveId));
-                WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, waveId));
+                WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, waveId), false);
                 if (waveDetl == null) {
                     throw new CoolException("娉㈡鏁版嵁涓嶅瓨鍦�");
                 }
@@ -965,7 +965,7 @@
         }
     }
 
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void generateWave(GenerateWaveParam param) {
         if (param == null) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
index 2b4fb39..8b8387f 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
@@ -34,7 +34,13 @@
         ArrayList<WaitPakin> waitPakins = new ArrayList<>();
         ordersParam.getOrderDetls().forEach(orderdetl -> {
             WaitPakin waitPakin = new WaitPakin();
-            waitPakin.setBatch(orderdetl.getBatch()).setAnfme(orderdetl.getMergeNum()).setBarcode(ordersParam.getMergeNo()).setMatnr(orderdetl.getMatnr()).setDetlId(orderdetl.getDetlId()).setIoStatus(0).setOrderNo(orderdetl.getOrderNo()).setOrderId(orderdetl.getOrderId()).setStatus(1);
+            waitPakin.setBatch(orderdetl.getBatch())
+                    .setAnfme(orderdetl.getMergeNum())
+                    .setBarcode(ordersParam.getMergeNo())
+                    .setMatnr(orderdetl.getMatnr())
+                    .setDetlId(orderdetl.getDetlId())
+                    .setIoStatus(0)
+                    .setOrderNo(orderdetl.getOrderNo()).setOrderId(orderdetl.getOrderId()).setStatus(1);
             waitPakins.add(waitPakin);
         });
 
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
index 9ca41cb..600ff2a 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
@@ -622,6 +622,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean pickTask(Long taskId) {
         Task task = taskService.getById(taskId);
         if(task == null){
@@ -669,8 +670,8 @@
         if(loc == null) {
             throw new CoolException("娌℃湁绌哄簱浣�");
         }
-
-        task.setTaskSts(TaskStsType.GENERATE_IN.id);//1.鐢熸垚鍏ュ簱浠诲姟
+        //102鎷f枡姝ゅ闇�淇敼涓篧CS_CONTAINER_RECEIVE,瀹氭椂浠诲姟鏌ヨ鍚庯紝鑷姩涓嬪彂鍏ュ簱浠诲姟鑷矱SS
+        task.setTaskSts(TaskStsType.WCS_CONTAINER_RECEIVE.id);//1.鐢熸垚鍏ュ簱浠诲姟
         task.setTaskType(taskType);
         task.setTargetLoc(loc.getLocNo());
         task.setUpdateTime(new Date());
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/CacheStatisticsTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/CacheStatisticsTimer.java
index f477a5c..5782f92 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/CacheStatisticsTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/CacheStatisticsTimer.java
@@ -27,7 +27,7 @@
      * 灏嗙紦瀛樼粺璁′繚瀛樿嚦鏁版嵁搴�
      * 姣�30鍒嗛挓鎵弿涓�娆�
      */
-//    @Scheduled(cron = "0 30 * * * ? ")
+    @Scheduled(cron = "0 30 * * * ? ")
     public void run() {
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
         String now = format.format(new Date());
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/OrderTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/OrderTimer.java
index 533ca45..05b2a98 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/OrderTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/OrderTimer.java
@@ -31,8 +31,8 @@
     @Autowired
     private OrderDetlFieldLogService orderDetlFieldLogService;
 
-//    @Scheduled(cron = "0/3 * * * * ? ")
-    @Transactional
+    @Scheduled(cron = "0/3 * * * * ? ")
+    @Transactional(rollbackFor = Exception.class)
     public void orderToHistory() {
         InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
         try {
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java
index f76ea3a..6795093 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java
@@ -45,7 +45,7 @@
     private WaveService waveService;
 
     @Scheduled(cron = "0/30 * * * * ? ")
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void inExecute() {
         InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
         try {
@@ -157,8 +157,8 @@
         }
     }
 
-//    @Scheduled(cron = "0/3 * * * * ? ")
-    @Transactional
+    @Scheduled(cron = "0/3 * * * * ? ")
+    @Transactional(rollbackFor = Exception.class)
     public void outExecute() {
         InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
         try {
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
index ca3385f..e36b3d9 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.wms.asrs.timer;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.plugins.IgnoreStrategy;
 import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper;
 import com.zy.asrs.framework.exception.CoolException;
@@ -8,6 +9,7 @@
 import com.zy.asrs.wms.asrs.entity.enums.LocStsType;
 import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
 import com.zy.asrs.wms.asrs.service.*;
+import io.jsonwebtoken.lang.Collections;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -15,8 +17,11 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.util.Collection;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Component
@@ -58,9 +63,12 @@
     @Autowired
     private OrderDetlService orderDetlService;
 
+    @Autowired
+    private CacheSiteService cacheSiteService;
 
-    @Scheduled(cron = "0/30 * * * * ? ")
-    @Transactional
+
+    @Scheduled(cron = "0/3 * * * * ? ")
+    @Transactional(rollbackFor = Exception.class)
     public void inExecute() {
         InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
         try {
@@ -100,8 +108,8 @@
         }
     }
 
-//    @Scheduled(cron = "0/3 * * * * ? ")
-    @Transactional
+    @Scheduled(cron = "0/10 * * * * ? ")
+    @Transactional(rollbackFor = Exception.class)
     public void outExecute() {
         InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
         try {
@@ -113,7 +121,7 @@
             for (Task task : list) {
                 //鍚屾鏁版嵁
                 switch (task.getTaskType().intValue()) {
-                    case 101://鍑哄簱
+                    case 101://鍑哄簱xx
                         executeTask101(task);
                         break;
                     case 103://鎷f枡
@@ -122,13 +130,24 @@
                     default:
                         throw new CoolException("鏈煡浠诲姟绫诲瀷");
                 }
-
                 task.setTaskSts(TaskStsType.UPDATED_OUT.id);//200.搴撳瓨鏇存柊瀹屾垚
                 if (!taskService.updateById(task)) {
                     throw new CoolException("搴撳瓨鏇存柊澶辫触");
+                } else {
+                    //CacheSite 閲婃斁宸茶鍗犵敤鐨勯�氶亾
+                    List<TaskDetl> detls = taskDetlService.list(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getTaskId, task.getId()));
+                    if (!Collections.isEmpty(detls)) {
+                        List<Long> waveIds = detls.stream().map(TaskDetl::getWaveId).collect(Collectors.toList());
+                        List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getWaveId, waveIds));
+                        List<Long> orderIds = orders.stream().map(Order::getId).collect(Collectors.toList());
+                        cacheSiteService.update(new LambdaUpdateWrapper<CacheSite>()
+                                .in(CacheSite::getOrderId, orderIds)
+                                .set(CacheSite::getSiteStatus, 0)
+                                .set(CacheSite::getOrderId, null)
+                                .set(CacheSite::getOrderNo, null));
+                    }
                 }
             }
-
         } catch (Exception e) {
             e.printStackTrace();
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -140,8 +159,9 @@
     //鍏ュ簱
     private void executeTask1(Task task) {
         Long hostId = task.getHostId();
-
-        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId));
+        //fixme 鏆傛椂鍏抽棴HOSTID
+//        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId));
+        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()));
         if (loc == null) {
             log.info("搴撲綅涓嶅瓨鍦�" + "=======>" + task.getTargetLoc());
             throw new CoolException("搴撲綅涓嶅瓨鍦�");
@@ -177,9 +197,10 @@
             if (!locDetlService.save(locDetl)) {
                 throw new CoolException("鎻掑叆搴撳瓨鏄庣粏澶辫触");
             }
-
+            //fixme 鏆傛椂鍏抽棴HOSTID,鍚庣画鎵撳紑鏈烘瀯ID
             //娣诲姞搴撳瓨鏄庣粏鎵╁睍瀛楁
-            List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId));
+//            List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId));
+            List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()));
             for (TaskDetlField detlField : detlFields) {
                 LocDetlField locDetlField = new LocDetlField();
                 locDetlField.setDetlId(locDetl.getId());
@@ -192,9 +213,10 @@
                 }
             }
         }
-
+        //fixme 鏆傛椂鍏抽棴HOSTID,鍚庣画鎵撳紑鏈烘瀯ID
         //缁勬墭閫氱煡妗h浆鍘嗗彶妗�
-        List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()).eq(WaitPakin::getHostId, hostId));
+//        List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()).eq(WaitPakin::getHostId, hostId));
+        List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()));
         if (waitPakins.isEmpty()) {
             throw new CoolException("缁勬墭閫氱煡妗d笉瀛樺湪");
         }
@@ -295,8 +317,9 @@
     //鎷f枡鍐嶅叆搴�
     private void executeTask53(Task task) {
         Long hostId = task.getHostId();
-
-        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId));
+        //fixme
+//        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId));
+        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()));
         if (loc == null) {
             throw new CoolException("搴撲綅涓嶅瓨鍦�");
         }
@@ -338,7 +361,9 @@
             }
 
             //娣诲姞搴撳瓨鏄庣粏鎵╁睍瀛楁
-            List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId));
+            //fixme 娉ㄩ噴
+//            List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId));
+            List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()));
             for (TaskDetlField detlField : detlFields) {
                 LocDetlField locDetlField = new LocDetlField();
                 locDetlField.setDetlId(locDetl.getId());
@@ -356,7 +381,8 @@
     //鍑哄簱
     private void executeTask101(Task task) {
         Long hostId = task.getHostId();
-        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId));
+//        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId));
+        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()));
         if (loc == null) {
             throw new CoolException("搴撲綅涓嶅瓨鍦�");
         }
@@ -391,7 +417,9 @@
     //鎷f枡鍑哄簱
     private void executeTask103(Task task) {
         Long hostId = task.getHostId();
-        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId));
+        //FIXME 鏆傛椂娉ㄩ噴HOSTID绛涢�夋潯浠�
+//        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()).eq(Loc::getHostId, hostId));
+        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()));
         if (loc == null) {
             throw new CoolException("搴撲綅涓嶅瓨鍦�");
         }
@@ -408,6 +436,7 @@
         if (!locService.updateById(loc)) {
             throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�");
         }
+
         List<LocDetl> detlList = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, loc.getId()).eq(LocDetl::getHostId, hostId));
         //鍒犻櫎搴撳瓨鏄庣粏
         for (LocDetl locDetl : detlList) {
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
index f41b1c5..b5ff768 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
@@ -45,8 +45,8 @@
     @Autowired
     private DictService dictService;
 
-//    @Scheduled(cron = "0/3 * * * * ? ")
-    @Transactional
+    @Scheduled(cron = "0/3 * * * * ? ")
+    @Transactional(rollbackFor = Exception.class)
     public void taskWave() {
         InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
         try {
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/LocUtils.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/LocUtils.java
index ee538ea..13d5fcf 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/LocUtils.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/LocUtils.java
@@ -51,7 +51,7 @@
         List<Loc> locs = new ArrayList<>();
         List<Map<String, Object>> list = viewTaskDetlMapper.getList(mat.getMatnr(), batch, uniqueFields);
         for (Map<String, Object> map : list) {
-            Task task = taskService.getById(map.get("taskId").toString());
+            Task task = taskService.getById(map.get("task_id").toString());
             if (task == null) {
                 continue;
             }
@@ -73,7 +73,7 @@
         List<Loc> locs2 = new ArrayList<>();
         List<Map<String, Object>> list2 = viewLocDetlMapper.getList(mat.getMatnr(), batch, uniqueFields, null);
         for (Map<String, Object> map : list2) {
-            Loc one = locService.getById(map.get("locId").toString());
+            Loc one = locService.getById(map.get("loc_id").toString());
             if (one == null) {
                 continue;
             }
diff --git a/zy-asrs-wms/src/main/resources/application.yml b/zy-asrs-wms/src/main/resources/application.yml
index c88d170..08a4c6d 100644
--- a/zy-asrs-wms/src/main/resources/application.yml
+++ b/zy-asrs-wms/src/main/resources/application.yml
@@ -37,7 +37,7 @@
   #  global-config:
   #    field-strategy: 0
   configuration:
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     map-underscore-to-camel-case: true
     cache-enabled: true
   global-config:
@@ -67,4 +67,13 @@
 
 #鎺ュ彛缂撳瓨
 system:
-  enableCache: true
\ No newline at end of file
+  enableCache: false
+
+rcs:
+  #RCS鍩虹API HOST
+  baseHost: http://localhost:8080
+  #RCS涓婃姤浠诲姟鐘舵��
+  issueTaskOfEvent: /task/create
+  #RCS閫氱煡浼犺緭绾挎祦鍔�
+  conveyorStart: /conveyor/moveContainer
+
diff --git a/zy-asrs-wms/src/main/resources/mapper/asrs/ViewLocDetlMapper.xml b/zy-asrs-wms/src/main/resources/mapper/asrs/ViewLocDetlMapper.xml
index 08238a8..fd8d271 100644
--- a/zy-asrs-wms/src/main/resources/mapper/asrs/ViewLocDetlMapper.xml
+++ b/zy-asrs-wms/src/main/resources/mapper/asrs/ViewLocDetlMapper.xml
@@ -26,12 +26,12 @@
     <select id="getList" resultType="map">
         select * from view_man_loc_detl ld
         where matnr = #{matnr}
-        <if test="batch!=null">
+        <if test="batch!=null and batch != ''">
             and batch = #{batch}
         </if>
         <if test="param!=null and param.size()>0">
             <foreach item="item" collection="param" index="index">
-                <if test="item.value!=null">
+                <if test="item.value !=null and item.value != ''" >
                     and ${item.name} = #{item.value}
                 </if>
             </foreach>
diff --git a/zy-asrs-wms/src/main/resources/mapper/asrs/ViewTaskDetlMapper.xml b/zy-asrs-wms/src/main/resources/mapper/asrs/ViewTaskDetlMapper.xml
index dd0673c..fe66202 100644
--- a/zy-asrs-wms/src/main/resources/mapper/asrs/ViewTaskDetlMapper.xml
+++ b/zy-asrs-wms/src/main/resources/mapper/asrs/ViewTaskDetlMapper.xml
@@ -5,12 +5,12 @@
     <select id="getList" resultType="map">
         select * from view_man_task_detl td
         where matnr = #{matnr}
-        <if test="batch!=null">
+        <if test="batch!=null and batch!=''">
             and batch = #{batch}
         </if>
         <if test="param!=null and param.size()>0">
             <foreach item="item" collection="param" index="index">
-                <if test="item.value!=null">
+                <if test="item.value!=null and item.value != ''">
                     and ${item.name} = #{item.value}
                 </if>
             </foreach>

--
Gitblit v1.9.1