盘点上报

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({ return request({
url: "/wms/stock/inv/auditConfirm", url: "/wms/stock/inv/reportConfirm",
method: "post", method: "post",
data, 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"), component: () =>import("@/views/libraryManage/unlockInstock/unlockDetail/index"),
hidden: true, hidden: true,
}, },
{
path: "/libraryManage/inventory/auditDetail/index",
component: () =>import("@/views/libraryManage/inventory/auditDetail/index"),
hidden: true,
},
], ],
}, },
// { // {

@ -46,21 +46,6 @@
clearable clearable
></el-input> ></el-input>
</el-form-item> </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-form-item>
<el-button <el-button
type="primary" type="primary"
@ -158,7 +143,7 @@ import { Debounce, getDictLabel } from '@/utils/index'
import moment from 'moment' import moment from 'moment'
export default { export default {
name: '', name: '',
dicts: ['goods_storage_conditions', 'goods_classify', 'goods_unit', 'inv_type_dict', 'inv_status'], dicts: ['inv_type_dict', 'inv_status'],
data() { data() {
return { return {
enterForm: { 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", type: "index",
istrue: true, istrue: true,
}, },
// {
// label: "业主编号",
// prop: "consignorCode",
// istrue: true,
// },
// {
// label: "业主名称",
// prop: "consignorName",
// istrue: true,
// },
{ {
label: "显示货位", label: "显示货位",
prop: "locationName", prop: "locationName",
@ -73,9 +64,6 @@ export function tableConfig() {
istrue: true, istrue: true,
"min-width": 100, "min-width": 100,
// filter(row, value) {
// return getDictLabel(value, _that.dict.type.goods_unit);
// },
}, },
], ],
configEntry: [ configEntry: [
@ -86,27 +74,12 @@ export function tableConfig() {
type: "index", type: "index",
istrue: true, istrue: true,
}, },
// {
// label: "业主编号",
// prop: "consignorCode",
// istrue: true,
// },
// {
// label: "业主名称",
// prop: "consignorName",
// istrue: true,
// },
{ {
label: "单据编号", label: "单据编号",
prop: "invOrderNo", prop: "invOrderNo",
width:'160px', width:'160px',
istrue: true, istrue: true,
}, },
// {
// label: "日期",
// prop: "productionDate",
// istrue: true,
// },
{ {
label: "盘点类型", label: "盘点类型",
prop: "invType", prop: "invType",
@ -114,7 +87,6 @@ export function tableConfig() {
filter(row, value) { filter(row, value) {
return getDictLabel(value, _that.dict.type.inv_type_dict); return getDictLabel(value, _that.dict.type.inv_type_dict);
}, },
}, },
{ {
label: "盘点状态", label: "盘点状态",
@ -124,97 +96,6 @@ export function tableConfig() {
return getDictLabel(value, _that.dict.type.inv_status); 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: "显示货位", label: "显示货位",
prop: "locationName", prop: "locationName",
@ -278,9 +159,6 @@ export function tableConfig() {
prop: "unit", prop: "unit",
istrue: true, istrue: true,
"min-width": 100, "min-width": 100,
// filter(row, value) {
// return getDictLabel(value, _that.dict.type.goods_unit);
// },
}, },
], ],
rulesEntry: { rulesEntry: {
@ -307,21 +185,6 @@ export function tableConfig() {
prop: "consignorCode", prop: "consignorCode",
istrue: true, istrue: true,
}, },
// {
// label: "业主名称",
// prop: "consignorName",
// istrue: true,
// },
// {
// label: "单据编号",
// prop: "invOrderNo",
// istrue: true,
// },
// {
// label: "日期",
// prop: "productionDate",
// istrue: true,
// },
{ {
label: "盘点类型", label: "盘点类型",
prop: "invType", prop: "invType",
@ -355,71 +218,24 @@ export function tableConfig() {
prop: "goodName", prop: "goodName",
istrue: true, istrue: true,
}, },
// {
// label: "批号",
// prop: "batchNo",
// istrue: true,
// },
{ {
label: "包装单位", label: "包装单位",
prop: "unit", prop: "unit",
istrue: true, istrue: true,
// filter(row, value) {
// return getDictLabel(value, _that.dict.type.goods_unit);
// },
}, },
{ {
label: "包装数量", label: "包装数量",
prop: "packageQty", prop: "packageQty",
istrue: true, istrue: true,
}, },
// {
// label: "生产厂家",
// prop: "factory",
// istrue: true,
// },
// {
// label: "产地",
// prop: "waster",
// istrue: true,
// },
// {
// label: "件数",
// prop: "caseQty",
// istrue: true,
// },
// {
// label: "零散数",
// prop: "pieceQty",
// istrue: true,
// },
{ {
label: "数量", label: "数量",
prop: "quantity", prop: "quantity",
istrue: true, 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: { rulesBlindPlate: {
invCase: [ invCase: [
@ -576,45 +392,11 @@ export function tableConfig() {
prop: "consignorCode", prop: "consignorCode",
istrue: true, 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: "库别", label: "库别",
prop: "storageName", prop: "storageName",
istrue: true, istrue: true,
}, },
{
label: "区域编号",
prop: "areaCode",
istrue: true,
},
{ {
label: "产品编号", label: "产品编号",
prop: "goodNo", prop: "goodNo",
@ -626,62 +408,19 @@ export function tableConfig() {
istrue: true, istrue: true,
}, },
{ {
label: "批号", label: '操作',
prop: "batchNo", prop: 'operating',
istrue: true,
},
{
label: "包装单位",
prop: "unit",
istrue: true,
},
{
label: "包装数量",
prop: "packageQty",
istrue: true,
},
{
label: "生产厂家",
prop: "factory",
istrue: true, istrue: true,
}, type: 'button',
width: 180,
fixed: 'right',
buttons: [
{ {
label: "产地", name: '查看详情',
prop: "waster", event: 'enterDetail'
istrue: true, }
}, ],
// {
// label: "件数",
// prop: "caseQty",
// istrue: true,
// },
// {
// label: "零散数",
// prop: "pieceQty",
// istrue: true,
// },
{
label: "数量",
prop: "quantity",
istrue: true,
}, },
// {
// 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="app-container">
<div class="search-box"> <div class="search-box">
<el-form :inline="true" :model="enterForm"> <el-form
:inline="true"
:model="enterForm"
>
<el-form-item label="单据编号"> <el-form-item label="单据编号">
<el-input <el-input
v-model="enterForm.invOrderNo" v-model="enterForm.invOrderNo"
@ -11,7 +14,10 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
<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-button @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -24,17 +30,15 @@
type="primary" type="primary"
@click="calce" @click="calce"
:disabled="!handleSelect.length != 0" :disabled="!handleSelect.length != 0"
>审核</el-button >上报</el-button>
>
</el-col> </el-col>
<el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
@click="quren" @click="quren"
:disabled="!handleSelect.length != 0" :disabled="!handleSelect.length != 0"
>反审</el-button >反审</el-button>
> </el-col> -->
</el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
@ -49,22 +53,23 @@
:tableProps="tableProps" :tableProps="tableProps"
@current-change="queryTable" @current-change="queryTable"
@handleselection="handleselection" @handleselection="handleselection"
@enterDetail="enterDetail"
> >
</heavy-table> </heavy-table>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { tableConfig } from "./config.js"; import { tableConfig } from './config.js'
import { Debounce, getDictLabel } from "@/utils/index"; import { Debounce, getDictLabel } from '@/utils/index'
import { auditList, auditConfirm } from "@/api/libraryManage/inventory"; import { getReportDetailList, reportConfirm, getReportListGoodsGroup } from '@/api/libraryManage/inventory'
export default { export default {
name: "Inventory", name: 'Inventory',
dicts: ["goods_unit", "inv_type_dict"], dicts: ['goods_unit', 'inv_type_dict'],
data() { data() {
return { return {
enterForm: { enterForm: {
invOrderNo: "", invOrderNo: ''
}, },
tableData: [], tableData: [],
handleSelect: [], handleSelect: [],
@ -73,81 +78,81 @@ export default {
paging: { paging: {
page: 1, // page: 1, //
size: 10, // size: 10, //
total: 0, total: 0
}, }
}; }
}, },
mounted() {}, mounted() {},
async created() { async created() {
this.tableConfig = await this.getTableHeaderCom( this.tableConfig = await this.getTableHeaderCom('busin_inventory_audit', tableConfig.call(this), 'configInventoryAudit')
"busin_inventory_audit", this.queryTable()
tableConfig.call(this),
"configInventoryAudit"
);
this.queryTable();
}, },
methods: { methods: {
// //
handleselection(val) { 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() { resetQuery() {
this.enterForm = {}; this.enterForm = {}
}, },
// //
queryTable() { queryTable() {
this.loading = true; this.loading = true
auditList({ getReportListGoodsGroup({
pageSize: this.paging.size, pageSize: this.paging.size,
pageNum: this.paging.page, pageNum: this.paging.page,
...this.enterForm, ...this.enterForm
}) })
.then((response) => { .then((response) => {
if (response.code === 200) { if (response.code === 200) {
this.loading = false; this.loading = false
this.paging.total = response.total; this.paging.total = response.total
this.tableData = response.rows; this.tableData = response.rows
} }
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false
}); })
}, },
tijiao(obj) { tijiao(obj) {
auditConfirm(obj) reportConfirm(obj)
.then((response) => { .then((response) => {
if (response.code === 200) { if (response.code === 200) {
this.loading = false; this.loading = false
this.$message({ this.$message({
message: "操作成功!", message: '操作成功!',
type: "success", type: 'success'
}); })
this.queryTable(); this.queryTable()
} }
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false
}); })
}, },
// //
quren() { quren() {
let obj2 = { let obj2 = {
invStatus: "unapproved", invStatus: 'unapproved',
ids: this.handleSelect, ids: this.handleSelect
}; }
this.tijiao(obj2); this.tijiao(obj2)
}, },
// //
calce() { calce() {
let obj = { let obj = {
invStatus: "approved", //unapproved invStatus: 'approved', //unapproved
ids: this.handleSelect, ids: this.handleSelect
}; }
this.tijiao(obj); this.tijiao(obj)
}, }
}, }
}; }
</script> </script>
<style rel="stylesheet/scss" lang="scss" scoped></style> <style rel="stylesheet/scss" lang="scss" scoped></style>

Loading…
Cancel
Save