From b5c3bd5950a852ca592a2d50d1d1303d432c1bbb Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期五, 26 七月 2024 17:03:28 +0800
Subject: [PATCH] #
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlField.java | 234 +++
zy-asrs-admin/src/views/order/orderDetl/edit.vue | 259 +++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/MatField.java | 19
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/CreateOrderParam.java | 26
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/CodeBuilder.java | 4
zy-asrs-admin/src/views/in/order/index.vue | 235 +++
zy-asrs-admin/src/assets/main.css | 16
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetl.java | 324 ++++
zy-asrs-wms/src/main/java/orderDetl.sql | 9
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatFieldController.java | 3
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/UpdateOrderParam.java | 29
zy-asrs-admin/src/views/order/order/edit.vue | 232 +++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderDetlFieldServiceImpl.java | 12
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java | 36
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderDetlServiceImpl.java | 30
zy-asrs-admin/src/views/config/matField/index.vue | 7
zy-asrs-wms/src/main/resources/mapper/asrs/OrderMapper.xml | 5
zy-asrs-admin/src/views/loc/locDetl/edit.vue | 22
zy-asrs-wms/src/main/resources/mapper/asrs/OrderDetlFieldMapper.xml | 5
zy-asrs-admin/src/views/config/matField/edit.vue | 8
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderDetlController.java | 108 +
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderTypeController.java | 5
zy-asrs-admin/src/views/asrs/orderDetlField/index.vue | 235 +++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/OrderDetlFieldMapper.java | 12
zy-asrs-admin/src/views/order/orderDetl/index.vue | 256 +++
zy-asrs-wms/src/main/resources/mapper/asrs/OrderDetlMapper.xml | 5
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/Order.java | 234 +++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/OrderDetlParam.java | 55
zy-asrs-wms/src/main/java/order.sql | 9
zy-asrs-admin/src/views/base/mat/index.vue | 4
zy-asrs-admin/src/views/asrs/orderDetlField/edit.vue | 232 +++
zy-asrs-wms/src/main/java/orderDetlField.sql | 9
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/OrderService.java | 16
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/OrderDetlMapper.java | 12
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/OrderDetlService.java | 12
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java | 197 +++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/OrderMapper.java | 12
zy-asrs-admin/src/components/orderDetl/edit.vue | 288 ++++
zy-asrs-admin/src/views/IndexView.vue | 4
zy-asrs-admin/src/views/loc/locDetl/index.vue | 3
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/OrderDetlFieldService.java | 8
zy-asrs-admin/src/views/base/mat/edit.vue | 4
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderDetlFieldController.java | 102 +
zy-asrs-admin/src/views/order/order/index.vue | 235 +++
zy-asrs-admin/src/views/in/order/edit.vue | 186 ++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java | 105 +
46 files changed, 3,849 insertions(+), 14 deletions(-)
diff --git a/zy-asrs-admin/src/assets/main.css b/zy-asrs-admin/src/assets/main.css
index 3273d31..e877501 100644
--- a/zy-asrs-admin/src/assets/main.css
+++ b/zy-asrs-admin/src/assets/main.css
@@ -49,6 +49,10 @@
color: #333333 !important;
}
+.triggerLarge {
+ font-size: 18px !important;
+}
+
.logo {
height: 50px;
/* background: rgba(255, 255, 255, 0.3); */
@@ -64,6 +68,7 @@
.header-top {
display: flex;
justify-content: space-between;
+ margin-bottom: 10px;
}
.header-top-left {
@@ -156,7 +161,18 @@
.content-view {
margin: 45px 16px;
+ margin-top: 60px;
padding: 24px;
background: #fff;
min-height: 280px;
+}
+
+.form-block {
+ display: flex;
+ justify-content: space-between;
+ flex-wrap: wrap;
+}
+
+.form-block .ant-form-item {
+ width: 100%;
}
\ No newline at end of file
diff --git a/zy-asrs-admin/src/components/orderDetl/edit.vue b/zy-asrs-admin/src/components/orderDetl/edit.vue
new file mode 100644
index 0000000..8f55e6e
--- /dev/null
+++ b/zy-asrs-admin/src/components/orderDetl/edit.vue
@@ -0,0 +1,288 @@
+<script setup>
+import { getCurrentInstance, ref, watch, reactive } from 'vue';
+import { useRouter } from "vue-router";
+import { get, post, postForm } from '@/utils/request.js'
+import { message, Modal } from 'ant-design-vue';
+import { logout } from '@/config.js';
+import { formatMessage } from '@/utils/localeUtils.js';
+import useTableSearch from '@/utils/tableUtils.jsx';
+const context = getCurrentInstance()?.appContext.config.globalProperties;
+
+const router = useRouter();
+
+const TABLE_KEY = 'table-locDetl';
+
+let tableData = ref([]);
+let editTableData = ref([]);
+let deleteDetlId = ref([]);
+getColumns();
+
+const {
+ getColumnSearchProps,
+} = useTableSearch();
+
+const state = reactive({
+ selectedRowKeys: [],
+ loading: false,
+ columns: [],
+});
+
+state.columns = [
+ {
+ title: '#',
+ dataIndex: '_id',
+ width: 60,
+ ellipsis: true,
+ },
+ {
+ title: formatMessage('db.man_loc_detl.matnr', '鐗╂枡鍙�'),
+ dataIndex: 'matnr',
+ width: 140,
+ ellipsis: true,
+ },
+ {
+ title: formatMessage('db.man_loc_detl.maktx', '鐗╂枡鍚�'),
+ dataIndex: 'maktx',
+ width: 140,
+ ellipsis: true,
+ },
+ {
+ title: formatMessage('db.man_loc_detl.batch', '鎵瑰彿'),
+ dataIndex: 'batch',
+ width: 140,
+ ellipsis: true,
+ editable: true,
+ },
+ {
+ title: formatMessage('db.man_loc_detl.anfme', '鏁伴噺'),
+ dataIndex: 'anfme',
+ width: 140,
+ ellipsis: true,
+ editable: true,
+ },
+ {
+ title: formatMessage('db.man_loc_detl.memo', '澶囨敞'),
+ dataIndex: 'memo',
+ width: 140,
+ ellipsis: true,
+ editable: true,
+ },
+];
+
+const fieldList = [];
+//鍔犺浇鎵╁睍瀛楁
+async function getColumns() {
+ let fieldResp = await post('/api/matField/list', {
+ fieldType: 1
+ })
+ let fieldResult = fieldResp.data;
+ let tmp = state.columns;
+ if (fieldResult.code == 200) {
+ let data = fieldResult.data;
+
+ data.forEach((item) => {
+ tmp.push({
+ title: formatMessage(item.language, item.describe),
+ name: item.name,
+ dataIndex: item.name,
+ key: item.name,
+ width: 140,
+ editable: true,
+ })
+
+ fieldList.push(item.name);
+ })
+
+ tmp.push({
+ title: formatMessage('common.operation', '鎿嶄綔'),
+ name: 'oper',
+ dataIndex: 'oper',
+ key: 'oper',
+ width: 140,
+ })
+
+ state.columns = tmp;
+ } else if (result.code === 401) {
+ message.error(result.msg);
+ logout()
+ } else {
+ message.error(result.msg);
+ }
+}
+
+const openAddDetl = ref(false);
+const matChecked = ref([]);
+const matQueryList = ref(null);
+const matSelectList = ref([]);
+const addDetl = () => {
+ openAddDetl.value = true;
+}
+
+const handleAddDetlOk = () => {
+ let origin = tableData.value;
+ let index = origin.length + 1;
+ matSelectList.value.forEach((item) => {
+ let data = {
+ _id: index++,
+ matnr: item.data.matnr,
+ maktx: item.data.maktx,
+ batch: '',
+ anfme: 0,
+ memo: ''
+ };
+ fieldList.forEach((field) => {
+ data[field] = '';
+ })
+ origin.push(data)
+ })
+ tableData.value = origin;
+
+ openAddDetl.value = false;
+ matSelectList.value = [];
+ matChecked.value = [];
+}
+
+const handleAddDetlCancel = () => {
+ matSelectList.value = [];
+ matChecked.value = [];
+}
+
+const handleSearch = val => {
+ matQuery(val);
+}
+
+const handleSelect = (value, option) => {
+ let flag = true;
+ matSelectList.value.forEach((item) => {
+ if (item.value == value) {
+ flag = false;
+ }
+ })
+
+ if (flag) {
+ matSelectList.value.push(option)
+ }
+}
+
+const handleDeselect = (value, option) => {
+ let tmp = [];
+ matSelectList.value.forEach((item) => {
+ if (item.value != value) {
+ tmp.push(item);
+ }
+ })
+
+ matSelectList.value = tmp;
+}
+
+matQuery(null);
+function matQuery(condition) {
+ post('/api/mat/page', {
+ current: 1,
+ pageSize: 100,
+ condition: condition
+ }).then((resp) => {
+ let result = resp.data;
+ let tmp = []
+ result.data.records.forEach((item) => {
+ tmp.push({
+ value: item.matnr,
+ label: item.matnr,
+ data: item
+ })
+ })
+ matQueryList.value = tmp;
+ })
+}
+
+const handleDel = (record) => {
+ let tmp = [];
+ tableData.value.forEach((item) => {
+ if (item._id != record._id) {
+ tmp.push(item);
+ }
+ })
+
+ //閲嶅缓绱㈠紩
+ let index = 1;
+ tmp.forEach((item) => {
+ item._id = index++;
+ })
+
+ if (record.detlId != undefined) {
+ deleteDetlId.value.push(record.detlId);
+ }
+
+ tableData.value = tmp;
+}
+
+watch(editTableData, (newVal, oldVal) => {
+ let index = 1;
+ let tmp = [];
+ if (newVal.length > 0) {
+ newVal.forEach((item) => {
+ let data = {
+ _id: index++,
+ detlId: item.id,
+ matnr: item.mat$.matnr,
+ maktx: item.mat$.maktx,
+ batch: item.batch,
+ anfme: item.anfme,
+ memo: item.memo
+ };
+ fieldList.forEach((field) => {
+ data[field] = item[field];
+ })
+ tmp.push(data)
+ })
+ }
+ tableData.value = tmp;
+})
+
+defineExpose({
+ tableData,
+ editTableData,
+ deleteDetlId,
+})
+
+</script>
+
+<script>
+export default {
+ name: 'orderDetlComponent'
+}
+</script>
+
+<template>
+ <div>
+ <div class="table-header">
+ <a-button @click="addDetl()" type="primary">{{ formatMessage('page.add', '娣诲姞鏄庣粏') }}</a-button>
+ </div>
+ <a-table :data-source="tableData" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id"
+ :scroll="{ y: 768 }" :columns="state.columns">
+ <template #bodyCell="{ column, record, index }">
+ <template v-if="column.dataIndex === 'oper'">
+ <div style="display: flex;justify-content: space-evenly;">
+ <a-button type="link" danger @click="handleDel(record)">{{ formatMessage('page.delete', '鍒犻櫎')
+ }}</a-button>
+ </div>
+ </template>
+
+ <template v-if="column.editable">
+ <div>
+ <a-input v-model:value="record[column.dataIndex]" />
+ </div>
+ </template>
+ </template>
+ </a-table>
+
+ <a-modal v-model:open="openAddDetl" :title="formatMessage('component.orderDetl.edit.addDetl', '娣诲姞鏄庣粏')"
+ @ok="handleAddDetlOk" @cancel="handleAddDetlCancel">
+ <a-select v-model:value="matChecked" :options="matQueryList" mode="multiple"
+ :placeholder="formatMessage('component.orderDetl.edit.selectMat', '璇烽�夋嫨鐗╂枡')" @search="handleSearch"
+ @select="handleSelect" @deselect="handleDeselect"></a-select>
+ </a-modal>
+ </div>
+</template>
+
+<style></style>
diff --git a/zy-asrs-admin/src/views/IndexView.vue b/zy-asrs-admin/src/views/IndexView.vue
index 7d88212..124f682 100644
--- a/zy-asrs-admin/src/views/IndexView.vue
+++ b/zy-asrs-admin/src/views/IndexView.vue
@@ -242,10 +242,10 @@
</a-layout-sider>
<a-layout>
- <a-layout-header style="background: #fff; padding: 0">
+ <a-layout-header style="background: #fff; padding: 0;">
<div class="header-top">
<div class="header-top-left">
- <MenuUnfoldOutlined v-if="collapsed" class="trigger" @click="() => (collapsed = !collapsed)" />
+ <MenuUnfoldOutlined v-if="collapsed" class="trigger triggerLarge" @click="() => (collapsed = !collapsed)" />
<MenuFoldOutlined v-else class="trigger" @click="() => (collapsed = !collapsed)" />
<RedoOutlined class="trigger" @click="windowReload()" />
</div>
diff --git a/zy-asrs-admin/src/views/asrs/orderDetlField/edit.vue b/zy-asrs-admin/src/views/asrs/orderDetlField/edit.vue
new file mode 100644
index 0000000..27c5099
--- /dev/null
+++ b/zy-asrs-admin/src/views/asrs/orderDetlField/edit.vue
@@ -0,0 +1,232 @@
+<script setup>
+import { ref, nextTick } from 'vue';
+import { get, post, postBlob, postForm } from '@/utils/request.js'
+import { formatMessage } from '@/utils/localeUtils.js';
+import { message } from 'ant-design-vue';
+
+const formTable = ref(null);
+const submitButton = ref(null);
+const isSave = ref(true);
+const open = ref(false);
+const initFormData = {}
+let formData = ref(initFormData);
+
+const emit = defineEmits(['tableReload'])
+
+const handleOk = (e) => {
+ nextTick(() => {
+ setTimeout(() => {
+ submitButton.value.$el.click();
+ }, 100);
+ });
+};
+
+const onFinish = values => {
+ // console.log('Success:', values);
+ open.value = false;
+ post(isSave.value ? '/api/orderDetlField/save' : '/api/orderDetlField/update', formData.value).then((resp) => {
+ let result = resp.data;
+ if (result.code === 200) {
+ message.success(isSave.value ? formatMessage('page.add.success', '鏂板鎴愬姛') : formatMessage('page.update.success', '鏇存柊鎴愬姛'));
+ } else {
+ message.error(result.msg);
+ }
+ emit('tableReload', 'reload')
+ nextTick(() => {
+ formTable.value.resetFields()
+ })
+ })
+};
+const onFinishFailed = errorInfo => {
+ console.log('Failed:', errorInfo);
+};
+
+const matFieldQueryList = ref(null);
+matFieldQuery();
+function matFieldQuery() {
+ postForm('/api/matField/query', {}).then(resp => {
+ let result = resp.data;
+ matFieldQueryList.value = result.data;
+ })
+}
+const orderDetlQueryList = ref(null);
+orderDetlQuery();
+function orderDetlQuery() {
+ postForm('/api/orderDetl/query', {}).then(resp => {
+ let result = resp.data;
+ orderDetlQueryList.value = result.data;
+ })
+}
+const userQueryList = ref(null);
+userQuery();
+function userQuery() {
+ postForm('/api/user/query', {}).then(resp => {
+ let result = resp.data;
+ userQueryList.value = result.data;
+ })
+}
+
+
+defineExpose({
+ open,
+ formData,
+ initFormData,
+ isSave,
+})
+
+</script>
+
+<script>
+export default {
+ name: '璁㈠崟鏄庣粏鎵╁睍瀛楁-edit'
+}
+</script>
+
+<template>
+ <div>
+ <a-modal v-model:open="open"
+ :title="isSave ? formatMessage('page.add', '娣诲姞') : formatMessage('page.edit', '缂栬緫')" @ok="handleOk"
+ style="width: 600px;">
+ <a-form :model="formData" ref="formTable" name="formTable" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }"
+ style="display: flex;justify-content: space-between;flex-wrap: wrap;" autocomplete="off"
+ @finish="onFinish" @finishFailed="onFinishFailed">
+ <a-form-item
+ :label="formatMessage('db.man_order_detl_field.name', '瀛楁鍚�') "
+ name="name"
+ style="width: 250px;"
+ >
+ <a-input
+ v-model:value="formData.name"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl_field.field_id', '瀛楁') "
+ name="fieldId"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.fieldId"
+ :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%"
+ show-search
+ :options="matFieldQueryList"
+ optionFilterProp="label"
+ optionLabelProp="label"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl_field.detl_id', '搴撳瓨鏄庣粏') "
+ name="detlId"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.detlId"
+ :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%"
+ show-search
+ :options="orderDetlQueryList"
+ optionFilterProp="label"
+ optionLabelProp="label"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl_field.value', '鍙傛暟鍊�') "
+ name="value"
+ style="width: 250px;"
+ >
+ <a-input
+ v-model:value="formData.value"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl_field.status', '鐘舵��') "
+ name="status"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.status"
+ :options="[
+ { label: '姝e父', value: 1 },
+ { label: '绂佺敤', value: 0 },
+ ]"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl_field.create_time', '娣诲姞鏃堕棿') "
+ name="createTime"
+ style="width: 250px;"
+ >
+ <a-date-picker
+ v-model:value="formData.createTime"
+ show-time
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl_field.create_by', '娣诲姞浜哄憳') "
+ name="createBy"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.createBy"
+ :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%"
+ show-search
+ :options="userQueryList"
+ optionFilterProp="label"
+ optionLabelProp="label"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl_field.update_time', '淇敼鏃堕棿') "
+ name="updateTime"
+ style="width: 250px;"
+ >
+ <a-date-picker
+ v-model:value="formData.updateTime"
+ show-time
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl_field.update_by', '淇敼浜哄憳') "
+ name="updateBy"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.updateBy"
+ :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%"
+ show-search
+ :options="userQueryList"
+ optionFilterProp="label"
+ optionLabelProp="label"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl_field.memo', '澶囨敞') "
+ name="memo"
+ style="width: 250px;"
+ >
+ <a-input
+ v-model:value="formData.memo"
+ />
+ </a-form-item>
+
+ <a-form-item>
+ <a-button type="primary" html-type="submit" ref="submitButton"
+ style="visibility: hidden;">Submit</a-button>
+ </a-form-item>
+ </a-form>
+ </a-modal>
+ </div>
+</template>
+
+<style></style>
diff --git a/zy-asrs-admin/src/views/asrs/orderDetlField/index.vue b/zy-asrs-admin/src/views/asrs/orderDetlField/index.vue
new file mode 100644
index 0000000..3e42b84
--- /dev/null
+++ b/zy-asrs-admin/src/views/asrs/orderDetlField/index.vue
@@ -0,0 +1,235 @@
+<script setup>
+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 { logout } from '@/config.js';
+import EditView from './edit.vue'
+import { formatMessage } from '@/utils/localeUtils.js';
+import useTableSearch from '@/utils/tableUtils.jsx';
+const context = getCurrentInstance()?.appContext.config.globalProperties;
+
+const router = useRouter();
+
+const TABLE_KEY = 'table-orderDetlField';
+let currentPage = 1;
+let pageSize = 10;
+const searchInput = ref("")
+const editChild = ref(null)
+
+let tableData = ref([]);
+getPage();
+
+const {
+ getColumnSearchProps,
+} = useTableSearch();
+
+const columns = [
+ {
+ title: formatMessage('db.man_order_detl_field.name', '瀛楁鍚�'),
+ dataIndex: 'name',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('name'),
+ },
+ {
+ title: formatMessage('db.man_order_detl_field.field_id', '瀛楁'),
+ dataIndex: 'fieldId$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('fieldId$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl_field.detl_id', '搴撳瓨鏄庣粏'),
+ dataIndex: 'detlId$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('detlId$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl_field.value', '鍙傛暟鍊�'),
+ dataIndex: 'value',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('value'),
+ },
+ {
+ title: formatMessage('db.man_order_detl_field.status', '鐘舵��'),
+ dataIndex: 'status$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('status$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl_field.create_time', '娣诲姞鏃堕棿'),
+ dataIndex: 'createTime$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('createTime$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl_field.create_by', '娣诲姞浜哄憳'),
+ dataIndex: 'createBy$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('createBy$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl_field.update_time', '淇敼鏃堕棿'),
+ dataIndex: 'updateTime$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('updateTime$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl_field.update_by', '淇敼浜哄憳'),
+ dataIndex: 'updateBy$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('updateBy$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl_field.memo', '澶囨敞'),
+ dataIndex: 'memo',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('memo'),
+ },
+
+ {
+ title: formatMessage('common.operation', '鎿嶄綔'),
+ name: 'oper',
+ dataIndex: 'oper',
+ key: 'oper',
+ width: 140,
+ },
+];
+
+const state = reactive({
+ selectedRowKeys: [],
+ loading: false,
+});
+const hasSelected = computed(() => state.selectedRowKeys.length > 0);
+const start = () => {
+ state.loading = true;
+ // ajax request after empty completing
+ setTimeout(() => {
+ state.loading = false;
+ state.selectedRowKeys = [];
+ }, 1000);
+};
+const onSelectChange = selectedRowKeys => {
+ // console.log('selectedRowKeys changed: ', selectedRowKeys);
+ state.selectedRowKeys = selectedRowKeys;
+};
+
+function getPage() {
+ post('/api/orderDetlField/page', {
+ current: currentPage,
+ pageSize: pageSize,
+ condition: searchInput.value
+ }).then((resp) => {
+ let result = resp.data;
+ if (result.code == 200) {
+ let data = result.data;
+ tableData.value = data;
+ } else if (result.code === 401) {
+ message.error(result.msg);
+ logout()
+ } else {
+ message.error(result.msg);
+ }
+ })
+}
+
+const handleEdit = (item) => {
+ editChild.value.open = true;
+ editChild.value.formData = item == null ? editChild.value.initFormData : JSON.parse(JSON.stringify(item));
+ editChild.value.isSave = item == null;
+}
+
+const handleDel = (rows) => {
+ Modal.confirm({
+ title: formatMessage('page.delete', '鍒犻櫎'),
+ content: formatMessage('page.delete.confirm', '纭畾鍒犻櫎璇ラ」鍚楋紵'),
+ maskClosable: true,
+ onOk: async () => {
+ const hide = message.loading(formatMessage('common.loading', '璇锋眰涓�'));
+ try {
+ post('/api/orderDetlField/remove/' + rows.map((row) => row.id).join(','), {}).then(resp => {
+ let result = resp.data;
+ if (result.code === 200) {
+ message.success(result.msg);
+ } else {
+ message.error(result.msg);
+ }
+ getPage()
+ hide()
+ })
+ } catch (error) {
+ message.error(formatMessage('common.fail', '璇锋眰澶辫触'));
+ }
+ },
+ });
+}
+
+const handleExport = async (intl) => {
+ postBlob('/api/orderDetlField/export', {}).then(result => {
+ const blob = new Blob([result.data], { type: 'application/vnd.ms-excel' });
+ window.location.href = window.URL.createObjectURL(blob);
+ return true;
+ })
+};
+
+const onSearch = () => {
+ // console.log('search');
+ getPage()
+}
+
+const onPageChange = (page, size) => {
+ currentPage = page;
+ pageSize = size;
+ getPage();
+}
+
+function handleTableReload(value) {
+ getPage()
+}
+
+</script>
+
+<script>
+export default {
+ name: '璁㈠崟鏄庣粏鎵╁睍瀛楁'
+}
+</script>
+
+<template>
+ <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 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>
+ </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">
+ <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>
+ </div>
+</template>
+
+<style></style>
diff --git a/zy-asrs-admin/src/views/base/mat/edit.vue b/zy-asrs-admin/src/views/base/mat/edit.vue
index ad4cb9c..3089870 100644
--- a/zy-asrs-admin/src/views/base/mat/edit.vue
+++ b/zy-asrs-admin/src/views/base/mat/edit.vue
@@ -64,7 +64,9 @@
//鎵╁睍瀛楁
getColumns()
async function getColumns() {
- let fieldResp = await post('/api/matField/list', {})
+ let fieldResp = await post('/api/matField/list', {
+ fieldType: 0
+ })
let fieldResult = fieldResp.data;
if (fieldResult.code == 200) {
let data = fieldResult.data;
diff --git a/zy-asrs-admin/src/views/base/mat/index.vue b/zy-asrs-admin/src/views/base/mat/index.vue
index 0afb29c..eb7d5f5 100644
--- a/zy-asrs-admin/src/views/base/mat/index.vue
+++ b/zy-asrs-admin/src/views/base/mat/index.vue
@@ -278,7 +278,9 @@
//鍔犺浇鎵╁睍瀛楁
async function getColumns() {
- let fieldResp = await post('/api/matField/list', {})
+ let fieldResp = await post('/api/matField/list', {
+ fieldType: 0
+ })
let fieldResult = fieldResp.data;
let tmp = state.columns;
if (fieldResult.code == 200) {
diff --git a/zy-asrs-admin/src/views/config/matField/edit.vue b/zy-asrs-admin/src/views/config/matField/edit.vue
index 128f240..4fc2939 100644
--- a/zy-asrs-admin/src/views/config/matField/edit.vue
+++ b/zy-asrs-admin/src/views/config/matField/edit.vue
@@ -101,6 +101,14 @@
]">
</a-select>
</a-form-item>
+ <a-form-item :label="formatMessage('db.man_mat_field.field_type', '瀛楁绫诲瀷')" name="fieldType"
+ style="width: 250px;">
+ <a-select v-model:value="formData.fieldType" :options="[
+ { label: '鐗╂枡', value: 0 },
+ { label: '搴撳瓨', value: 1 },
+ ]">
+ </a-select>
+ </a-form-item>
<a-form-item :label="formatMessage('db.man_mat_field.status', '鐘舵��')" name="status"
style="width: 250px;">
<a-select v-model:value="formData.status" :options="[
diff --git a/zy-asrs-admin/src/views/config/matField/index.vue b/zy-asrs-admin/src/views/config/matField/index.vue
index 3b3363f..aba1485 100644
--- a/zy-asrs-admin/src/views/config/matField/index.vue
+++ b/zy-asrs-admin/src/views/config/matField/index.vue
@@ -61,6 +61,13 @@
...getColumnSearchProps('unique$'),
},
{
+ title: formatMessage('db.man_mat_field.field_type', '瀛楁绫诲瀷'),
+ dataIndex: 'fieldType$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('fieldType$'),
+ },
+ {
title: formatMessage('db.man_mat_field.status', '鐘舵��'),
dataIndex: 'status$',
width: 140,
diff --git a/zy-asrs-admin/src/views/in/order/edit.vue b/zy-asrs-admin/src/views/in/order/edit.vue
new file mode 100644
index 0000000..1a135c2
--- /dev/null
+++ b/zy-asrs-admin/src/views/in/order/edit.vue
@@ -0,0 +1,186 @@
+<script setup>
+import { ref, nextTick, watch } from 'vue';
+import { get, post, postBlob, postForm } from '@/utils/request.js'
+import { formatMessage } from '@/utils/localeUtils.js';
+import { message } from 'ant-design-vue';
+import OrderDetlComponent from '@/components/orderDetl/edit.vue';
+
+const formTable = ref(null);
+const submitButton = ref(null);
+const isSave = ref(true);
+const open = ref(false);
+const initFormData = {}
+let formData = ref(initFormData);
+const orderDetlChild = ref(null);
+
+const emit = defineEmits(['tableReload'])
+
+watch(open, (newVal, oldVal) => {
+ if(newVal) {
+ get("/api/orderDetl/orderId/" + formData.value.id,{}).then((resp) => {
+ let result = resp.data;
+ orderDetlChild.value.editTableData = result.data;
+ })
+ }else {
+ orderDetlChild.value.editTableData = [];
+ }
+})
+
+const handleOk = (e) => {
+ nextTick(() => {
+ setTimeout(() => {
+ submitButton.value.$el.click();
+ }, 100);
+ });
+};
+
+const onFinish = values => {
+ // console.log('Success:', values);
+ open.value = false;
+
+ let param = {
+ orderNo: formData.value.orderNo,
+ orderType: formData.value.orderType,
+ orderSettle: formData.value.orderSettle,
+ list: orderDetlChild.value.tableData
+ }
+
+ if(!isSave.value) {
+ param.deleteDetlId = orderDetlChild.value.deleteDetlId;
+ }
+
+ post(isSave.value ? '/api/order/save' : '/api/order/update', param).then((resp) => {
+ let result = resp.data;
+ if (result.code === 200) {
+ message.success(isSave.value ? formatMessage('page.add.success', '鏂板鎴愬姛') : formatMessage('page.update.success', '鏇存柊鎴愬姛'));
+ } else {
+ message.error(result.msg);
+ }
+ emit('tableReload', 'reload')
+ nextTick(() => {
+ formTable.value.resetFields()
+ })
+ })
+};
+const onFinishFailed = errorInfo => {
+ console.log('Failed:', errorInfo);
+};
+
+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;
+ })
+}
+const userQueryList = ref(null);
+userQuery();
+function userQuery() {
+ postForm('/api/user/query', {}).then(resp => {
+ let result = resp.data;
+ userQueryList.value = result.data;
+ })
+}
+
+defineExpose({
+ open,
+ formData,
+ initFormData,
+ isSave,
+})
+
+</script>
+
+<script>
+export default {
+ name: '璁㈠崟-edit'
+}
+</script>
+
+<template>
+ <div>
+ <a-modal v-model:open="open"
+ :title="isSave ? formatMessage('page.add', '娣诲姞') : formatMessage('page.edit', '缂栬緫')" @ok="handleOk"
+ style="width: 70%;">
+ <a-form :model="formData" ref="formTable" name="formTable" :label-col="{ span: 2 }"
+ :wrapper-col="{ span: 21 }" autocomplete="off" @finish="onFinish" @finishFailed="onFinishFailed">
+ <a-form-item :label="formatMessage('db.man_order.order_no', '璁㈠崟缂栧彿')" name="orderNo">
+ <a-input v-model:value="formData.orderNo" />
+ </a-form-item>
+ <!-- <a-form-item :label="formatMessage('db.man_order.order_time', '鍗曟嵁鏃ユ湡')" name="orderTime"
+ style="width: 250px;">
+ <a-input v-model:value="formData.orderTime" />
+ </a-form-item> -->
+ <a-form-item :label="formatMessage('db.man_order.order_type', '鍗曟嵁绫诲瀷')" name="orderType">
+ <a-select v-model:value="formData.orderType" :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%" show-search :options="orderTypeQueryList" optionFilterProp="label"
+ optionLabelProp="label">
+ </a-select>
+ </a-form-item>
+ <a-form-item :label="formatMessage('db.man_order.order_settle', '鍗曟嵁鐘舵��')" name="orderSettle">
+ <a-select v-model:value="formData.orderSettle" :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%" show-search :options="orderSettleQueryList" optionFilterProp="label"
+ optionLabelProp="label">
+ </a-select>
+ </a-form-item>
+ <!-- <a-form-item :label="formatMessage('db.man_order.status', '鐘舵��')" name="status" >
+ <a-select v-model:value="formData.status" :options="[
+ { label: '姝e父', value: 1 },
+ { label: '绂佺敤', value: 0 },
+ ]">
+ </a-select>
+ </a-form-item> -->
+ <!-- <a-form-item :label="formatMessage('db.man_order.create_time', '娣诲姞鏃堕棿')" name="createTime"
+ style="width: 250px;">
+ <a-date-picker v-model:value="formData.createTime" show-time format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss" />
+ </a-form-item>
+ <a-form-item :label="formatMessage('db.man_order.create_by', '娣诲姞浜哄憳')" name="createBy"
+ style="width: 250px;">
+ <a-select v-model:value="formData.createBy" :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%" show-search :options="userQueryList" optionFilterProp="label"
+ optionLabelProp="label">
+ </a-select>
+ </a-form-item>
+ <a-form-item :label="formatMessage('db.man_order.update_time', '淇敼鏃堕棿')" name="updateTime"
+ style="width: 250px;">
+ <a-date-picker v-model:value="formData.updateTime" show-time format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss" />
+ </a-form-item>
+ <a-form-item :label="formatMessage('db.man_order.update_by', '淇敼浜哄憳')" name="updateBy"
+ style="width: 250px;">
+ <a-select v-model:value="formData.updateBy" :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%" show-search :options="userQueryList" optionFilterProp="label"
+ optionLabelProp="label">
+ </a-select>
+ </a-form-item> -->
+ <!-- <a-form-item :label="formatMessage('db.man_order.memo', '澶囨敞')" name="memo" style="width: 250px;">
+ <a-input v-model:value="formData.memo" />
+ </a-form-item> -->
+
+ <a-form-item :label="formatMessage('db.man_order.update_time', '璁㈠崟鏄庣粏')" name="orderDetl">
+ <OrderDetlComponent ref="orderDetlChild" />
+ </a-form-item>
+
+ <a-form-item>
+ <a-button type="primary" html-type="submit" ref="submitButton"
+ style="visibility: hidden;">Submit</a-button>
+ </a-form-item>
+ </a-form>
+
+ </a-modal>
+ </div>
+</template>
+
+<style></style>
diff --git a/zy-asrs-admin/src/views/in/order/index.vue b/zy-asrs-admin/src/views/in/order/index.vue
new file mode 100644
index 0000000..b7afd82
--- /dev/null
+++ b/zy-asrs-admin/src/views/in/order/index.vue
@@ -0,0 +1,235 @@
+<script setup>
+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 { logout } from '@/config.js';
+import EditView from './edit.vue'
+import { formatMessage } from '@/utils/localeUtils.js';
+import useTableSearch from '@/utils/tableUtils.jsx';
+const context = getCurrentInstance()?.appContext.config.globalProperties;
+
+const router = useRouter();
+
+const TABLE_KEY = 'table-order';
+let currentPage = 1;
+let pageSize = 10;
+const searchInput = ref("")
+const editChild = ref(null)
+
+let tableData = ref([]);
+getPage();
+
+const {
+ getColumnSearchProps,
+} = useTableSearch();
+
+const columns = [
+ {
+ title: formatMessage('db.man_order.order_no', '璁㈠崟缂栧彿'),
+ dataIndex: 'orderNo',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('orderNo'),
+ },
+ {
+ title: formatMessage('db.man_order.order_time', '鍗曟嵁鏃ユ湡'),
+ dataIndex: 'orderTime',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('orderTime'),
+ },
+ {
+ title: formatMessage('db.man_order.order_type', '鍗曟嵁绫诲瀷'),
+ dataIndex: 'orderType$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('orderType$'),
+ },
+ {
+ title: formatMessage('db.man_order.order_settle', '鍗曟嵁鐘舵��'),
+ dataIndex: 'orderSettle$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('orderSettle$'),
+ },
+ {
+ title: formatMessage('db.man_order.status', '鐘舵��'),
+ dataIndex: 'status$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('status$'),
+ },
+ {
+ title: formatMessage('db.man_order.create_time', '娣诲姞鏃堕棿'),
+ dataIndex: 'createTime$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('createTime$'),
+ },
+ {
+ title: formatMessage('db.man_order.create_by', '娣诲姞浜哄憳'),
+ dataIndex: 'createBy$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('createBy$'),
+ },
+ {
+ title: formatMessage('db.man_order.update_time', '淇敼鏃堕棿'),
+ dataIndex: 'updateTime$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('updateTime$'),
+ },
+ {
+ title: formatMessage('db.man_order.update_by', '淇敼浜哄憳'),
+ dataIndex: 'updateBy$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('updateBy$'),
+ },
+ {
+ title: formatMessage('db.man_order.memo', '澶囨敞'),
+ dataIndex: 'memo',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('memo'),
+ },
+
+ {
+ title: formatMessage('common.operation', '鎿嶄綔'),
+ name: 'oper',
+ dataIndex: 'oper',
+ key: 'oper',
+ width: 140,
+ },
+];
+
+const state = reactive({
+ selectedRowKeys: [],
+ loading: false,
+});
+const hasSelected = computed(() => state.selectedRowKeys.length > 0);
+const start = () => {
+ state.loading = true;
+ // ajax request after empty completing
+ setTimeout(() => {
+ state.loading = false;
+ state.selectedRowKeys = [];
+ }, 1000);
+};
+const onSelectChange = selectedRowKeys => {
+ // console.log('selectedRowKeys changed: ', selectedRowKeys);
+ state.selectedRowKeys = selectedRowKeys;
+};
+
+function getPage() {
+ post('/api/order/page', {
+ current: currentPage,
+ pageSize: pageSize,
+ condition: searchInput.value
+ }).then((resp) => {
+ let result = resp.data;
+ if (result.code == 200) {
+ let data = result.data;
+ tableData.value = data;
+ } else if (result.code === 401) {
+ message.error(result.msg);
+ logout()
+ } else {
+ message.error(result.msg);
+ }
+ })
+}
+
+const handleEdit = (item) => {
+ editChild.value.open = true;
+ editChild.value.formData = item == null ? editChild.value.initFormData : JSON.parse(JSON.stringify(item));
+ editChild.value.isSave = item == null;
+}
+
+const handleDel = (rows) => {
+ Modal.confirm({
+ title: formatMessage('page.delete', '鍒犻櫎'),
+ content: formatMessage('page.delete.confirm', '纭畾鍒犻櫎璇ラ」鍚楋紵'),
+ maskClosable: true,
+ onOk: async () => {
+ const hide = message.loading(formatMessage('common.loading', '璇锋眰涓�'));
+ try {
+ post('/api/order/remove/' + rows.map((row) => row.id).join(','), {}).then(resp => {
+ let result = resp.data;
+ if (result.code === 200) {
+ message.success(result.msg);
+ } else {
+ message.error(result.msg);
+ }
+ getPage()
+ hide()
+ })
+ } catch (error) {
+ message.error(formatMessage('common.fail', '璇锋眰澶辫触'));
+ }
+ },
+ });
+}
+
+const handleExport = async (intl) => {
+ postBlob('/api/order/export', {}).then(result => {
+ const blob = new Blob([result.data], { type: 'application/vnd.ms-excel' });
+ window.location.href = window.URL.createObjectURL(blob);
+ return true;
+ })
+};
+
+const onSearch = () => {
+ // console.log('search');
+ getPage()
+}
+
+const onPageChange = (page, size) => {
+ currentPage = page;
+ pageSize = size;
+ getPage();
+}
+
+function handleTableReload(value) {
+ getPage()
+}
+
+</script>
+
+<script>
+export default {
+ name: '璁㈠崟'
+}
+</script>
+
+<template>
+ <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 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>
+ </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">
+ <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>
+ </div>
+</template>
+
+<style></style>
diff --git a/zy-asrs-admin/src/views/loc/locDetl/edit.vue b/zy-asrs-admin/src/views/loc/locDetl/edit.vue
index 7438f29..cf6ed83 100644
--- a/zy-asrs-admin/src/views/loc/locDetl/edit.vue
+++ b/zy-asrs-admin/src/views/loc/locDetl/edit.vue
@@ -8,6 +8,7 @@
const submitButton = ref(null);
const isSave = ref(true);
const open = ref(false);
+const extendField = ref([]);
const initFormData = {}
let formData = ref(initFormData);
@@ -66,6 +67,23 @@
})
}
+//鎵╁睍瀛楁
+getColumns()
+async function getColumns() {
+ let fieldResp = await post('/api/matField/list', {
+ fieldType: 1
+ })
+ let fieldResult = fieldResp.data;
+ if (fieldResult.code == 200) {
+ let data = fieldResult.data;
+ extendField.value = data;
+ } else if (result.code === 401) {
+ message.error(result.msg);
+ logout()
+ } else {
+ message.error(result.msg);
+ }
+}
defineExpose({
open,
@@ -155,6 +173,10 @@
<a-input v-model:value="formData.memo" />
</a-form-item>
+ <a-form-item v-for="(item, index) in extendField" :key="index" :label="formatMessage(item.language, item.describe)" :name="item.name" style="width: 250px;">
+ <a-input v-model:value="formData[item.name]" />
+ </a-form-item>
+
<a-form-item>
<a-button type="primary" html-type="submit" ref="submitButton"
style="visibility: hidden;">Submit</a-button>
diff --git a/zy-asrs-admin/src/views/loc/locDetl/index.vue b/zy-asrs-admin/src/views/loc/locDetl/index.vue
index 6b6f939..ee95189 100644
--- a/zy-asrs-admin/src/views/loc/locDetl/index.vue
+++ b/zy-asrs-admin/src/views/loc/locDetl/index.vue
@@ -141,7 +141,8 @@
//鍔犺浇鎵╁睍瀛楁
async function getColumns() {
let fieldResp = await post('/api/matField/list', {
- unique: 1
+ unique: 1,
+ fieldType: 1
})
let fieldResult = fieldResp.data;
let tmp = state.columns;
diff --git a/zy-asrs-admin/src/views/order/order/edit.vue b/zy-asrs-admin/src/views/order/order/edit.vue
new file mode 100644
index 0000000..cbf4c43
--- /dev/null
+++ b/zy-asrs-admin/src/views/order/order/edit.vue
@@ -0,0 +1,232 @@
+<script setup>
+import { ref, nextTick } from 'vue';
+import { get, post, postBlob, postForm } from '@/utils/request.js'
+import { formatMessage } from '@/utils/localeUtils.js';
+import { message } from 'ant-design-vue';
+
+const formTable = ref(null);
+const submitButton = ref(null);
+const isSave = ref(true);
+const open = ref(false);
+const initFormData = {}
+let formData = ref(initFormData);
+
+const emit = defineEmits(['tableReload'])
+
+const handleOk = (e) => {
+ nextTick(() => {
+ setTimeout(() => {
+ submitButton.value.$el.click();
+ }, 100);
+ });
+};
+
+const onFinish = values => {
+ // console.log('Success:', values);
+ open.value = false;
+ post(isSave.value ? '/api/order/save' : '/api/order/update', formData.value).then((resp) => {
+ let result = resp.data;
+ if (result.code === 200) {
+ message.success(isSave.value ? formatMessage('page.add.success', '鏂板鎴愬姛') : formatMessage('page.update.success', '鏇存柊鎴愬姛'));
+ } else {
+ message.error(result.msg);
+ }
+ emit('tableReload', 'reload')
+ nextTick(() => {
+ formTable.value.resetFields()
+ })
+ })
+};
+const onFinishFailed = errorInfo => {
+ console.log('Failed:', errorInfo);
+};
+
+const orderTypeQueryList = ref(null);
+orderTypeQuery();
+function orderTypeQuery() {
+ postForm('/api/orderType/query', {}).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;
+ })
+}
+const userQueryList = ref(null);
+userQuery();
+function userQuery() {
+ postForm('/api/user/query', {}).then(resp => {
+ let result = resp.data;
+ userQueryList.value = result.data;
+ })
+}
+
+
+defineExpose({
+ open,
+ formData,
+ initFormData,
+ isSave,
+})
+
+</script>
+
+<script>
+export default {
+ name: '璁㈠崟-edit'
+}
+</script>
+
+<template>
+ <div>
+ <a-modal v-model:open="open"
+ :title="isSave ? formatMessage('page.add', '娣诲姞') : formatMessage('page.edit', '缂栬緫')" @ok="handleOk"
+ style="width: 600px;">
+ <a-form :model="formData" ref="formTable" name="formTable" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }"
+ style="display: flex;justify-content: space-between;flex-wrap: wrap;" autocomplete="off"
+ @finish="onFinish" @finishFailed="onFinishFailed">
+ <a-form-item
+ :label="formatMessage('db.man_order.order_no', '璁㈠崟缂栧彿') "
+ name="orderNo"
+ style="width: 250px;"
+ >
+ <a-input
+ v-model:value="formData.orderNo"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order.order_time', '鍗曟嵁鏃ユ湡') "
+ name="orderTime"
+ style="width: 250px;"
+ >
+ <a-input
+ v-model:value="formData.orderTime"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order.order_type', '鍗曟嵁绫诲瀷') "
+ name="orderType"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.orderType"
+ :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%"
+ show-search
+ :options="orderTypeQueryList"
+ optionFilterProp="label"
+ optionLabelProp="label"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order.order_settle', '鍗曟嵁鐘舵��') "
+ name="orderSettle"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.orderSettle"
+ :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%"
+ show-search
+ :options="orderSettleQueryList"
+ optionFilterProp="label"
+ optionLabelProp="label"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order.status', '鐘舵��') "
+ name="status"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.status"
+ :options="[
+ { label: '姝e父', value: 1 },
+ { label: '绂佺敤', value: 0 },
+ ]"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order.create_time', '娣诲姞鏃堕棿') "
+ name="createTime"
+ style="width: 250px;"
+ >
+ <a-date-picker
+ v-model:value="formData.createTime"
+ show-time
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order.create_by', '娣诲姞浜哄憳') "
+ name="createBy"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.createBy"
+ :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%"
+ show-search
+ :options="userQueryList"
+ optionFilterProp="label"
+ optionLabelProp="label"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order.update_time', '淇敼鏃堕棿') "
+ name="updateTime"
+ style="width: 250px;"
+ >
+ <a-date-picker
+ v-model:value="formData.updateTime"
+ show-time
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order.update_by', '淇敼浜哄憳') "
+ name="updateBy"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.updateBy"
+ :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%"
+ show-search
+ :options="userQueryList"
+ optionFilterProp="label"
+ optionLabelProp="label"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order.memo', '澶囨敞') "
+ name="memo"
+ style="width: 250px;"
+ >
+ <a-input
+ v-model:value="formData.memo"
+ />
+ </a-form-item>
+
+ <a-form-item>
+ <a-button type="primary" html-type="submit" ref="submitButton"
+ style="visibility: hidden;">Submit</a-button>
+ </a-form-item>
+ </a-form>
+ </a-modal>
+ </div>
+</template>
+
+<style></style>
diff --git a/zy-asrs-admin/src/views/order/order/index.vue b/zy-asrs-admin/src/views/order/order/index.vue
new file mode 100644
index 0000000..7fee432
--- /dev/null
+++ b/zy-asrs-admin/src/views/order/order/index.vue
@@ -0,0 +1,235 @@
+<script setup>
+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 { logout } from '@/config.js';
+import EditView from './edit.vue'
+import { formatMessage } from '@/utils/localeUtils.js';
+import useTableSearch from '@/utils/tableUtils.jsx';
+const context = getCurrentInstance()?.appContext.config.globalProperties;
+
+const router = useRouter();
+
+const TABLE_KEY = 'table-order';
+let currentPage = 1;
+let pageSize = 10;
+const searchInput = ref("")
+const editChild = ref(null)
+
+let tableData = ref([]);
+getPage();
+
+const {
+ getColumnSearchProps,
+} = useTableSearch();
+
+const columns = [
+ {
+ title: formatMessage('db.man_order.order_no', '璁㈠崟缂栧彿'),
+ dataIndex: 'orderNo',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('orderNo'),
+ },
+ {
+ title: formatMessage('db.man_order.order_time', '鍗曟嵁鏃ユ湡'),
+ dataIndex: 'orderTime',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('orderTime'),
+ },
+ {
+ title: formatMessage('db.man_order.order_type', '鍗曟嵁绫诲瀷'),
+ dataIndex: 'orderType$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('orderType$'),
+ },
+ {
+ title: formatMessage('db.man_order.order_settle', '鍗曟嵁鐘舵��'),
+ dataIndex: 'orderSettle$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('orderSettle$'),
+ },
+ {
+ title: formatMessage('db.man_order.status', '鐘舵��'),
+ dataIndex: 'status$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('status$'),
+ },
+ {
+ title: formatMessage('db.man_order.create_time', '娣诲姞鏃堕棿'),
+ dataIndex: 'createTime$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('createTime$'),
+ },
+ {
+ title: formatMessage('db.man_order.create_by', '娣诲姞浜哄憳'),
+ dataIndex: 'createBy$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('createBy$'),
+ },
+ {
+ title: formatMessage('db.man_order.update_time', '淇敼鏃堕棿'),
+ dataIndex: 'updateTime$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('updateTime$'),
+ },
+ {
+ title: formatMessage('db.man_order.update_by', '淇敼浜哄憳'),
+ dataIndex: 'updateBy$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('updateBy$'),
+ },
+ {
+ title: formatMessage('db.man_order.memo', '澶囨敞'),
+ dataIndex: 'memo',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('memo'),
+ },
+
+ {
+ title: formatMessage('common.operation', '鎿嶄綔'),
+ name: 'oper',
+ dataIndex: 'oper',
+ key: 'oper',
+ width: 140,
+ },
+];
+
+const state = reactive({
+ selectedRowKeys: [],
+ loading: false,
+});
+const hasSelected = computed(() => state.selectedRowKeys.length > 0);
+const start = () => {
+ state.loading = true;
+ // ajax request after empty completing
+ setTimeout(() => {
+ state.loading = false;
+ state.selectedRowKeys = [];
+ }, 1000);
+};
+const onSelectChange = selectedRowKeys => {
+ // console.log('selectedRowKeys changed: ', selectedRowKeys);
+ state.selectedRowKeys = selectedRowKeys;
+};
+
+function getPage() {
+ post('/api/order/page', {
+ current: currentPage,
+ pageSize: pageSize,
+ condition: searchInput.value
+ }).then((resp) => {
+ let result = resp.data;
+ if (result.code == 200) {
+ let data = result.data;
+ tableData.value = data;
+ } else if (result.code === 401) {
+ message.error(result.msg);
+ logout()
+ } else {
+ message.error(result.msg);
+ }
+ })
+}
+
+const handleEdit = (item) => {
+ editChild.value.open = true;
+ editChild.value.formData = item == null ? editChild.value.initFormData : JSON.parse(JSON.stringify(item));
+ editChild.value.isSave = item == null;
+}
+
+const handleDel = (rows) => {
+ Modal.confirm({
+ title: formatMessage('page.delete', '鍒犻櫎'),
+ content: formatMessage('page.delete.confirm', '纭畾鍒犻櫎璇ラ」鍚楋紵'),
+ maskClosable: true,
+ onOk: async () => {
+ const hide = message.loading(formatMessage('common.loading', '璇锋眰涓�'));
+ try {
+ post('/api/order/remove/' + rows.map((row) => row.id).join(','), {}).then(resp => {
+ let result = resp.data;
+ if (result.code === 200) {
+ message.success(result.msg);
+ } else {
+ message.error(result.msg);
+ }
+ getPage()
+ hide()
+ })
+ } catch (error) {
+ message.error(formatMessage('common.fail', '璇锋眰澶辫触'));
+ }
+ },
+ });
+}
+
+const handleExport = async (intl) => {
+ postBlob('/api/order/export', {}).then(result => {
+ const blob = new Blob([result.data], { type: 'application/vnd.ms-excel' });
+ window.location.href = window.URL.createObjectURL(blob);
+ return true;
+ })
+};
+
+const onSearch = () => {
+ // console.log('search');
+ getPage()
+}
+
+const onPageChange = (page, size) => {
+ currentPage = page;
+ pageSize = size;
+ getPage();
+}
+
+function handleTableReload(value) {
+ getPage()
+}
+
+</script>
+
+<script>
+export default {
+ name: '璁㈠崟'
+}
+</script>
+
+<template>
+ <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 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>
+ </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">
+ <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>
+ </div>
+</template>
+
+<style></style>
diff --git a/zy-asrs-admin/src/views/order/orderDetl/edit.vue b/zy-asrs-admin/src/views/order/orderDetl/edit.vue
new file mode 100644
index 0000000..0279476
--- /dev/null
+++ b/zy-asrs-admin/src/views/order/orderDetl/edit.vue
@@ -0,0 +1,259 @@
+<script setup>
+import { ref, nextTick } from 'vue';
+import { get, post, postBlob, postForm } from '@/utils/request.js'
+import { formatMessage } from '@/utils/localeUtils.js';
+import { message } from 'ant-design-vue';
+
+const formTable = ref(null);
+const submitButton = ref(null);
+const isSave = ref(true);
+const open = ref(false);
+const initFormData = {}
+let formData = ref(initFormData);
+
+const emit = defineEmits(['tableReload'])
+
+const handleOk = (e) => {
+ nextTick(() => {
+ setTimeout(() => {
+ submitButton.value.$el.click();
+ }, 100);
+ });
+};
+
+const onFinish = values => {
+ // console.log('Success:', values);
+ open.value = false;
+ post(isSave.value ? '/api/orderDetl/save' : '/api/orderDetl/update', formData.value).then((resp) => {
+ let result = resp.data;
+ if (result.code === 200) {
+ message.success(isSave.value ? formatMessage('page.add.success', '鏂板鎴愬姛') : formatMessage('page.update.success', '鏇存柊鎴愬姛'));
+ } else {
+ message.error(result.msg);
+ }
+ emit('tableReload', 'reload')
+ nextTick(() => {
+ formTable.value.resetFields()
+ })
+ })
+};
+const onFinishFailed = errorInfo => {
+ console.log('Failed:', errorInfo);
+};
+
+const orderQueryList = ref(null);
+orderQuery();
+function orderQuery() {
+ postForm('/api/order/query', {}).then(resp => {
+ let result = resp.data;
+ orderQueryList.value = result.data;
+ })
+}
+const matQueryList = ref(null);
+matQuery();
+function matQuery() {
+ postForm('/api/mat/query', {}).then(resp => {
+ let result = resp.data;
+ matQueryList.value = result.data;
+ })
+}
+const userQueryList = ref(null);
+userQuery();
+function userQuery() {
+ postForm('/api/user/query', {}).then(resp => {
+ let result = resp.data;
+ userQueryList.value = result.data;
+ })
+}
+
+
+defineExpose({
+ open,
+ formData,
+ initFormData,
+ isSave,
+})
+
+</script>
+
+<script>
+export default {
+ name: '璁㈠崟鏄庣粏-edit'
+}
+</script>
+
+<template>
+ <div>
+ <a-modal v-model:open="open"
+ :title="isSave ? formatMessage('page.add', '娣诲姞') : formatMessage('page.edit', '缂栬緫')" @ok="handleOk"
+ style="width: 600px;">
+ <a-form :model="formData" ref="formTable" name="formTable" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }"
+ style="display: flex;justify-content: space-between;flex-wrap: wrap;" autocomplete="off"
+ @finish="onFinish" @finishFailed="onFinishFailed">
+ <a-form-item
+ :label="formatMessage('db.man_order_detl.order_id', '璁㈠崟ID') "
+ name="orderId"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.orderId"
+ :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%"
+ show-search
+ :options="orderQueryList"
+ optionFilterProp="label"
+ optionLabelProp="label"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl.order_no', '璁㈠崟缂栧彿') "
+ name="orderNo"
+ style="width: 250px;"
+ >
+ <a-input
+ v-model:value="formData.orderNo"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl.anfme', '鏁伴噺') "
+ name="anfme"
+ style="width: 250px;"
+ >
+ <a-input
+ v-model:value="formData.anfme"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl.qty', '宸插畬鎴愭暟閲�') "
+ name="qty"
+ style="width: 250px;"
+ >
+ <a-input
+ v-model:value="formData.qty"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl.work_qty', '浣滀笟涓暟閲�') "
+ name="workQty"
+ style="width: 250px;"
+ >
+ <a-input
+ v-model:value="formData.workQty"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl.mat_id', '鐗╂枡') "
+ name="matId"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.matId"
+ :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%"
+ show-search
+ :options="matQueryList"
+ optionFilterProp="label"
+ optionLabelProp="label"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl.batch', '鎵瑰彿') "
+ name="batch"
+ style="width: 250px;"
+ >
+ <a-input
+ v-model:value="formData.batch"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl.status', '鐘舵��') "
+ name="status"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.status"
+ :options="[
+ { label: '姝e父', value: 1 },
+ { label: '绂佺敤', value: 0 },
+ ]"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl.create_time', '娣诲姞鏃堕棿') "
+ name="createTime"
+ style="width: 250px;"
+ >
+ <a-date-picker
+ v-model:value="formData.createTime"
+ show-time
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl.create_by', '娣诲姞浜哄憳') "
+ name="createBy"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.createBy"
+ :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%"
+ show-search
+ :options="userQueryList"
+ optionFilterProp="label"
+ optionLabelProp="label"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl.update_time', '淇敼鏃堕棿') "
+ name="updateTime"
+ style="width: 250px;"
+ >
+ <a-date-picker
+ v-model:value="formData.updateTime"
+ show-time
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ />
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl.update_by', '淇敼浜哄憳') "
+ name="updateBy"
+ style="width: 250px;"
+ >
+ <a-select
+ v-model:value="formData.updateBy"
+ :placeholder="formatMessage('common.select', '璇烽�夋嫨')"
+ style="width: 100%"
+ show-search
+ :options="userQueryList"
+ optionFilterProp="label"
+ optionLabelProp="label"
+ >
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ :label="formatMessage('db.man_order_detl.memo', '澶囨敞') "
+ name="memo"
+ style="width: 250px;"
+ >
+ <a-input
+ v-model:value="formData.memo"
+ />
+ </a-form-item>
+
+ <a-form-item>
+ <a-button type="primary" html-type="submit" ref="submitButton"
+ style="visibility: hidden;">Submit</a-button>
+ </a-form-item>
+ </a-form>
+ </a-modal>
+ </div>
+</template>
+
+<style></style>
diff --git a/zy-asrs-admin/src/views/order/orderDetl/index.vue b/zy-asrs-admin/src/views/order/orderDetl/index.vue
new file mode 100644
index 0000000..12af892
--- /dev/null
+++ b/zy-asrs-admin/src/views/order/orderDetl/index.vue
@@ -0,0 +1,256 @@
+<script setup>
+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 { logout } from '@/config.js';
+import EditView from './edit.vue'
+import { formatMessage } from '@/utils/localeUtils.js';
+import useTableSearch from '@/utils/tableUtils.jsx';
+const context = getCurrentInstance()?.appContext.config.globalProperties;
+
+const router = useRouter();
+
+const TABLE_KEY = 'table-orderDetl';
+let currentPage = 1;
+let pageSize = 10;
+const searchInput = ref("")
+const editChild = ref(null)
+
+let tableData = ref([]);
+getPage();
+
+const {
+ getColumnSearchProps,
+} = useTableSearch();
+
+const columns = [
+ {
+ title: formatMessage('db.man_order_detl.order_id', '璁㈠崟ID'),
+ dataIndex: 'orderId$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('orderId$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl.order_no', '璁㈠崟缂栧彿'),
+ dataIndex: 'orderNo',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('orderNo'),
+ },
+ {
+ title: formatMessage('db.man_order_detl.anfme', '鏁伴噺'),
+ dataIndex: 'anfme',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('anfme'),
+ },
+ {
+ title: formatMessage('db.man_order_detl.qty', '宸插畬鎴愭暟閲�'),
+ dataIndex: 'qty',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('qty'),
+ },
+ {
+ title: formatMessage('db.man_order_detl.work_qty', '浣滀笟涓暟閲�'),
+ dataIndex: 'workQty',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('workQty'),
+ },
+ {
+ title: formatMessage('db.man_order_detl.mat_id', '鐗╂枡'),
+ dataIndex: 'matId$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('matId$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl.batch', '鎵瑰彿'),
+ dataIndex: 'batch',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('batch'),
+ },
+ {
+ title: formatMessage('db.man_order_detl.status', '鐘舵��'),
+ dataIndex: 'status$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('status$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl.create_time', '娣诲姞鏃堕棿'),
+ dataIndex: 'createTime$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('createTime$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl.create_by', '娣诲姞浜哄憳'),
+ dataIndex: 'createBy$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('createBy$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl.update_time', '淇敼鏃堕棿'),
+ dataIndex: 'updateTime$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('updateTime$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl.update_by', '淇敼浜哄憳'),
+ dataIndex: 'updateBy$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('updateBy$'),
+ },
+ {
+ title: formatMessage('db.man_order_detl.memo', '澶囨敞'),
+ dataIndex: 'memo',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('memo'),
+ },
+
+ {
+ title: formatMessage('common.operation', '鎿嶄綔'),
+ name: 'oper',
+ dataIndex: 'oper',
+ key: 'oper',
+ width: 140,
+ },
+];
+
+const state = reactive({
+ selectedRowKeys: [],
+ loading: false,
+});
+const hasSelected = computed(() => state.selectedRowKeys.length > 0);
+const start = () => {
+ state.loading = true;
+ // ajax request after empty completing
+ setTimeout(() => {
+ state.loading = false;
+ state.selectedRowKeys = [];
+ }, 1000);
+};
+const onSelectChange = selectedRowKeys => {
+ // console.log('selectedRowKeys changed: ', selectedRowKeys);
+ state.selectedRowKeys = selectedRowKeys;
+};
+
+function getPage() {
+ post('/api/orderDetl/page', {
+ current: currentPage,
+ pageSize: pageSize,
+ condition: searchInput.value
+ }).then((resp) => {
+ let result = resp.data;
+ if (result.code == 200) {
+ let data = result.data;
+ tableData.value = data;
+ } else if (result.code === 401) {
+ message.error(result.msg);
+ logout()
+ } else {
+ message.error(result.msg);
+ }
+ })
+}
+
+const handleEdit = (item) => {
+ editChild.value.open = true;
+ editChild.value.formData = item == null ? editChild.value.initFormData : JSON.parse(JSON.stringify(item));
+ editChild.value.isSave = item == null;
+}
+
+const handleDel = (rows) => {
+ Modal.confirm({
+ title: formatMessage('page.delete', '鍒犻櫎'),
+ content: formatMessage('page.delete.confirm', '纭畾鍒犻櫎璇ラ」鍚楋紵'),
+ maskClosable: true,
+ onOk: async () => {
+ const hide = message.loading(formatMessage('common.loading', '璇锋眰涓�'));
+ try {
+ post('/api/orderDetl/remove/' + rows.map((row) => row.id).join(','), {}).then(resp => {
+ let result = resp.data;
+ if (result.code === 200) {
+ message.success(result.msg);
+ } else {
+ message.error(result.msg);
+ }
+ getPage()
+ hide()
+ })
+ } catch (error) {
+ message.error(formatMessage('common.fail', '璇锋眰澶辫触'));
+ }
+ },
+ });
+}
+
+const handleExport = async (intl) => {
+ postBlob('/api/orderDetl/export', {}).then(result => {
+ const blob = new Blob([result.data], { type: 'application/vnd.ms-excel' });
+ window.location.href = window.URL.createObjectURL(blob);
+ return true;
+ })
+};
+
+const onSearch = () => {
+ // console.log('search');
+ getPage()
+}
+
+const onPageChange = (page, size) => {
+ currentPage = page;
+ pageSize = size;
+ getPage();
+}
+
+function handleTableReload(value) {
+ getPage()
+}
+
+</script>
+
+<script>
+export default {
+ name: '璁㈠崟鏄庣粏'
+}
+</script>
+
+<template>
+ <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 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>
+ </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">
+ <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>
+ </div>
+</template>
+
+<style></style>
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java
index 26147cd..8f84135 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java
@@ -1,7 +1,7 @@
package com.zy.asrs.wms.asrs.controller;
import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.framework.common.Cools;
@@ -21,10 +21,7 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
@RestController
@RequestMapping("/api")
@@ -104,7 +101,11 @@
@PreAuthorize("hasAuthority('asrs:locDetl:update')")
@OperationLog("淇敼搴撳瓨鏄庣粏")
@PostMapping("/locDetl/update")
- public R update(@RequestBody LocDetl locDetl) {
+ public R update(@RequestBody HashMap<String,Object> param) {
+ LocDetl locDetl = JSON.parseObject(JSON.toJSONString(param), LocDetl.class, Feature.DisableCircularReferenceDetect);
+ //璁剧疆鎵╁睍瀛楁
+ setLocDetlField(param, locDetl);
+
if (!locDetlService.updateById(locDetl)) {
return R.error("淇敼澶辫触");
}
@@ -141,4 +142,27 @@
ExcelUtil.build(ExcelUtil.create(locDetlService.list(), LocDetl.class), response);
}
+ private void setLocDetlField(HashMap<String, Object> param, LocDetl locDetl) {
+ //鑾峰彇鎵╁睍瀛楁
+ List<MatField> matFields = matFieldService.list(new LambdaQueryWrapper<MatField>().eq(MatField::getFieldType, 1));
+ for (MatField matField : matFields) {
+ if (param.containsKey(matField.getName())) {
+ LocDetlField fieldValue = locDetlFieldService.getOne(new LambdaQueryWrapper<LocDetlField>()
+ .eq(LocDetlField::getDetlId, locDetl.getId())
+ .eq(LocDetlField::getFieldId, matField.getId()));
+ if (fieldValue == null) {
+ fieldValue = new LocDetlField();
+ fieldValue.setDetlId(locDetl.getId());
+ fieldValue.setFieldId(matField.getId());
+ fieldValue.setName(matField.getName());
+ fieldValue.setValue(param.get(matField.getName()).toString());
+ locDetlFieldService.save(fieldValue);
+ }else {
+ fieldValue.setValue(param.get(matField.getName()).toString());
+ locDetlFieldService.updateById(fieldValue);
+ }
+ }
+ }
+ }
+
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatFieldController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatFieldController.java
index a8f8ba1..18960d8 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatFieldController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatFieldController.java
@@ -45,6 +45,9 @@
if (map.containsKey("unique")) {
list = matFieldService.list(new LambdaQueryWrapper<MatField>().eq(MatField::getUnique, map.get("unique")));
}
+ if (map.containsKey("fieldType")) {
+ list = matFieldService.list(new LambdaQueryWrapper<MatField>().eq(MatField::getFieldType, map.get("fieldType")));
+ }
return R.ok().add(list);
}
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
new file mode 100644
index 0000000..2802eed
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java
@@ -0,0 +1,105 @@
+package com.zy.asrs.wms.asrs.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.framework.exception.CoolException;
+import com.zy.asrs.wms.asrs.entity.param.CreateOrderParam;
+import com.zy.asrs.wms.asrs.entity.param.UpdateOrderParam;
+import com.zy.asrs.wms.common.annotation.OperationLog;
+import com.zy.asrs.wms.common.domain.BaseParam;
+import com.zy.asrs.wms.common.domain.KeyValVo;
+import com.zy.asrs.wms.common.domain.PageParam;
+import com.zy.asrs.wms.asrs.entity.Order;
+import com.zy.asrs.wms.asrs.service.OrderService;
+import com.zy.asrs.wms.system.controller.BaseController;
+import com.zy.asrs.wms.utils.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
+
+@RestController
+@RequestMapping("/api")
+public class OrderController extends BaseController {
+
+ @Autowired
+ private OrderService orderService;
+
+ @PreAuthorize("hasAuthority('asrs:order:list')")
+ @PostMapping("/order/page")
+ public R page(@RequestBody Map<String, Object> map) {
+ BaseParam baseParam = buildParam(map, BaseParam.class);
+ PageParam<Order, BaseParam> pageParam = new PageParam<>(baseParam, Order.class);
+ return R.ok().add(orderService.page(pageParam, pageParam.buildWrapper(true)));
+ }
+
+ @PreAuthorize("hasAuthority('asrs:order:list')")
+ @PostMapping("/order/list")
+ public R list(@RequestBody Map<String, Object> map) {
+ return R.ok().add(orderService.list());
+ }
+
+ @PreAuthorize("hasAuthority('asrs:order:list')")
+ @GetMapping("/order/{id}")
+ public R get(@PathVariable("id") Long id) {
+ return R.ok().add(orderService.getById(id));
+ }
+
+ @PreAuthorize("hasAuthority('asrs:order:save')")
+ @OperationLog("娣诲姞璁㈠崟")
+ @PostMapping("/order/save")
+ @Transactional
+ public R save(@RequestBody CreateOrderParam param) {
+ orderService.createOrder(param);
+ return R.ok("娣诲姞鎴愬姛");
+ }
+
+ @PreAuthorize("hasAuthority('asrs:order:update')")
+ @OperationLog("淇敼璁㈠崟")
+ @PostMapping("/order/update")
+ @Transactional
+ public R update(@RequestBody UpdateOrderParam param) {
+ orderService.updateOrder(param);
+ return R.ok("淇敼鎴愬姛");
+ }
+
+ @PreAuthorize("hasAuthority('asrs:order:remove')")
+ @OperationLog("鍒犻櫎璁㈠崟")
+ @PostMapping("/order/remove/{ids}")
+ @Transactional
+ public R remove(@PathVariable Long[] ids) {
+ for (Long id : ids) {
+ boolean result = orderService.deleteOrder(id);
+ if (!result) {
+ throw new CoolException("鍒犻櫎澶辫触");
+ }
+ }
+ return R.ok("鍒犻櫎鎴愬姛");
+ }
+
+ @PreAuthorize("hasAuthority('asrs:order:list')")
+ @PostMapping("/order/query")
+ public R query(@RequestParam(required = false) String condition) {
+ List<KeyValVo> vos = new ArrayList<>();
+ LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
+ if (!Cools.isEmpty(condition)) {
+ wrapper.like(Order::getId, condition);
+ }
+ orderService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
+ item -> vos.add(new KeyValVo(item.getId(), item.getId()))
+ );
+ return R.ok().add(vos);
+ }
+
+ @PreAuthorize("hasAuthority('asrs:order:list')")
+ @PostMapping("/order/export")
+ public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
+ ExcelUtil.build(ExcelUtil.create(orderService.list(), Order.class), response);
+ }
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderDetlController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderDetlController.java
new file mode 100644
index 0000000..fd2a8d0
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderDetlController.java
@@ -0,0 +1,108 @@
+package com.zy.asrs.wms.asrs.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.common.annotation.OperationLog;
+import com.zy.asrs.wms.common.domain.BaseParam;
+import com.zy.asrs.wms.common.domain.KeyValVo;
+import com.zy.asrs.wms.common.domain.PageParam;
+import com.zy.asrs.wms.asrs.entity.OrderDetl;
+import com.zy.asrs.wms.asrs.service.OrderDetlService;
+import com.zy.asrs.wms.system.controller.BaseController;
+import com.zy.asrs.wms.utils.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api")
+public class OrderDetlController extends BaseController {
+
+ @Autowired
+ private OrderDetlService orderDetlService;
+
+ @PreAuthorize("hasAuthority('asrs:orderDetl:list')")
+ @PostMapping("/orderDetl/page")
+ public R page(@RequestBody Map<String, Object> map) {
+ BaseParam baseParam = buildParam(map, BaseParam.class);
+ PageParam<OrderDetl, BaseParam> pageParam = new PageParam<>(baseParam, OrderDetl.class);
+ return R.ok().add(orderDetlService.page(pageParam, pageParam.buildWrapper(true)));
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetl:list')")
+ @PostMapping("/orderDetl/list")
+ public R list(@RequestBody Map<String, Object> map) {
+ return R.ok().add(orderDetlService.list());
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetl:list')")
+ @GetMapping("/orderDetl/orderId/{orderId}")
+ public R list(@PathVariable("orderId") Long orderId) {
+ return R.ok().add(orderDetlService.getOrderDetlByOrderId(orderId));
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetl:list')")
+ @GetMapping("/orderDetl/{id}")
+ public R get(@PathVariable("id") Long id) {
+ return R.ok().add(orderDetlService.getById(id));
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetl:save')")
+ @OperationLog("娣诲姞璁㈠崟鏄庣粏")
+ @PostMapping("/orderDetl/save")
+ public R save(@RequestBody OrderDetl orderDetl) {
+ if (!orderDetlService.save(orderDetl)) {
+ return R.error("娣诲姞澶辫触");
+ }
+ return R.ok("娣诲姞鎴愬姛");
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetl:update')")
+ @OperationLog("淇敼璁㈠崟鏄庣粏")
+ @PostMapping("/orderDetl/update")
+ public R update(@RequestBody OrderDetl orderDetl) {
+ if (!orderDetlService.updateById(orderDetl)) {
+ return R.error("淇敼澶辫触");
+ }
+ return R.ok("淇敼鎴愬姛");
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetl:remove')")
+ @OperationLog("鍒犻櫎璁㈠崟鏄庣粏")
+ @PostMapping("/orderDetl/remove/{ids}")
+ public R remove(@PathVariable Long[] ids) {
+ if (!orderDetlService.removeByIds(Arrays.asList(ids))) {
+ return R.error("鍒犻櫎澶辫触");
+ }
+ return R.ok("鍒犻櫎鎴愬姛");
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetl:list')")
+ @PostMapping("/orderDetl/query")
+ public R query(@RequestParam(required = false) String condition) {
+ List<KeyValVo> vos = new ArrayList<>();
+ LambdaQueryWrapper<OrderDetl> wrapper = new LambdaQueryWrapper<>();
+ if (!Cools.isEmpty(condition)) {
+ wrapper.like(OrderDetl::getId, condition);
+ }
+ orderDetlService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
+ item -> vos.add(new KeyValVo(item.getId(), item.getId()))
+ );
+ return R.ok().add(vos);
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetl:list')")
+ @PostMapping("/orderDetl/export")
+ public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
+ ExcelUtil.build(ExcelUtil.create(orderDetlService.list(), OrderDetl.class), response);
+ }
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderDetlFieldController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderDetlFieldController.java
new file mode 100644
index 0000000..1ee9cc9
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderDetlFieldController.java
@@ -0,0 +1,102 @@
+package com.zy.asrs.wms.asrs.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.common.annotation.OperationLog;
+import com.zy.asrs.wms.common.domain.BaseParam;
+import com.zy.asrs.wms.common.domain.KeyValVo;
+import com.zy.asrs.wms.common.domain.PageParam;
+import com.zy.asrs.wms.asrs.entity.OrderDetlField;
+import com.zy.asrs.wms.asrs.service.OrderDetlFieldService;
+import com.zy.asrs.wms.system.controller.BaseController;
+import com.zy.asrs.wms.utils.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api")
+public class OrderDetlFieldController extends BaseController {
+
+ @Autowired
+ private OrderDetlFieldService orderDetlFieldService;
+
+ @PreAuthorize("hasAuthority('asrs:orderDetlField:list')")
+ @PostMapping("/orderDetlField/page")
+ public R page(@RequestBody Map<String, Object> map) {
+ BaseParam baseParam = buildParam(map, BaseParam.class);
+ PageParam<OrderDetlField, BaseParam> pageParam = new PageParam<>(baseParam, OrderDetlField.class);
+ return R.ok().add(orderDetlFieldService.page(pageParam, pageParam.buildWrapper(true)));
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetlField:list')")
+ @PostMapping("/orderDetlField/list")
+ public R list(@RequestBody Map<String, Object> map) {
+ return R.ok().add(orderDetlFieldService.list());
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetlField:list')")
+ @GetMapping("/orderDetlField/{id}")
+ public R get(@PathVariable("id") Long id) {
+ return R.ok().add(orderDetlFieldService.getById(id));
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetlField:save')")
+ @OperationLog("娣诲姞璁㈠崟鏄庣粏鎵╁睍瀛楁")
+ @PostMapping("/orderDetlField/save")
+ public R save(@RequestBody OrderDetlField orderDetlField) {
+ if (!orderDetlFieldService.save(orderDetlField)) {
+ return R.error("娣诲姞澶辫触");
+ }
+ return R.ok("娣诲姞鎴愬姛");
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetlField:update')")
+ @OperationLog("淇敼璁㈠崟鏄庣粏鎵╁睍瀛楁")
+ @PostMapping("/orderDetlField/update")
+ public R update(@RequestBody OrderDetlField orderDetlField) {
+ if (!orderDetlFieldService.updateById(orderDetlField)) {
+ return R.error("淇敼澶辫触");
+ }
+ return R.ok("淇敼鎴愬姛");
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetlField:remove')")
+ @OperationLog("鍒犻櫎璁㈠崟鏄庣粏鎵╁睍瀛楁")
+ @PostMapping("/orderDetlField/remove/{ids}")
+ public R remove(@PathVariable Long[] ids) {
+ if (!orderDetlFieldService.removeByIds(Arrays.asList(ids))) {
+ return R.error("鍒犻櫎澶辫触");
+ }
+ return R.ok("鍒犻櫎鎴愬姛");
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetlField:list')")
+ @PostMapping("/orderDetlField/query")
+ public R query(@RequestParam(required = false) String condition) {
+ List<KeyValVo> vos = new ArrayList<>();
+ LambdaQueryWrapper<OrderDetlField> wrapper = new LambdaQueryWrapper<>();
+ if (!Cools.isEmpty(condition)) {
+ wrapper.like(OrderDetlField::getId, condition);
+ }
+ orderDetlFieldService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
+ item -> vos.add(new KeyValVo(item.getId(), item.getId()))
+ );
+ return R.ok().add(vos);
+ }
+
+ @PreAuthorize("hasAuthority('asrs:orderDetlField:list')")
+ @PostMapping("/orderDetlField/export")
+ public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
+ ExcelUtil.build(ExcelUtil.create(orderDetlFieldService.list(), OrderDetlField.class), response);
+ }
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderTypeController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderTypeController.java
index a345c8c..9f71240 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderTypeController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderTypeController.java
@@ -81,12 +81,15 @@
@PreAuthorize("hasAuthority('asrs:orderType:list')")
@PostMapping("/orderType/query")
- public R query(@RequestParam(required = false) String condition) {
+ public R query(@RequestParam(required = false) String condition, @RequestParam(required = false) Integer type) {
List<KeyValVo> vos = new ArrayList<>();
LambdaQueryWrapper<OrderType> wrapper = new LambdaQueryWrapper<>();
if (!Cools.isEmpty(condition)) {
wrapper.like(OrderType::getName, condition);
}
+ if (!Cools.isEmpty(type)) {
+ wrapper.eq(OrderType::getType, type);
+ }
orderTypeService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
item -> vos.add(new KeyValVo(item.getId(), item.getName()))
);
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/MatField.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/MatField.java
index 5d1afca..a8e961d 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/MatField.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/MatField.java
@@ -72,6 +72,13 @@
private Integer unique;
/**
+ * 瀛楁绫诲瀷 0: 鐗╂枡 1: 搴撳瓨
+ */
+ @ApiModelProperty(value= "瀛楁绫诲瀷 0: 鐗╂枡 1: 搴撳瓨")
+ @TableField("`field_type`")
+ private Integer fieldType;
+
+ /**
* 鎵�灞炴満鏋�
*/
@ApiModelProperty(value= "鎵�灞炴満鏋�")
@@ -168,6 +175,18 @@
}
}
+ public String getFieldType$(){
+ if (null == this.fieldType){ return null; }
+ switch (this.fieldType){
+ case 0:
+ return "鐗╂枡";
+ case 1:
+ return "搴撳瓨";
+ default:
+ return String.valueOf(this.fieldType);
+ }
+ }
+
public String getHostId$(){
HostService service = SpringUtils.getBean(HostService.class);
Host host = service.getById(this.hostId);
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
new file mode 100644
index 0000000..a1fdb2d
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/Order.java
@@ -0,0 +1,234 @@
+package com.zy.asrs.wms.asrs.entity;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.zy.asrs.wms.asrs.service.OrderSettleService;
+import com.zy.asrs.wms.asrs.service.OrderTypeService;
+import com.zy.asrs.wms.system.entity.Host;
+import com.zy.asrs.wms.system.entity.User;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.SpringUtils;
+import com.zy.asrs.wms.system.service.UserService;
+import com.zy.asrs.wms.system.service.HostService;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("man_order")
+public class Order implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ @ApiModelProperty(value= "ID")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 璁㈠崟缂栧彿
+ */
+ @ApiModelProperty(value= "璁㈠崟缂栧彿")
+ private String orderNo;
+
+ /**
+ * 鍗曟嵁鏃ユ湡
+ */
+ @ApiModelProperty(value= "鍗曟嵁鏃ユ湡")
+ private String orderTime;
+
+ /**
+ * 鍗曟嵁绫诲瀷
+ */
+ @ApiModelProperty(value= "鍗曟嵁绫诲瀷")
+ private Long orderType;
+
+ /**
+ * 鍗曟嵁鐘舵��
+ */
+ @ApiModelProperty(value= "鍗曟嵁鐘舵��")
+ private Long orderSettle;
+
+ /**
+ * 鎵�灞炴満鏋�
+ */
+ @ApiModelProperty(value= "鎵�灞炴満鏋�")
+ private Long hostId;
+
+ /**
+ * 鐘舵�� 1: 姝e父 0: 绂佺敤
+ */
+ @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 绂佺敤 ")
+ private Integer status;
+
+ /**
+ * 鏄惁鍒犻櫎 1: 鏄� 0: 鍚�
+ */
+ @ApiModelProperty(value= "鏄惁鍒犻櫎 1: 鏄� 0: 鍚� ")
+ @TableLogic
+ private Integer deleted;
+
+ /**
+ * 娣诲姞鏃堕棿
+ */
+ @ApiModelProperty(value= "娣诲姞鏃堕棿")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ /**
+ * 娣诲姞浜哄憳
+ */
+ @ApiModelProperty(value= "娣诲姞浜哄憳")
+ private Long createBy;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @ApiModelProperty(value= "淇敼鏃堕棿")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ /**
+ * 淇敼浜哄憳
+ */
+ @ApiModelProperty(value= "淇敼浜哄憳")
+ private Long updateBy;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value= "澶囨敞")
+ private String memo;
+
+ public Order() {}
+
+ public Order(String orderNo,String orderTime,Long orderType,Long orderSettle,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {
+ this.orderNo = orderNo;
+ this.orderTime = orderTime;
+ this.orderType = orderType;
+ this.orderSettle = orderSettle;
+ this.hostId = hostId;
+ this.status = status;
+ this.deleted = deleted;
+ this.createTime = createTime;
+ this.createBy = createBy;
+ this.updateTime = updateTime;
+ this.updateBy = updateBy;
+ this.memo = memo;
+ }
+
+// Order order = new Order(
+// null, // 璁㈠崟缂栧彿
+// null, // 鍗曟嵁鏃ユ湡
+// null, // 鍗曟嵁绫诲瀷
+// null, // 鍗曟嵁鐘舵��
+// null, // 鎵�灞炴満鏋�
+// null, // 鐘舵��
+// null, // 鏄惁鍒犻櫎
+// null, // 娣诲姞鏃堕棿
+// null, // 娣诲姞浜哄憳
+// null, // 淇敼鏃堕棿
+// null, // 淇敼浜哄憳
+// null // 澶囨敞
+// );
+
+ public String getOrderType$(){
+ OrderTypeService service = SpringUtils.getBean(OrderTypeService.class);
+ OrderType orderType = service.getById(this.orderType);
+ if (!Cools.isEmpty(orderType)){
+ return String.valueOf(orderType.getName());
+ }
+ return null;
+ }
+
+ public String getOrderSettle$(){
+ OrderSettleService service = SpringUtils.getBean(OrderSettleService.class);
+ OrderSettle orderSettle = service.getById(this.orderSettle);
+ if (!Cools.isEmpty(orderSettle)){
+ return String.valueOf(orderSettle.getName());
+ }
+ return null;
+ }
+
+ public String getHostId$(){
+ HostService service = SpringUtils.getBean(HostService.class);
+ Host host = service.getById(this.hostId);
+ if (!Cools.isEmpty(host)){
+ return String.valueOf(host.getName());
+ }
+ return null;
+ }
+
+ public String getStatus$(){
+ if (null == this.status){ return null; }
+ switch (this.status){
+ case 1:
+ return "姝e父";
+ case 0:
+ return "绂佺敤";
+ default:
+ return String.valueOf(this.status);
+ }
+ }
+
+ public String getDeleted$(){
+ if (null == this.deleted){ return null; }
+ switch (this.deleted){
+ case 1:
+ return "鏄�";
+ case 0:
+ return "鍚�";
+ default:
+ return String.valueOf(this.deleted);
+ }
+ }
+
+ public String getCreateTime$(){
+ if (Cools.isEmpty(this.createTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+ }
+
+ public String getCreateBy$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.getById(this.createBy);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getNickname());
+ }
+ return null;
+ }
+
+ public String getUpdateTime$(){
+ if (Cools.isEmpty(this.updateTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+ }
+
+ public String getUpdateBy$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.getById(this.updateBy);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getNickname());
+ }
+ return null;
+ }
+
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetl.java
new file mode 100644
index 0000000..86e13bd
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetl.java
@@ -0,0 +1,324 @@
+package com.zy.asrs.wms.asrs.entity;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+
+import java.lang.reflect.Field;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.zy.asrs.common.utils.Synchro;
+import com.zy.asrs.wms.asrs.service.MatService;
+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 org.springframework.format.annotation.DateTimeFormat;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.SpringUtils;
+import com.zy.asrs.wms.system.service.UserService;
+import com.zy.asrs.wms.system.service.HostService;
+
+import java.io.Serializable;
+
+@Data
+@TableName("man_order_detl")
+public class OrderDetl implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ @ApiModelProperty(value= "ID")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 璁㈠崟ID
+ */
+ @ApiModelProperty(value= "璁㈠崟ID")
+ private Long orderId;
+
+ /**
+ * 璁㈠崟缂栧彿
+ */
+ @ApiModelProperty(value= "璁㈠崟缂栧彿")
+ private String orderNo;
+
+ /**
+ * 鏁伴噺
+ */
+ @ApiModelProperty(value= "鏁伴噺")
+ private Double anfme;
+
+ /**
+ * 宸插畬鎴愭暟閲�
+ */
+ @ApiModelProperty(value= "宸插畬鎴愭暟閲�")
+ private Double qty;
+
+ /**
+ * 浣滀笟涓暟閲�
+ */
+ @ApiModelProperty(value= "浣滀笟涓暟閲�")
+ private Double workQty;
+
+ /**
+ * 鐗╂枡
+ */
+ @ApiModelProperty(value= "鐗╂枡")
+ private Long matId;
+
+ /**
+ * 鎵瑰彿
+ */
+ @ApiModelProperty(value= "鎵瑰彿")
+ private String batch;
+
+ /**
+ * 鎵�灞炴満鏋�
+ */
+ @ApiModelProperty(value= "鎵�灞炴満鏋�")
+ private Long hostId;
+
+ /**
+ * 鐘舵�� 1: 姝e父 0: 绂佺敤
+ */
+ @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 绂佺敤 ")
+ private Integer status;
+
+ /**
+ * 鏄惁鍒犻櫎 1: 鏄� 0: 鍚�
+ */
+ @ApiModelProperty(value= "鏄惁鍒犻櫎 1: 鏄� 0: 鍚� ")
+ @TableLogic
+ private Integer deleted;
+
+ /**
+ * 娣诲姞鏃堕棿
+ */
+ @ApiModelProperty(value= "娣诲姞鏃堕棿")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ /**
+ * 娣诲姞浜哄憳
+ */
+ @ApiModelProperty(value= "娣诲姞浜哄憳")
+ private Long createBy;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @ApiModelProperty(value= "淇敼鏃堕棿")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ /**
+ * 淇敼浜哄憳
+ */
+ @ApiModelProperty(value= "淇敼浜哄憳")
+ private Long updateBy;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value= "澶囨敞")
+ private String memo;
+
+ public OrderDetl() {}
+
+ public OrderDetl(Long orderId,String orderNo,Double anfme,Double qty,Double workQty,Long matId,String batch,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {
+ this.orderId = orderId;
+ this.orderNo = orderNo;
+ this.anfme = anfme;
+ this.qty = qty;
+ this.workQty = workQty;
+ this.matId = matId;
+ this.batch = batch;
+ this.hostId = hostId;
+ this.status = status;
+ this.deleted = deleted;
+ this.createTime = createTime;
+ this.createBy = createBy;
+ this.updateTime = updateTime;
+ this.updateBy = updateBy;
+ this.memo = memo;
+ }
+
+// OrderDetl orderDetl = new OrderDetl(
+// null, // 璁㈠崟ID
+// null, // 璁㈠崟缂栧彿
+// null, // 鏁伴噺
+// null, // 宸插畬鎴愭暟閲�
+// null, // 浣滀笟涓暟閲�
+// null, // 鐗╂枡
+// null, // 鎵瑰彿
+// null, // 鎵�灞炴満鏋�
+// null, // 鐘舵��
+// null, // 鏄惁鍒犻櫎
+// null, // 娣诲姞鏃堕棿
+// null, // 娣诲姞浜哄憳
+// null, // 淇敼鏃堕棿
+// null, // 淇敼浜哄憳
+// null // 澶囨敞
+// );
+
+ public String getOrderId$(){
+ OrderService service = SpringUtils.getBean(OrderService.class);
+ Order order = service.getById(this.orderId);
+ if (!Cools.isEmpty(order)){
+ return String.valueOf(order.getId());
+ }
+ return null;
+ }
+
+ public Mat getMat$(){
+ MatService service = SpringUtils.getBean(MatService.class);
+ Mat mat = service.getById(this.matId);
+ if (!Cools.isEmpty(mat)){
+ return mat;
+ }
+ return null;
+ }
+
+ public String getMatId$(){
+ MatService service = SpringUtils.getBean(MatService.class);
+ Mat mat = service.getById(this.matId);
+ if (!Cools.isEmpty(mat)){
+ return String.valueOf(mat.getId());
+ }
+ return null;
+ }
+
+ public String getHostId$(){
+ HostService service = SpringUtils.getBean(HostService.class);
+ Host host = service.getById(this.hostId);
+ if (!Cools.isEmpty(host)){
+ return String.valueOf(host.getName());
+ }
+ return null;
+ }
+
+ public String getStatus$(){
+ if (null == this.status){ return null; }
+ switch (this.status){
+ case 1:
+ return "姝e父";
+ case 0:
+ return "绂佺敤";
+ default:
+ return String.valueOf(this.status);
+ }
+ }
+
+ public String getDeleted$(){
+ if (null == this.deleted){ return null; }
+ switch (this.deleted){
+ case 1:
+ return "鏄�";
+ case 0:
+ return "鍚�";
+ default:
+ return String.valueOf(this.deleted);
+ }
+ }
+
+ public String getCreateTime$(){
+ if (Cools.isEmpty(this.createTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+ }
+
+ public String getCreateBy$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.getById(this.createBy);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getNickname());
+ }
+ return null;
+ }
+
+ public String getUpdateTime$(){
+ if (Cools.isEmpty(this.updateTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+ }
+
+ public String getUpdateBy$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.getById(this.updateBy);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getNickname());
+ }
+ return null;
+ }
+
+ public void sync(Object source) {
+ Synchro.Copy(source, this);
+ }
+
+ //鍔ㄦ�佹墿灞曞瓧娈�
+ public transient Map<String, Object> dynamicFields = new HashMap<>();
+
+ @JsonAnyGetter
+ public Map<String,Object> getDynamicFields() {
+ return dynamicFields;
+ }
+
+ public void syncField(List<OrderDetlField> list) {
+ ArrayList<String> keys = new ArrayList<>();
+ Field[] fields = this.getClass().getFields();
+ for (Field field : fields) {
+ keys.add(field.getName());
+ }
+
+ Map<String, Object> dynamicFields = new HashMap<>();
+ for (OrderDetlField orderDetlField : list) {
+ if (keys.contains(orderDetlField.getName())) {
+ continue;
+ }
+ dynamicFields.put(orderDetlField.getName(), orderDetlField.getValue());
+ }
+
+ this.dynamicFields = dynamicFields;
+ }
+
+ public void syncFieldMap(Map<String, Object> map) {
+ ArrayList<String> keys = new ArrayList<>();
+ Field[] fields = this.getClass().getDeclaredFields();
+ for (Field field : fields) {
+ keys.add(field.getName());
+ }
+ keys.add("detlId");
+
+ Map<String, Object> dynamicFields = new HashMap<>();
+ for (Map.Entry<String, Object> entry : map.entrySet()) {
+ if (keys.contains(entry.getKey())) {
+ continue;
+ }
+ dynamicFields.put(entry.getKey(), entry.getValue());
+ }
+
+ this.dynamicFields = dynamicFields;
+ }
+
+ public String getFieldString(String key) {
+ return dynamicFields.get(key).toString();
+ }
+
+ public void setField(String key, Object value) {
+ dynamicFields.put(key, value);
+ }
+
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlField.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlField.java
new file mode 100644
index 0000000..e20e81c
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlField.java
@@ -0,0 +1,234 @@
+package com.zy.asrs.wms.asrs.entity;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.zy.asrs.wms.asrs.service.MatFieldService;
+import com.zy.asrs.wms.asrs.service.OrderDetlService;
+import com.zy.asrs.wms.system.entity.Host;
+import com.zy.asrs.wms.system.entity.User;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.SpringUtils;
+import com.zy.asrs.wms.system.service.UserService;
+import com.zy.asrs.wms.system.service.HostService;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("man_order_detl_field")
+public class OrderDetlField implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ @ApiModelProperty(value= "ID")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 瀛楁鍚�
+ */
+ @ApiModelProperty(value= "瀛楁鍚�")
+ private String name;
+
+ /**
+ * 瀛楁
+ */
+ @ApiModelProperty(value= "瀛楁")
+ private Long fieldId;
+
+ /**
+ * 搴撳瓨鏄庣粏
+ */
+ @ApiModelProperty(value= "搴撳瓨鏄庣粏")
+ private Long detlId;
+
+ /**
+ * 鍙傛暟鍊�
+ */
+ @ApiModelProperty(value= "鍙傛暟鍊�")
+ private String value;
+
+ /**
+ * 鎵�灞炴満鏋�
+ */
+ @ApiModelProperty(value= "鎵�灞炴満鏋�")
+ private Long hostId;
+
+ /**
+ * 鐘舵�� 1: 姝e父 0: 绂佺敤
+ */
+ @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 绂佺敤 ")
+ private Integer status;
+
+ /**
+ * 鏄惁鍒犻櫎 1: 鏄� 0: 鍚�
+ */
+ @ApiModelProperty(value= "鏄惁鍒犻櫎 1: 鏄� 0: 鍚� ")
+ @TableLogic
+ private Integer deleted;
+
+ /**
+ * 娣诲姞鏃堕棿
+ */
+ @ApiModelProperty(value= "娣诲姞鏃堕棿")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ /**
+ * 娣诲姞浜哄憳
+ */
+ @ApiModelProperty(value= "娣诲姞浜哄憳")
+ private Long createBy;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @ApiModelProperty(value= "淇敼鏃堕棿")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ /**
+ * 淇敼浜哄憳
+ */
+ @ApiModelProperty(value= "淇敼浜哄憳")
+ private Long updateBy;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value= "澶囨敞")
+ private String memo;
+
+ public OrderDetlField() {}
+
+ public OrderDetlField(String name,Long fieldId,Long detlId,String value,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {
+ this.name = name;
+ this.fieldId = fieldId;
+ this.detlId = detlId;
+ this.value = value;
+ this.hostId = hostId;
+ this.status = status;
+ this.deleted = deleted;
+ this.createTime = createTime;
+ this.createBy = createBy;
+ this.updateTime = updateTime;
+ this.updateBy = updateBy;
+ this.memo = memo;
+ }
+
+// OrderDetlField orderDetlField = new OrderDetlField(
+// null, // 瀛楁鍚�
+// null, // 瀛楁
+// null, // 搴撳瓨鏄庣粏
+// null, // 鍙傛暟鍊�
+// null, // 鎵�灞炴満鏋�
+// null, // 鐘舵��
+// null, // 鏄惁鍒犻櫎
+// null, // 娣诲姞鏃堕棿
+// null, // 娣诲姞浜哄憳
+// null, // 淇敼鏃堕棿
+// null, // 淇敼浜哄憳
+// null // 澶囨敞
+// );
+
+ public String getFieldId$(){
+ MatFieldService service = SpringUtils.getBean(MatFieldService.class);
+ MatField matField = service.getById(this.fieldId);
+ if (!Cools.isEmpty(matField)){
+ return String.valueOf(matField.getId());
+ }
+ return null;
+ }
+
+ public String getDetlId$(){
+ OrderDetlService service = SpringUtils.getBean(OrderDetlService.class);
+ OrderDetl orderDetl = service.getById(this.detlId);
+ if (!Cools.isEmpty(orderDetl)){
+ return String.valueOf(orderDetl.getId());
+ }
+ return null;
+ }
+
+ public String getHostId$(){
+ HostService service = SpringUtils.getBean(HostService.class);
+ Host host = service.getById(this.hostId);
+ if (!Cools.isEmpty(host)){
+ return String.valueOf(host.getName());
+ }
+ return null;
+ }
+
+ public String getStatus$(){
+ if (null == this.status){ return null; }
+ switch (this.status){
+ case 1:
+ return "姝e父";
+ case 0:
+ return "绂佺敤";
+ default:
+ return String.valueOf(this.status);
+ }
+ }
+
+ public String getDeleted$(){
+ if (null == this.deleted){ return null; }
+ switch (this.deleted){
+ case 1:
+ return "鏄�";
+ case 0:
+ return "鍚�";
+ default:
+ return String.valueOf(this.deleted);
+ }
+ }
+
+ public String getCreateTime$(){
+ if (Cools.isEmpty(this.createTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+ }
+
+ public String getCreateBy$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.getById(this.createBy);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getNickname());
+ }
+ return null;
+ }
+
+ public String getUpdateTime$(){
+ if (Cools.isEmpty(this.updateTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+ }
+
+ public String getUpdateBy$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.getById(this.updateBy);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getNickname());
+ }
+ return null;
+ }
+
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/CreateOrderParam.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/CreateOrderParam.java
new file mode 100644
index 0000000..4778a72
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/CreateOrderParam.java
@@ -0,0 +1,26 @@
+package com.zy.asrs.wms.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.HashMap;
+import java.util.List;
+
+@Data
+public class CreateOrderParam {
+
+ //璁㈠崟鍙�
+ private String orderNo;
+
+ //鍗曟嵁绫诲瀷
+ private Long orderType;
+
+ //鍗曟嵁鐘舵��
+ private Long orderSettle;
+
+ //鍗曟嵁鏄庣粏
+ private List<HashMap<String,Object>> list;
+
+ //鍗曟嵁鏄庣粏
+ private List<OrderDetlParam> detls;
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/OrderDetlParam.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/OrderDetlParam.java
new file mode 100644
index 0000000..aa67573
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/OrderDetlParam.java
@@ -0,0 +1,55 @@
+package com.zy.asrs.wms.asrs.entity.param;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import lombok.Data;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+@Data
+public class OrderDetlParam {
+
+ //鎵瑰彿
+ private String batch;
+
+ //鏁伴噺
+ private Double anfme;
+
+ //鍔ㄦ�佹墿灞曞瓧娈�
+ public transient Map<String, Object> dynamicFields = new HashMap<>();
+
+ @JsonAnyGetter
+ public Map<String,Object> getDynamicFields() {
+ return dynamicFields;
+ }
+
+ public void syncFieldMap(Map<String, Object> map) {
+ ArrayList<String> keys = new ArrayList<>();
+ Field[] fields = this.getClass().getDeclaredFields();
+ for (Field field : fields) {
+ keys.add(field.getName());
+ }
+ keys.add("detlId");
+
+ Map<String, Object> dynamicFields = new HashMap<>();
+ for (Map.Entry<String, Object> entry : map.entrySet()) {
+ if (keys.contains(entry.getKey())) {
+ continue;
+ }
+ dynamicFields.put(entry.getKey(), entry.getValue());
+ }
+
+ this.dynamicFields = dynamicFields;
+ }
+
+ public String getFieldString(String key) {
+ return dynamicFields.get(key).toString();
+ }
+
+ public void setField(String key, Object value) {
+ dynamicFields.put(key, value);
+ }
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/UpdateOrderParam.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/UpdateOrderParam.java
new file mode 100644
index 0000000..f1ad847
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/UpdateOrderParam.java
@@ -0,0 +1,29 @@
+package com.zy.asrs.wms.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.HashMap;
+import java.util.List;
+
+@Data
+public class UpdateOrderParam {
+
+ //璁㈠崟鍙�
+ private String orderNo;
+
+ //鍗曟嵁绫诲瀷
+ private Long orderType;
+
+ //鍗曟嵁鐘舵��
+ private Long orderSettle;
+
+ //鍗曟嵁鏄庣粏
+ private List<HashMap<String,Object>> list;
+
+ //鍗曟嵁鏄庣粏
+ private List<OrderDetlParam> detls;
+
+ //鍒犻櫎鏄庣粏ID
+ private List<Long> deleteDetlId;
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/OrderDetlFieldMapper.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/OrderDetlFieldMapper.java
new file mode 100644
index 0000000..fbe46b0
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/OrderDetlFieldMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.wms.asrs.mapper;
+
+import com.zy.asrs.wms.asrs.entity.OrderDetlField;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface OrderDetlFieldMapper extends BaseMapper<OrderDetlField> {
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/OrderDetlMapper.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/OrderDetlMapper.java
new file mode 100644
index 0000000..0a76420
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/OrderDetlMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.wms.asrs.mapper;
+
+import com.zy.asrs.wms.asrs.entity.OrderDetl;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface OrderDetlMapper extends BaseMapper<OrderDetl> {
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/OrderMapper.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/OrderMapper.java
new file mode 100644
index 0000000..73a1b9d
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/OrderMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.wms.asrs.mapper;
+
+import com.zy.asrs.wms.asrs.entity.Order;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface OrderMapper extends BaseMapper<Order> {
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/OrderDetlFieldService.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/OrderDetlFieldService.java
new file mode 100644
index 0000000..9de89b2
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/OrderDetlFieldService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.wms.asrs.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zy.asrs.wms.asrs.entity.OrderDetlField;
+
+public interface OrderDetlFieldService extends IService<OrderDetlField> {
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/OrderDetlService.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/OrderDetlService.java
new file mode 100644
index 0000000..086cd63
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/OrderDetlService.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.wms.asrs.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zy.asrs.wms.asrs.entity.OrderDetl;
+
+import java.util.List;
+
+public interface OrderDetlService extends IService<OrderDetl> {
+
+ List<OrderDetl> getOrderDetlByOrderId(Long orderId);
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/OrderService.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/OrderService.java
new file mode 100644
index 0000000..2f3b321
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/OrderService.java
@@ -0,0 +1,16 @@
+package com.zy.asrs.wms.asrs.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zy.asrs.wms.asrs.entity.Order;
+import com.zy.asrs.wms.asrs.entity.param.CreateOrderParam;
+import com.zy.asrs.wms.asrs.entity.param.UpdateOrderParam;
+
+public interface OrderService extends IService<Order> {
+
+ boolean createOrder(CreateOrderParam param);
+
+ boolean updateOrder(UpdateOrderParam param);
+
+ boolean deleteOrder(Long orderId);
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderDetlFieldServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderDetlFieldServiceImpl.java
new file mode 100644
index 0000000..1217e39
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderDetlFieldServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.wms.asrs.service.impl;
+
+import com.zy.asrs.wms.asrs.mapper.OrderDetlFieldMapper;
+import com.zy.asrs.wms.asrs.entity.OrderDetlField;
+import com.zy.asrs.wms.asrs.service.OrderDetlFieldService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("orderDetlFieldService")
+public class OrderDetlFieldServiceImpl extends ServiceImpl<OrderDetlFieldMapper, OrderDetlField> implements OrderDetlFieldService {
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderDetlServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderDetlServiceImpl.java
new file mode 100644
index 0000000..42a0b9e
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderDetlServiceImpl.java
@@ -0,0 +1,30 @@
+package com.zy.asrs.wms.asrs.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.wms.asrs.entity.OrderDetlField;
+import com.zy.asrs.wms.asrs.mapper.OrderDetlMapper;
+import com.zy.asrs.wms.asrs.entity.OrderDetl;
+import com.zy.asrs.wms.asrs.service.OrderDetlFieldService;
+import com.zy.asrs.wms.asrs.service.OrderDetlService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service("orderDetlService")
+public class OrderDetlServiceImpl extends ServiceImpl<OrderDetlMapper, OrderDetl> implements OrderDetlService {
+
+ @Autowired
+ private OrderDetlFieldService orderDetlFieldService;
+
+ @Override
+ public List<OrderDetl> getOrderDetlByOrderId(Long orderId) {
+ List<OrderDetl> orderDetls = this.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, orderId));
+ for (OrderDetl orderDetl : orderDetls) {
+ List<OrderDetlField> list = orderDetlFieldService.list(new LambdaQueryWrapper<OrderDetlField>().eq(OrderDetlField::getDetlId, orderDetl.getId()));
+ orderDetl.syncField(list);
+ }
+ return orderDetls;
+ }
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java
new file mode 100644
index 0000000..45d002c
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java
@@ -0,0 +1,197 @@
+package com.zy.asrs.wms.asrs.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wms.asrs.entity.*;
+import com.zy.asrs.wms.asrs.entity.param.CreateOrderParam;
+import com.zy.asrs.wms.asrs.entity.param.UpdateOrderParam;
+import com.zy.asrs.wms.asrs.mapper.OrderMapper;
+import com.zy.asrs.wms.asrs.service.*;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+@Service("orderService")
+public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
+
+ @Autowired
+ private MatService matService;
+ @Autowired
+ private MatFieldService matFieldService;
+ @Autowired
+ private OrderDetlService orderDetlService;
+ @Autowired
+ private OrderDetlFieldService orderDetlFieldService;
+
+ @Override
+ @Transactional
+ public boolean createOrder(CreateOrderParam param) {
+ Order order = new Order();
+ order.setOrderNo(param.getOrderNo());
+ order.setOrderType(param.getOrderType());
+ order.setOrderSettle(param.getOrderSettle());
+ order.setCreateTime(new Date());
+ order.setCreateBy(9527L);
+ boolean result = this.save(order);
+ if (!result) {
+ throw new CoolException("鐢熸垚璁㈠崟澶辫触");
+ }
+
+ for (HashMap<String, Object> map : param.getList()) {
+ double anfme = Double.parseDouble(map.get("anfme").toString());
+ String batch = map.get("batch").toString();
+ String matnr = map.get("matnr").toString();
+ String memo = map.getOrDefault("memo", "").toString();
+ Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr));
+ if (mat == null) {
+ throw new CoolException(matnr + "鐗╂枡涓嶅瓨鍦�");
+ }
+
+ OrderDetl orderDetl = new OrderDetl();
+ orderDetl.setOrderId(order.getId());
+ orderDetl.setOrderNo(order.getOrderNo());
+ orderDetl.setAnfme(anfme);
+ orderDetl.setQty(0D);
+ orderDetl.setWorkQty(0D);
+ orderDetl.setBatch(batch);
+ orderDetl.setMatId(mat.getId());
+ orderDetl.setMemo(memo);
+ orderDetl.setCreateTime(new Date());
+ orderDetl.setCreateBy(9527L);
+ boolean save = orderDetlService.save(orderDetl);
+ if (!save) {
+ throw new CoolException("璁㈠崟鏄庣粏鍒涘缓澶辫触");
+ }
+
+ //鑾峰彇鎵╁睍瀛楁
+ List<MatField> matFields = matFieldService.list(new LambdaQueryWrapper<MatField>().eq(MatField::getFieldType, 1));
+ for (MatField matField : matFields) {
+ if (map.containsKey(matField.getName())) {
+ OrderDetlField fieldValue = new OrderDetlField();
+ fieldValue.setDetlId(orderDetl.getId());
+ fieldValue.setFieldId(matField.getId());
+ fieldValue.setName(matField.getName());
+ fieldValue.setValue(map.get(matField.getName()).toString());
+ boolean save1 = orderDetlFieldService.save(fieldValue);
+ if (!save1) {
+ throw new CoolException("璁㈠崟鏄庣粏鎵╁睍瀛楁鍒涘缓澶辫触");
+ }
+ }
+ }
+
+ }
+
+ return true;
+ }
+
+ @Override
+ public boolean updateOrder(UpdateOrderParam param) {
+ Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, param.getOrderNo()));
+ order.setOrderNo(param.getOrderNo());
+ order.setOrderType(param.getOrderType());
+ order.setOrderSettle(param.getOrderSettle());
+ order.setUpdateTime(new Date());
+ order.setUpdateBy(9527L);
+ boolean result = this.updateById(order);
+ if (!result) {
+ throw new CoolException("淇敼璁㈠崟澶辫触");
+ }
+
+ for (HashMap<String, Object> map : param.getList()) {
+ double anfme = Double.parseDouble(map.get("anfme").toString());
+ String batch = map.get("batch").toString();
+ String matnr = map.get("matnr").toString();
+ String memo = map.getOrDefault("memo", "").toString();
+ Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr));
+ if (mat == null) {
+ throw new CoolException(matnr + "鐗╂枡涓嶅瓨鍦�");
+ }
+
+ OrderDetl orderDetl = null;
+ if (map.containsKey("detlId")) {
+ orderDetl = orderDetlService.getById(map.get("detlId").toString());
+ }
+
+ if(orderDetl == null) {
+ orderDetl = new OrderDetl();
+ orderDetl.setOrderId(order.getId());
+ orderDetl.setOrderNo(order.getOrderNo());
+ orderDetl.setAnfme(anfme);
+ orderDetl.setQty(0D);
+ orderDetl.setWorkQty(0D);
+ orderDetl.setBatch(batch);
+ orderDetl.setMatId(mat.getId());
+ orderDetl.setMemo(memo);
+ orderDetl.setCreateTime(new Date());
+ orderDetl.setCreateBy(9527L);
+ }else {
+ orderDetl.setOrderNo(order.getOrderNo());
+ orderDetl.setAnfme(anfme);
+ orderDetl.setBatch(batch);
+ orderDetl.setMemo(memo);
+ orderDetl.setUpdateTime(new Date());
+ orderDetl.setUpdateBy(9527L);
+ }
+ boolean save = orderDetlService.saveOrUpdate(orderDetl);
+ if (!save) {
+ throw new CoolException("璁㈠崟鏄庣粏淇敼澶辫触");
+ }
+
+ //鑾峰彇鎵╁睍瀛楁
+ List<MatField> matFields = matFieldService.list(new LambdaQueryWrapper<MatField>().eq(MatField::getFieldType, 1));
+ for (MatField matField : matFields) {
+ if (map.containsKey(matField.getName())) {
+ OrderDetlField fieldValue = orderDetlFieldService.getOne(new LambdaQueryWrapper<OrderDetlField>()
+ .eq(OrderDetlField::getDetlId, orderDetl.getId())
+ .eq(OrderDetlField::getFieldId, matField.getId()));
+ if (fieldValue == null) {
+ fieldValue = new OrderDetlField();
+ fieldValue.setDetlId(orderDetl.getId());
+ fieldValue.setFieldId(matField.getId());
+ fieldValue.setName(matField.getName());
+ fieldValue.setValue(map.get(matField.getName()).toString());
+ }else {
+ fieldValue.setValue(map.get(matField.getName()).toString());
+ }
+
+ boolean save1 = orderDetlFieldService.saveOrUpdate(fieldValue);
+ if (!save1) {
+ throw new CoolException("璁㈠崟鏄庣粏鎵╁睍瀛楁淇敼澶辫触");
+ }
+ }
+ }
+
+ }
+
+ List<Long> deleteDetlId = param.getDeleteDetlId();
+ if (!deleteDetlId.isEmpty()) {
+ for (Long detlId : deleteDetlId) {
+ //鍒犻櫎鏄庣粏
+ orderDetlService.removeById(detlId);
+ //鍒犻櫎鏄庣粏瀵瑰簲鐨勬墿灞曞瓧娈�
+ orderDetlFieldService.remove(new LambdaQueryWrapper<OrderDetlField>().eq(OrderDetlField::getDetlId, detlId));
+ }
+ }
+
+ return true;
+ }
+
+ @Override
+ public boolean deleteOrder(Long orderId) {
+ //鍒犻櫎璁㈠崟
+ this.removeById(orderId);
+ //鍒犻櫎鏄庣粏
+ List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, orderId));
+ for (OrderDetl orderDetl : orderDetls) {
+ orderDetlService.removeById(orderDetl.getId());//鍒犻櫎鏄庣粏
+ //鍒犻櫎鏄庣粏瀵瑰簲鐨勬墿灞曞瓧娈�
+ orderDetlFieldService.remove(new LambdaQueryWrapper<OrderDetlField>().eq(OrderDetlField::getDetlId, orderDetl.getId()));
+ }
+ return true;
+ }
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/CodeBuilder.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/CodeBuilder.java
index 1b80063..197c7e1 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/CodeBuilder.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/CodeBuilder.java
@@ -22,8 +22,8 @@
// generator.username="sa";
// generator.password="Zoneyung@zy56$";
- generator.table="sys_language";
- generator.tableName="鍥介檯鍖栭厤缃�";
+ generator.table="man_order_detl_field";
+ generator.tableName="璁㈠崟鏄庣粏鎵╁睍瀛楁";
generator.rootPackagePath="com.zy.asrs.wms";
generator.packagePath="com.zy.asrs.wms.asrs";
diff --git a/zy-asrs-wms/src/main/java/order.sql b/zy-asrs-wms/src/main/java/order.sql
new file mode 100644
index 0000000..3e9c2fb
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/order.sql
@@ -0,0 +1,9 @@
+-- save order record
+-- mysql
+insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `host_id`, `status`) values ( '璁㈠崟绠$悊', '0', '/asrs/order', '/asrs/order', '0' , '0', '1' , '1');
+
+insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '鏌ヨ璁㈠崟', '', '1', 'asrs:order:list', '0', '1', '1');
+insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '娣诲姞璁㈠崟', '', '1', 'asrs:order:save', '1', '1', '1');
+insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '淇敼璁㈠崟', '', '1', 'asrs:order:update', '2', '1', '1');
+insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '鍒犻櫎璁㈠崟', '', '1', 'asrs:order:remove', '3', '1', '1');
+
diff --git a/zy-asrs-wms/src/main/java/orderDetl.sql b/zy-asrs-wms/src/main/java/orderDetl.sql
new file mode 100644
index 0000000..83adace
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/orderDetl.sql
@@ -0,0 +1,9 @@
+-- save orderDetl record
+-- mysql
+insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `host_id`, `status`) values ( '璁㈠崟鏄庣粏绠$悊', '0', '/asrs/orderDetl', '/asrs/orderDetl', '0' , '0', '1' , '1');
+
+insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '鏌ヨ璁㈠崟鏄庣粏', '', '1', 'asrs:orderDetl:list', '0', '1', '1');
+insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '娣诲姞璁㈠崟鏄庣粏', '', '1', 'asrs:orderDetl:save', '1', '1', '1');
+insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '淇敼璁㈠崟鏄庣粏', '', '1', 'asrs:orderDetl:update', '2', '1', '1');
+insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '鍒犻櫎璁㈠崟鏄庣粏', '', '1', 'asrs:orderDetl:remove', '3', '1', '1');
+
diff --git a/zy-asrs-wms/src/main/java/orderDetlField.sql b/zy-asrs-wms/src/main/java/orderDetlField.sql
new file mode 100644
index 0000000..067206e
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/orderDetlField.sql
@@ -0,0 +1,9 @@
+-- save orderDetlField record
+-- mysql
+insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `host_id`, `status`) values ( '璁㈠崟鏄庣粏鎵╁睍瀛楁绠$悊', '0', '/asrs/orderDetlField', '/asrs/orderDetlField', '0' , '0', '1' , '1');
+
+insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '鏌ヨ璁㈠崟鏄庣粏鎵╁睍瀛楁', '', '1', 'asrs:orderDetlField:list', '0', '1', '1');
+insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '娣诲姞璁㈠崟鏄庣粏鎵╁睍瀛楁', '', '1', 'asrs:orderDetlField:save', '1', '1', '1');
+insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '淇敼璁㈠崟鏄庣粏鎵╁睍瀛楁', '', '1', 'asrs:orderDetlField:update', '2', '1', '1');
+insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `host_id`, `status`) values ( '鍒犻櫎璁㈠崟鏄庣粏鎵╁睍瀛楁', '', '1', 'asrs:orderDetlField:remove', '3', '1', '1');
+
diff --git a/zy-asrs-wms/src/main/resources/mapper/asrs/OrderDetlFieldMapper.xml b/zy-asrs-wms/src/main/resources/mapper/asrs/OrderDetlFieldMapper.xml
new file mode 100644
index 0000000..a8fcdd7
--- /dev/null
+++ b/zy-asrs-wms/src/main/resources/mapper/asrs/OrderDetlFieldMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.wms.asrs.mapper.OrderDetlFieldMapper">
+
+</mapper>
diff --git a/zy-asrs-wms/src/main/resources/mapper/asrs/OrderDetlMapper.xml b/zy-asrs-wms/src/main/resources/mapper/asrs/OrderDetlMapper.xml
new file mode 100644
index 0000000..ce3e9cc
--- /dev/null
+++ b/zy-asrs-wms/src/main/resources/mapper/asrs/OrderDetlMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.wms.asrs.mapper.OrderDetlMapper">
+
+</mapper>
diff --git a/zy-asrs-wms/src/main/resources/mapper/asrs/OrderMapper.xml b/zy-asrs-wms/src/main/resources/mapper/asrs/OrderMapper.xml
new file mode 100644
index 0000000..25f3c01
--- /dev/null
+++ b/zy-asrs-wms/src/main/resources/mapper/asrs/OrderMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.wms.asrs.mapper.OrderMapper">
+
+</mapper>
--
Gitblit v1.9.1