Browse Source

04.08 生产入库

领料申请 - 提货单明细汇总导出、刷新提货单、取消预留
仓库发料
master
jiayang yue 9 months ago
parent
commit
8a293e9fc6
  1. 10
      src/api/issueNotify/issueNotify.js
  2. 884
      src/views/modules/inventory/materialIssue.vue
  3. 531
      src/views/modules/orderIssure/soIssueNotify/issueNotify.vue
  4. 6
      src/views/modules/production/warehousing.vue

10
src/api/issueNotify/issueNotify.js

@ -9,6 +9,7 @@ export const addBillLading = data => createAPI(`orderIssure/issureNotify/addBill
// 创建提货单
export const createBillLading = data => createAPI(`orderIssure/issureNotify/createBillLading`,'post',data)
// 获取提货单汇总列表
// 查询 汇总明细
export const queryPickDetailList = data => createAPI("/orderIssure/issureNotify/pick/detail",'post',data)
@ -17,3 +18,12 @@ export const pickDetailIssued = (data) => createAPI("/orderIssure/issureNotify/p
// 获取提货单明细
export const getBillLadingDetail = data => createAPI(`orderIssure/issureNotify/getBillLadingDetail`,'post',data)
// 创建提货单汇总
export const createBillLadingSummary = data => createAPI(`orderIssure/issureNotify/createBillLadingSummary`,'post',data)
// 刷新提货单
export const refreshPickOrder = data => createAPI(`orderIssure/issureNotify/refreshPickOrder`,'post',data)
// 提货单取消预留
export const pickOrderCancelReservation = data => createAPI(`orderIssure/issureNotify/pickOrderCancelReservation`,'post',data)

884
src/views/modules/inventory/materialIssue.vue

@ -1,12 +1,30 @@
<script>
import {queryList} from "../../../api/inventory/materialIssue";
import th from "element-ui/src/locale/lang/th";
import {issueNotifyPageSearch, pickDetailIssued, queryPickDetailList} from "../../../api/issueNotify/issueNotify";
import {
createBillLadingSummary,
getBillLadingDetail,
issueNotifyPageSearch,
pickDetailIssued,
queryPickDetailList
} from "../../../api/issueNotify/issueNotify";
export default {
name: 'MaterialIssue',
data(){
return{
// start
exportData: [],
exportName: "提货单明细汇总" + this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ["提货单明细汇总"],
exportFooter: [],
exportList:[],
// start
exportBillLadingDetailData: [],
exportBillLadingDetailName: "提货单明细" + this.dayjs().format('YYYYMMDDHHmmss'),
exportBillLadingDetailHeader: ['提货单明细'],
exportBillLadingDetailFooter: [],
exportBillLadingDetailList:[],
queryLoading:false,
queryParams:{
notifyNo: '',
@ -181,6 +199,622 @@ export default {
columnWidth: 90,
},
],
pickDetailColumnList: [
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3PickListNo',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'pickListNo',
columnLabel: '提货单号',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3RequireQty',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'requireQty',
columnLabel: '所需数量',
headerAlign: 'center',
align: 'right',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3OnHandQty',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'onHandQty',
columnLabel: '库存数量',
headerAlign: 'center',
align: 'right',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3StockQty',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'stockQty',
columnLabel: '库存可用数量',
headerAlign: 'center',
align: 'right',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3WaivDevRejNo',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'waivDevRejNo',
columnLabel: 'WDR',
headerAlign: 'center',
align: 'center',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3RmPartNo',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'rmPartNo',
columnLabel: '零件编码',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3RmPartDesc',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'rmPartDesc',
columnLabel: '零件描述',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 140,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3PartFam',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'partFam',
columnLabel: '零件大类',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3LocationNo',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'locationNo',
columnLabel: '库位',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3BatchNo',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'batchNo',
columnLabel: '批次',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3EngChgLevel',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'engChgLevel',
columnLabel: '版本',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3ActivitySeq',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'activitySeq',
columnLabel: '序号',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3IssueQty',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'issueQty',
columnLabel: '下发数量',
headerAlign: 'center',
align: 'right',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3IssuedQty',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'issuedQty',
columnLabel: '已下发数量',
headerAlign: 'center',
align: 'center',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3Status',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'status',
columnLabel: '状态',
headerAlign: 'center',
align: 'center',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
}
],
billLadingDetailColumnList: [
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2NeedDate',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'needDate',
columnLabel: '车间订单需要日期',
headerAlign: 'center',
align: 'center',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 110,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2Status',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'status',
columnLabel: '车间订单状态',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2OnhandQty',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'onhandQty',
columnLabel: '库存数量_仓库库位',
headerAlign: 'center',
align: 'right',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 110,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2FgPartDesc',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'fgPartDesc',
columnLabel: '成品零件描述',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 210,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2FgPartNo',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'fgPartNo',
columnLabel: '成品零件号',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2IssueQty',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'issueQty',
columnLabel: '下发数量(实时)',
headerAlign: 'center',
align: 'right',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2Remark',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'remark',
columnLabel: '备注',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2IssueQty',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'issueQty',
columnLabel: '已领数量',
headerAlign: 'center',
align: 'right',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 70,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2Contract',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'contract',
columnLabel: '域',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 40,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2RmPartDesc',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'rmPartDesc',
columnLabel: '子件描述',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 210,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2RmPartNo',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'rmPartNo',
columnLabel: '子件号',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2ThOrderNo',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'thOrderNo',
columnLabel: '3H订单号',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2EngChgLevel',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'engChgLevel',
columnLabel: '层级号',
headerAlign: 'center',
align: 'center',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 50,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2LineItemNo',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'lineItemNo',
columnLabel: '车间订单行号',
headerAlign: 'center',
align: 'center',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2LineNo',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'lineNo',
columnLabel: 'Line No',
headerAlign: 'center',
align: 'center',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2LocationNo',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'locationNo',
columnLabel: '库位号',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 50,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2OderNo',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'orderNo',
columnLabel: '车间订单号',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 90,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2OrigAssignedQty',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'origAssignedQty',
columnLabel: '待领总数量',
headerAlign: 'center',
align: 'right',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 70,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table2PickListNo',
tableId: '400002Table2',
tableName: '领料申请单明细表',
columnProp: 'pickListNo',
columnLabel: '提货单号',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
],
pickDetailVisible:false,
pickDetailList:[],
pickDetailLoading:false,
@ -189,6 +823,18 @@ export default {
},
selectionPickDetailList:[],
issuedLoading:false,
pickDetailFlag:true,
billLadingDetailDataList: [],
billLadingDetailFlag: false,
billLadingDetailLoading: false,
billLadingModalData: {
site: this.$store.state.user.site,
notifyNo: '',
ifsPickListNo: '',
thOrderNo: '',
orderNo: ''
},
}
},
methods:{
@ -208,11 +854,19 @@ export default {
this.queryLoading = false;
})
},
handleQueryPickDetail(row){
handleQueryPickDetail(row,type){
this.currentRow = {
site:row.site,
ifsPickListNo:row.ifsPickListNo,
notifyNo:row.notifyNo,
thOrderNo:row.thOrderNo,
orderNo:row.orderNo,
partNo:'',
}
if (type===1){
this.pickDetailFlag = false;
} else if (type===2){
this.pickDetailFlag = true;
}
this.queryPickDetailList(this.currentRow)
this.pickDetailVisible = true;
@ -267,6 +921,111 @@ export default {
this.issuedLoading = false;
})
},
getBillLadingDetail(row){
let inData = {
site: row.site,
ifsPickListNo: row.ifsPickListNo,
thOrderNo: row.thOrderNo
};
this.billLadingDetailFlag = true;
this.billLadingDetailLoading = true;
getBillLadingDetail(inData).then(({data}) =>
{
if (data.code === 0) {
this.billLadingDetailDataList = data.list;
this.billLadingDetailLoading = false;
this.billLadingModalData = {
site: row.site,
notifyNo: row.notifyNo,
ifsPickListNo: row.ifsPickListNo,
thOrderNo: row.thOrderNo,
orderNo: row.orderNo
};
} else {
this.$message.error('获取失败:' + data.msg);
this.billLadingDetailLoading = false;
}
})
},
createBillLadingSummary (row) {
let inData = {
site: row.site,
ifsPickListNo: row.ifsPickListNo,
status: row.status
};
this.$confirm('确定创建提货单汇总吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
createBillLadingSummary(inData).then(({data}) =>
{
if (data.code === 0) {
this.$message.success('创建成功');
this.getDataList();
} else {
this.$message.error('创建失败:' + data.msg);
}
})
})
},
//excel
async createExportData () {
let params = {
site:this.$store.state.user.site,
ifsPickListNo:this.currentRow.ifsPickListNo,
partNo:'',
}
await queryPickDetailList(params).then(({data}) => {
this.exportList = data.rows
})
return this.exportList
},
startDownload () {},
finishDownload () {},
fields () {
let json = "{"
this.pickDetailColumnList.forEach((item, index) => {
if (index == this.pickDetailColumnList.length - 1) {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
} else {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
}
})
json += "}"
let s = eval("(" + json + ")")
return s
},
//excel
async createExportBillLadingDetailData () {
this.exportBillLadingDetailList = this.billLadingDetailDataList
return this.exportBillLadingDetailList
},
startBillLadingDetailDownload () {},
finishBillLadingDetailDownload () {},
fieldsBillLadingDetail () {
let json = "{"
this.billLadingDetailColumnList.forEach((item, index) => {
if (index == this.billLadingDetailColumnList.length - 1) {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
} else {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
}
})
json += "}"
let s = eval("(" + json + ")")
return s
},
},
watch:{
queryLoading(newValue){
@ -377,7 +1136,15 @@ export default {
</el-table-column>
<el-table-column align="center" width="100" label="操作">
<template slot-scope="scope">
<a @click="handleQueryPickDetail(scope.row)">提货单汇总明细</a>
<a @click="getBillLadingDetail(scope.row)">提货单明细</a>
<el-dropdown trigger="click">
<el-link style="cursor: pointer;font-size: 12px">更多</el-link>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="createBillLadingSummary(scope.row)">创建提货单汇总</el-dropdown-item>
<el-dropdown-item @click.native="handleQueryPickDetail(scope.row,1)">提货单汇总</el-dropdown-item>
<el-dropdown-item @click.native="handleQueryPickDetail(scope.row,2)">发料</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
@ -392,8 +1159,8 @@ export default {
:total="total">
</el-pagination>
<el-dialog :visible.sync="pickDetailVisible" title="提货单明细" v-drag width="1200px" :close-on-click-modal="false">
<el-form :model="currentRow" label-position="top">
<el-dialog :visible.sync="pickDetailVisible" title="提货单明细汇总" v-drag width="1200px" :close-on-click-modal="false">
<el-form :model="currentRow" label-position="top" v-if="pickDetailFlag">
<el-row :gutter="10">
<el-col :span="3">
<el-form-item label="零件编码">
@ -408,8 +1175,39 @@ export default {
</el-col>
</el-row>
</el-form>
<el-form :inline="true" label-position="top" :model="currentRow" style="margin-top: 5px;" v-if="!pickDetailFlag">
<el-form-item label="申请单号" prop="notifyNo">
<el-input v-model="currentRow.notifyNo" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="IFS提货单号" prop="ifsPickListNo">
<el-input v-model="currentRow.ifsPickListNo" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="3H订单号" prop="thOrderNo">
<el-input v-model="currentRow.thOrderNo" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="生产订单号" prop="orderNo">
<el-input v-model="currentRow.orderNo" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<download-excel
:fields="fields()"
:data="exportData"
type="xls"
:name="exportName"
:header="exportHeader"
:footer="exportFooter"
:fetch="createExportData"
:before-generate="startDownload"
:before-finish="finishDownload"
worksheet="导出信息"
class="el-button el-button--primary el-button--medium">
{{ "导出" }}
</download-excel>
</el-form-item>
</el-form>
<div class="rq">
<el-table :data="pickDetailList" border height="350px" v-loading="pickDetailLoading" @selection-change="handleSelectionChange">
<el-table :data="pickDetailList" border height="350px" v-loading="pickDetailLoading"
@selection-change="handleSelectionChange" v-if="pickDetailFlag">
<el-table-column
type="selection"
width="55"
@ -436,11 +1234,85 @@ export default {
<el-table-column label="已下发数量" prop="issuedQty" header-align="center" align="center" min-width="80px"/>
<el-table-column label="状态" prop="status" header-align="center" align="center" min-width="80px"/>
</el-table>
<el-table :data="pickDetailList" border height="350px" v-loading="pickDetailLoading"
v-if="!pickDetailFlag">
<el-table-column
v-for="(item, index) in pickDetailColumnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed === '' ? false : item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
</template>
</el-table-column>
</el-table>
</div>
<el-footer style="text-align: center;line-height: 30px;height: 30px">
<el-button @click="pickDetailVisible = false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="提货单明细" :close-on-click-modal="false" v-drag :visible.sync="billLadingDetailFlag" width="1200px">
<el-form :inline="true" label-position="top" :model="billLadingModalData" style="margin-top: 5px;">
<el-form-item label="申请单号" prop="notifyNo">
<el-input v-model="billLadingModalData.notifyNo" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="IFS提货单号" prop="ifsPickListNo">
<el-input v-model="billLadingModalData.ifsPickListNo" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="3H订单号" prop="thOrderNo">
<el-input v-model="billLadingModalData.thOrderNo" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="生产订单号" prop="orderNo">
<el-input v-model="billLadingModalData.orderNo" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<download-excel
:fields="fieldsBillLadingDetail()"
:data="exportBillLadingDetailData"
type="xls"
:name="exportBillLadingDetailName"
:header="exportBillLadingDetailHeader"
:footer="exportBillLadingDetailFooter"
:fetch="createExportBillLadingDetailData"
:before-generate="startBillLadingDetailDownload"
:before-finish="finishBillLadingDetailDownload"
worksheet="导出信息"
class="el-button el-button--primary el-button--medium">
{{ "导出" }}
</download-excel>
</el-form-item>
</el-form>
<el-table
height="350px"
:data="billLadingDetailDataList"
v-loading="billLadingDetailLoading"
border
style="width: 100%;">
<el-table-column
v-for="(item, index) in billLadingDetailColumnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed === '' ? false : item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
</template>
</el-table-column>
</el-table>
<el-footer style="text-align: center;line-height: 30px;height: 30px">
<el-button @click="billLadingDetailFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>

531
src/views/modules/orderIssure/soIssueNotify/issueNotify.vue

@ -87,7 +87,9 @@
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="getBillLadingDetail(scope.row)">提货单明细</el-dropdown-item>
<el-dropdown-item @click.native="createBillLadingSummary(scope.row)">创建提货单汇总</el-dropdown-item>
<el-dropdown-item @click.native="getBillLadingSummary(scope.row)">提货单汇总</el-dropdown-item>
<el-dropdown-item @click.native="handleQueryPickDetail(scope.row)">提货单汇总</el-dropdown-item>
<el-dropdown-item @click.native="refreshPickOrder(scope.row)">刷新提货单</el-dropdown-item>
<el-dropdown-item @click.native="pickOrderCancelReservation(scope.row)">取消预留</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
@ -126,6 +128,63 @@
</el-dialog>
<el-dialog title="提货单明细" :close-on-click-modal="false" v-drag :visible.sync="billLadingDetailFlag" width="1200px">
<el-form :inline="true" label-position="top" :model="billLadingModalData" style="margin-top: 5px;">
<el-form-item label="申请单号" prop="notifyNo">
<el-input v-model="billLadingModalData.notifyNo" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="IFS提货单号" prop="ifsPickListNo">
<el-input v-model="billLadingModalData.ifsPickListNo" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="3H订单号" prop="thOrderNo">
<el-input v-model="billLadingModalData.thOrderNo" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="生产订单号" prop="orderNo">
<el-input v-model="billLadingModalData.orderNo" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<download-excel
:fields="fieldsBillLadingDetail()"
:data="exportBillLadingDetailData"
type="xls"
:name="exportBillLadingDetailName"
:header="exportBillLadingDetailHeader"
:footer="exportBillLadingDetailFooter"
:fetch="createExportBillLadingDetailData"
:before-generate="startBillLadingDetailDownload"
:before-finish="finishBillLadingDetailDownload"
worksheet="导出信息"
class="el-button el-button--primary el-button--medium">
{{ "导出" }}
</download-excel>
</el-form-item>
</el-form>
<el-table
:height="height - 200"
:data="billLadingDetailDataList"
v-loading="billLadingDetailLoading"
border
style="width: 100%;">
<el-table-column
v-for="(item, index) in billLadingDetailColumnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed === '' ? false : item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
</template>
</el-table-column>
</el-table>
<el-footer style="text-align: center;line-height: 30px;height: 30px">
<el-button @click="billLadingDetailFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog :visible.sync="pickDetailVisible" title="提货单明细汇总" v-drag width="1200px" :close-on-click-modal="false">
<el-form :inline="true" label-position="top" :model="billLadingModalData" style="margin-top: 5px;">
<el-form-item label="申请单号" prop="notifyNo">
<el-input v-model="billLadingModalData.notifyNo" disabled style="width: 120px"></el-input>
@ -143,7 +202,7 @@
<download-excel
:fields="fields()"
:data="exportData"
type="xlsx"
type="xls"
:name="exportName"
:header="exportHeader"
:footer="exportFooter"
@ -156,13 +215,10 @@
</download-excel>
</el-form-item>
</el-form>
<el-table
:height="height - 200"
:data="billLadingDetailDataList"
border
style="width: 100%;">
<div class="rq">
<el-table :data="pickDetailList" border :height="height-200" v-loading="pickDetailLoading">
<el-table-column
v-for="(item, index) in billLadingDetailColumnList" :key="index"
v-for="(item, index) in pickDetailColumnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
@ -176,10 +232,9 @@
</template>
</el-table-column>
</el-table>
<el-footer
style="height:35px; margin-top: 20px; padding-bottom:5px; text-align:center"
>
<el-button type="primary" @click="billLadingDetailFlag = false">关闭</el-button>
</div>
<el-footer style="text-align: center;line-height: 30px;height: 30px">
<el-button @click="pickDetailVisible = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
@ -190,17 +245,23 @@ import {
issueNotifyPageSearch,
createBillLading,
addBillLading,
getBillLadingDetail
getBillLadingDetail, createBillLadingSummary, queryPickDetailList, refreshPickOrder, pickOrderCancelReservation
} from "../../../../api/issueNotify/issueNotify";
export default {
name: 'IssureNotifyList',
data() {
return {
// start
exportBillLadingDetailData: [],
exportBillLadingDetailName: "提货单明细" + this.dayjs().format('YYYYMMDDHHmmss'),
exportBillLadingDetailHeader: ['提货单明细'],
exportBillLadingDetailFooter: [],
exportBillLadingDetailList:[],
// start
exportData: [],
exportName: "提货单明细" + this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ['提货单明细'],
exportName: "提货单明细汇总" + this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ["提货单明细汇总"],
exportFooter: [],
exportList:[],
authSearch: false,
@ -228,6 +289,7 @@ export default {
modalFlag: false,
billLadingDetailDataList: [],
billLadingDetailFlag: false,
billLadingDetailLoading: false,
billLadingModalData: {
site: this.$store.state.user.site,
notifyNo: '',
@ -235,6 +297,10 @@ export default {
thOrderNo: '',
orderNo: ''
},
pickDetailVisible:false,
pickDetailList:[],
pickDetailLoading:false,
modalData: {
site: this.$store.state.user.site,
status: '',
@ -242,7 +308,6 @@ export default {
needDate: '',
orderNo: ''
},
modalCompareData: {},
// ======== ========
rules: {
orderNo: [
@ -759,7 +824,279 @@ export default {
fixed: '',
columnWidth: 80,
},
]
],
pickDetailColumnList: [
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3PickListNo',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'pickListNo',
columnLabel: '提货单号',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3RequireQty',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'requireQty',
columnLabel: '所需数量',
headerAlign: 'center',
align: 'right',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3OnHandQty',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'onHandQty',
columnLabel: '库存数量',
headerAlign: 'center',
align: 'right',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3StockQty',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'stockQty',
columnLabel: '库存可用数量',
headerAlign: 'center',
align: 'right',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3WaivDevRejNo',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'waivDevRejNo',
columnLabel: 'WDR',
headerAlign: 'center',
align: 'center',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3RmPartNo',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'rmPartNo',
columnLabel: '零件编码',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3RmPartDesc',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'rmPartDesc',
columnLabel: '零件描述',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 140,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3PartFam',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'partFam',
columnLabel: '零件大类',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3LocationNo',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'locationNo',
columnLabel: '库位',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3BatchNo',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'batchNo',
columnLabel: '批次',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3EngChgLevel',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'engChgLevel',
columnLabel: '版本',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3ActivitySeq',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'activitySeq',
columnLabel: '序号',
headerAlign: 'center',
align: 'left',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3IssueQty',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'issueQty',
columnLabel: '下发数量',
headerAlign: 'center',
align: 'right',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3IssuedQty',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'issuedQty',
columnLabel: '已下发数量',
headerAlign: 'center',
align: 'center',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{
userId: this.$store.state.user.name,
functionId: 400002,
serialNumber: '400002Table3Status',
tableId: '400002Table3',
tableName: '提货明细汇总表',
columnProp: 'status',
columnLabel: '状态',
headerAlign: 'center',
align: 'center',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
}
],
};
},
mounted() {
@ -768,6 +1105,22 @@ export default {
})
this.getDataList();
},
watch:{
pickDetailLoading(newValue){
if (newValue){
setTimeout(()=>{
this.pickDetailLoading = false;
},30000)
}
},
billLadingDetailLoading(newValue){
if (newValue){
setTimeout(()=>{
this.billLadingDetailLoading = false;
},30000)
}
}
},
methods: {
getDataList() {
this.searchData.page = this.pageIndex;
@ -875,11 +1228,13 @@ export default {
ifsPickListNo: row.ifsPickListNo,
thOrderNo: row.thOrderNo
};
this.billLadingDetailFlag = true;
this.billLadingDetailLoading = true;
getBillLadingDetail(inData).then(({data}) =>
{
if (data.code === 0) {
this.billLadingDetailDataList = data.list;
this.billLadingDetailFlag = true;
this.billLadingDetailLoading = false;
this.billLadingModalData = {
site: row.site,
notifyNo: row.notifyNo,
@ -889,14 +1244,146 @@ export default {
};
} else {
this.$message.error('获取失败:' + data.msg);
this.billLadingDetailLoading = false;
}
})
},
createBillLadingSummary (row) {
let inData = {
site: row.site,
ifsPickListNo: row.ifsPickListNo,
status: row.status
};
this.$confirm('确定创建提货单汇总吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
createBillLadingSummary(inData).then(({data}) =>
{
if (data.code === 0) {
this.$message.success('创建成功');
this.getDataList();
} else {
this.$message.error('创建失败:' + data.msg);
}
})
})
},
handleQueryPickDetail(row){
this.billLadingModalData = {
site: row.site,
notifyNo: row.notifyNo,
ifsPickListNo: row.ifsPickListNo,
thOrderNo: row.thOrderNo,
orderNo: row.orderNo,
partNo: ''
}
this.queryPickDetailList(this.billLadingModalData)
this.pickDetailVisible = true;
},
queryPickDetailList(row){
let params = {
site:this.$store.state.user.site,
ifsPickListNo:row.ifsPickListNo,
partNo:row.partNo,
}
this.pickDetailLoading = true;
this.pickDetailList = [];
queryPickDetailList(params).then(({data})=>{
if (data && data.code === 0) {
this.pickDetailList = data.rows;
}else {
this.$message.error(data.msg);
}
this.pickDetailLoading = false;
}).catch((error)=>{
this.$message.error(error)
this.pickDetailLoading = false;
})
},
refreshPickOrder(row) {
let inData = {
site: this.$store.state.user.site,
ifsPickListNo: row.ifsPickListNo,
status: ''
};
this.$confirm('确定刷新提货单吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
refreshPickOrder(inData).then(({data}) =>
{
if (data.code === 0) {
this.$message.success('刷新成功');
this.getDataList();
} else {
this.$message.error('刷新失败:' + data.msg);
}
})
})
},
pickOrderCancelReservation(row) {
let inData = {
site: this.$store.state.user.site,
ifsPickListNo: row.ifsPickListNo,
};
this.$confirm('确定取消预留吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
pickOrderCancelReservation(inData).then(({data}) =>
{
if (data.code === 0) {
this.$message.success('取消预留成功');
this.getDataList();
} else {
this.$message.error('取消预留失败:' + data.msg);
}
})
})
},
//excel
async createExportBillLadingDetailData () {
this.exportBillLadingDetailList = this.billLadingDetailDataList
return this.exportBillLadingDetailList
},
startBillLadingDetailDownload () {},
finishBillLadingDetailDownload () {},
fieldsBillLadingDetail () {
let json = "{"
this.billLadingDetailColumnList.forEach((item, index) => {
if (index == this.billLadingDetailColumnList.length - 1) {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
} else {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
}
})
json += "}"
let s = eval("(" + json + ")")
return s
},
//excel
async createExportData () {
await getBillLadingDetail(this.billLadingModalData).then(({data}) => {
this.exportList = data.list
let params = {
site:this.$store.state.user.site,
ifsPickListNo:this.billLadingModalData.ifsPickListNo,
partNo:'',
}
await queryPickDetailList(params).then(({data}) => {
this.exportList = data.rows
})
return this.exportList
},
@ -907,8 +1394,8 @@ export default {
fields () {
let json = "{"
this.billLadingDetailColumnList.forEach((item, index) => {
if (index == this.billLadingDetailColumnList.length - 1) {
this.pickDetailColumnList.forEach((item, index) => {
if (index == this.pickDetailColumnList.length - 1) {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
} else {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","

6
src/views/modules/production/warehousing.vue

@ -19,11 +19,7 @@
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label=" ">
<div style="text-align: center;"><i class="el-icon-right"></i></div>
</el-form-item>
<el-form-item :label="' '">
-
<el-date-picker
style="width: 120px"
v-model="searchData.endTime"

Loading…
Cancel
Save