Browse Source

库存流水帐明细暂存

faster_develop
安虹睿 2 years ago
parent
commit
eccfe8bc02
  1. 2
      fe/PC/public/version.json
  2. 9
      fe/PC/src/api/wms-api.js
  3. 4
      fe/PC/src/views/activeReportManage/reportForm/InventoryBookDetail.vue
  4. 270
      fe/PC/src/views/activeReportManage/reportForm/InventoryBookDetail_innerPage.vue

2
fe/PC/public/version.json

@ -1,3 +1,3 @@
{
"version": "1.0.66"
"version": "1.0.67"
}

9
fe/PC/src/api/wms-api.js

@ -594,6 +594,15 @@ export function getInventoryTransactionSerials(data,params) {
})
}
// 库存流水帐明细 获取账期
export function getInterfaceCalendar(data) {
return request({
url: baseURL + 'basedata/interface-calendar/list',
method: 'post',
data:data
})
}
// 根据编号获取字典信息
// export function getDictByCode(code) {
// return request({

4
fe/PC/src/views/activeReportManage/reportForm/InventoryBookDetail.vue

@ -16,8 +16,8 @@ export default {
openHandle(){
let _url = window.location.href.slice(0,window.location.href.indexOf('/#/'))
let _page = _url + '/#/InventoryBookDetail_innerPage?title=' + this.$route.meta.title
// createNewTabs(_page)
createNewTabs(reportsAddress.InventoryBookDetail + '?title=' + this.$route.meta.title)
createNewTabs(_page)
// createNewTabs(reportsAddress.InventoryBookDetail + '?title=' + this.$route.meta.title)
}
}
}

270
fe/PC/src/views/activeReportManage/reportForm/InventoryBookDetail_innerPage.vue

@ -1,20 +1,40 @@
<template>
<div class="InventoryBookDetail_innerPage" v-loading="loading">
<!-- 搜索 -->
<el-form :inline="true" :model="searchForm" size="small" class="searchHeader">
<el-form-item label="零件">
<el-form ref="searchForm" :inline="true" :rules="formRule" :model="searchForm" size="small" class="searchHeader">
<el-form-item label="ERP储位" prop="erpLocatioCode">
<el-input v-model="searchForm.erpLocatioCode" placeholder="请输入ERP储位"></el-input>
</el-form-item>
<el-form-item label="零件" prop="itemCode">
<el-input v-model="searchForm.itemCode" placeholder="请输入零件"></el-input>
</el-form-item>
<el-form-item label="开始时间">
<el-form-item label="账期" prop="interfaceCalendar">
<el-select
:loading="calendarLoading"
@change="calendarChange"
v-model="searchForm.interfaceCalendar"
placeholder="请选择账期"
>
<el-option
v-for="item in calendarList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="开始时间" prop="beginDate">
<el-date-picker
@change="timeChange"
value-format="yyyy-MM-dd"
v-model="searchForm.beginDate"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间">
<el-form-item label="结束时间" prop="endDate">
<el-date-picker
@change="timeChange"
value-format="yyyy-MM-dd"
v-model="searchForm.endDate"
type="date"
@ -51,11 +71,29 @@
:width="item.width"
>
<template slot-scope="scope">
<div v-if="!scope.row.total">
<div v-if="scope.row.total_erp || scope.row.total_erp2 || scope.row.total_item">
<div v-if="scope.row.total_erp2">
<span v-if="totalProps[0] == item.prop" style="color: blue;font-weight:bold">库位小计</span>
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_erp2[item.prop]}}</span>
</div>
<div v-if="scope.row.total_erp">
<span v-if="totalProps[0] == item.prop" style="color: #ff6000;font-weight:bold">储位小计</span>
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_erp[item.prop]}}</span>
</div>
<div v-if="scope.row.total_item">
<span v-if="totalProps[0] == item.prop" style="color: #24b924;font-weight:bold">物料小计</span>
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_item[item.prop]}}</span>
</div>
</div>
<div v-else>
<div v-if="item.prop == 'itemCode'">
{{ scope.row.level1[item.prop] }}
<div>物料代码:<br/>{{ scope.row.level1[item.prop] }}</div>
<br/>
<div>物料名称:<br/>{{ scope.row.level1.itemName }}</div>
<br/>
<div>配置码{{ scope.row.level1.configuration }}</div>
<div>物料描述1:<br/>{{ scope.row.level1.itemDesc1 }}</div>
<br/>
<div v-if="scope.row.level1.configuration">配置码:<br/>{{ scope.row.level1.configuration }}</div>
</div>
<div v-else-if="item.prop == 'erpLocatioCode'">{{ scope.row.level2[item.prop] }}</div>
<div v-else>
@ -64,15 +102,13 @@
<div v-else-if="item.prop == 'sumOutQty'">{{ scope.row.level4.outQty }}</div>
<div v-else-if="item.prop == 'createDateTime'">{{ scope.row.level4.createDateTime.slice(0,scope.row.level4.createDateTime.indexOf('T')) }}</div>
<div v-else-if="item.prop == 'locationCode'">{{ scope.row.level4.locatioCode }}</div>
<div v-else-if="item.prop == 'interFaceName'">{{getInterFaceName(scope.row.level4)}}</div>
<div v-else-if="item.prop == 'enumTransType' || item.prop == 'enumTransSubType'">{{ scope.row.level4[item.prop] | trigger(item.option, "label") }}</div>
<div v-else>{{ scope.row.level4[item.prop] }}</div>
</div>
<div v-else>{{ scope.row.level3[item.prop] }}</div>
</div>
</div>
<div v-else>
<span v-if="totalProps[0] == item.prop">储位小计</span>
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total[item.prop]}}</span>
</div>
</template>
</el-table-column>
</el-table>
@ -80,39 +116,48 @@
</div>
</template>
<script>
import { getInventoryTransactionSerials } from '@/api/wms-api'
import { getInventoryTransactionSerials,getInterfaceCalendar } from '@/api/wms-api'
import { formatTimeStampToNorm } from '@/utils/formatTime'
export default {
name:"InventoryBookDetail_innerPage",
data(){
return{
loading:false,
calendarLoading:false,
tableData:null,
calendarList:[],
searchForm:{
itemCode:'VW316C1A028A,VW316C1A131AG',
beginDate: '2023-07-01',
endDate: '2023-08-01',
interfaceCalendar:null,
erpLocatioCode:null,
itemCode:null,
beginDate: '',
endDate: '',
},
formRule: {
beginDate: [{ required: true, trigger: "blur", message: "不可为空" }],
endDate: [{ required: true, trigger: "blur", message: "不可为空" }],
// itemCode: [{ required: true, trigger: "blur", message: "" }],
},
tableHeader:{
companyName:localStorage.getItem('companyName')
},
tableTh:[
{label:'物料代码',prop:'itemCode',width:180},
{label:'ERP储位',prop:'erpLocatioCode'},
{label:'库位代码',prop:'locationCode',width:180},
{label:'物料信息',prop:'itemCode',width:180},
{label:'ERP储位',prop:'erpLocatioCode',width:80},
{label:'库位代码',prop:'locationCode',width:80},
// {label:'inQty',prop:'inQty'},
// {label:'outQty',prop:'outQty'},
{label:'number',prop:'number'},
{label:'createDateTime',prop:'createDateTime'},
{label:'docNumber',prop:'docNumber'},
{label:'enumTransType',prop:'enumTransType'},
{label:'enumTransSubType',prop:'enumTransSubType'},
{label:'interFaceName',prop:'interFaceName'},
{label:'firstQty',prop:'firstQty'},
{label:'lastQty',prop:'lastQty'},
{label:'nowQty',prop:'nowQty'},
{label:'sumInQty/inQty',prop:'sumInQty'},
{label:'sumOutQty/outQty',prop:'sumOutQty'},
{label:'单号',prop:'number'},
{label:'创建时间',prop:'createDateTime'},
{label:'业务编号',prop:'docNumber'},
{label:'业务主类型',prop:'enumTransType',type:'filter',option:'TransTypeBase'},
{label:'业务子类型',prop:'enumTransSubType',type:'filter',option:'transSubType'},
{label:'对应接口',prop:'interFaceName',width:200},
{label:'期初库存',prop:'firstQty'},
{label:'期末库存',prop:'lastQty'},
{label:'结存',prop:'nowQty'},
{label:'入库',prop:'sumInQty'},
{label:'出库',prop:'sumOutQty'},
],
totalProps:['firstQty','lastQty','nowQty','sumInQty','sumOutQty'],
indexArray_item: [], //itemCode
@ -120,11 +165,51 @@ export default {
indexArray_erp2: [], //locationCode
}
},
mounted () {},
mounted () {
this.getInterfaceCalendarList()
},
methods:{
//
getInterfaceCalendarList(){
this.calendarLoading = true
let _data = {
condition: {
filters: []
},
Sorting: "code DESC",
SkipCount: 0,
MaxResultCount: 1000
}
getInterfaceCalendar(_data).then(res => {
this.calendarList=res.items
this.calendarLoading = false
}).catch(err => {
this.calendarLoading = false
})
},
//
calendarChange(id){
let _item = this.calendarList.filter(item=>{
return item.id == id
})[0]
this.searchForm.beginDate = _item.beginTime
this.searchForm.endDate = _item.endTime
},
//
timeChange(data){
if(data){
this.searchForm.interfaceCalendar = ""
}
},
//
searchHandle(){
this.getTableData()
this.$refs.searchForm.validate((valid) => {
if (valid) {
this.getTableData()
} else {
return false;
}
});
},
//
getYearMonth(date){
@ -134,10 +219,11 @@ export default {
getNow(){
return formatTimeStampToNorm(new Date(),'date')
},
//
initTableData(res){
let _list = []
res.forEach(item1 => {
item1.reportErpLocationSerialDtos.forEach(item2 => {
item1.reportErpLocationSerialDtos.forEach((item2,index2) => {
item2.reportLocationSerialDtos.forEach((item3,index3)=>{
//
if(item3.reportTransactionSerialDtos && item3.reportTransactionSerialDtos.length > 0){
@ -149,13 +235,14 @@ export default {
level4:item4,
}
_list.push(_item)
//
if(index4 == item3.reportTransactionSerialDtos.length - 1){
_list.push({
level1:item1,
level2:item2,
level3:item3,
level4:item4,
total:item3
total_erp2:item3
})
}
})
@ -166,27 +253,58 @@ export default {
level3:item3,
}
_list.push(_item)
if(index3 == item2.reportLocationSerialDtos.length - 1){
//
// if(index3 == item2.reportLocationSerialDtos.length - 1){
_list.push({
level1:item1,
level2:item2,
level3:item3,
total:item2
total_erp2:item3
})
}
// }
}
//
if(index3 == item2.reportLocationSerialDtos.length - 1){
_list.push({
level1:item1,
level2:item2,
level3:item3,
total_erp:item2,
})
}
})
//
if(index2 == item1.reportErpLocationSerialDtos.length - 1){
_list.push({
level1:item1,
level2:item2,
level3:{locationCode:null},//locationCode
total_item:item1,
})
}
})
});
return _list
},
//
initEndTime(data){
let _time = ""
if(data.indexOf('T') >= 0){
_time = data.slice(0,data.indexOf('T')) + 'T23:59:59'
}else{
_time = data + 'T23:59:59'
}
return _time
},
//
getTableData(){
this.loading = true
let _itemCodes = this.searchForm.itemCode ? this.searchForm.itemCode.split(',') : []
getInventoryTransactionSerials(
this.searchForm.itemCode.split(','),{
_itemCodes,{
startDateTime:this.searchForm.beginDate,
endDateTime:this.searchForm.endDate,
endDateTime:this.initEndTime(this.searchForm.endDate),
erpLocatioCode:this.searchForm.erpLocatioCode,
}).then(res => {
this.tableData = this.initTableData(res)
this.getIndexArr()
@ -195,11 +313,19 @@ export default {
this.loading = false
})
},
// class
tableRowClass(data){
if(data.row.total){
if(data.row.total_erp2){
return "totalRow"
}
if(data.row.total_erp){
return "totalRow-red"
}
if(data.row.total_item){
return "totalRow-green"
}
},
//
getIndexArr(){
// itemCode
let count_item = 0
@ -225,6 +351,7 @@ export default {
rowIndex += count_erp2
}
},
//
getRows(rowIndex, name,prop,level) {
let count = 0
for (let i = rowIndex; i < this.tableData.length; i++) {
@ -286,7 +413,57 @@ export default {
}
}
}
}
},
//
getInterFaceName(item){
let _str = ""
if (item.enumTransType == 11) {
_str = '【TYRP】-【采购单】'
} else if (item.enumTransType == 12) {
_str = '【TYRP】-【采购退货单】*【EOS】-【退货单】'
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) {
_str = '【TYRP】-【验收单】*【EOS】-【验收单】'
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 15 && item.enumTransSubType == 1505) {
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】'
} else if (item.enumTransType == 15 && item.enumTransSubType == 1501) {
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】'
} else if (item.enumTransType == 16) {
_str = '【TYRP】-【线边仓退料单】'
} else if (item.enumTransType == 31 && item.enumTransSubType == 3102) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 31 && item.enumTransSubType == 3104) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 31 && item.enumTransSubType == 3105) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 21) {
_str = '【TYRP】-【缴库单】'
} else if (item.enumTransType == 23 && item.enumTransSubType == 2302) {
_str = '【TYRP】-【出货单】'
} else if (item.enumTransType == 23 && item.enumTransSubType == 2303) {
_str = '【TYRP】-【出货单】'
} else if (item.enumTransType == 23) {
_str = '【TYRP】-【非生产领料单】'
} else if (item.enumTransType == 33 && item.enumTransSubType == 0) {
_str = '【TYRP】-【非生产退料】'
} else if (item.enumTransType == 33 && item.enumTransSubType == 3301) {
_str = '【TYRP】-【回收料入库单】'
} else if (item.enumTransType == 22) {
_str = '【TYRP】-【退拆单】'
} else if (item.enumTransType == 37 && item.enumTransSubType == 0) {
_str = '【TYRP】-【盘点调整单】'
} else if (item.enumTransType == 37 && item.enumTransSubType == 3701) {
_str = '【TYRP】-【线边仓调整单】'
} else if (item.enumTransType == 38 && item.enumTransSubType == 3302) {
_str = '【TYRP】-【回收料调整单】'
} else if (item.enumTransType == 36) {
_str = '【TYRP】-【报废单、线边仓报废单】'
} else {
_str = ''
}
return _str
},
}
}
</script>
@ -381,7 +558,18 @@ export default {
.totalRow{
td{
border-top: #333 solid 1px !important;
border-top: blue dashed 1px !important;
}
}
.totalRow-red{
td{
border-top: #ff6000 solid 1px !important;
}
}
.totalRow-green{
td{
border-top: #24b924 solid 1px !important;
}
}
}

Loading…
Cancel
Save