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