Browse Source

修改直接补料查询库存2024/7/10 15:14:14

hella_vue3
zhang_li 3 months ago
parent
commit
cc68fcbff0
  1. 2
      src/api/request2.js
  2. 6
      src/mycomponents/job/jobFilter.vue
  3. 9
      src/mycomponents/scan/winComScanBalance.vue
  4. 2
      src/pages.json
  5. 7
      src/pages/count/job/countJob.vue
  6. 8
      src/pages/issue/job/issueJob.vue
  7. 7
      src/pages/package/record/overPackageRecord.vue
  8. 173
      src/pages/repleinsh/record/directRepleinshRecord.vue

2
src/api/request2.js

@ -2621,5 +2621,5 @@ export function getBalanceByParams(data) {
*/
export function getBusinessType() {
return http.get("/wms/businesstype/page?pageSize=1000&pageNo=1)
return http.get("/wms/businesstype/page?pageSize=1000&pageNo=1")
}

6
src/mycomponents/job/jobFilter.vue

@ -102,6 +102,12 @@ watch(
// 线
const productionLineCodeConfirm = () => {
let lineCode = ''
productionline.value.forEach((item) => {
if (item.text == productionLineCode.value) {
lineCode = item.value
}
})
emit('productionLineCode', productionLineCode.value)
}
//

9
src/mycomponents/scan/winComScanBalance.vue

@ -124,7 +124,7 @@ export default {
} else if (res.data.length == 1) {
result.balance = res.data[0]
this.$emit('getBalance', result)
this.closeScanPopup()
// this.closeScanPopup()
} else {
//
this.$refs.balanceSelect.openPopup(res.data)
@ -180,10 +180,15 @@ export default {
selectBalanceItem(item) {
this.resultData.balance = item
this.$emit('getBalance', this.resultData)
this.closeScanPopup()
// this.closeScanPopup()
},
closeScanPopup() {
this.$refs.popup.close()
},
getfocus() {
if (this.$refs.comscan) {
this.$refs.comscan.getfocus()
}
}
}
}

2
src/pages.json

@ -136,7 +136,7 @@
"path": "pages/supplierDeliver/record/supplierDeliverRecord",
"style": {
"navigationBarTitleText": "供应商发货记录",
"enablePullDownRefresh": true,
"enablePullDownRefresh": false,
"titleNView": {
// "autoBackButton": "true",
"buttons": [

7
src/pages/count/job/countJob.vue

@ -306,7 +306,12 @@ const getScanResult = (result) => {
value: '1,2'
})
filters.push({
column: 'locationCode',
column: 'countSplitType',
action: '==',
value: 'locationCode'
})
filters.push({
column: 'countSplitCode',
action: '==',
value: result.label.code
})

8
src/pages/issue/job/issueJob.vue

@ -67,7 +67,7 @@ onShow(() => {
})
})
onLoad(() => {
getIssueJobByProductionline()
getIssueJobByProductionline1()
})
onReady(() => {
detailOptions.value = getDetailOption()
@ -100,13 +100,13 @@ onNavigationBarButtonTap((e) => {
filter.value.openFilter()
}
})
const getIssueJobByProductionline = () => {
const getIssueJobByProductionline1 = () => {
getIssueJobByProductionline().then((res) => {
console.log('生产线', res)
if (res.code == 0) {
productionline.value = res.data.map((item) => ({
value: item,
text: item
value: item.value,
text: item.name
}))
} else {
productionline.value = []

7
src/pages/package/record/overPackageRecord.vue

@ -204,6 +204,7 @@ const setData = (result) => {
detailSource.value.push(itemp)
itemCode.value = balance.itemCode
fromLocationCode.value = balance.locationCode
scanPopupGetFocus()
} else {
const detail = item.subList.find((r) => {
if (r.packingNumber == balance.packingNumber && r.batch == balance.batch && r.locationCode == balance.locationCode && r.inventoryStatus == balance.inventoryStatus) {
@ -214,6 +215,7 @@ const setData = (result) => {
if (detail == undefined) {
const newDetail = createDetailInfo(balance, pack)
item.subList.push(newDetail)
scanPopupGetFocus()
} else if (detail.scaned == true) {
showErrorMessage(`箱码[${balance.packingNumber}批次[${balance.batch}]已经在列表中`)
}
@ -228,6 +230,7 @@ const calcHandleQty1 = () => {
const showErrorMessage = (message) => {
comMessageRef.value.showErrorMessage(message, (res) => {
if (res) {
scanPopupGetFocus()
}
})
}
@ -266,12 +269,12 @@ const showFromLocationPopup = () => {
}
const closeScanPopup = () => {
if (scanPopup.value != undefined) {
if (scanPopup.value) {
scanPopup.value.closeScanPopup()
}
}
const scanPopupGetFocus = () => {
if (scanPopup.value != undefined) {
if (scanPopup.value) {
scanPopup.value.getfocus()
}
}

173
src/pages/repleinsh/record/directRepleinshRecord.vue

@ -1,12 +1,12 @@
<template>
<view class="page-wraper">
<view class="">
<com-blank-view @goScan="showFromLocationPopup" v-if="detailSource.length == 0"></com-blank-view>
<com-blank-view @goScan="getBusinessType" v-if="detailSource.length == 0"></com-blank-view>
</view>
<view class="page-wraper" v-if="detailSource.length > 0">
<view class="page-header">
<view class="page-header-box">
<view class="header_item u-p-t-20"> 来源库位 : {{ fromLocationCode }} </view>
<view class="header_item u-p-t-20" style="font-size: 35rpx; padding: 10rpx"> 来源库位 : {{ fromLocationCode }} </view>
</view>
</view>
<view class="page-main">
@ -30,10 +30,8 @@
</view>
<win-scan-button @goScan="openScanPopup"></win-scan-button>
</view>
<win-scan-pack-and-location ref="scanPopup" @getResult="getScanResult" :allowModifyLocation="false" :queryBalance="false"> </win-scan-pack-and-location>
<winComScanBalance ref="scanPopup" @getBalance="getScanResult" :bussinessCode="businessTypeCode"> </winComScanBalance>
<com-message ref="comMessageRef" />
<win-scan-location ref="scanLocationCode" title="来源库位" @getLocation="getLocation" :locationAreaTypeList="fromLocationAreaTypeList"></win-scan-location>
<balance-select ref="balanceSelectRef" @onSelectItem="selectBalanceItem"></balance-select>
</view>
</template>
@ -61,6 +59,7 @@ import winScanPackAndLocation from '@/mycomponents/scan/winScanPackAndLocation.v
import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue'
import recordDetailCard from '@/mycomponents/record/recordDetailCard.vue'
import balanceSelect from '@/mycomponents/balance/balanceSelect.vue'
import winComScanBalance from '@/mycomponents/scan/winComScanBalance.vue'
import { useCountStore } from '@/store'
// store
const store = useCountStore()
@ -81,6 +80,7 @@ const fromWarehouseCode = ref('') // 来源仓库
const businessTypeCode = ref('Repleinment')
const toLocationCode = ref('')
const resultData = ref({})
const itemCode = ref('')
const balanceSelectRef = ref({})
const managementList = ref([])
@ -93,23 +93,26 @@ const scanPopup = ref()
const scanLocationCode = ref()
onLoad((option) => {
clear()
getBusinessType()
})
//
onNavigationBarButtonTap((e) => {
if (e.index === 0) {
goHome()
}
})
const getBusinessType = () => {
getBusinessType(businessTypeCode.value, (res) => {
if (res.success) {
businessType.value = res.businessType
fromInventoryStatuses.value = getDirectoryItemArray(res.fromInventoryStatuses)
fromLocationAreaTypeList.value = res.fromLocationAreaTypeList
toLocationAreaTypeList.value = res.toLocationAreaTypeList
showFromLocationPopup()
openScanPopup()
} else {
showErrorMessage(res.message)
}
})
})
//
onNavigationBarButtonTap((e) => {
if (e.index === 0) {
goHome()
}
})
}
const getBalance = (label, packageInfo, callback) => {
const filters = []
@ -161,104 +164,43 @@ const getBalance = (label, packageInfo, callback) => {
})
}
const getScanResult = (result) => {
resultData.value = result
const packageInfo = result.package
getBalance(result.label, packageInfo, (balances) => {
//
const s = ''
if (!result.package.parentNumber) {
if (balances.list.length == 0) {
showErrorMessage('未查找到该包装的库存信息,请重新扫描')
} else {
const newBalances = balances.list.filter((b) => b.locationCode == fromLocationCode.value)
if (newBalances.length == 0) {
showErrorMessage('未查找到该包装的库存信息,请重新扫描')
} else if (newBalances.length == 1) {
const balance = newBalances[0]
result.balance = balance
afterGetBalance(result)
} else {
showBalanceSelect(newBalances)
}
}
} else {
//
if (balances.list.length == 0) {
showErrorMessage('未查找到该包装的库存信息,请重新扫描')
} else {
//
const subPackitems = balances.list.filter((r) => r.packingNumber == packageInfo.number)
//
const subParentPackitems = balances.list.filter((r) => r.packingNumber == packageInfo.parentNumber && r.locationCode == fromLocationCode.value)
//
if (subPackitems.length == 0) {
//
if (subParentPackitems.length > 0) {
if (subParentPackitems.length == 1) {
const balance = subParentPackitems[0]
balance.qty = packageInfo.qty
result.balance = balance
afterGetBalance(result)
} else {
showBalanceSelect(subParentPackitems)
}
} else {
showErrorMessage(`按外包装【${packageInfo.parentNumber}】和子包装【${packageInfo.number}】都未查找到库存余额`)
}
} else {
let locationCode = fromLocationCode.value
if (balances.list == 1) {
locationCode = balances.list[0].locationCode
} else {
const manyBlances = balances.list.filter((r) => r.locationCode != fromLocationCode.value)
if (manyBlances.length > 0) {
locationCode = manyBlances[0].locationCode
}
}
showErrorMessage(`该包装【${packageInfo.number}】在库位【${locationCode}】已经有库存余额,请重新扫描`)
}
}
}
})
}
const showBalanceSelect = (items) => {
balanceSelectRef.value.openPopup(items)
setData(result)
}
const selectBalanceItem = (balance) => {
resultData.value.balance = balance
afterGetBalance(resultData.value)
}
const afterGetBalance = (result) => {
const setData = (result) => {
const { balance } = result
const { label } = result
const pack = result.package
const { packUnit } = pack
const { packQty } = pack
if (fromLocationCode.value && fromLocationCode.value != balance.locationCode) {
showErrorMessage(`箱码[${balance.packingNumber}批次[${balance.batch}]在库位[${fromLocationCode.value}]没有库存余额`)
return
}
const item = detailSource.value.find((res) => {
if (res.itemCode == balance.itemCode) {
return res
}
})
if (fromWarehouseCode.value == '') {
fromWarehouseCode.value = balance.warehouseCode
}
if (item == undefined) {
if (itemCode.value != '' && itemCode.value != balance.itemCode) {
showErrorMessage(`请扫描物料为【${itemCode.value}】的箱码`)
return
}
if (fromWarehouseCode.value == '') {
fromWarehouseCode.value = balance.warehouseCode
}
const itemp = createItemInfo(balance, pack)
const newDetail = createDetailInfo(balance, pack)
newDetail.packUnit = packUnit || ''
newDetail.packQty = packQty
const newDetail = createDetailInfo(balance, pack) //
newDetail.parentNumber = pack.parentNumber
newDetail.packingNumber = pack.number
newDetail.packUnit = pack.packUnit
newDetail.packQty = pack.packQty
itemp.subList.push(newDetail)
const dataList = pack.subList
detailSource.value.push(itemp)
calcHandleQty(detailSource.value)
itemCode.value = balance.itemCode
fromLocationCode.value = balance.locationCode.scanPopupGetFocus()
} else {
const detail = item.subList.find((r) => {
if (r.packingNumber == pack.packingNumber && r.batch == balance.batch && r.locationCode == balance.locationCode && r.inventoryStatus == balance.inventoryStatus) {
if (r.packingNumber == balance.packingNumber && r.batch == balance.batch && r.locationCode == balance.locationCode && r.inventoryStatus == balance.inventoryStatus) {
return r
}
})
@ -266,16 +208,15 @@ const afterGetBalance = (result) => {
const newDetail = createDetailInfo(balance, pack)
newDetail.parentNumber = pack.parentNumber
newDetail.packingNumber = pack.number
newDetail.parentNumber = pack.parentNumber
newDetail.packingNumber = pack.number
newDetail.packUnit = packUnit
newDetail.packQty = packQty
newDetail.packUnit = pack.packUnit
newDetail.packQty = pack.packQty
item.subList.push(newDetail)
calcHandleQty(detailSource.value)
scanPopupGetFocus()
} else if (detail.scaned == true) {
showErrorMessage(`箱码[${detail.packingNumber}]批次[${balance.batch}]已经在列表中`)
showErrorMessage(`箱码[${balance.packingNumber}批次[${balance.batch}]已经在列表中`)
}
}
calcHandleQty(detailSource.value)
}
const updateData = () => {
@ -303,27 +244,21 @@ const removePack = () => {
}
const openScanPopup = () => {
if (fromLocationCode.value == '') {
showFromLocationPopup()
return
if (businessType.value) {
scanPopup.value.openScanPopup(businessType.value)
} else {
getBusinessType()
}
scanPopup.value.openScanPopupForType(fromLocationCode.value, businessType.value)
}
const showFromLocationPopup = () => {
nextTick(() => {
scanLocationCode.value.openScanPopup()
})
}
const closeScanPopup = () => {
if (scanPopup.value != undefined) {
if (scanPopup.value) {
scanPopup.value.closeScanPopup()
}
}
const scanPopupGetFocus = () => {
if (scanPopup.value != undefined) {
if (scanPopup.value) {
scanPopup.value.getfocus()
}
}
@ -449,14 +384,6 @@ const closeScanMessage = () => {
scanPopupGetFocus()
}
const getLocation = (location, code) => {
getFromLocationCode(location, code)
}
const getFromLocationCode = (location, code) => {
fromLocationCode.value = code
openScanPopup()
}
const getToLocationCode = (location, code) => {
if (fromLocationCode.value == code) {
uni.showToast({

Loading…
Cancel
Save