fix(MES对账SAP报表):新增
This commit is contained in:
parent
b119d7d56a
commit
7758aadecd
38
src/api/mes/wip-nalinv/mesCompareSapReport.js
Normal file
38
src/api/mes/wip-nalinv/mesCompareSapReport.js
Normal file
@ -0,0 +1,38 @@
|
||||
import request from '@/router/axios'
|
||||
import {iep} from '@/api/prefix'
|
||||
|
||||
// 工单分页查询
|
||||
export function fetchShopOrderPage(query) {
|
||||
return request({
|
||||
url: iep('/shop-order/newPage'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 检索主列表数据
|
||||
export function readMesCompareSapReportCcList(query) {
|
||||
return request({
|
||||
url: iep('/zlotmaterialcompletetransaction/readMesCompareSapReportCcList'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 检索产出明细列表数据
|
||||
export function readMesCompareSapReportCcDetailList(query) {
|
||||
return request({
|
||||
url: iep('/zlotmaterialcompletetransaction/readMesCompareSapReportCcDetailList'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 检索消耗明细列表数据
|
||||
export function readMesCompareSapReportXhDetailList(query) {
|
||||
return request({
|
||||
url: iep('/zlotmaterialconsumptiontransaction/readMesCompareSapReportXhDetailList'),
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
425
src/views/mes/wip-nalinv/mesCompareSapReport/index.vue
Normal file
425
src/views/mes/wip-nalinv/mesCompareSapReport/index.vue
Normal file
@ -0,0 +1,425 @@
|
||||
<template>
|
||||
<!-- MES对账SAP报表 -->
|
||||
<div class="execution">
|
||||
<!-- 工单 开窗 -->
|
||||
<input-select-dialog
|
||||
:modal-obj.sync="shopOrderDialogObj"
|
||||
:modal-show.sync="shopOrderDialogVisible"
|
||||
:modal-fetch-fun="shopOrderListFun"
|
||||
@inputDialogSelected="doOpenShopOrderSelected"
|
||||
></input-select-dialog>
|
||||
<!-- 二级弹出框 -->
|
||||
<el-dialog
|
||||
title="详细信息"
|
||||
:visible.sync="twoFormObj.twoDialogVisible"
|
||||
width="90%">
|
||||
<!-- 按钮 -->
|
||||
<c-top-bar :offset="50">
|
||||
<el-button type="text" icon="el-icon-document" disabled>工单:{{twoFormObj.shopOrder}}</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-button type="text" icon="el-icon-document" disabled>物料:{{twoFormObj.item}}</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
</c-top-bar>
|
||||
<c-top-bar :offset="50">
|
||||
<el-button type="text" icon="el-icon-search" @click="doTwoRetrieve">检索</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-button type="text" icon="el-icon-circle-close" @click="doTwoClear">清除</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-button type="text" icon="el-icon-export" @click="doTwoExport">导出</el-button>
|
||||
<el-divider style="margin-top: 0px;"></el-divider>
|
||||
</c-top-bar>
|
||||
<!-- 表单 -->
|
||||
<el-form ref="twoFormObj" :model="twoFormObj" label-width="80px">
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="数据匹配" prop="normal">
|
||||
<el-select v-model="twoFormObj.normal" clearable>
|
||||
<el-option v-for="item in normalOptions" :key="item.value" :label="item.label" :value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="24">
|
||||
<el-table size="mini" :data="twoFormObj.twoTableList" border style="width: 100%" height="550px"
|
||||
highlight-current-row>
|
||||
<el-table-column type="index" label="序号">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.$index + 1 }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="sid" label="mesSID"></el-table-column>
|
||||
<el-table-column align="center" prop="materialLot" label="mes卷号"></el-table-column>
|
||||
<el-table-column align="center" prop="warehouseCode" label="mes存储地点"></el-table-column>
|
||||
<el-table-column align="center" prop="sapBatchNo" label="mes批次"></el-table-column>
|
||||
<el-table-column align="center" prop="productType" label="mes移动类型"></el-table-column>
|
||||
<el-table-column align="center" prop="mainQty" label="mes数量"></el-table-column>
|
||||
<el-table-column align="center" prop="mainUom" label="mes单位"></el-table-column>
|
||||
<el-table-column align="center" prop="syncVoucherNo" label="mes物料凭证"></el-table-column>
|
||||
<el-table-column align="center" prop="syncStatus" label="mes同步结果"></el-table-column>
|
||||
<el-table-column align="center" prop="zsid" label="sapSID"></el-table-column>
|
||||
<el-table-column align="center" prop="sapWarehouseCode" label="sap存储地点"></el-table-column>
|
||||
<el-table-column align="center" prop="sSapBatchNo" label="sap批次"></el-table-column>
|
||||
<el-table-column align="center" prop="sapProductType" label="sap移动类型"></el-table-column>
|
||||
<el-table-column align="center" prop="sapMainQty" label="sap数量"></el-table-column>
|
||||
<el-table-column align="center" prop="sapMainUom" label="sap单位"></el-table-column>
|
||||
<el-table-column align="center" prop="sapSyncVoucherNo" label="sap物料凭证"></el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
<basic-container>
|
||||
<!-- 搜尋框 -->
|
||||
<el-form ref="searchForm" :model="searchForm" label-width="120px" label-suffix=":" :inline="true">
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="工单" prop="shopOrder" :rules="[{ required: true, message: '工单不能为空', trigger: 'change'}]">
|
||||
<el-input v-model="searchForm.shopOrder" clearable>
|
||||
<i
|
||||
slot="suffix"
|
||||
class="el-input__icon el-icon-copy-document"
|
||||
@click.stop="showShopOrderDialog"
|
||||
></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-button type="primary" icon="el-icon-search" size="small" @click="search">检索</el-button>
|
||||
<el-button type="primary" icon="el-icon-document" size="small" @click="doExport">导出</el-button>
|
||||
<el-button icon="el-icon-delete" size="small" @click="searchReset">清空</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<el-tabs v-model="tabActiveNameCc">
|
||||
<el-tab-pane label="产出" name="mesCompareSapReportCcTab">
|
||||
<el-table ref="mesCompareSapReportCcData" :data="mesCompareSapReportCcData" tooltip-effect="dark" border style="width: 100%;"
|
||||
:row-key="'handle'"
|
||||
@row-click="handleMainRowClick"
|
||||
:highlight-current-row="true"
|
||||
stripe>
|
||||
<el-table-column prop="shopOrder" label="mes工单" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.shopOrder }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="item" label="mes物料" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.item }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="mainUom" label="mes单位" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.mainUom }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="mainQty" label="mes数量" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.mainQty }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sapShopOrder" label="sap工单" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.sapShopOrder }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sapItem" label="sap物料" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.sapItem }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sapMainUom" label="sap单位" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.sapMainUom }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sapMainQty" label="sap数量" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.sapMainQty }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-tabs v-model="tabActiveNameXh">
|
||||
<el-tab-pane label="消耗" name="mesCompareSapReportXhTab">
|
||||
<el-table ref="mesCompareSapReportXhData" :data="mesCompareSapReportXhData" tooltip-effect="dark" border style="width: 100%;"
|
||||
:row-key="'handle'"
|
||||
@row-click="handleMainRowClick"
|
||||
:highlight-current-row="true"
|
||||
stripe>
|
||||
<el-table-column prop="shopOrder" label="mes工单" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.shopOrder }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="item" label="mes物料" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.item }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="mainUom" label="mes单位" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.mainUom }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="mainQty" label="mes数量" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.mainQty }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sapShopOrder" label="sap工单" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.sapShopOrder }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sapItem" label="sap物料" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.sapItem }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sapMainUom" label="sap单位" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.sapMainUom }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sapMainQty" label="sap数量" header-align="center">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
{{ scope.row.sapMainQty }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</basic-container>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import {mapGetters} from 'vuex';
|
||||
import {getStore} from '@/util/store';
|
||||
import {
|
||||
fetchShopOrderPage,
|
||||
readMesCompareSapReportCcList,
|
||||
readMesCompareSapReportCcDetailList,
|
||||
readMesCompareSapReportXhDetailList
|
||||
} from "@/api/mes/wip-nalinv/mesCompareSapReport";
|
||||
import {hideLoading, showLoading} from "@/const/loading";
|
||||
import {shopOrderDialogObj} from "@/views/mes/wip-nalinv/mesCompareSapReport/init";
|
||||
|
||||
export default {
|
||||
name: 'mes-compare-sap-report',
|
||||
data() {
|
||||
return {
|
||||
tabActiveNameCc: "mesCompareSapReportCcTab",
|
||||
tabActiveNameXh: "mesCompareSapReportXhTab",
|
||||
searchForm: {},
|
||||
mesCompareSapReportCcData: [],
|
||||
mesCompareSapReportXhData: [],
|
||||
site: getStore({name: 'tenantId'}),
|
||||
shopOrderDialogObj: {...shopOrderDialogObj}, // 工单
|
||||
shopOrderListFun: fetchShopOrderPage,
|
||||
shopOrderDialogVisible: false,
|
||||
twoFormObj: {
|
||||
shopOrder: '',
|
||||
site: '',
|
||||
item: '',
|
||||
normal: '',
|
||||
twoTableList: [],
|
||||
twoDialogVisible: false,
|
||||
},
|
||||
normalOptions: [
|
||||
{
|
||||
label: '匹配',
|
||||
value: 'Y'
|
||||
},
|
||||
{
|
||||
label: '不匹配',
|
||||
value: 'N'
|
||||
}
|
||||
],// 数据一致性下拉列表
|
||||
flag: ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.searchForm = Object.assign({}, this.searchForm);
|
||||
},
|
||||
computed: {
|
||||
//读取权限
|
||||
...mapGetters(['permissions', 'userInfo']),
|
||||
permissionList() {
|
||||
return {
|
||||
addBtn: false,
|
||||
delBtn: false,
|
||||
editBtn: false,
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// 主界面-单击事件
|
||||
handleMainRowClick(row) {
|
||||
this.twoFormObj.site = this.site;
|
||||
this.twoFormObj.twoTableList = [];
|
||||
this.twoFormObj.twoDialogVisible = true;
|
||||
this.flag = row.flag;
|
||||
let shopOrder = row.shopOrder;
|
||||
let item = row.item;
|
||||
if (!shopOrder || !item) {
|
||||
shopOrder = row.sapShopOrder;
|
||||
item = row.sapItem;
|
||||
}
|
||||
this.twoFormObj.shopOrder = shopOrder;
|
||||
this.twoFormObj.item = item;
|
||||
if (row.flag === 'CC') {
|
||||
this.searchCcDetail(shopOrder, item);
|
||||
} else if (row.flag === 'XH') {
|
||||
this.searchXhDetail(shopOrder, item);
|
||||
}
|
||||
},
|
||||
// 打开工单弹出框
|
||||
showShopOrderDialog() {
|
||||
this.shopOrderDialogVisible = true;
|
||||
},
|
||||
// 工单弹出框选择
|
||||
doOpenShopOrderSelected(row) {
|
||||
this.searchForm.shopOrder = row.shopOrder
|
||||
this.searchForm = Object.assign({}, this.searchForm)
|
||||
},
|
||||
// 检索两个列表数据
|
||||
search() {
|
||||
if (!this.searchForm.shopOrder) {
|
||||
return this.$message.error("请先输入工单!");
|
||||
}
|
||||
showLoading();
|
||||
readMesCompareSapReportCcList({
|
||||
site: this.site,
|
||||
shopOrder: this.searchForm.shopOrder,
|
||||
}).then((response) => {
|
||||
hideLoading();
|
||||
if (response.data.code !== 0) {
|
||||
this.$message.error(response.data.message);
|
||||
} else {
|
||||
this.mesCompareSapReportCcData = response.data.data.ccList;
|
||||
this.mesCompareSapReportXhData = response.data.data.xhList;
|
||||
}
|
||||
}).catch(() => {
|
||||
hideLoading();
|
||||
});
|
||||
},
|
||||
// 明细检索
|
||||
doTwoRetrieve() {
|
||||
if (this.flag === 'CC') {
|
||||
this.searchCcDetail(this.twoFormObj.shopOrder, this.twoFormObj.item);
|
||||
} else if (this.flag === 'XH') {
|
||||
this.searchXhDetail(this.twoFormObj.shopOrder, this.twoFormObj.item);
|
||||
}
|
||||
},
|
||||
// 明细清除
|
||||
doTwoClear() {
|
||||
this.twoFormObj.normal = '';
|
||||
this.twoFormObj.twoTableList = [];
|
||||
},
|
||||
// 明细导出
|
||||
doTwoExport() {
|
||||
|
||||
},
|
||||
// 检索产出明细列表数据
|
||||
searchCcDetail(shopOrder, item) {
|
||||
showLoading();
|
||||
readMesCompareSapReportCcDetailList({
|
||||
site: this.site,
|
||||
shopOrder: shopOrder,
|
||||
item: item,
|
||||
normal: this.twoFormObj.normal
|
||||
}).then((response) => {
|
||||
hideLoading();
|
||||
if (response.data.code !== 0) {
|
||||
this.$message.error(response.data.message);
|
||||
} else {
|
||||
this.twoFormObj.twoTableList = response.data.data;
|
||||
}
|
||||
}).catch(() => {
|
||||
hideLoading();
|
||||
});
|
||||
},
|
||||
// 检索消耗明细列表数据
|
||||
searchXhDetail(shopOrder, item) {
|
||||
showLoading();
|
||||
readMesCompareSapReportXhDetailList({
|
||||
site: this.site,
|
||||
shopOrder: shopOrder,
|
||||
item: item,
|
||||
normal: this.twoFormObj.normal
|
||||
}).then((response) => {
|
||||
hideLoading();
|
||||
if (response.data.code !== 0) {
|
||||
this.$message.error(response.data.message);
|
||||
} else {
|
||||
this.twoFormObj.twoTableList = response.data.data;
|
||||
}
|
||||
}).catch(() => {
|
||||
hideLoading();
|
||||
});
|
||||
},
|
||||
// 导出
|
||||
doExport() {},
|
||||
// 清空事件
|
||||
searchReset() {
|
||||
this.searchForm = {};
|
||||
this.mesCompareSapReportCcData = [];
|
||||
this.mesCompareSapReportXhData = [];
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
// 解决input框中添加disabled不可编辑属性后,改变字体颜色样式(主要解决:默认字体颜色为灰色)
|
||||
::v-deep .el-input.is-disabled .el-input__inner {
|
||||
color: black;
|
||||
}
|
||||
|
||||
/* 禁用 el-input 时禁用图标和清除按钮 */
|
||||
.el-input.is-disabled .el-input__icon,
|
||||
.el-input.is-disabled .el-input__clear {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
10
src/views/mes/wip-nalinv/mesCompareSapReport/init.js
Normal file
10
src/views/mes/wip-nalinv/mesCompareSapReport/init.js
Normal file
@ -0,0 +1,10 @@
|
||||
export const shopOrderDialogObj = {
|
||||
title: '工单',
|
||||
callBackKey: "shopOrder",
|
||||
regex: " ",
|
||||
condition: "searchText",
|
||||
tableColumn: [
|
||||
{prop: "shopOrder", label: "工单"}
|
||||
],
|
||||
queryParam: {}
|
||||
}
|
||||
@ -191,7 +191,7 @@ import {hideLoading, showLoading} from "@/const/loading";
|
||||
import {lgortDialogObj, matnrDialogObj} from "@/views/mes/wms-nalinv/mesReferSapInvReport/init";
|
||||
|
||||
export default {
|
||||
name: 'operation-out',
|
||||
name: 'mes-refer-sap-inv-report',
|
||||
data() {
|
||||
return {
|
||||
tabActiveName: "inventoryQueryReportDetailTab",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user