盘点上报

master
Mr.sun 2 years ago
parent 036cdd90d3
commit 8b4a8e02ba
  1. 20
      src/api/libraryManage/inventory.js
  2. 5
      src/router/index.js
  3. 17
      src/views/libraryManage/inventory/InventoryEntry.vue
  4. 308
      src/views/libraryManage/inventory/auditDetail/index.vue
  5. 287
      src/views/libraryManage/inventory/config.js
  6. 111
      src/views/libraryManage/inventory/inventoryAudit.vue

@ -127,10 +127,26 @@ export function auditList(query) {
}
//审核或者反审
export function auditConfirm(data) {
export function reportConfirm(data) {
return request({
url: "/wms/stock/inv/auditConfirm",
url: "/wms/stock/inv/reportConfirm",
method: "post",
data,
});
}
//数据上报明细列表
export function getReportDetailList(data) {
return request({
url: "/wms/stock/inv/getReportDetailList",
method: "get",
params:data,
});
}
//数据上报
export function getReportListGoodsGroup(data) {
return request({
url: "/wms/stock/inv/getReportListGoodsGroup",
method: "get",
params:data,
});
}

@ -99,6 +99,11 @@ export const constantRoutes = [
component: () =>import("@/views/libraryManage/unlockInstock/unlockDetail/index"),
hidden: true,
},
{
path: "/libraryManage/inventory/auditDetail/index",
component: () =>import("@/views/libraryManage/inventory/auditDetail/index"),
hidden: true,
},
],
},
// {

@ -46,21 +46,6 @@
clearable
></el-input>
</el-form-item>
<!-- <el-form-item label="生产计划日期">
<el-date-picker
style="width: 280px"
v-model="value1"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '00:00:00']"
>
</el-date-picker>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
@ -158,7 +143,7 @@ import { Debounce, getDictLabel } from '@/utils/index'
import moment from 'moment'
export default {
name: '',
dicts: ['goods_storage_conditions', 'goods_classify', 'goods_unit', 'inv_type_dict', 'inv_status'],
dicts: ['inv_type_dict', 'inv_status'],
data() {
return {
enterForm: {

@ -0,0 +1,308 @@
<template>
<div class="app-container">
<div class="search-box">
<el-form
:inline="true"
:model="queryParams"
>
<el-form-item
label="盘点方式"
prop="invWay"
>
<el-radio-group v-model="queryParams.invWay">
<el-radio label="open">明盘</el-radio>
<el-radio label="close">盲盘</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="单据编号">
<el-input
v-model="queryParams.invOrderNo"
placeholder="请输入单据编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="货位">
<el-input
v-model="queryParams.locationCode"
placeholder="请输货位"
clearable
></el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@click="getList"
>搜索</el-button>
<el-button @click="resetQuery">重置</el-button>
</el-form-item>
<div class="opt-box-right">
<el-button
@click="returnBack"
type="primary"
>返回上一级</el-button>
</div>
</el-form>
</div>
<div class=" layout-full">
<heavy-table
class="heavy-table tablem"
highlight-current-row
:data="BaseBillInPlanList"
:loading="loading"
:paging="paging"
:config="tableConfig"
style="margin-top:38px"
:tableProps="tableProps"
@current-change="handleCurrentChange"
@handleUpdate="handleUpdate"
@handleDetail="handleDetail"
>
</heavy-table>
</div>
</div>
</template>
<script>
import { IniteminCancel, selectBusinItemInDtlList, InPlanCancel, selectBusinItemInDtlListExport } from '@/api/wms/busFunctions/inManagement/planInStore'
import { getReportDetailList } from '@/api/libraryManage/inventory'
import moment from 'moment'
export default {
name: 'PayInto',
dicts: ['inv_type_dict', 'inv_status'],
data() {
const _that = this
return {
paging: {
page: 1, //
size: 50, //
total: 0
},
//
dateRange: [],
//
exportList: [],
tableConfig: [
{
label: '序号',
prop: 'index',
type: 'index',
istrue: true,
width: 60
},
{
label: '商品编号',
prop: 'goodNo',
istrue: true
},
{
label: '商品名称',
prop: 'goodName',
istrue: true
},
{
label: '显示货位',
prop: 'locationName',
istrue: true
},
{
label: '区域编号',
prop: 'areaCode',
istrue: true
},
{
label: '盘点单号',
prop: 'invOrderNo',
istrue: true
},
{
label: '批号',
prop: 'batchNo',
istrue: true
},
{
label: '盘点数量',
prop: 'invQty',
istrue: true
},
{
label: '库存数量',
prop: 'quantity',
istrue: true
},
{
label: '库别',
prop: 'storageName',
istrue: true
},
{
label: '货位分组',
prop: 'locationGroup',
istrue: true
},
{
label: '执行盘点时间',
prop: 'execTime',
istrue: true
},
{
label: '单位',
prop: 'unit',
istrue: true,
'min-width': 100
}
],
tableProps: {
'max-height': 550
},
//
DeriveList: [],
//
AreaList: [],
//
loading: true,
//
dateRange: '',
//
showSearch: true,
//
BaseBillInPlanList: [],
//
title: '',
//
jsonFields: {},
//
open: false,
//
openAllocation: false,
//
queryParams: {
pageNum: 1,
pageSize: 50
},
//
form: {}
}
},
created() {
this.queryParams.planId = this.$route.query.planId
this.getList()
this.jsonFields = {}
this.tableConfig.forEach((item) => {
this.jsonFields[item.label] = item.prop
})
},
methods: {
returnBack() {
this.$router.go(-1)
},
//
handleCurrentChange(val) {
if (Object.prototype.toString.call(val) === '[object Object]') {
this.queryParams.pageSize = val.size
this.paging.size = val.size
this.getList()
} else {
this.paging.page = val
this.queryParams.pageNum = val
this.getList()
}
},
/** 查询区域列表 */
getList() {
this.allNum = 0
this.loading = true
getReportDetailList(this.queryParams).then((response) => {
response.rows.forEach((item) => {
if (item.inStatus == '3') {
this.allNum += item.ttQtyRct
} else {
this.otherNum += item.ttQtyRct
}
})
this.BaseBillInPlanList = response.rows
this.paging.total = response.total
this.loading = false
})
// inventoryAudit({ ...this.queryParams }).then((res) => {
// this.exportList = res
// })
},
//
cancel() {
this.open = false
this.reset()
},
//
reset() {
this.form = {
id: null,
logicAreaName: nulls
}
this.resetForm('form')
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
// console.log(this.queryParams)
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.ttPart = ''
this.queryParams.inStatus = ''
this.resetForm('queryForm')
this.handleQuery()
},
//
handleDelete(row) {
// console.log(row)
this.$confirm('确定取消缴库吗?', '确认', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
IniteminCancel(row.id).then((response) => {
this.$modal.msgSuccess('取消缴库成功')
this.open = false
if (this.paging.total % 10 === 1) {
this.queryParams.pageNum == 1 ? this.queryParams.pageNum : (this.queryParams.pageNum = this.queryParams.pageNum - 1)
}
this.getList()
})
})
},
//
handleDetail(row) {
this.openAllocation = true
},
/** 修改按钮操作 */
handleUpdate(row) {
let tempRow = JSON.parse(JSON.stringify(row))
this.reset()
let data = {
id: tempRow.id,
qrCode: tempRow.qrCode,
derive: tempRow.derive,
logicAreaName: tempRow.logicAreaName,
derive: tempRow.derive,
remark: tempRow.remark
}
this.form = data
this.open = true
this.title = '编辑'
}
}
}
</script>

@ -11,16 +11,7 @@ export function tableConfig() {
type: "index",
istrue: true,
},
// {
// label: "业主编号",
// prop: "consignorCode",
// istrue: true,
// },
// {
// label: "业主名称",
// prop: "consignorName",
// istrue: true,
// },
{
label: "显示货位",
prop: "locationName",
@ -73,9 +64,6 @@ export function tableConfig() {
istrue: true,
"min-width": 100,
// filter(row, value) {
// return getDictLabel(value, _that.dict.type.goods_unit);
// },
},
],
configEntry: [
@ -86,27 +74,12 @@ export function tableConfig() {
type: "index",
istrue: true,
},
// {
// label: "业主编号",
// prop: "consignorCode",
// istrue: true,
// },
// {
// label: "业主名称",
// prop: "consignorName",
// istrue: true,
// },
{
label: "单据编号",
prop: "invOrderNo",
width:'160px',
istrue: true,
},
// {
// label: "日期",
// prop: "productionDate",
// istrue: true,
// },
{
label: "盘点类型",
prop: "invType",
@ -114,7 +87,6 @@ export function tableConfig() {
filter(row, value) {
return getDictLabel(value, _that.dict.type.inv_type_dict);
},
},
{
label: "盘点状态",
@ -124,97 +96,6 @@ export function tableConfig() {
return getDictLabel(value, _that.dict.type.inv_status);
},
},
// {
// label: "显示货位",
// prop: "locationName",
// istrue: true,
// },
// {
// label: "库别",
// prop: "storageName",
// istrue: true,
// },
// {
// label: "区域编号",
// prop: "areaCode",
// istrue: true,
// },
// {
// label: "产品编号",
// prop: "goodNo",
// istrue: true,
// },
// {
// label: "产品名称",
// prop: "goodName",
// istrue: true,
// },
// {
// label: "批号",
// prop: "batchNo",
// istrue: true,
// },
// {
// label: "包装单位",
// prop: "unit",
// istrue: true,
// // filter(row, value) {
// // return getDictLabel(value, _that.dict.type.goods_unit);
// // },
// },
// {
// label: "包装数量",
// prop: "packageQty",
// istrue: true,
// },
// {
// label: "生产厂家",
// prop: "factory",
// istrue: true,
// },
// {
// label: "产地",
// prop: "waster",
// istrue: true,
// },
// {
// label: "件数",
// prop: "caseQty",
// istrue: true,
// },
// {
// label: "零散数",
// prop: "pieceQty",
// istrue: true,
// },
// {
// label: "数量",
// prop: "qty",
// istrue: true,
// },
// {
// label: "实盘件数",
// prop: "invCase",
// istrue: true,
// type: "slot",
// slotName: "invCase",
// },
// {
// label: "实盘零散数",
// prop: "invPiece",
// istrue: true,
// type: "slot",
// slotName: "invPiece",
// "min-width": 120,
// },
// {
// label: "实盘数量",
// prop: "invQty",
// istrue: true,
// type: "slot",
// slotName: "invQty",
// },
{
label: "显示货位",
prop: "locationName",
@ -278,9 +159,6 @@ export function tableConfig() {
prop: "unit",
istrue: true,
"min-width": 100,
// filter(row, value) {
// return getDictLabel(value, _that.dict.type.goods_unit);
// },
},
],
rulesEntry: {
@ -307,21 +185,6 @@ export function tableConfig() {
prop: "consignorCode",
istrue: true,
},
// {
// label: "业主名称",
// prop: "consignorName",
// istrue: true,
// },
// {
// label: "单据编号",
// prop: "invOrderNo",
// istrue: true,
// },
// {
// label: "日期",
// prop: "productionDate",
// istrue: true,
// },
{
label: "盘点类型",
prop: "invType",
@ -355,71 +218,24 @@ export function tableConfig() {
prop: "goodName",
istrue: true,
},
// {
// label: "批号",
// prop: "batchNo",
// istrue: true,
// },
{
label: "包装单位",
prop: "unit",
istrue: true,
// filter(row, value) {
// return getDictLabel(value, _that.dict.type.goods_unit);
// },
},
{
label: "包装数量",
prop: "packageQty",
istrue: true,
},
// {
// label: "生产厂家",
// prop: "factory",
// istrue: true,
// },
// {
// label: "产地",
// prop: "waster",
// istrue: true,
// },
// {
// label: "件数",
// prop: "caseQty",
// istrue: true,
// },
// {
// label: "零散数",
// prop: "pieceQty",
// istrue: true,
// },
{
label: "数量",
prop: "quantity",
istrue: true,
},
// {
// label: "实盘件数",
// prop: "invCase",
// istrue: true,
// type: "slot",
// slotName: "invCase",
// },
// {
// label: "实盘零散数",
// prop: "invPiece",
// istrue: true,
// type: "slot",
// slotName: "invPiece",
// },
// {
// label: "实盘数量",
// prop: "invQty",
// istrue: true,
// type: "slot",
// slotName: "invPiece",
// },
],
rulesBlindPlate: {
invCase: [
@ -576,45 +392,11 @@ export function tableConfig() {
prop: "consignorCode",
istrue: true,
},
{
label: "业主名称",
prop: "consignorName",
istrue: true,
},
{
label: "单据编号",
prop: "invOrderNo",
width:'160px',
istrue: true,
},
{
label: "日期",
prop: "productionDate",
istrue: true,
},
{
label: "盘点类型",
prop: "invType",
istrue: true, //inv_type_dict
filter(row, value) {
return getDictLabel(value, _that.dict.type.inv_type_dict);
},
},
{
label: "显示货位",
prop: "locationName",
istrue: true,
},
{
label: "库别",
prop: "storageName",
istrue: true,
},
{
label: "区域编号",
prop: "areaCode",
istrue: true,
},
{
label: "产品编号",
prop: "goodNo",
@ -626,62 +408,19 @@ export function tableConfig() {
istrue: true,
},
{
label: "批号",
prop: "batchNo",
istrue: true,
},
{
label: "包装单位",
prop: "unit",
istrue: true,
},
{
label: "包装数量",
prop: "packageQty",
istrue: true,
},
{
label: "生产厂家",
prop: "factory",
label: '操作',
prop: 'operating',
istrue: true,
},
type: 'button',
width: 180,
fixed: 'right',
buttons: [
{
label: "产地",
prop: "waster",
istrue: true,
},
// {
// label: "件数",
// prop: "caseQty",
// istrue: true,
// },
// {
// label: "零散数",
// prop: "pieceQty",
// istrue: true,
// },
{
label: "数量",
prop: "quantity",
istrue: true,
name: '查看详情',
event: 'enterDetail'
}
],
},
// {
// label: "实盘件数",
// prop: "invCase",
// istrue: true,
// },
// {
// label: "实盘零散数",
// prop: "invPiece",
// istrue: true,
// },
// {
// label: "实盘数量",
// prop: "invQty",
// istrue: true,
// },
],
};
}

@ -2,7 +2,10 @@
<!-- 盘点审核 -->
<div class="app-container">
<div class="search-box">
<el-form :inline="true" :model="enterForm">
<el-form
:inline="true"
:model="enterForm"
>
<el-form-item label="单据编号">
<el-input
v-model="enterForm.invOrderNo"
@ -11,7 +14,10 @@
></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="queryTable">搜索</el-button>
<el-button
type="primary"
@click="queryTable"
>搜索</el-button>
<el-button @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
@ -24,17 +30,15 @@
type="primary"
@click="calce"
:disabled="!handleSelect.length != 0"
>审核</el-button
>
>上报</el-button>
</el-col>
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="primary"
@click="quren"
:disabled="!handleSelect.length != 0"
>反审</el-button
>
</el-col>
>反审</el-button>
</el-col> -->
</el-row>
</div>
</div>
@ -49,22 +53,23 @@
:tableProps="tableProps"
@current-change="queryTable"
@handleselection="handleselection"
@enterDetail="enterDetail"
>
</heavy-table>
</div>
</div>
</template>
<script>
import { tableConfig } from "./config.js";
import { Debounce, getDictLabel } from "@/utils/index";
import { auditList, auditConfirm } from "@/api/libraryManage/inventory";
import { tableConfig } from './config.js'
import { Debounce, getDictLabel } from '@/utils/index'
import { getReportDetailList, reportConfirm, getReportListGoodsGroup } from '@/api/libraryManage/inventory'
export default {
name: "Inventory",
dicts: ["goods_unit", "inv_type_dict"],
name: 'Inventory',
dicts: ['goods_unit', 'inv_type_dict'],
data() {
return {
enterForm: {
invOrderNo: "",
invOrderNo: ''
},
tableData: [],
handleSelect: [],
@ -73,81 +78,81 @@ export default {
paging: {
page: 1, //
size: 10, //
total: 0,
},
};
total: 0
}
}
},
mounted() {},
async created() {
this.tableConfig = await this.getTableHeaderCom(
"busin_inventory_audit",
tableConfig.call(this),
"configInventoryAudit"
);
this.queryTable();
this.tableConfig = await this.getTableHeaderCom('busin_inventory_audit', tableConfig.call(this), 'configInventoryAudit')
this.queryTable()
},
methods: {
//
handleselection(val) {
this.handleSelect = val.map((ele) => ele.id);
this.handleSelect = val.map((ele) => ele.id)
},
//
enterDetail(row) {
this.$router.push({ path: '/libraryManage/inventory/auditDetail/index', query: { goodNo: row.goodNo } })
},
//
resetQuery() {
this.enterForm = {};
this.enterForm = {}
},
//
queryTable() {
this.loading = true;
auditList({
this.loading = true
getReportListGoodsGroup({
pageSize: this.paging.size,
pageNum: this.paging.page,
...this.enterForm,
...this.enterForm
})
.then((response) => {
if (response.code === 200) {
this.loading = false;
this.paging.total = response.total;
this.tableData = response.rows;
this.loading = false
this.paging.total = response.total
this.tableData = response.rows
}
})
.catch(() => {
this.loading = false;
});
this.loading = false
})
},
tijiao(obj) {
auditConfirm(obj)
reportConfirm(obj)
.then((response) => {
if (response.code === 200) {
this.loading = false;
this.loading = false
this.$message({
message: "操作成功!",
type: "success",
});
this.queryTable();
message: '操作成功!',
type: 'success'
})
this.queryTable()
}
})
.catch(() => {
this.loading = false;
});
this.loading = false
})
},
//
quren() {
let obj2 = {
invStatus: "unapproved",
ids: this.handleSelect,
};
this.tijiao(obj2);
invStatus: 'unapproved',
ids: this.handleSelect
}
this.tijiao(obj2)
},
//
calce() {
let obj = {
invStatus: "approved", //unapproved
ids: this.handleSelect,
};
this.tijiao(obj);
},
},
};
invStatus: 'approved', //unapproved
ids: this.handleSelect
}
this.tijiao(obj)
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped></style>

Loading…
Cancel
Save