现场wms使用优化

This commit is contained in:
liuhanqing
2026-01-23 14:46:47 +08:00
parent f9ecde29fc
commit 695a065dc0
31 changed files with 1389 additions and 48 deletions

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询托盘统计列表
export function listTraycodeStatic(query) {
return request({
url: '/search/traycodeStatic/list',
method: 'get',
params: query
})
}
// 查询托盘统计详细
export function getTraycodeStatic(warehouseId) {
return request({
url: '/search/traycodeStatic/' + warehouseId,
method: 'get'
})
}
// 新增托盘统计
export function addTraycodeStatic(data) {
return request({
url: '/search/traycodeStatic',
method: 'post',
data: data
})
}
// 修改托盘统计
export function updateTraycodeStatic(data) {
return request({
url: '/search/traycodeStatic',
method: 'put',
data: data
})
}
// 删除托盘统计
export function delTraycodeStatic(warehouseId) {
return request({
url: '/search/traycodeStatic/' + warehouseId,
method: 'delete'
})
}

View File

@@ -108,7 +108,7 @@
<dict-tag :options="dict.type.mydo_job_status" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="任务类型" align="left" prop="inOrOut">
<el-table-column label="任务类型" align="left" prop="inOrOut" width="120">
<template slot-scope="scope">
<dict-tag :options="dict.type.in_job_type" :value="scope.row.inOrOut"/>
</template>
@@ -118,6 +118,7 @@
<el-table-column label="货位" align="left" prop="cargoSpaceName" width="140" />
<el-table-column label="重量" align="left" prop="lineId" />
<el-table-column label="容量" align="left" prop="workshopId" />
<el-table-column label="部门" align="left" prop="departmentName" />
<el-table-column label="仓库" align="left" prop="warehouseName" />
<el-table-column label="创建时间" align="left" prop="createTime" width="180"/>
<el-table-column label="开始时间" align="left" prop="startTime" width="180"/>

View File

@@ -127,7 +127,7 @@
<dict-tag :options="dict.type.on_line_type" :value="scope.row.onLineType"/>
</template>
</el-table-column>-->
<el-table-column label="任务类型" align="left" prop="inOrOut"> <!-- 任务类型 -->
<el-table-column label="任务类型" align="left" prop="inOrOut" width="120"> <!-- 任务类型 -->
<template slot-scope="scope">
<dict-tag :options="dict.type.out_job_type" :value="scope.row.inOrOut"/>
</template>
@@ -136,14 +136,14 @@
<!-- <el-table-column :label="$t('outJobManagement.customerId')" align="left" prop="customerId" /> &lt;!&ndash; 客户ID &ndash;&gt;-->
<el-table-column label="托盘码" align="left" prop="trayCode" /> <!-- 托盘码 -->
<el-table-column label="巷道" align="left" prop="roadwayId" /> <!-- 巷道ID -->
<el-table-column label="货位" align="left" prop="cargoSpaceName" /> <!-- 货位ID -->
<el-table-column label="货位" align="left" prop="cargoSpaceName" width="120"/> <!-- 货位ID -->
<!-- <el-table-column label="订单号" align="left" prop="lineId" /> &lt;!&ndash; 结束时间 &ndash;&gt;-->
<el-table-column label="优先级" align="left" prop="priority" /> <!-- 优先级 -->
<!-- <el-table-column label="执行阶段" align="left" prop="executionPhase"> &lt;!&ndash; 执行阶段 &ndash;&gt;-->
<!-- <template slot-scope="scope">-->
<!-- <dict-tag :options="dict.type.execution_phase_type" :value="scope.row.executionPhase"/>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="执行阶段" align="left" prop="executionPhase"> <!-- 执行阶段 -->
<template slot-scope="scope">
<dict-tag :options="dict.type.execution_phase_type" :value="scope.row.executionPhase"/>
</template>
</el-table-column>
<el-table-column label="仓库" align="left" prop="warehouseName" />
<el-table-column label="出口" align="left" prop="exitId">
@@ -151,6 +151,7 @@
<dict-tag :options="dict.type.exit_type" :value="scope.row.exitId"/>
</template>
</el-table-column>
<el-table-column label="部门" align="left" prop="departmentName" />
<el-table-column label="创建时间" align="left" prop="createTime" width="160"/> <!-- 创建时间 -->
<el-table-column label="开始时间" align="left" prop="startTime" width="160"/> <!-- 开始时间 -->
<el-table-column label="结束时间" align="left" prop="finishTime" width="160"/> <!-- 结束时间 -->

View File

@@ -124,7 +124,7 @@
<!-- 主表数据 -->
<el-table v-loading="loading" :data="outStockoutList" @selection-change="handleSelectionChange" @row-click="handleRowClick" max-height="400">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="出库单编号" align="left" prop="stockoutId" /> <!-- 出库单编号 -->
<el-table-column label="出库单编号" align="left" prop="stockoutId" width="160"/> <!-- 出库单编号 -->
<!-- <el-table-column label="仓库" align="left" prop="warehouseName" />&lt;!&ndash; 仓库名称 &ndash;&gt;-->
<el-table-column label="出库类型" align="left" prop="outType"> <!-- 出库类型 -->
<template slot-scope="scope">
@@ -146,9 +146,9 @@
<!-- <el-table-column :label="'客户编码'" align="left" prop="customerNo" />&lt;!&ndash; 客户编码 &ndash;&gt;-->
<!-- <el-table-column label="客户名称" align="left" prop="customerName" />-->
<el-table-column label="建单人" align="left" prop="createManId" /> <!-- 建单人 -->
<el-table-column label="创建时间" align="left" prop="createDate" /><!-- 创建时间 -->
<el-table-column label="开始时间" align="left" prop="startDate" /><!-- 开始时间 -->
<el-table-column label="确认时间" align="left" prop="finishDate" /> <!-- 确认时间 -->
<el-table-column label="创建时间" align="left" prop="createDate" width="160"/><!-- 创建时间 -->
<el-table-column label="开始时间" align="left" prop="startDate" width="160"/><!-- 开始时间 -->
<el-table-column label="确认时间" align="left" prop="finishDate" width="160"/> <!-- 确认时间 -->
<el-table-column label="备注" align="center" prop="remark" /> <!-- 备注 -->
</el-table>

View File

@@ -291,7 +291,7 @@
<el-table-column label="仓库名称" align="center" prop="warehouseName"/>
<el-table-column label="库存编码" align="center" prop="stockId" width="160"/>
<el-table-column label="库位编码" align="center" prop="cargoSpaceId" width="160"/>
<el-table-column label="托盘" align="center" prop="trayCode"/>
<el-table-column label="托盘" align="center" prop="trayCode" width="120"/>
<el-table-column label="库存状态" align="center" prop="stockStatus" >
<template slot-scope="scope">
<dict-tag :options="dict.type.stock_status" :value="scope.row.stockStatus"/>

View File

@@ -0,0 +1,348 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="仓库编码" prop="warehouseId">
<el-input
v-model="queryParams.warehouseId"
placeholder="请输入仓库编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="仓库名称" prop="warehouseName">
<el-input
v-model="queryParams.warehouseName"
placeholder="请输入仓库名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="货位编码" prop="cargoSpaceId">
<el-input
v-model="queryParams.cargoSpaceId"
placeholder="请输入货位编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="货位名称" prop="cargoSpaceName">
<el-input
v-model="queryParams.cargoSpaceName"
placeholder="请输入货位名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="巷道" prop="roadwayId">
<el-input
v-model="queryParams.roadwayId"
placeholder="请输入巷道"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="排" prop="thePlatoon">
<el-input
v-model="queryParams.thePlatoon"
placeholder="请输入排"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="列" prop="theColumn">
<el-input
v-model="queryParams.theColumn"
placeholder="请输入列"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="层" prop="theFloor">
<el-input
v-model="queryParams.theFloor"
placeholder="请输入层"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="托盘号" prop="trayCode">
<el-input
v-model="queryParams.trayCode"
placeholder="请输入托盘号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="部门" prop="model">
<el-input
v-model="queryParams.model"
placeholder="请输入部门"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="部门名称" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入部门名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="入库时间" prop="inDate">
<el-input
v-model="queryParams.inDate"
placeholder="请输入入库时间"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['search:traycodeStatic:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="traycodeStaticList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="仓库编码" align="center" prop="warehouseId" />
<el-table-column label="仓库名称" align="center" prop="warehouseName" />
<el-table-column label="货位编码" align="center" prop="cargoSpaceId" />
<el-table-column label="货位名称" align="center" prop="cargoSpaceName" />
<el-table-column label="巷道" align="center" prop="roadwayId" />
<el-table-column label="排" align="center" prop="thePlatoon" />
<el-table-column label="列" align="center" prop="theColumn" />
<el-table-column label="层" align="center" prop="theFloor" />
<el-table-column label="托盘号" align="center" prop="trayCode" />
<!-- <el-table-column label="部门" align="center" prop="model" />-->
<el-table-column label="部门名称" align="center" prop="deptName" />
<el-table-column label="入库时间" align="center" prop="inDate" width="160"/>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改托盘统计对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="仓库编码" prop="warehouseId">
<el-input v-model="form.warehouseId" placeholder="请输入仓库编码" />
</el-form-item>
<el-form-item label="仓库名称" prop="warehouseName">
<el-input v-model="form.warehouseName" placeholder="请输入仓库名称" />
</el-form-item>
<el-form-item label="货位编码" prop="cargoSpaceId">
<el-input v-model="form.cargoSpaceId" placeholder="请输入货位编码" />
</el-form-item>
<el-form-item label="货位名称" prop="cargoSpaceName">
<el-input v-model="form.cargoSpaceName" placeholder="请输入货位名称" />
</el-form-item>
<el-form-item label="巷道" prop="roadwayId">
<el-input v-model="form.roadwayId" placeholder="请输入巷道" />
</el-form-item>
<el-form-item label="排" prop="thePlatoon">
<el-input v-model="form.thePlatoon" placeholder="请输入排" />
</el-form-item>
<el-form-item label="列" prop="theColumn">
<el-input v-model="form.theColumn" placeholder="请输入列" />
</el-form-item>
<el-form-item label="层" prop="theFloor">
<el-input v-model="form.theFloor" placeholder="请输入层" />
</el-form-item>
<el-form-item label="托盘号" prop="trayCode">
<el-input v-model="form.trayCode" placeholder="请输入托盘号" />
</el-form-item>
<el-form-item label="部门" prop="model">
<el-input v-model="form.model" placeholder="请输入部门" />
</el-form-item>
<el-form-item label="部门名称" prop="deptName">
<el-input v-model="form.deptName" placeholder="请输入部门名称" />
</el-form-item>
<el-form-item label="入库时间" prop="inDate">
<el-input v-model="form.inDate" placeholder="请输入入库时间" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listTraycodeStatic, getTraycodeStatic, delTraycodeStatic, addTraycodeStatic, updateTraycodeStatic } from "@/api/search/traycodeStatic"
export default {
name: "TraycodeStatic",
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 托盘统计表格数据
traycodeStaticList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
warehouseId: null,
warehouseName: null,
cargoSpaceId: null,
cargoSpaceName: null,
roadwayId: null,
thePlatoon: null,
theColumn: null,
theFloor: null,
trayCode: null,
model: null,
deptName: null,
inDate: null
},
// 表单参数
form: {},
// 表单校验
rules: {
}
}
},
created() {
this.getList()
},
methods: {
/** 查询托盘统计列表 */
getList() {
this.loading = true
listTraycodeStatic(this.queryParams).then(response => {
this.traycodeStaticList = response.rows
this.total = response.total
this.loading = false
})
},
// 取消按钮
cancel() {
this.open = false
this.reset()
},
// 表单重置
reset() {
this.form = {
warehouseId: null,
warehouseName: null,
cargoSpaceId: null,
cargoSpaceName: null,
roadwayId: null,
thePlatoon: null,
theColumn: null,
theFloor: null,
trayCode: null,
model: null,
deptName: null,
inDate: null
}
this.resetForm("form")
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm")
this.handleQuery()
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.warehouseId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.open = true
this.title = "添加托盘统计"
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const warehouseId = row.warehouseId || this.ids
getTraycodeStatic(warehouseId).then(response => {
this.form = response.data
this.open = true
this.title = "修改托盘统计"
})
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.warehouseId != null) {
updateTraycodeStatic(this.form).then(response => {
this.$modal.msgSuccess("修改成功")
this.open = false
this.getList()
})
} else {
addTraycodeStatic(this.form).then(response => {
this.$modal.msgSuccess("新增成功")
this.open = false
this.getList()
})
}
}
})
},
/** 删除按钮操作 */
handleDelete(row) {
const warehouseIds = row.warehouseId || this.ids
this.$modal.confirm('是否确认删除托盘统计编号为"' + warehouseIds + '"的数据项?').then(function() {
return delTraycodeStatic(warehouseIds)
}).then(() => {
this.getList()
this.$modal.msgSuccess("删除成功")
}).catch(() => {})
},
/** 导出按钮操作 */
handleExport() {
this.download('search/traycodeStatic/export', {
...this.queryParams
}, `traycodeStatic_${new Date().getTime()}.xlsx`)
}
}
}
</script>

View File

@@ -123,9 +123,9 @@
<el-table-column label="层" align="center" prop="theFloor"/>
<el-table-column label="重量" align="center" prop="theType"/>
<el-table-column label="容量" align="center" prop="theTypeName"/>
<el-table-column label="部门" align="center" prop="model">
<el-table-column label="部门" align="center" prop="issDouble">
<template slot-scope="scope">
<dict-tag :options="getDeptDictOptions(scope.row)" :value="scope.row.model"/>
<dict-tag :options="getDeptDictOptions(scope.row)" :value="scope.row.issDouble"/>
</template>
</el-table-column>
<el-table-column width=120 label="操作" align="center" class-name="small-padding fixed-width"> <!-- 操作 -->
@@ -262,9 +262,16 @@
</div>
<el-form ref="form" :model="form" :rules="rules" label-width="90px">
<el-row style="margin-bottom: 10px; margin-left: 20px;">
<el-button type="primary" icon="el-icon-download" size="mini" @click="openImportDialog">导入入库子单</el-button>
</el-row>
<el-form-item label="子单编码" prop="stockinDetailId">
<el-input v-model="form.stockinDetailId" placeholder="请输入子单编码" />
</el-form-item>
<el-form-item label="合同号" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入合同号" />
</el-form-item>
<el-form-item label="产品号" prop="power">
<el-input v-model="form.power" placeholder="请输入产品号" />
</el-form-item>
@@ -470,6 +477,52 @@
<el-button @click="cargoSpaceSelectVisible = false">取消</el-button>
</div>
</el-dialog>
<!-- 导入入库子单弹窗 -->
<el-dialog title="导入入库子单" :visible.sync="importDialogVisible" width="900px" append-to-body>
<el-form :model="importQueryParams" ref="importQueryForm" :inline="true" size="mini">
<el-form-item label="合同号" prop="spare6">
<el-input v-model="importQueryParams.spare6" placeholder="请输入合同号" clearable @keyup.enter.native="handleImportQuery"/>
</el-form-item>
<el-form-item label="产品号" prop="spare7">
<el-input v-model="importQueryParams.spare7" placeholder="请输入产品号" clearable @keyup.enter.native="handleImportQuery"/>
</el-form-item>
<el-form-item label="代号" prop="spare9">
<el-input v-model="importQueryParams.spare9" placeholder="请输入代号" clearable @keyup.enter.native="handleImportQuery"/>
</el-form-item>
<el-form-item label="台次" prop="spare5">
<el-input v-model="importQueryParams.spare5" placeholder="请输入台次" clearable @keyup.enter.native="handleImportQuery"/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleImportQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetImportQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="importLoading" :data="importList" @current-change="handleImportCurrentChange" highlight-current-row height="400">
<el-table-column label="入库单号" align="center" prop="stockinId" />
<el-table-column label="合同号" align="center" prop="spare6" />
<el-table-column label="产品号" align="center" prop="spare7" />
<el-table-column label="代号" align="center" prop="spare9" />
<el-table-column label="台次" align="center" prop="spare5" />
<el-table-column label="物料编码" align="center" prop="productId" />
<el-table-column label="物料名称" align="center" prop="productName" />
<el-table-column label="数量" align="center" prop="quantityX" />
</el-table>
<pagination
v-show="importTotal>0"
:total="importTotal"
:page.sync="importQueryParams.pageNum"
:limit.sync="importQueryParams.pageSize"
@pagination="handleImportQuery"
/>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitImport">确 定</el-button>
<el-button @click="importDialogVisible = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
@@ -485,6 +538,7 @@ import {
import {listWarehouse} from "@/api/bas/warehouse"
import {listBasProduct} from "@/api/bas/BasProduct"
import {listCargoSpace} from "@/api/bas/cargoSpace"
import { listStockInDetail } from "@/api/in/stockInDetail"
export default {
name: "Management",
@@ -597,7 +651,25 @@ export default {
},
selectedCargoSpace: null,
// 子表加载状态
detailLoading: false
detailLoading: false,
// 选中的库存数据
selectedStockData: [],
// 导入相关
importDialogVisible: false,
importLoading: false,
importList: [],
importTotal: 0,
importQueryParams: {
pageNum: 1,
pageSize: 10,
orderId: null,
power: null,
distribution: null,
spare5: null
},
importCurrentRow: null
}
},
created() {
@@ -911,6 +983,59 @@ export default {
} else {
this.$modal.msgWarning("请选择一个货位")
}
},
/** 打开导入弹窗 */
openImportDialog() {
this.importDialogVisible = true;
this.resetImportQuery();
},
/** 导入查询 */
handleImportQuery() {
this.importLoading = true;
listStockInDetail(this.importQueryParams).then(response => {
this.importList = response.rows;
this.importTotal = response.total;
this.importLoading = false;
});
},
/** 重置导入查询 */
resetImportQuery() {
this.importQueryParams = {
pageNum: 1,
pageSize: 10,
orderId: null,
power: null,
distribution: null,
spare5: null
};
this.importList = [];
this.importTotal = 0;
this.importCurrentRow = null;
},
/** 导入行选中 */
handleImportCurrentChange(val) {
this.importCurrentRow = val;
},
/** 确认导入 */
submitImport() {
if (!this.importCurrentRow) {
this.$modal.msgWarning("请选择一条数据");
return;
}
const row = this.importCurrentRow;
// 回填数据
this.form.orderId = row.spare6;
this.form.power = row.spare7;
this.form.distribution = row.spare9;
this.form.spare5 = row.spare5;
this.form.productId = row.productId;
this.form.productName = row.productName;
this.form.quantity = row.quantityX;
this.form.stockinDetailId = row.stockinDetailId;
this.importDialogVisible = false;
this.$modal.msgSuccess("导入数据成功");
}
}
}

View File

@@ -93,7 +93,7 @@
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
type="primary"
plain
icon="el-icon-download"
size="mini"
@@ -111,9 +111,14 @@
<dict-tag :options="dict.type.warehouse" :value="scope.row.warehouseId"/>
</template>
</el-table-column>
<el-table-column label="库存编码" align="center" prop="stockId" width="160"/>
<el-table-column label="货位名称" align="center" prop="cargoSpaceName" />
<el-table-column label="托盘码" align="center" prop="trayCode" />
<el-table-column label="库存编码" align="center" prop="stockId" width="140"/>
<el-table-column label="货位名称" align="center" prop="cargoSpaceName" width="120"/>
<el-table-column label="巷道" align="center" prop="roadwayId" width="80"/>
<el-table-column label="排" align="center" prop="thePlatoon" />
<el-table-column label="列" align="center" prop="theColumn" />
<el-table-column label="层" align="center" prop="theFloor" />
<el-table-column label="托盘码" align="center" prop="trayCode" width="120"/>
<el-table-column label="部门" align="center" prop="deptName" width="120"/>
<el-table-column label="合同号" align="center" prop="orderId" />
<el-table-column label="产品号" align="center" prop="power" />
<el-table-column label="代号" align="center" prop="distribution" />