diff --git a/klp-ui/src/components/KLPUI/KLPTable/readme.md b/klp-ui/src/components/KLPUI/KLPTable/readme.md
new file mode 100644
index 00000000..17852e2d
--- /dev/null
+++ b/klp-ui/src/components/KLPUI/KLPTable/readme.md
@@ -0,0 +1,4 @@
+## 组件用法
+1. 将原有的el-table标签改为KLPTable标签,该组件已经全局注册,可以直接使用,无需带入。
+2. 要展示浮层需要在表格组件上设置props,将floatLayer设置为true,这时表格中有哪些列,浮层就会展示哪些信息。
+3. 如果需要单独设置浮层展示的信息,例如展示表格中不存在但数据中存在的列,需要在标签上增加一个props配置,设置floatLayerConfig.columns为要展示的列,示例[ { label: 'xxx', props: 'xxx.xxx' // 支持展示多层的数据 }, { label: '标签', props: 'xxx' } ]
diff --git a/klp-ui/src/views/wms/coil/do/warehousing.vue b/klp-ui/src/views/wms/coil/do/warehousing.vue
index dc8a7fa2..58b2bdd0 100644
--- a/klp-ui/src/views/wms/coil/do/warehousing.vue
+++ b/klp-ui/src/views/wms/coil/do/warehousing.vue
@@ -8,6 +8,18 @@
新增入库
+
+
+
+
+
+
+
+
+
+
@@ -33,12 +45,12 @@
clearable />
-
+
@@ -121,7 +133,7 @@
-
-
+
@@ -186,6 +199,7 @@ import WarehouseSelect from "@/components/KLPService/WarehouseSelect";
import ProductSelect from "@/components/KLPService/ProductSelect";
import RawMaterialSelect from "@/components/KLPService/RawMaterialSelect";
import { Pagination } from 'element-ui';
+import { listDeliveryPlan } from '@/api/wms/deliveryPlan'
// 键值为[400, 500), 不包含在字典中,但后续可以加入的特殊操作,这类操作录入后会立刻完成,例如入库(401)和发货(402)
@@ -211,6 +225,7 @@ export default {
netWeight: null,
grossWeight: null,
remark: null,
+ dataType: 10, // 表示将要入库但是还未入库的钢卷,一般用于钢卷入库的操作去创建一个无法被检索到的钢卷
trimmingRequirement: null,
packingStatus: null,
packagingRequirement: null,
@@ -222,12 +237,15 @@ export default {
},
// 分页参数
pagination: {
- currentPage: 1,
+ pageNum: 1,
pageSize: 10,
},
total: 0,
// 表单校验
rules: {
+ planId: [
+ { required: true, message: "请选择收货计划", trigger: "change" }
+ ],
enterCoilNo: [
{ required: true, message: "入场钢卷号不能为空", trigger: "blur" }
],
@@ -248,6 +266,7 @@ export default {
{ required: true, message: "毛重不能为空", trigger: "blur" }
],
},
+ planList: [],
}
},
mounted() {
@@ -276,6 +295,11 @@ export default {
this.form.itemType = 'raw_material';
}
},
+ remoteMethod(query) {
+ listDeliveryPlan({ planName: query, pageNum: 1, pageSize: 5, planType: 1 }).then(res => {
+ this.planList = res.rows
+ })
+ },
getList() {
// 获取入库历史
this.loading = true
@@ -292,13 +316,16 @@ export default {
this.buttonLoading = true;
addMaterialCoil(this.form).then(response => {
addPendingAction({
+ // 计划ID 对应 warehouseId, warehouseId字段并不是仓库ID,而是一个根据操作类型自适应的查询字段
+ warehouseId: this.form.planId,
actionType: 401,
currentCoilNo: this.form.currentCoilNo,
sourceType: 'manual',
coilId: response.data.coilId,
+ // coilId: 0,
priority: 0,
remark: this.form.remark,
- actionStatus: 2,
+ actionStatus: 0,
}).then(res => {
this.$modal.msgSuccess("入库成功");
this.getList()
@@ -306,6 +333,8 @@ export default {
}).finally(() => {
this.buttonLoading = false;
});
+
+
}
});
},
@@ -354,6 +383,7 @@ export default {
.section-header {
border-bottom-color: #409eff;
}
+
.section-title {
color: #409eff;
}
@@ -363,6 +393,7 @@ export default {
.section-header {
border-bottom-color: #67c23a;
}
+
.section-title {
color: #67c23a;
}
@@ -384,25 +415,25 @@ export default {
max-height: calc(100vh - 320px);
overflow-y: auto;
padding-right: 4px;
-
+
&::-webkit-scrollbar {
width: 6px;
}
-
+
&::-webkit-scrollbar-track {
background: #f1f1f1;
border-radius: 3px;
}
-
+
&::-webkit-scrollbar-thumb {
background: #c1c1c1;
border-radius: 3px;
-
+
&:hover {
background: #a8a8a8;
}
}
-
+
@media (min-width: 1600px) {
grid-template-columns: repeat(4, 1fr);
}
@@ -413,14 +444,14 @@ export default {
text-align: center;
padding: 60px 20px;
color: #909399;
-
+
i {
font-size: 48px;
margin-bottom: 16px;
display: block;
color: #c0c4cc;
}
-
+
p {
margin: 0;
font-size: 14px;
@@ -436,51 +467,51 @@ export default {
flex-direction: column;
transition: all 0.3s ease;
height: 100%;
-
+
&:hover {
border-color: #409eff;
box-shadow: 0 2px 6px rgba(64, 158, 255, 0.12);
}
-
+
.card-header {
padding: 6px 8px;
border-bottom: 1px solid #e4e7ed;
background-color: #fafafa;
-
+
.header-left {
display: flex;
align-items: center;
gap: 6px;
}
-
+
.coil-no-tag {
font-weight: 600;
font-size: 11px;
padding: 2px 6px;
}
-
+
.material-type {
font-size: 11px;
color: #606266;
font-weight: 500;
}
-
+
.param-icon {
font-size: 13px;
color: #909399;
cursor: pointer;
transition: color 0.3s;
-
+
&:hover {
color: #409eff;
}
}
}
-
+
.card-body {
padding: 8px;
flex: 1;
-
+
.info-list {
.info-item {
display: flex;
@@ -488,11 +519,11 @@ export default {
margin-bottom: 4px;
font-size: 11px;
line-height: 1.4;
-
+
&:last-child {
margin-bottom: 0;
}
-
+
.info-label {
color: #909399;
white-space: nowrap;
@@ -500,7 +531,7 @@ export default {
min-width: 40px;
font-size: 11px;
}
-
+
.info-value {
color: #303133;
flex: 1;
@@ -512,14 +543,14 @@ export default {
}
}
}
-
+
.card-footer {
padding: 6px 8px;
border-top: 1px solid #e4e7ed;
background-color: #fafafa;
display: flex;
justify-content: center;
-
+
.action-btn {
width: 100%;
padding: 5px 10px;
@@ -537,32 +568,32 @@ export default {
flex-direction: column;
transition: all 0.3s ease;
height: 100%;
-
+
&:hover {
border-color: #67c23a;
box-shadow: 0 2px 8px rgba(103, 194, 58, 0.15);
}
-
+
&.urgent-card {
border-left: 4px solid #f56c6c;
background-color: #fef0f0;
-
+
&:hover {
border-color: #f56c6c;
box-shadow: 0 2px 8px rgba(245, 108, 108, 0.2);
}
}
-
+
&.important-card {
border-left: 4px solid #e6a23c;
background-color: #fdf6ec;
-
+
&:hover {
border-color: #e6a23c;
box-shadow: 0 2px 8px rgba(230, 162, 60, 0.2);
}
}
-
+
.card-header {
padding: 10px 12px;
border-bottom: 1px solid #e4e7ed;
@@ -570,41 +601,41 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
-
+
.coil-no-tag {
font-weight: 600;
font-size: 12px;
}
-
+
.status-tags {
display: flex;
gap: 4px;
flex-wrap: wrap;
}
}
-
+
.card-body {
padding: 12px;
flex: 1;
-
+
.info-list {
.info-item {
display: flex;
align-items: center;
margin-bottom: 8px;
font-size: 12px;
-
+
&:last-child {
margin-bottom: 0;
}
-
+
.info-label {
color: #909399;
white-space: nowrap;
margin-right: 6px;
min-width: 50px;
}
-
+
.info-value {
color: #303133;
flex: 1;
@@ -612,14 +643,14 @@ export default {
text-overflow: ellipsis;
white-space: nowrap;
}
-
+
.action-type-tag {
font-size: 11px;
}
}
}
}
-
+
.card-footer {
padding: 10px 12px;
border-top: 1px solid #e4e7ed;
@@ -627,7 +658,7 @@ export default {
display: flex;
justify-content: center;
gap: 6px;
-
+
.action-btn {
flex: 1;
font-size: 12px;
@@ -656,7 +687,7 @@ export default {
padding-bottom: 8px;
border-bottom: 1px solid #e4e7ed;
}
-
+
.params-list {
.param-item {
.param-row {
@@ -664,17 +695,17 @@ export default {
margin-bottom: 6px;
font-size: 12px;
line-height: 1.5;
-
+
&:last-child {
margin-bottom: 0;
}
-
+
.param-label {
color: #909399;
min-width: 70px;
margin-right: 8px;
}
-
+
.param-value {
color: #303133;
flex: 1;
@@ -682,7 +713,7 @@ export default {
}
}
}
-
+
.param-divider {
height: 1px;
background-color: #e4e7ed;
diff --git a/klp-ui/src/views/wms/delivery/plan/index.vue b/klp-ui/src/views/wms/delivery/plan/index.vue
index e738fca5..5ebf5c09 100644
--- a/klp-ui/src/views/wms/delivery/plan/index.vue
+++ b/klp-ui/src/views/wms/delivery/plan/index.vue
@@ -175,6 +175,7 @@ export default {
pageSize: 10,
planName: undefined,
planDate: undefined,
+ planType: 0,
},
// 表单参数
form: {},
@@ -214,6 +215,7 @@ export default {
planId: undefined,
planName: undefined,
planDate: undefined,
+ planType: 0,
remark: undefined,
delFlag: undefined,
createTime: undefined,
@@ -247,6 +249,8 @@ export default {
this.form.planDate = new Date().toLocaleString().replace('T', ' ').replace().replace(/\//g, '-')
// 发货计划名称格式为年-月-日命名
this.form.planName = new Date().toLocaleDateString().replace(/\//g, '-') + '发货计划'
+ // 计划类型为发货计划
+ this.form.planType = 0
this.open = true;
this.title = "添加发货计划";
},
diff --git a/klp-ui/src/views/wms/delivery/waybill/index.vue b/klp-ui/src/views/wms/delivery/waybill/index.vue
index 3acb44ee..fe35a2d0 100644
--- a/klp-ui/src/views/wms/delivery/waybill/index.vue
+++ b/klp-ui/src/views/wms/delivery/waybill/index.vue
@@ -82,13 +82,12 @@
-
-
+
@@ -168,7 +167,7 @@ export default {
showSearch: true,
// 总条数
total: 0,
- // 发货单主表格数据
+ // 发货单表格数据
deliveryWaybillList: [],
waybillId: null,
// 打印相关数据
@@ -213,7 +212,8 @@ export default {
planQueryParams: {
pageNum: 1,
pageSize: 100, // 增大分页大小以确保树形结构显示足够数据
- planName: undefined
+ planName: undefined,
+ planType: 0,
}
};
},
@@ -222,7 +222,7 @@ export default {
this.getPlanList();
},
methods: {
- /** 查询发货单主列表 */
+ /** 查询发货单列表 */
getList() {
this.loading = true;
// 确保查询参数包含planId
@@ -334,7 +334,7 @@ export default {
}
}
this.open = true;
- this.title = "添加发货单主";
+ this.title = "添加发货单";
},
/** 修改按钮操作 */
handleUpdate(row) {
@@ -345,7 +345,7 @@ export default {
this.loading = false;
this.form = response.data;
this.open = true;
- this.title = "修改发货单主";
+ this.title = "修改发货单";
});
},
/** 提交按钮 */
@@ -376,7 +376,7 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const waybillIds = row.waybillId || this.ids;
- this.$modal.confirm('是否确认删除发货单主编号为"' + waybillIds + '"的数据项?').then(() => {
+ this.$modal.confirm('是否确认删除发货单编号为"' + waybillIds + '"的数据项?').then(() => {
this.loading = true;
return delDeliveryWaybill(waybillIds);
}).then(() => {
diff --git a/klp-ui/src/views/wms/receive/detail/index.vue b/klp-ui/src/views/wms/receive/detail/index.vue
new file mode 100644
index 00000000..4629f6cc
--- /dev/null
+++ b/klp-ui/src/views/wms/receive/detail/index.vue
@@ -0,0 +1,365 @@
+
+
+
+
+
+
+
+
+
+
+ {{ data.planName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 刷新
+
+
+
+
+
+
+
+ {{ scope.row.currentCoilNo }}
+
+
+
+
+
+ 普通
+ 重要
+ 紧急
+
+
+
+
+
+
+ 扫码
+
+
+ 手动
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}') }}
+
+
+
+
+
+
+ 已收货
+ 未收货
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsCoilPendingActionBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsCoilPendingActionBo.java
index f6f1cbf6..d4d2b87f 100644
--- a/klp-wms/src/main/java/com/klp/domain/bo/WmsCoilPendingActionBo.java
+++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsCoilPendingActionBo.java
@@ -28,6 +28,7 @@ public class WmsCoilPendingActionBo extends BaseEntity {
/**
* 关联的钢卷ID
*/
+ // 对于入库操作,这个时候还不存在钢卷,因此无法关联钢卷ID,因此先关联为0,如果id为0则跟未关联是相同的
@NotNull(message = "关联的钢卷ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long coilId;