From 81eb0a971422c081550a1458c8aebcba6d3259a2 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期四, 01 八月 2024 16:15:28 +0800
Subject: [PATCH] #
---
zy-asrs-admin/src/components/order/waitTask/index.vue | 168 +++++++++++++++++++++++++++++++++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatFieldServiceImpl.java | 1
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/MatFieldMapper.java | 15 +++
zy-asrs-admin/src/views/in/waitPakin/edit.vue | 6
zy-asrs-admin/src/components/orderDetl/show.vue | 21 ++++
zy-asrs-admin/src/views/IndexView.vue | 4
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaitPakinServiceImpl.java | 8 +
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetl.java | 13 ++
zy-asrs-admin/src/views/in/waitPakin/index.vue | 4
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java | 21 ++-
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java | 22 ++++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/WaitPakinService.java | 4
12 files changed, 270 insertions(+), 17 deletions(-)
diff --git a/zy-asrs-admin/src/components/order/waitTask/index.vue b/zy-asrs-admin/src/components/order/waitTask/index.vue
new file mode 100644
index 0000000..4c47ea5
--- /dev/null
+++ b/zy-asrs-admin/src/components/order/waitTask/index.vue
@@ -0,0 +1,168 @@
+<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 open = ref(false);
+const orderDetlId = ref(null);
+
+const showWidth = ref("60%")
+
+const {
+ getColumnSearchProps,
+} = useTableSearch();
+
+const state = reactive({
+ selectedRowKeys: [],
+ loading: false,
+ columns: [],
+});
+
+state.columns = [
+ {
+ title: formatMessage('db.man_wait_pakin.order_id', '璁㈠崟ID'),
+ dataIndex: 'orderId$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('orderId$'),
+ },
+ {
+ title: formatMessage('db.man_wait_pakin.order_no', '璁㈠崟缂栧彿'),
+ dataIndex: 'orderNo',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('orderNo'),
+ },
+ {
+ title: formatMessage('db.man_wait_pakin.barcode', '鎵樼洏鐮�'),
+ dataIndex: 'barcode',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('barcode'),
+ },
+ {
+ title: formatMessage('db.man_wait_pakin.matnr', '鐗╂枡鍙�'),
+ dataIndex: ['detl$', 'mat$', 'matnr'],
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('detl$.matnr'),
+ },
+ {
+ title: formatMessage('db.man_wait_pakin.batch', '鎵瑰彿'),
+ dataIndex: ['detl$', 'batch'],
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('detl$.matnr'),
+ },
+ {
+ title: formatMessage('db.man_wait_pakin.anfme', '缁勬墭鏁伴噺'),
+ dataIndex: 'anfme',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('anfme'),
+ },
+ {
+ title: formatMessage('db.man_wait_pakin.io_status', '缁勬墭鐘舵��'),
+ dataIndex: 'ioStatus$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('ioStatus$'),
+ },
+ {
+ title: formatMessage('db.man_wait_pakin.status', '鐘舵��'),
+ dataIndex: 'status$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('status$'),
+ },
+ {
+ title: formatMessage('db.man_wait_pakin.create_time', '娣诲姞鏃堕棿'),
+ dataIndex: 'createTime$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('createTime$'),
+ },
+ {
+ title: formatMessage('db.man_wait_pakin.create_by', '娣诲姞浜哄憳'),
+ dataIndex: 'createBy$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('createBy$'),
+ },
+ {
+ title: formatMessage('db.man_wait_pakin.update_time', '淇敼鏃堕棿'),
+ dataIndex: 'updateTime$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('updateTime$'),
+ },
+ {
+ title: formatMessage('db.man_wait_pakin.update_by', '淇敼浜哄憳'),
+ dataIndex: 'updateBy$',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('updateBy$'),
+ },
+ {
+ title: formatMessage('db.man_wait_pakin.memo', '澶囨敞'),
+ dataIndex: 'memo',
+ width: 140,
+ ellipsis: true,
+ ...getColumnSearchProps('memo'),
+ },
+];
+
+const handleOk = () => {
+ open.value = false;
+}
+
+const handleCancel = () => {
+ open.value = false;
+ orderDetlId.value = null;
+}
+
+watch(orderDetlId, (newVal, oldVal) => {
+ if (newVal != null) {
+ get("/api/waitPakin/orderDetlId/" + newVal, {}).then((resp) => {
+ let result = resp.data;
+ tableData.value = result.data;
+ })
+ }
+})
+
+defineExpose({
+ tableData,
+ orderDetlId,
+ open,
+ showWidth,
+})
+
+</script>
+
+<script>
+export default {
+ name: 'waitTaskComponent'
+}
+</script>
+
+<template>
+ <div>
+ <a-modal v-model:open="open" :width="showWidth" @ok="handleOk" @cancel="handleCancel">
+ <a-table :data-source="tableData" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id"
+ :scroll="{ y: 768 }" :columns="state.columns">
+ </a-table>
+ </a-modal>
+ </div>
+</template>
+
+<style></style>
diff --git a/zy-asrs-admin/src/components/orderDetl/show.vue b/zy-asrs-admin/src/components/orderDetl/show.vue
index dd0f657..78527e2 100644
--- a/zy-asrs-admin/src/components/orderDetl/show.vue
+++ b/zy-asrs-admin/src/components/orderDetl/show.vue
@@ -8,6 +8,7 @@
import useTableSearch from '@/utils/tableUtils.jsx';
import WorkTaskView from '@/components/order/workTask/index.vue'
import CompleteTaskView from '@/components/order/completeTask/index.vue'
+import WaitTaskView from '@/components/order/waitTask/index.vue'
const context = getCurrentInstance()?.appContext.config.globalProperties;
const router = useRouter();
@@ -24,6 +25,7 @@
});
const workTaskChild = ref(null)
const completeTaskChild = ref(null)
+const waitTaskChild = ref(null)
const showWidth = ref("60%")
getColumns();
@@ -81,6 +83,13 @@
{
title: formatMessage('db.man_loc_detl.workQty', '浣滀笟涓暟閲�'),
dataIndex: 'workQty',
+ width: 140,
+ ellipsis: true,
+ editable: true,
+ },
+ {
+ title: formatMessage('db.man_loc_detl.waitQty', '缁勬墭鏁伴噺'),
+ dataIndex: 'waitQty',
width: 140,
ellipsis: true,
editable: true,
@@ -160,6 +169,7 @@
anfme: item.anfme,
qty: item.qty,
workQty: item.workQty,
+ waitQty: item.waitQty,
memo: item.memo
};
fieldList.forEach((field) => {
@@ -189,6 +199,12 @@
completeTaskChild.value.open = true;
completeTaskChild.value.showWidth = '55%';
completeTaskChild.value.orderDetlId = record.detlId;
+}
+
+const openWaitQty = (record) => {
+ waitTaskChild.value.open = true;
+ waitTaskChild.value.showWidth = '55%';
+ waitTaskChild.value.orderDetlId = record.detlId;
}
defineExpose({
@@ -235,11 +251,16 @@
<template v-if="column.dataIndex === 'qty'">
<a-button type="link" @click="openCompleteQty(record)">{{ text }}</a-button>
</template>
+
+ <template v-if="column.dataIndex === 'waitQty'">
+ <a-button type="link" @click="openWaitQty(record)">{{ text }}</a-button>
+ </template>
</template>
</a-table>
<WorkTaskView ref="workTaskChild" />
<CompleteTaskView ref="completeTaskChild" />
+ <WaitTaskView ref="waitTaskChild" />
</a-modal>
</div>
</template>
diff --git a/zy-asrs-admin/src/views/IndexView.vue b/zy-asrs-admin/src/views/IndexView.vue
index 124f682..f56e558 100644
--- a/zy-asrs-admin/src/views/IndexView.vue
+++ b/zy-asrs-admin/src/views/IndexView.vue
@@ -120,7 +120,7 @@
isRouterAlive.value = false;
nextTick(() => {
isRouterAlive.value = true;
- message.success(formatMessage('common.success', '鍔犺浇鎴愬姛'));
+ // message.success(formatMessage('common.success', '鍔犺浇鎴愬姛'));
})
} catch (error) {
message.error(formatMessage('common.fail', '鍔犺浇澶辫触'));
@@ -314,7 +314,7 @@
</div>
<router-view v-slot="{ Component, route }" v-if="isRouterAlive">
<keep-alive :include="routerCache">
- <component :is="Component" />
+ <component :is="Component" @pageReload="reloadTabs" />
</keep-alive>
</router-view>
</a-layout-content>
diff --git a/zy-asrs-admin/src/views/in/waitPakin/edit.vue b/zy-asrs-admin/src/views/in/waitPakin/edit.vue
index 0eb64bc..e85cc9d 100644
--- a/zy-asrs-admin/src/views/in/waitPakin/edit.vue
+++ b/zy-asrs-admin/src/views/in/waitPakin/edit.vue
@@ -31,10 +31,10 @@
let result = resp.data;
if (result.code === 200) {
message.success(isSave.value ? formatMessage('page.add.success', '鏂板鎴愬姛') : formatMessage('page.update.success', '鏇存柊鎴愬姛'));
+ emit('tableReload', 'reload')
} else {
message.error(result.msg);
}
- emit('tableReload', 'reload')
nextTick(() => {
formTable.value.resetFields()
})
@@ -90,7 +90,7 @@
zpalletBarcodeQuery(e)
}
-const handleSearchChange = (e) =>{
+const handleSearchChange = (e) => {
orderQuery(e);
}
@@ -104,7 +104,7 @@
let result = await orderDetlQuery(id);
let tmp = []
result.data.forEach((item) => {
- let count = item.anfme - item.qty - item.workQty;
+ let count = item.anfme - item.qty - item.workQty - item.waitQty;
tmp.push({
value: item.id,
label: item.mat$.matnr + '-' + count,
diff --git a/zy-asrs-admin/src/views/in/waitPakin/index.vue b/zy-asrs-admin/src/views/in/waitPakin/index.vue
index 04f5cf7..f0d3219 100644
--- a/zy-asrs-admin/src/views/in/waitPakin/index.vue
+++ b/zy-asrs-admin/src/views/in/waitPakin/index.vue
@@ -12,6 +12,8 @@
const router = useRouter();
+const emit = defineEmits(['pageReload'])
+
const TABLE_KEY = 'table-waitPakin';
let currentPage = 1;
let pageSize = 10;
@@ -217,7 +219,7 @@
}
function handleTableReload(value) {
- getPage()
+ emit('pageReload', 'reload')
}
const generateTask = () => {
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java
index de41adb..f8d976b 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java
@@ -58,6 +58,12 @@
return R.ok().add(waitPakinService.getById(id));
}
+ @PreAuthorize("hasAuthority('asrs:waitPakin:list')")
+ @GetMapping("/waitPakin/orderDetlId/{orderDetlId}")
+ public R getByOrderDetlId(@PathVariable("orderDetlId") Long orderDetlId) {
+ return R.ok().add(waitPakinService.getByOrderDetlId(orderDetlId));
+ }
+
@PreAuthorize("hasAuthority('asrs:waitPakin:save')")
@OperationLog("娣诲姞缁勬墭閫氱煡妗�")
@PostMapping("/waitPakin/save")
@@ -77,8 +83,20 @@
return R.error("鎵樼洏姝e湪鍏ュ簱涓�");
}
- if (!waitPakinService.save(waitPakin)) {
- return R.error("娣诲姞澶辫触");
+ //鏌ヨ鏄惁瀛樺湪鐩稿悓鏄庣粏鍜屾墭鐩樼爜鐨勭粍鎵橀�氱煡妗�
+ WaitPakin waitPakin1 = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, waitPakin.getBarcode()).eq(WaitPakin::getDetlId, waitPakin.getDetlId()));
+ if (waitPakin1 == null) {
+ //涓嶅瓨鍦ㄧ粍鎵橀�氱煡妗o紝鍒涘缓
+ if (!waitPakinService.save(waitPakin)) {
+ return R.error("娣诲姞澶辫触");
+ }
+ }else {
+ //瀛樺湪缁勬墭閫氱煡妗o紝鏇存柊
+ waitPakin1.setAnfme(waitPakin1.getAnfme() + waitPakin.getAnfme());
+ waitPakin1.setUpdateTime(new Date());
+ if (!waitPakinService.updateById(waitPakin1)) {
+ return R.error("娣诲姞澶辫触");
+ }
}
OrderDetl orderDetl = orderDetlService.getById(waitPakin.getDetlId());
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
index 86e13bd..2bcb924 100644
--- 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
@@ -6,10 +6,12 @@
import java.text.SimpleDateFormat;
import java.util.*;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.asrs.service.WaitPakinService;
import com.zy.asrs.wms.system.entity.Host;
import com.zy.asrs.wms.system.entity.User;
import org.springframework.format.annotation.DateTimeFormat;
@@ -171,6 +173,17 @@
// null // 澶囨敞
// );
+ //鑾峰彇缁勬墭鏁伴噺
+ public Double getWaitQty(){
+ Double qty = 0D;
+ WaitPakinService service = SpringUtils.getBean(WaitPakinService.class);
+ List<WaitPakin> waitPakins = service.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getDetlId, id));
+ for (WaitPakin waitPakin : waitPakins) {
+ qty += waitPakin.getAnfme();
+ }
+ return qty;
+ }
+
public String getOrderId$(){
OrderService service = SpringUtils.getBean(OrderService.class);
Order order = service.getById(this.orderId);
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/MatFieldMapper.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/MatFieldMapper.java
index 12e52e9..133a840 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/MatFieldMapper.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/MatFieldMapper.java
@@ -18,6 +18,10 @@
@SelectProvider(type = SqlProvider.class, method = "createViewSql")
void createView(@Param("list") List<MatField> list);
+
+ @SelectProvider(type = SqlProvider.class, method = "createLocDetlView")
+ void createLocDetlView();
+
class SqlProvider {
public String createViewSql(Map<String, Object> params) {
List<MatField> list = (List<MatField>) params.get("list");
@@ -33,6 +37,17 @@
return sql.toString();
}
+
+ public String createLocDetlView() {
+ StringBuilder sql = new StringBuilder();
+
+ sql.append(" CREATE OR REPLACE VIEW view_man_loc_detl AS \n");
+ sql.append(" select * from man_loc_detl ld ");
+ sql.append(" left join view_man_loc_detl_field ldf ");
+ sql.append(" on ld.id = ldf.detl_id ");
+
+ return sql.toString();
+ }
}
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/WaitPakinService.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/WaitPakinService.java
index f25f157..76b6a42 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/WaitPakinService.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/WaitPakinService.java
@@ -3,6 +3,10 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wms.asrs.entity.WaitPakin;
+import java.util.List;
+
public interface WaitPakinService extends IService<WaitPakin> {
+ List<WaitPakin> getByOrderDetlId(Long orderDetlId);
+
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatFieldServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatFieldServiceImpl.java
index 2d7761a..f149048 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatFieldServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MatFieldServiceImpl.java
@@ -16,6 +16,7 @@
public void createView() {
List<MatField> list = this.list();
this.baseMapper.createView(list);
+ this.baseMapper.createLocDetlView();
}
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaitPakinServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaitPakinServiceImpl.java
index 635860d..d66fb95 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaitPakinServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WaitPakinServiceImpl.java
@@ -1,12 +1,20 @@
package com.zy.asrs.wms.asrs.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.wms.asrs.mapper.WaitPakinMapper;
import com.zy.asrs.wms.asrs.entity.WaitPakin;
import com.zy.asrs.wms.asrs.service.WaitPakinService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import java.util.Collections;
+import java.util.List;
+
@Service("waitPakinService")
public class WaitPakinServiceImpl extends ServiceImpl<WaitPakinMapper, WaitPakin> implements WaitPakinService {
+ @Override
+ public List<WaitPakin> getByOrderDetlId(Long orderDetlId) {
+ return this.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getDetlId, orderDetlId));
+ }
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
index be7a0c9..e9a0f64 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
@@ -96,6 +96,7 @@
locDetlField.setDetlId(locDetl.getId());
locDetlField.setFieldId(detlField.getFieldId());
locDetlField.setName(detlField.getName());
+ locDetlField.setValue(detlField.getValue());
locDetlField.setHostId(hostId);
if (!locDetlFieldService.save(locDetlField)) {
throw new CoolException("鎻掑叆鏄庣粏鎵╁睍瀛楁澶辫触");
@@ -104,18 +105,20 @@
}
//缁勬墭閫氱煡妗h浆鍘嗗彶妗�
- WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()).eq(WaitPakin::getHostId, hostId));
- if (waitPakin == null) {
+ List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()).eq(WaitPakin::getHostId, hostId));
+ if(waitPakins.isEmpty()) {
throw new CoolException("缁勬墭閫氱煡妗d笉瀛樺湪");
}
- WaitPakinLog waitPakinLog = new WaitPakinLog();
- waitPakinLog.sync(waitPakin);
- if (!waitPakinLogService.save(waitPakinLog)) {
- throw new CoolException("缁勬墭閫氱煡妗h浆鍘嗗彶妗eけ璐�");
- }
+ for (WaitPakin waitPakin : waitPakins) {
+ WaitPakinLog waitPakinLog = new WaitPakinLog();
+ waitPakinLog.sync(waitPakin);
+ if (!waitPakinLogService.save(waitPakinLog)) {
+ throw new CoolException("缁勬墭閫氱煡妗h浆鍘嗗彶妗eけ璐�");
+ }
- //鍒犻櫎缁勬墭閫氱煡妗�
- waitPakinService.remove(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, task.getBarcode()).eq(WaitPakin::getHostId, hostId));
+ //鍒犻櫎缁勬墭閫氱煡妗�
+ waitPakinService.removeById(waitPakin.getId());
+ }
break;
}
--
Gitblit v1.9.1