| | |
| | | <script setup> |
| | | import { getCurrentInstance, ref, computed, reactive, defineProps } from 'vue'; |
| | | import { useRouter } from "vue-router"; |
| | | import { get, post, postBlob } from '@/utils/request.js' |
| | | import { get, post, postBlob, postForm } from '@/utils/request.js' |
| | | import { message, Modal } from 'ant-design-vue'; |
| | | import { globalState, logout } from '@/config.js'; |
| | | import EditView from './edit.vue' |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | orderNo: null, |
| | | orderType: null, |
| | | orderSettle: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | const showOrderDetlChild = ref(null) |
| | | |
| | |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | } |
| | | }; |
| | | |
| | | const orderTypeQueryList = ref(null); |
| | | orderTypeQuery(); |
| | | function orderTypeQuery() { |
| | | postForm('/api/orderType/query', { |
| | | type: 1 |
| | | }).then(resp => { |
| | | let result = resp.data; |
| | | orderTypeQueryList.value = result.data; |
| | | }) |
| | | } |
| | | const orderSettleQueryList = ref(null); |
| | | orderSettleQuery(); |
| | | function orderSettleQuery() { |
| | | postForm('/api/orderSettle/query', {}).then(resp => { |
| | | let result = resp.data; |
| | | orderSettleQueryList.value = result.data; |
| | | }) |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <script> |
| | |
| | | <EditView ref="editChild" @tableReload="handleTableReload" |
| | | :ioModel="ioModel == 'in' ? 1 : ioModel == 'out' ? 2 : null" /> |
| | | <div class="table-header"> |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | <div> |
| | | <a-input v-model:value="searchParam.orderNo" :placeholder="formatMessage('page.order.orderNo.input', '请输入订单编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-select v-model:value="searchParam.orderSettle" :placeholder="formatMessage('page.order.orderSettle.select', '请选择单据状态')" |
| | | style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderSettleQueryList" optionFilterProp="label" |
| | | optionLabelProp="label"> |
| | | </a-select> |
| | | <a-select v-model:value="searchParam.orderType" :placeholder="formatMessage('page.order.orderType.select', '请选择单据类型')" |
| | | style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderTypeQueryList" optionFilterProp="label" |
| | | optionLabelProp="label"> |
| | | </a-select> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | | <div class="table-header-right"> |
| | | <a-dropdown> |
| | | <template #overlay> |
| | |
| | | <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" @resizeColumn="handleResizeColumn" :loading="state.loading"> |
| | | :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns" @resizeColumn="handleResizeColumn" |
| | | :loading="state.loading"> |
| | | <template #bodyCell="{ column, text, record }"> |
| | | <template v-if="column.dataIndex === 'oper'"> |
| | | <div style="display: flex;justify-content: space-evenly;"> |
| | |
| | | <script setup> |
| | | import { getCurrentInstance, ref, computed, reactive, defineProps } from 'vue'; |
| | | import { useRouter } from "vue-router"; |
| | | import { get, post, postBlob } from '@/utils/request.js' |
| | | import { get, post, postBlob, postForm } from '@/utils/request.js' |
| | | import { message, Modal } from 'ant-design-vue'; |
| | | import { globalState, logout } from '@/config.js'; |
| | | import EditView from './edit.vue' |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | orderNo: null, |
| | | orderType: null, |
| | | orderSettle: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | const showOrderDetlChild = ref(null) |
| | | |
| | |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | }) |
| | | } |
| | | |
| | | const orderTypeQueryList = ref(null); |
| | | orderTypeQuery(); |
| | | function orderTypeQuery() { |
| | | postForm('/api/orderType/query', { |
| | | type: 2 |
| | | }).then(resp => { |
| | | let result = resp.data; |
| | | orderTypeQueryList.value = result.data; |
| | | }) |
| | | } |
| | | const orderSettleQueryList = ref(null); |
| | | orderSettleQuery(); |
| | | function orderSettleQuery() { |
| | | postForm('/api/orderSettle/query', {}).then(resp => { |
| | | let result = resp.data; |
| | | orderSettleQueryList.value = result.data; |
| | | }) |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <script> |
| | |
| | | <div class="table-header"> |
| | | <div style="display: flex;"> |
| | | <div style="margin-right: 10px;"> |
| | | <a-input v-model:value="searchParam.orderNo" |
| | | :placeholder="formatMessage('page.order.orderNo.input', '请输入订单编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-select v-model:value="searchParam.orderSettle" |
| | | :placeholder="formatMessage('page.order.orderSettle.select', '请选择单据状态')" |
| | | style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderSettleQueryList" |
| | | optionFilterProp="label" optionLabelProp="label"> |
| | | </a-select> |
| | | <a-select v-model:value="searchParam.orderType" |
| | | :placeholder="formatMessage('page.order.orderType.select', '请选择单据类型')" |
| | | style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderTypeQueryList" |
| | | optionFilterProp="label" optionLabelProp="label"> |
| | | </a-select> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | |
| | | <script setup> |
| | | import { getCurrentInstance, ref, computed, reactive, defineProps } from 'vue'; |
| | | import { useRouter } from "vue-router"; |
| | | import { get, post, postBlob } from '@/utils/request.js' |
| | | import { get, post, postBlob, postForm } from '@/utils/request.js' |
| | | import { message, Modal } from 'ant-design-vue'; |
| | | import { logout } from '@/config.js'; |
| | | import EditView from './edit.vue' |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | orderNo: null, |
| | | orderType: null, |
| | | orderSettle: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | const showOrderDetlChild = ref(null) |
| | | |
| | |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | getPage() |
| | | } |
| | | |
| | | const orderTypeQueryList = ref(null); |
| | | orderTypeQuery(); |
| | | function orderTypeQuery() { |
| | | postForm('/api/orderType/query', { |
| | | type: 1 |
| | | }).then(resp => { |
| | | let result = resp.data; |
| | | orderTypeQueryList.value = result.data; |
| | | }) |
| | | } |
| | | const orderSettleQueryList = ref(null); |
| | | orderSettleQuery(); |
| | | function orderSettleQuery() { |
| | | postForm('/api/orderSettle/query', {}).then(resp => { |
| | | let result = resp.data; |
| | | orderSettleQueryList.value = result.data; |
| | | }) |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <script> |
| | |
| | | <div> |
| | | <EditView ref="editChild" @tableReload="handleTableReload" :ioModel="ioModel == 'in' ? 1 : 2" /> |
| | | <div class="table-header"> |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | <div> |
| | | <a-input v-model:value="searchParam.orderNo" :placeholder="formatMessage('page.order.orderNo.input', '请输入订单编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-select v-model:value="searchParam.orderSettle" |
| | | :placeholder="formatMessage('page.order.orderSettle.select', '请选择单据状态')" |
| | | style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderSettleQueryList" |
| | | optionFilterProp="label" optionLabelProp="label"> |
| | | </a-select> |
| | | <a-select v-model:value="searchParam.orderType" |
| | | :placeholder="formatMessage('page.order.orderType.select', '请选择单据类型')" |
| | | style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderTypeQueryList" |
| | | optionFilterProp="label" optionLabelProp="label"> |
| | | </a-select> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | | <div class="table-header-right"> |
| | | <!-- <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> --> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | locNo: null, |
| | | row1: null, |
| | | bay1: null, |
| | | lev1: null, |
| | | barcode: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | |
| | | const state = reactive({ |
| | |
| | | post('/api/loc/page', { |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | <div> |
| | | <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> |
| | | <a-input v-model:value="searchParam.locNo" :placeholder="formatMessage('page.loc.locNo.input', '请输入库位号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.row1" :placeholder="formatMessage('page.loc.row1.input', '请输入排')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.bay1" :placeholder="formatMessage('page.loc.bay1.input', '请输入列')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.lev1" :placeholder="formatMessage('page.loc.lev1.input', '请输入层')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.barcode" :placeholder="formatMessage('page.loc.barcode.input', '请输入条码')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | | <div class="table-header-right"> |
| | | <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |
| | |
| | | <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" @resizeColumn="handleResizeColumn" :loading="state.loading"> |
| | | :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns" @resizeColumn="handleResizeColumn" |
| | | :loading="state.loading"> |
| | | <template #bodyCell="{ column, text, record }"> |
| | | <template v-if="column.dataIndex === 'oper'"> |
| | | <div style="display: flex;justify-content: space-evenly;"> |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | matnr: null, |
| | | maktx: null, |
| | | specs: null, |
| | | model: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | |
| | | const state = reactive({ |
| | |
| | | post('/api/mat/page', { |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | <div> |
| | | <EditView ref="editChild" @tableReload="handleTableReload" /> |
| | | <div class="table-header"> |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | <div> |
| | | <a-input v-model:value="searchParam.matnr" :placeholder="formatMessage('page.mat.matnr.input', '请输入商品编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.maktx" :placeholder="formatMessage('page.mat.matnr.input', '请输入商品名称')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.specs" :placeholder="formatMessage('page.mat.matnr.input', '请输入规格')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.model" :placeholder="formatMessage('page.mat.matnr.input', '请输入型号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | | <div class="table-header-right"> |
| | | <a-dropdown> |
| | | <template #overlay> |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | orderNo: null, |
| | | barcode: null, |
| | | matnr: null, |
| | | batch: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | const generateTaskChild = ref(null) |
| | | |
| | |
| | | }, |
| | | { |
| | | title: formatMessage('db.man_wait_pakin.matnr', '商品编号'), |
| | | dataIndex: ['detl$', 'mat$', 'matnr'], |
| | | dataIndex: 'matnr', |
| | | width: 140, |
| | | ellipsis: true, |
| | | ...getColumnSearchProps('detl$.matnr'), |
| | | ...getColumnSearchProps('matnr'), |
| | | }, |
| | | { |
| | | title: formatMessage('db.man_wait_pakin.batch', '批号'), |
| | | dataIndex: ['detl$', 'batch'], |
| | | dataIndex: 'batch', |
| | | width: 140, |
| | | ellipsis: true, |
| | | ...getColumnSearchProps('detl$.matnr'), |
| | | ...getColumnSearchProps('batch'), |
| | | }, |
| | | { |
| | | title: formatMessage('db.man_wait_pakin.anfme', '组托数量'), |
| | |
| | | post('/api/waitPakin/page', { |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | <div> |
| | | <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> |
| | | <a-input v-model:value="searchParam.orderNo" |
| | | :placeholder="formatMessage('page.waitPakin.orderNo.input', '请输入订单编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.barcode" |
| | | :placeholder="formatMessage('page.waitPakin.barcode.input', '请输入托盘码')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.matnr" |
| | | :placeholder="formatMessage('page.waitPakin.matnr.input', '请输入商品编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.batch" :placeholder="formatMessage('page.waitPakin.batch.input', '请输入批号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | | <div class="table-header-right"> |
| | | <a-dropdown> |
| | | <template #overlay> |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | orderNo: null, |
| | | barcode: null, |
| | | matnr: null, |
| | | batch: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | |
| | | const state = reactive({ |
| | |
| | | }, |
| | | { |
| | | title: formatMessage('db.man_wait_pakin_log.matnr', '商品编号'), |
| | | dataIndex: ['detl$', 'mat$', 'matnr'], |
| | | dataIndex: 'matnr', |
| | | width: 140, |
| | | ellipsis: true, |
| | | ...getColumnSearchProps('detl$.matnr'), |
| | | ...getColumnSearchProps('matnr'), |
| | | }, |
| | | { |
| | | title: formatMessage('db.man_wait_pakin_log.batch', '批号'), |
| | | dataIndex: ['detl$', 'batch'], |
| | | dataIndex: 'batch', |
| | | width: 140, |
| | | ellipsis: true, |
| | | ...getColumnSearchProps('detl$.matnr'), |
| | | ...getColumnSearchProps('batch'), |
| | | }, |
| | | { |
| | | title: formatMessage('db.man_wait_pakin_log.io_status', '组托状态'), |
| | |
| | | post('/api/waitPakinLog/page', { |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | <div> |
| | | <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> |
| | | <a-input v-model:value="searchParam.orderNo" |
| | | :placeholder="formatMessage('page.waitPakin.orderNo.input', '请输入订单编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.barcode" |
| | | :placeholder="formatMessage('page.waitPakin.barcode.input', '请输入托盘码')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.matnr" :placeholder="formatMessage('page.waitPakin.matnr.input', '请输入商品编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.batch" :placeholder="formatMessage('page.waitPakin.batch.input', '请输入批号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | | <div class="table-header-right"> |
| | | <!-- <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> --> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | locNo: null, |
| | | row1: null, |
| | | bay1: null, |
| | | lev1: null, |
| | | barcode: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | const locDetlShowChild = ref(null) |
| | | |
| | |
| | | post('/api/loc/page', { |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | <div> |
| | | <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> |
| | | <a-input v-model:value="searchParam.locNo" :placeholder="formatMessage('page.loc.locNo.input', '请输入库位号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.row1" :placeholder="formatMessage('page.loc.row1.input', '请输入排')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.bay1" :placeholder="formatMessage('page.loc.bay1.input', '请输入列')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.lev1" :placeholder="formatMessage('page.loc.lev1.input', '请输入层')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.barcode" :placeholder="formatMessage('page.loc.barcode.input', '请输入条码')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | | <div class="table-header-right"> |
| | | <!-- <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> --> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | locNo: null, |
| | | matnr: null, |
| | | orderNo: null, |
| | | batch: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | |
| | | const state = reactive({ |
| | |
| | | }; |
| | | |
| | | state.columns = [ |
| | | { |
| | | title: formatMessage('db.man_loc_detl.loc_id', '库位'), |
| | | dataIndex: 'locId$', |
| | | width: 140, |
| | | ellipsis: true, |
| | | ...getColumnSearchProps('locId$'), |
| | | }, |
| | | // { |
| | | // title: formatMessage('db.man_loc_detl.loc_id', '库位'), |
| | | // dataIndex: 'locId$', |
| | | // width: 140, |
| | | // ellipsis: true, |
| | | // ...getColumnSearchProps('locId$'), |
| | | // }, |
| | | { |
| | | title: formatMessage('db.man_loc_detl.loc_no', '库位号'), |
| | | dataIndex: 'locNo', |
| | |
| | | post('/api/locDetl/page', { |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | <div> |
| | | <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> |
| | | <a-input v-model:value="searchParam.locNo" :placeholder="formatMessage('page.locDetl.locNo.input', '请输入库位号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.matnr" :placeholder="formatMessage('page.locDetl.matnr.input', '请输入商品编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.orderNo" :placeholder="formatMessage('page.locDetl.orderNo.input', '请输入订单号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.batch" :placeholder="formatMessage('page.locDetl.batch.input', '请输入批号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | | <div class="table-header-right"> |
| | | <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | siteNo: null, |
| | | siteStatus: null, |
| | | orderNo: null, |
| | | platformNo: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | |
| | | const state = reactive({ |
| | |
| | | ellipsis: true, |
| | | ...getColumnSearchProps('siteStatus$'), |
| | | }, |
| | | { |
| | | title: formatMessage('db.man_cache_site.order_id', '订单ID'), |
| | | dataIndex: 'orderId$', |
| | | width: 140, |
| | | ellipsis: true, |
| | | ...getColumnSearchProps('orderId$'), |
| | | }, |
| | | // { |
| | | // title: formatMessage('db.man_cache_site.order_id', '订单ID'), |
| | | // dataIndex: 'orderId$', |
| | | // width: 140, |
| | | // ellipsis: true, |
| | | // ...getColumnSearchProps('orderId$'), |
| | | // }, |
| | | { |
| | | title: formatMessage('db.man_cache_site.order_no', '订单编号'), |
| | | dataIndex: 'orderNo', |
| | |
| | | post('/api/cacheSite/page', { |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | <div> |
| | | <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> |
| | | <a-input v-model:value="searchParam.siteNo" |
| | | :placeholder="formatMessage('page.cacheSite.siteNo.input', '请输入站点编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-select v-model:value="searchParam.siteStatus" :options="[ |
| | | { label: '空站', value: 0 }, |
| | | { label: '满站', value: 1 }, |
| | | { label: '预约', value: 2 }, |
| | | ]" :placeholder="formatMessage('page.cacheSite.siteStatus.input', '请选择站点状态')" |
| | | style="width: 140px;margin-right: 10px;" allowClear> |
| | | </a-select> |
| | | <a-input v-model:value="searchParam.orderNo" |
| | | :placeholder="formatMessage('page.cacheSite.orderNo.input', '请输入订单号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.platformNo" |
| | | :placeholder="formatMessage('page.cacheSite.platformNo.input', '请输入集货编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | | <div class="table-header-right"> |
| | | <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | waveNo: null, |
| | | matnr: null, |
| | | batch: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | const orderOutWavePreviewChild = ref(null); |
| | | |
| | |
| | | post('/api/wave/page', { |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | <div> |
| | | <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> |
| | | <a-input v-model:value="searchParam.waveNo" :placeholder="formatMessage('page.wave.waveNo.input', '请输入波次号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.matnr" :placeholder="formatMessage('page.wave.matnr.input', '请输入商品编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.batch" :placeholder="formatMessage('page.wave.batch.input', '请输入批号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | | <!-- <div class="table-header-right"> |
| | | <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |
| | |
| | | <template #bodyCell="{ column, text, record }"> |
| | | <template v-if="column.dataIndex === 'oper'"> |
| | | <div style="display: flex;justify-content: space-evenly;"> |
| | | <a-button type="link" primary :disabled="record.waveStatus != 0" @click="handleGenerateOut(record.waveId)">{{ |
| | | formatMessage('page.generateOut', |
| | | '生成出库任务') |
| | | }}</a-button> |
| | | <a-button type="link" primary :disabled="record.waveStatus != 0" |
| | | @click="handleGenerateOut(record.waveId)">{{ |
| | | formatMessage('page.generateOut', |
| | | '生成出库任务') |
| | | }}</a-button> |
| | | <a-button type="link" danger @click="handleDel([record])">{{ formatMessage('page.cancel', '取消') |
| | | }}</a-button> |
| | | </div> |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | siteNo: null, |
| | | orderNo: null, |
| | | matnr: null, |
| | | batch: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | |
| | | const state = reactive({ |
| | |
| | | post('/api/waveSeed/page', { |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | <div> |
| | | <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> |
| | | <a-input v-model:value="searchParam.siteNo" :placeholder="formatMessage('page.waveSeed.siteNo.input', '请输入站点编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.orderNo" :placeholder="formatMessage('page.waveSeed.orderNo.input', '请输入订单编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.matnr" :placeholder="formatMessage('page.waveSeed.matnr.input', '请输入商品编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.batch" :placeholder="formatMessage('page.waveSeed.batch.input', '请输入批号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | | <div class="table-header-right"> |
| | | <!-- <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> --> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |
| | |
| | | <script setup> |
| | | import { getCurrentInstance, ref, computed, reactive } from 'vue'; |
| | | import { useRouter } from "vue-router"; |
| | | import { get, post, postBlob } from '@/utils/request.js' |
| | | import { get, post, postBlob, postForm } from '@/utils/request.js' |
| | | import { message, Modal } from 'ant-design-vue'; |
| | | import { logout } from '@/config.js'; |
| | | import EditView from './edit.vue' |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | taskNo: null, |
| | | taskSts: null, |
| | | taskType: null, |
| | | originLoc: null, |
| | | targetLoc: null, |
| | | barcode: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | const showTaskDetlChild = ref(null) |
| | | |
| | |
| | | post('/api/task/page', { |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | }); |
| | | } |
| | | |
| | | const taskStsQueryList = ref(null); |
| | | taskStsQuery(); |
| | | function taskStsQuery() { |
| | | postForm('/api/taskSts/query', {}).then(resp => { |
| | | let result = resp.data; |
| | | taskStsQueryList.value = result.data; |
| | | }) |
| | | } |
| | | const taskTypeQueryList = ref(null); |
| | | taskTypeQuery(); |
| | | function taskTypeQuery() { |
| | | postForm('/api/taskType/query', {}).then(resp => { |
| | | let result = resp.data; |
| | | taskTypeQueryList.value = result.data; |
| | | }) |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <script> |
| | |
| | | <div> |
| | | <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> |
| | | <a-input v-model:value="searchParam.taskNo" :placeholder="formatMessage('page.task.taskNo.input', '请输入任务编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-select v-model:value="searchParam.taskSts" |
| | | :placeholder="formatMessage('page.task.taskSts.select', '请选择任务状态')" style="width: 140px;margin-right: 10px;" |
| | | show-search allowClear :options="taskStsQueryList" optionFilterProp="label" optionLabelProp="label"> |
| | | </a-select> |
| | | <a-select v-model:value="searchParam.taskType" |
| | | :placeholder="formatMessage('page.task.taskType.select', '请选择任务类型')" style="width: 140px;margin-right: 10px;" |
| | | show-search allowClear :options="taskTypeQueryList" optionFilterProp="label" optionLabelProp="label"> |
| | | </a-select> |
| | | <a-input v-model:value="searchParam.originLoc" |
| | | :placeholder="formatMessage('page.task.originLoc.input', '请输入源库位')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.targetLoc" |
| | | :placeholder="formatMessage('page.task.targetLoc.input', '请输入目标库位')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.barcode" :placeholder="formatMessage('page.task.barcode.input', '请输入托盘码')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | | <div class="table-header-right"> |
| | | <!-- <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> --> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |
| | |
| | | <script setup> |
| | | import { getCurrentInstance, ref, computed, reactive } from 'vue'; |
| | | import { useRouter } from "vue-router"; |
| | | import { get, post, postBlob } from '@/utils/request.js' |
| | | import { get, post, postBlob, postForm } from '@/utils/request.js' |
| | | import { message, Modal } from 'ant-design-vue'; |
| | | import { logout } from '@/config.js'; |
| | | import EditView from './edit.vue' |
| | |
| | | let currentPage = 1; |
| | | let pageSize = 10; |
| | | const searchInput = ref("") |
| | | const searchParam = ref({ |
| | | taskNo: null, |
| | | taskSts: null, |
| | | taskType: null, |
| | | originLoc: null, |
| | | targetLoc: null, |
| | | barcode: null, |
| | | }) |
| | | const editChild = ref(null) |
| | | const showTaskDetlChild = ref(null) |
| | | |
| | |
| | | post('/api/taskLog/page', { |
| | | current: currentPage, |
| | | pageSize: pageSize, |
| | | condition: searchInput.value |
| | | condition: searchInput.value, |
| | | _param: searchParam.value, |
| | | }).then((resp) => { |
| | | let result = resp.data; |
| | | if (result.code == 200) { |
| | |
| | | showTaskDetlChild.value.taskId = record.id; |
| | | } |
| | | |
| | | const taskStsQueryList = ref(null); |
| | | taskStsQuery(); |
| | | function taskStsQuery() { |
| | | postForm('/api/taskSts/query', {}).then(resp => { |
| | | let result = resp.data; |
| | | taskStsQueryList.value = result.data; |
| | | }) |
| | | } |
| | | const taskTypeQueryList = ref(null); |
| | | taskTypeQuery(); |
| | | function taskTypeQuery() { |
| | | postForm('/api/taskType/query', {}).then(resp => { |
| | | let result = resp.data; |
| | | taskTypeQueryList.value = result.data; |
| | | }) |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <script> |
| | |
| | | <div> |
| | | <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> |
| | | <a-input v-model:value="searchParam.taskNo" :placeholder="formatMessage('page.task.taskNo.input', '请输入任务编号')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-select v-model:value="searchParam.taskSts" |
| | | :placeholder="formatMessage('page.task.taskSts.select', '请选择任务状态')" style="width: 140px;margin-right: 10px;" |
| | | show-search allowClear :options="taskStsQueryList" optionFilterProp="label" optionLabelProp="label"> |
| | | </a-select> |
| | | <a-select v-model:value="searchParam.taskType" |
| | | :placeholder="formatMessage('page.task.taskType.select', '请选择任务类型')" style="width: 140px;margin-right: 10px;" |
| | | show-search allowClear :options="taskTypeQueryList" optionFilterProp="label" optionLabelProp="label"> |
| | | </a-select> |
| | | <a-input v-model:value="searchParam.originLoc" |
| | | :placeholder="formatMessage('page.task.originLoc.input', '请输入源库位')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.targetLoc" |
| | | :placeholder="formatMessage('page.task.targetLoc.input', '请输入目标库位')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | <a-input v-model:value="searchParam.barcode" :placeholder="formatMessage('page.task.barcode.input', '请输入托盘码')" |
| | | style="width: 140px;margin-right: 10px;" /> |
| | | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | </div> |
| | | <div class="table-header-right"> |
| | | <!-- <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> --> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |
| | |
| | | package com.zy.asrs.wms.asrs.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.zy.asrs.framework.common.Cools; |
| | | import com.zy.asrs.framework.common.R; |
| | |
| | | import com.zy.asrs.wms.asrs.service.OrderService; |
| | | import com.zy.asrs.wms.system.controller.BaseController; |
| | | import com.zy.asrs.wms.utils.ExcelUtil; |
| | | import com.zy.asrs.wms.utils.Utils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | BaseParam baseParam = buildParam(map, BaseParam.class); |
| | | PageParam<Order, BaseParam> pageParam = new PageParam<>(baseParam, Order.class); |
| | | // QueryWrapper<Order> wrapper = pageParam.buildWrapper(true); |
| | | LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>(); |
| | | QueryWrapper<Order> wrapper = new QueryWrapper<>(); |
| | | |
| | | ArrayList<Long> types = new ArrayList<>(); |
| | | for (OrderType orderType : orderTypeService.list(new LambdaQueryWrapper<OrderType>().eq(OrderType::getType, 1))) { |
| | | types.add(orderType.getId()); |
| | | } |
| | | |
| | | wrapper.in(Order::getOrderType, types); |
| | | wrapper.in("order_type", types); |
| | | |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.and(wrapper1 -> { |
| | | wrapper1.or().like(Order::getOrderNo, condition); |
| | | wrapper1.or().like(Order::getMemo, condition); |
| | | wrapper1.or().like("order_no", condition); |
| | | wrapper1.or().like("memo", condition); |
| | | }); |
| | | } |
| | | |
| | | Object paramObj = map.get("_param"); |
| | | if(paramObj != null) { |
| | | Map param = (Map) paramObj; |
| | | for (Object value : param.entrySet()) { |
| | | Map.Entry entry = (Map.Entry) value; |
| | | String paramKey = Utils.toSymbolCase(entry.getKey().toString(), '_'); |
| | | if (entry.getValue() != null) { |
| | | wrapper.like(paramKey, entry.getValue()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return R.ok().add(orderService.page(pageParam, wrapper)); |
| | | } |
| | | |
| | |
| | | BaseParam baseParam = buildParam(map, BaseParam.class); |
| | | PageParam<Order, BaseParam> pageParam = new PageParam<>(baseParam, Order.class); |
| | | // QueryWrapper<Order> wrapper = pageParam.buildWrapper(true); |
| | | LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>(); |
| | | QueryWrapper<Order> wrapper = new QueryWrapper<>(); |
| | | |
| | | ArrayList<Long> types = new ArrayList<>(); |
| | | for (OrderType orderType : orderTypeService.list(new LambdaQueryWrapper<OrderType>().eq(OrderType::getType, 2))) { |
| | | types.add(orderType.getId()); |
| | | } |
| | | |
| | | wrapper.in(Order::getOrderType, types); |
| | | wrapper.in("order_type", types); |
| | | |
| | | if (map.containsKey("orderOut")) { |
| | | wrapper.isNull(Order::getWaveId); |
| | | wrapper.isNull("wave_id"); |
| | | } |
| | | |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.and(wrapper1 -> { |
| | | wrapper1.or().like(Order::getOrderNo, condition); |
| | | wrapper1.or().like(Order::getMemo, condition); |
| | | wrapper1.or().like("order_no", condition); |
| | | wrapper1.or().like("memo", condition); |
| | | }); |
| | | } |
| | | |
| | | Object paramObj = map.get("_param"); |
| | | if(paramObj != null) { |
| | | Map param = (Map) paramObj; |
| | | for (Object value : param.entrySet()) { |
| | | Map.Entry entry = (Map.Entry) value; |
| | | String paramKey = Utils.toSymbolCase(entry.getKey().toString(), '_'); |
| | | if (entry.getValue() != null) { |
| | | wrapper.like(paramKey, entry.getValue()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return R.ok().add(orderService.page(pageParam, wrapper)); |
| | | } |
| | | |
| | |
| | | package com.zy.asrs.wms.asrs.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.zy.asrs.framework.common.Cools; |
| | | import com.zy.asrs.framework.common.R; |
| | |
| | | import com.zy.asrs.wms.asrs.service.OrderLogService; |
| | | import com.zy.asrs.wms.system.controller.BaseController; |
| | | import com.zy.asrs.wms.utils.ExcelUtil; |
| | | import com.zy.asrs.wms.utils.Utils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | BaseParam baseParam = buildParam(map, BaseParam.class); |
| | | PageParam<OrderLog, BaseParam> pageParam = new PageParam<>(baseParam, OrderLog.class); |
| | | // QueryWrapper<OrderLog> wrapper = pageParam.buildWrapper(true); |
| | | LambdaQueryWrapper<OrderLog> wrapper = new LambdaQueryWrapper<>(); |
| | | QueryWrapper<OrderLog> wrapper = new QueryWrapper<>(); |
| | | |
| | | ArrayList<Long> types = new ArrayList<>(); |
| | | for (OrderType orderType : orderTypeService.list(new LambdaQueryWrapper<OrderType>().eq(OrderType::getType, 1))) { |
| | | types.add(orderType.getId()); |
| | | } |
| | | |
| | | wrapper.in(OrderLog::getOrderType, types); |
| | | wrapper.in("order_type", types); |
| | | |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.and(wrapper1 -> { |
| | | wrapper1.or().like(OrderLog::getOrderNo, condition); |
| | | wrapper1.or().like(OrderLog::getMemo, condition); |
| | | wrapper1.or().like("order_no", condition); |
| | | wrapper1.or().like("memo", condition); |
| | | }); |
| | | } |
| | | |
| | | Object paramObj = map.get("_param"); |
| | | if(paramObj != null) { |
| | | Map param = (Map) paramObj; |
| | | for (Object value : param.entrySet()) { |
| | | Map.Entry entry = (Map.Entry) value; |
| | | String paramKey = Utils.toSymbolCase(entry.getKey().toString(), '_'); |
| | | if (entry.getValue() != null) { |
| | | wrapper.like(paramKey, entry.getValue()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return R.ok().add(orderLogService.page(pageParam, wrapper)); |
| | | } |
| | | |
| | |
| | | BaseParam baseParam = buildParam(map, BaseParam.class); |
| | | PageParam<OrderLog, BaseParam> pageParam = new PageParam<>(baseParam, OrderLog.class); |
| | | // QueryWrapper<OrderLog> wrapper = pageParam.buildWrapper(true); |
| | | LambdaQueryWrapper<OrderLog> wrapper = new LambdaQueryWrapper<>(); |
| | | QueryWrapper<OrderLog> wrapper = new QueryWrapper<>(); |
| | | |
| | | ArrayList<Long> types = new ArrayList<>(); |
| | | for (OrderType orderType : orderTypeService.list(new LambdaQueryWrapper<OrderType>().eq(OrderType::getType, 2))) { |
| | | types.add(orderType.getId()); |
| | | } |
| | | |
| | | wrapper.in(OrderLog::getOrderType, types); |
| | | wrapper.in("order_type", types); |
| | | |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.and(wrapper1 -> { |
| | | wrapper1.or().like(OrderLog::getOrderNo, condition); |
| | | wrapper1.or().like(OrderLog::getMemo, condition); |
| | | wrapper1.or().like("order_no", condition); |
| | | wrapper1.or().like("memo", condition); |
| | | }); |
| | | } |
| | | |
| | | Object paramObj = map.get("_param"); |
| | | if(paramObj != null) { |
| | | Map param = (Map) paramObj; |
| | | for (Object value : param.entrySet()) { |
| | | Map.Entry entry = (Map.Entry) value; |
| | | String paramKey = Utils.toSymbolCase(entry.getKey().toString(), '_'); |
| | | if (entry.getValue() != null) { |
| | | wrapper.like(paramKey, entry.getValue()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return R.ok().add(orderLogService.page(pageParam, wrapper)); |
| | | } |
| | | |
| | |
| | | throw new CoolException("订单明细不存在"); |
| | | } |
| | | |
| | | Long detlId = null; |
| | | for (OrderDetl orderDetl : orderDetls) { |
| | | Mat mat = orderDetl.getMat$(); |
| | | OrderDetl orderDetl = null; |
| | | for (OrderDetl detl : orderDetls) { |
| | | Mat mat = detl.getMat$(); |
| | | if (mat.getMatnr().equals(waitPakinTemplate.getMatnr())) { |
| | | detlId = orderDetl.getId(); |
| | | orderDetl = detl; |
| | | } |
| | | } |
| | | |
| | | if (detlId == null) { |
| | | if (orderDetl == null) { |
| | | throw new CoolException("订单明细不存在"); |
| | | } |
| | | |
| | |
| | | waitPakin.setOrderNo(order.getOrderNo()); |
| | | waitPakin.setAnfme(waitPakinTemplate.getAnfme()); |
| | | waitPakin.setBarcode(waitPakinTemplate.getBarcode()); |
| | | waitPakin.setDetlId(detlId); |
| | | waitPakin.setDetlId(orderDetl.getId()); |
| | | waitPakin.setMatnr(orderDetl.getMat$().getMatnr()); |
| | | waitPakin.setBatch(orderDetl.getBatch()); |
| | | waitPakinService.comb(waitPakin); |
| | | } |
| | | return R.ok(); |
| | |
| | | package com.zy.asrs.wms.asrs.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.zy.asrs.framework.common.Cools; |
| | | import com.zy.asrs.framework.common.R; |
| | |
| | | public R page(@RequestBody Map<String, Object> map) { |
| | | BaseParam baseParam = buildParam(map, BaseParam.class); |
| | | PageParam<Wave, BaseParam> pageParam = new PageParam<>(baseParam, Wave.class); |
| | | PageParam<Wave, BaseParam> page = waveService.page(pageParam, pageParam.buildWrapper(true)); |
| | | |
| | | QueryWrapper<Wave> wrapper = new QueryWrapper<>(); |
| | | |
| | | String condition = map.getOrDefault("condition", "").toString(); |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.and(wrapper1 -> { |
| | | wrapper1.or().like("wave_no", condition); |
| | | wrapper1.or().like("memo", condition); |
| | | }); |
| | | } |
| | | |
| | | Object paramObj = map.get("_param"); |
| | | if(paramObj != null) { |
| | | Map param = (Map) paramObj; |
| | | Object waveNoObj = param.get("waveNo"); |
| | | Object matnrObj = param.get("matnr"); |
| | | Object batchObj = param.get("batch"); |
| | | |
| | | LambdaQueryWrapper<WaveDetl> waveDetlWrapper = new LambdaQueryWrapper<>(); |
| | | |
| | | if(!Cools.isEmpty(waveNoObj)) { |
| | | waveDetlWrapper.like(WaveDetl::getWaveNo, waveNoObj); |
| | | } |
| | | |
| | | if(!Cools.isEmpty(matnrObj)) { |
| | | waveDetlWrapper.like(WaveDetl::getMatnr, matnrObj); |
| | | } |
| | | |
| | | if(!Cools.isEmpty(batchObj)) { |
| | | waveDetlWrapper.like(WaveDetl::getBatch, batchObj); |
| | | } |
| | | |
| | | List<WaveDetl> waveDetls = waveDetlService.list(waveDetlWrapper); |
| | | ArrayList<Long> waveIds = new ArrayList<>(); |
| | | for (WaveDetl waveDetl : waveDetls) { |
| | | if(!waveIds.contains(waveDetl.getWaveId())) { |
| | | waveIds.add(waveDetl.getWaveId()); |
| | | } |
| | | } |
| | | |
| | | if (waveIds.isEmpty()) { |
| | | waveIds.add(-1L); |
| | | } |
| | | wrapper.in("id", waveIds); |
| | | |
| | | } |
| | | |
| | | PageParam<Wave, BaseParam> page = waveService.page(pageParam, wrapper); |
| | | return R.ok().add(page); |
| | | } |
| | | |
| | |
| | | @ApiModelProperty(value= "备注") |
| | | private String memo; |
| | | |
| | | /** |
| | | * 商品编号 |
| | | */ |
| | | @ApiModelProperty(value= "商品编号") |
| | | private String matnr; |
| | | |
| | | /** |
| | | * 批号 |
| | | */ |
| | | @ApiModelProperty(value= "批号") |
| | | private String batch; |
| | | |
| | | public WaitPakin() {} |
| | | |
| | | public WaitPakin(Long orderId,String orderNo,Double anfme,String barcode,Long detlId,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) { |
| | |
| | | @ApiModelProperty(value= "备注") |
| | | private String memo; |
| | | |
| | | /** |
| | | * 商品编号 |
| | | */ |
| | | @ApiModelProperty(value= "商品编号") |
| | | private String matnr; |
| | | |
| | | /** |
| | | * 批号 |
| | | */ |
| | | @ApiModelProperty(value= "批号") |
| | | private String batch; |
| | | |
| | | public WaitPakinLog() {} |
| | | |
| | | public WaitPakinLog(Long orderId,String orderNo,Double anfme,String barcode,Long detlId,Integer ioStatus,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) { |
| | |
| | | private String siteNo; |
| | | |
| | | /** |
| | | * 订单编号 |
| | | */ |
| | | @ApiModelProperty(value= "订单编号") |
| | | private String orderNo; |
| | | |
| | | /** |
| | | * 订单 |
| | | */ |
| | | @ApiModelProperty(value= "订单") |
| | |
| | | WaitPakin waitPakin1 = this.getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, waitPakin.getBarcode()).eq(WaitPakin::getDetlId, waitPakin.getDetlId())); |
| | | if (waitPakin1 == null) { |
| | | //不存在组托通知档,创建 |
| | | waitPakin.setMatnr(orderDetl.getMat$().getMatnr()); |
| | | waitPakin.setBatch(orderDetl.getBatch()); |
| | | if (!this.save(waitPakin)) { |
| | | throw new CoolException("添加失败"); |
| | | } |
| | |
| | | WaveSeed waveSeed = new WaveSeed(); |
| | | waveSeed.setSiteId(cacheSite.getId()); |
| | | waveSeed.setSiteNo(cacheSite.getSiteNo()); |
| | | waveSeed.setOrderNo(orderDetl.getOrderNo()); |
| | | waveSeed.setOrderId(orderDetl.getOrderId()); |
| | | waveSeed.setOrderDetlId(orderDetl.getId()); |
| | | waveSeed.setTaskDetlId(taskDetl.getId()); |
| | |
| | | queryWrapper.ge(key, DateUtils.convert(list.get(0))); |
| | | queryWrapper.le(key, DateUtils.convert(list.get(1))); |
| | | } |
| | | } else if (key.equals("_param")) { |
| | | Map param = (Map) val; |
| | | for (Object value : param.entrySet()) { |
| | | Map.Entry entry = (Map.Entry) value; |
| | | String paramKey = entry.getKey().toString(); |
| | | if (this.isToUnderlineCase) { |
| | | paramKey = Utils.toSymbolCase(paramKey, '_'); |
| | | } |
| | | if (!Cools.isEmpty(entry.getValue())) { |
| | | queryWrapper.like(paramKey, entry.getValue()); |
| | | } |
| | | } |
| | | } else if (val instanceof List) { |
| | | if (this.isToUnderlineCase) { |
| | | key = Utils.toSymbolCase(key, '_'); |