diff --git a/klp-ui/src/api/wms/transferOrder.js b/klp-ui/src/api/wms/transferOrder.js
new file mode 100644
index 00000000..14078578
--- /dev/null
+++ b/klp-ui/src/api/wms/transferOrder.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询调拨单主列表
+export function listTransferOrder(query) {
+ return request({
+ url: '/wms/transferOrder/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询调拨单主详细
+export function getTransferOrder(orderId) {
+ return request({
+ url: '/wms/transferOrder/' + orderId,
+ method: 'get'
+ })
+}
+
+// 新增调拨单主
+export function addTransferOrder(data) {
+ return request({
+ url: '/wms/transferOrder',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改调拨单主
+export function updateTransferOrder(data) {
+ return request({
+ url: '/wms/transferOrder',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除调拨单主
+export function delTransferOrder(orderId) {
+ return request({
+ url: '/wms/transferOrder/' + orderId,
+ method: 'delete'
+ })
+}
diff --git a/klp-ui/src/api/wms/transferOrderItem.js b/klp-ui/src/api/wms/transferOrderItem.js
new file mode 100644
index 00000000..52fb78a1
--- /dev/null
+++ b/klp-ui/src/api/wms/transferOrderItem.js
@@ -0,0 +1,116 @@
+import request from '@/utils/request'
+
+// 查询调拨单明细列表
+export function listTransferOrderItem(query) {
+ return request({
+ url: '/wms/transferOrderItem/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询调拨单明细详细
+export function getTransferOrderItem(orderItemId) {
+ return request({
+ url: '/wms/transferOrderItem/' + orderItemId,
+ method: 'get'
+ })
+}
+
+// 新增调拨单明细
+export function addTransferOrderItem(data) {
+ return request({
+ url: '/wms/transferOrderItem',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改调拨单明细
+export function updateTransferOrderItem(data) {
+ return request({
+ url: '/wms/transferOrderItem',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除调拨单明细
+export function delTransferOrderItem(orderItemId) {
+ return request({
+ url: '/wms/transferOrderItem/' + orderItemId,
+ method: 'delete'
+ })
+}
+
+/**
+ * 同步物料信息
+ */
+export function matchOrCreateMaterial({ itemId, itemType }) {
+ if (!itemId || !itemType) {
+ return Promise.reject('参数错误')
+ }
+
+ const data = {
+ itemId,
+ itemType
+ }
+
+ return request({
+ url: '/wms/transferOrderItem/itemType/matchOrCreate',
+ method: 'get',
+ params: data
+ })
+}
+
+/**
+ * 批量新增调拨信息
+ */
+export function batchAddTransferOrderItem({ transferId, coilIds }) {
+ if (!transferId || !coilIds || coilIds.length === 0) {
+ return Promise.reject('参数错误')
+ }
+
+ const data = {
+ transferId,
+ coilIds
+ }
+
+ return request({
+ url: '/wms/transferOrderItem/batch',
+ method: 'post',
+ data: data
+ })
+}
+
+/**
+ * 确认调拨
+ */
+export function confirmTransferOrderItem(item) {
+ if (!item.orderItemId) {
+ return Promise.reject('参数错误')
+ }
+
+ return request({
+ url: '/wms/transferOrderItem/confirm',
+ method: 'post',
+ data: item
+ })
+}
+
+/**
+ * 取消调拨
+ */
+export function cancelTransferOrderItem(orderItemId) {
+ if (!orderItemId) {
+ return Promise.reject('参数错误')
+ }
+
+ return request({
+ url: '/wms/transferOrderItem/cancel',
+ method: 'post',
+ params: {
+ orderItemId
+ }
+ })
+}
\ No newline at end of file
diff --git a/klp-ui/src/components/KLPService/ProductSelect/index.vue b/klp-ui/src/components/KLPService/ProductSelect/index.vue
index 20191806..3b31a0de 100644
--- a/klp-ui/src/components/KLPService/ProductSelect/index.vue
+++ b/klp-ui/src/components/KLPService/ProductSelect/index.vue
@@ -153,7 +153,7 @@ export default {
},
props: {
value: {
- type: String,
+ type: [String, Number],
default: ''
},
readonly: {
@@ -224,7 +224,7 @@ export default {
this.selectedId = val || '';
if (this.selectedId) {
const res = await getProduct(this.selectedId);
- if (res.code === 200) this.selectedRow = res.data;
+ if (res.code === 200 && res.data != null) this.selectedRow = res.data || {};
} else {
this.selectedRow = {};
}
@@ -233,6 +233,7 @@ export default {
dialogVisible(val) {
if (val) {
this.getList();
+ this.listRecentlySelected();
}
}
},
@@ -408,10 +409,10 @@ export default {
this.resetForm("form");
},
},
- mounted() {
- this.listRecentlySelected();
- this.getList();
- },
+ // mounted() {
+
+ // this.getList();
+ // },
};
diff --git a/klp-ui/src/components/KLPService/RawMaterialSelect/index.vue b/klp-ui/src/components/KLPService/RawMaterialSelect/index.vue
index 0275d466..c6926c7b 100644
--- a/klp-ui/src/components/KLPService/RawMaterialSelect/index.vue
+++ b/klp-ui/src/components/KLPService/RawMaterialSelect/index.vue
@@ -139,7 +139,7 @@ export default {
props: {
// 绑定值:原材料ID 单选字符串格式
value: {
- type: String,
+ type: [String, Number],
default: ''
},
// 是否只读
@@ -222,7 +222,7 @@ export default {
// 有选中ID则获取详情赋值
if (this.selectedId) {
const res = await getRawMaterial(this.selectedId);
- if (res.code === 200) this.selectedRow = res.data;
+ if (res.code === 200) this.selectedRow = res.data || {};
} else {
this.selectedRow = {};
}
@@ -231,6 +231,7 @@ export default {
// 弹窗打开时加载数据
dialogVisible(val) {
if (val) {
+ this.listRecentlySelected();
this.getList();
}
}
@@ -417,10 +418,10 @@ export default {
this.dialogVisible = false;
}
},
- mounted() {
- this.listRecentlySelected();
- this.getList();
- }
+ // mounted() {
+ // this.listRecentlySelected();
+ // this.getList();
+ // }
};
diff --git a/klp-ui/src/components/KLPService/Renderer/CoilNo.vue b/klp-ui/src/components/KLPService/Renderer/CoilNo.vue
index bac99353..537c3314 100644
--- a/klp-ui/src/components/KLPService/Renderer/CoilNo.vue
+++ b/klp-ui/src/components/KLPService/Renderer/CoilNo.vue
@@ -2,7 +2,7 @@
{}
+ }
},
data() { // 修正:data应该是函数
return {
@@ -84,37 +88,37 @@ export default {
return this.coilNo && this.coilNo.startsWith('G');
},
specification() {
- return this.coilInfo.specification || '-'
+ return this.coilInfo.specification || this.coil?.specification || '-'
},
itemName() {
- return this.coilInfo.itemName || '-'
+ return this.coilInfo.itemName || this.coil?.itemName || '-'
},
material() {
- return this.coilInfo.material || '-'
+ return this.coilInfo.material || this.coil?.material || '-'
},
manufacturer() {
- return this.coilInfo.manufacturer || '-'
+ return this.coilInfo.manufacturer || this.coil?.manufacturer || '-'
},
currentCoilNo() {
- return this.coilNo || this.coilInfo?.currentCoilNo || '-'
+ return this.coilNo || this.coil?.currentCoilNo || '-'
},
netWeight() {
- return this.coilInfo.netWeight || '-'
+ return this.coilInfo.netWeight || this.coil?.netWeight || '-'
},
supplierCoilNo() {
- return this.coilInfo.supplierCoilNo || '-'
+ return this.coilInfo.supplierCoilNo || this.coil?.supplierCoilNo || '-'
},
length() {
- return this.coilInfo.length || '-'
+ return this.coilInfo.length || this.coil?.length || '-'
},
actualLength() {
- return this.coilInfo.actualLength || '-'
+ return this.coilInfo.actualLength || this.coil?.actualLength || '-'
},
actualWidth() {
- return this.coilInfo.actualWidth || '-'
+ return this.coilInfo.actualWidth || this.coil?.actualWidth || '-'
},
actualThickness() {
- return this.coilInfo.actualThickness || '-'
+ return this.coilInfo.actualThickness || this.coil?.actualThickness || '-'
},
},
methods: {
@@ -140,7 +144,7 @@ export default {
if (newVal) {
this.getCoilInfo();
} else {
- this.coilInfo = {};
+ this.coilInfo = this.coil || {};
}
}
}
diff --git a/klp-ui/src/components/KLPService/Renderer/ProductInfo.vue b/klp-ui/src/components/KLPService/Renderer/ProductInfo.vue
index 5e91d2bf..25c1a965 100644
--- a/klp-ui/src/components/KLPService/Renderer/ProductInfo.vue
+++ b/klp-ui/src/components/KLPService/Renderer/ProductInfo.vue
@@ -64,8 +64,8 @@ export default {
return {};
}
return {
- productId: this.product.itemId || '',
- productName: this.product.itemName || '',
+ productId: this.product.itemId || this.product.productId || '',
+ productName: this.product.itemName || this.product.productName || '',
// productCode: this.product.productCode || '',
specification: this.product.specification || '',
material: this.product.material || '',
diff --git a/klp-ui/src/components/KLPService/Renderer/RawMaterialInfo.vue b/klp-ui/src/components/KLPService/Renderer/RawMaterialInfo.vue
index fb60d211..e7c819ca 100644
--- a/klp-ui/src/components/KLPService/Renderer/RawMaterialInfo.vue
+++ b/klp-ui/src/components/KLPService/Renderer/RawMaterialInfo.vue
@@ -51,8 +51,8 @@ export default {
return {};
}
return {
- rawMaterialId: this.material.itemId || '',
- rawMaterialName: this.material.itemName || '',
+ rawMaterialId: this.material.itemId || this.material.rawMaterialId || '',
+ rawMaterialName: this.material.itemName || this.material.rawMaterialName || '',
// rawMaterialCode: this.material.rawMaterialCode || '',
specification: this.material.specification || '',
material: this.material.material || '',
diff --git a/klp-ui/src/components/MemoInput/index.vue b/klp-ui/src/components/MemoInput/index.vue
index 7cd958b1..89b24fbe 100644
--- a/klp-ui/src/components/MemoInput/index.vue
+++ b/klp-ui/src/components/MemoInput/index.vue
@@ -1,7 +1,7 @@
+ clearable :disabled="disabled">
diff --git a/klp-ui/src/views/wms/move/components/tranferItemTable.vue b/klp-ui/src/views/wms/move/components/tranferItemTable.vue
new file mode 100644
index 00000000..3eaf805a
--- /dev/null
+++ b/klp-ui/src/views/wms/move/components/tranferItemTable.vue
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.materialTypeBefore == '1' ? '原料' : '产品' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.materialTypeAfter == '1' ? '原料' : '产品' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.warehouseNameAfter }}
+
+
+
+
+
+
+ 确认
+ 取消
+
+
+
+
+
+
diff --git a/klp-ui/src/views/wms/move/correct.vue b/klp-ui/src/views/wms/move/correct.vue
new file mode 100644
index 00000000..1a8ea5a7
--- /dev/null
+++ b/klp-ui/src/views/wms/move/correct.vue
@@ -0,0 +1,1359 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+ 入场:
+ {{ item.enterCoilNo || '—' }}
+
+
+ 厂家:
+ {{ item.supplierCoilNo || '—' }}
+
+
+ 库位:
+ {{ item.warehouseName || '—' }}
+
+
+ 库区:
+ {{ item.actualWarehouseName || '—'
+ }}
+
+
+ 重量:
+ {{ item.netWeight || '—' }}t
+
+
+
回滚
+
强制入库
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ dict.label }}
+
+
+
+
+
+
+
+ {{
+ dict.label }}
+
+
+
+
+ {{
+ dict.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 请先选择材料类型
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/klp-ui/src/views/wms/move/record.vue b/klp-ui/src/views/wms/move/record.vue
new file mode 100644
index 00000000..f3c314d9
--- /dev/null
+++ b/klp-ui/src/views/wms/move/record.vue
@@ -0,0 +1,359 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/klp-wms/src/main/java/com/klp/controller/WmsTransferOrderItemController.java b/klp-wms/src/main/java/com/klp/controller/WmsTransferOrderItemController.java
index a4c84c6d..5b023ac3 100644
--- a/klp-wms/src/main/java/com/klp/controller/WmsTransferOrderItemController.java
+++ b/klp-wms/src/main/java/com/klp/controller/WmsTransferOrderItemController.java
@@ -101,9 +101,9 @@ public class WmsTransferOrderItemController extends BaseController {
* 根据itemId和itemType匹配或新增物料
* itemType: raw_material-原料, product-成品
*/
- @GetMapping("/matchOrCreate")
- public R matchOrCreateMaterial(@NotNull(message = "itemId不能为空") Long itemId,
- @NotNull(message = "itemType不能为空") String itemType) {
+ @GetMapping("/itemType/matchOrCreate")
+ public R matchOrCreateMaterial(@RequestParam @NotNull(message = "itemId不能为空") Long itemId,
+ @RequestParam @NotNull(message = "itemType不能为空") String itemType) {
return R.ok(iWmsTransferOrderItemService.matchOrCreateMaterial(itemId, itemType));
}