Browse Source

修改制品直接上架及物料变更 2024/8/1 17:29:13

pull/1/head
张立 7 months ago
parent
commit
d275bbf7f4
  1. 6
      src/api/request2.js
  2. 14
      src/mycomponents/print/print.vue
  3. 8
      src/mycomponents/scan/winScanPackage.vue
  4. 51
      src/pages/fg/coms/comReceiptPopup.vue
  5. 61
      src/pages/fg/fgChange.vue
  6. 14
      src/pages/issue/coms/comIssueRequestPopup.vue
  7. 8
      src/pages/package/job/overPackageJobDetail.vue
  8. 12
      src/pages/package/record/overPackageRecord.vue
  9. 29
      src/pages/productPutaway/record/productPutawayRecord.vue
  10. 2
      src/pages/productReceipt/job/ccProductReceiptDetail.vue
  11. 5
      src/pages/productReceipt/job/productReceiptDetail.vue
  12. 2
      src/pages/productionReceipt/coms/comProductionRecord.vue

6
src/api/request2.js

@ -2729,3 +2729,9 @@ export function getSpareitemcode(params) {
export function getProductreceiptDetailbByPackingNumber(packingNumber ) {
return http.get("/wms/productreceipt-detailb/getProductreceiptDetailbByPackingNumber?packingNumber="+packingNumber)
}
/**
* 物料变更
*/
export function fgChangeCommit(data) {
return http.post("/wms/relegate-request-main/bind",data)
}

14
src/mycomponents/print/print.vue

@ -93,10 +93,13 @@ export default {
await getPrintList()
.then((res) => {
this.printList = res.data
this.showPrintSelect = true
uni.hideLoading()
})
.catch((error) => {})
this.showPrintSelect = true
.catch((error) => {
uni.hideLoading()
this.showErrorMessage(error)
})
},
confirmSelectPrint(e) {
console.log(e)
@ -113,9 +116,12 @@ export default {
.then((res) => {
this.templateList = res.data
uni.hideLoading()
})
.catch((error) => {})
this.showTemplateSelect = true
})
.catch((error) => {
uni.hideLoading()
this.showErrorMessage(error)
})
},
confirmSelectTemplate(e) {
this.templateCode = e[0].value

8
src/mycomponents/scan/winScanPackage.vue

@ -134,7 +134,7 @@ const getBalance = (result, callback) => {
}
getBalanceByFilter(params)
.then((res) => {
if (res.length == 0) {
if (res.data.list.length == 0) {
showErrorMessage('未查找到该包装的库存余额', (res) => {
packGetFocus()
})
@ -161,6 +161,12 @@ const losefocus = () => {
const showMessage = (message) => {
comMessageRef.value.showMessage(message)
}
const showErrorMessage = (message) => {
comMessageRef.value.showErrorMessage(message, (res) => {
if (res) {
}
})
}
//
const emit = defineEmits(['getResult'])
</script>

51
src/pages/fg/coms/comReceiptPopup.vue

@ -44,7 +44,7 @@
<view v-if="planQty > 0">{{ planQty }}({{ getUomInfo(uom) }})</view>
<u-select v-model="showItemCodeSelect" mode="single-column" :list="itemCodeList" @confirm="confirmSelectItem"></u-select>
<view class="">
<image src="/static/icons/down.svg" mode="" style="width: 40rpx; height: 40rpx; margin-left: 20rpx" @click="showSelectItemCode"> </image>
<image src="/static/icons/down.svg" mode="" style="width: 40rpx; height: 40rpx; margin-left: 20rpx" @click="showItemList"> </image>
</view>
</view>
@ -78,8 +78,6 @@
<image src="" mode="" style="width: 40rpx; height: 40rpx; margin-left: 20rpx" @click="showSelectLine"> </image>
</view>
</view>
<view class="split_line"></view>
</view>
</view>
</view>
@ -157,9 +155,11 @@ export default {
openRequestPopup() {
this.initData()
this.planDate = getCurrDate()
this.batch = getBatch8()
// this.batch = getBatch8()
this.batch = this.planDate.replace('-', '')
this.$refs.popup.open('bottom')
},
initData() {
this.itemCode = '请选择物料信息'
this.uom = ''
@ -190,6 +190,7 @@ export default {
closeRequestPopup() {
this.$refs.popup.close()
},
itemCodeLoseFocus() {
this.itemCodeFocus = false
},
@ -261,9 +262,12 @@ export default {
const parent = this.productLineList.filter((res) => res.value == this.productionLineCode)
const fgLocation = parent[0].children.filter((children) => children.value == this.workStationCode)
this.fgLocationCode = fgLocation[0].fgLocationCode
this.clearItemCode()
this.clearPackUnit()
// this.clearItemCode()
// this.clearPackUnit()
this.showProductLineSelect = false
this.showSelectItemCode()
},
clearItemCode() {
this.planDate = getCurrDate()
this.itemCode = '请选择物料信息'
@ -271,10 +275,14 @@ export default {
this.planQty = 0
this.goodQty = 0
this.planNumber = ''
this.packUnit = ''
this.packQty = 0
},
confirmSelectDate(data) {
this.planDate = data[0].label
this.batch = this.planDate.replace('-', '')
this.afterSelectPlanData()
},
showSelectDate() {
@ -313,6 +321,27 @@ export default {
this.showProductLineSelect = true
}
},
afterSelectPlanData() {
this.itemCode = '请选择物料信息'
this.packUnit = ''
this.packQty = 0
this.planQty = 0
this.itemCode = '请选择物料信息'
this.uom = ''
this.packUnitName = '请选择包装规格'
this.packUnit = ''
this.packQtyHint = ''
// this.packUnitList = []
this.itemCodeList = []
this.showSelectItemCode()
},
showItemList() {
this.showItemCodeSelect = true
},
showSelectItemCode() {
if (!this.planDate) {
this.showErrorMessage('请先选择计划日期')
@ -336,8 +365,14 @@ export default {
})
this.itemCodeList = res.data
this.showItemCodeSelect = true
if (this.itemCodeList.length == 1) {
this.itemCode = this.itemCodeList[0].itemCode
} else {
this.showItemCodeSelect = true
}
} else {
this.showErrorMessage('未查找到物料信息')
this.showErrorMessage(`未查找到该生产线在【${this.planDate}】日期的生产计划`)
}
})
.catch((error) => {
@ -345,6 +380,7 @@ export default {
this.showErrorMessage(error)
})
},
confirmSelectItem(data) {
const productionPlan = data[0].value
this.itemCode = productionPlan.itemCode
@ -422,6 +458,7 @@ export default {
this.packQtyHint = `${pack[0].packQty}(${this.getUomInfo(pack[0].uom)})`
this.packQty = pack[0].packQty
},
getUomInfo(uom) {
const item = getUomInfo(uom)
if (item == '') {

61
src/pages/fg/fgChange.vue

@ -71,7 +71,7 @@
<script>
import { Decimal } from 'decimal.js' //
import { getSpareitemcode, getProductreceiptDetailbByPackingNumber } from '@/api/request2.js'
import { getSpareitemcode, getProductreceiptDetailbByPackingNumber, fgChangeCommit } from '@/api/request2.js'
import { getPrecisionStrategyList } from '@/common/balance.js'
import { goHome, getPackingNumberAndBatchByList, deepCopyData, getRemoveOption } from '@/common/basic.js'
@ -110,6 +110,7 @@ export default {
businessType: {},
show: false,
toItemCode: '请选择变更后物料',
toItemInfo: {},
toItemList: [],
fgList: [],
currentPackage: null,
@ -262,28 +263,69 @@ export default {
if (this.currentPackage.handleQty == null) {
this.$refs.comMessage.showQuestionMessage('是否要将全部灯码进行变更?', (res) => {
if (res) {
this.commitRecord()
this.commitChange()
}
})
} else {
this.$refs.comMessage.showQuestionMessage(`是否要将已扫描的【${this.currentPackage.handleQty}】个灯码进行变更?`, (res) => {
if (res) {
this.commitRecord()
this.commitChange()
}
})
}
},
commitRecord() {
// this.showCommitSuccessMessage('')
commitChange() {
uni.showLoading({
title: '提交中...',
mask: true
})
const params = this.setParams()
console.log('params', JSON.stringify(params))
fgChangeCommit(params)
.then((res) => {
const ss = res
})
.catch((err) => {
this.showErrorMessage(err.message)
})
},
setParams() {
let scanedList = this.fgList.filter((r) => r.scaned == true)
if (this.currentPackage.handleQty > 0) {
scanedList = this.fgList.filter((r) => r.scaned == true)
const creator = this.$store.state.user.id
let subList = this.fgList.filter((r) => r.scaned == true)
if (this.currentPackage.handleQty == undefined) {
subList = this.fgList
}
const creator = this.$store.state.user.id
// var item = deepCopyData(this.currentPackage);
const item = {}
item.fromItemCode = this.currentPackage.itemCode
item.fromItemName = this.currentPackage.itemName
item.fromItemDesc1 = this.currentPackage.itemDesc1
item.fromItemDesc2 = this.currentPackage.itemDesc2
item.toItemCode = this.toItemCode
item.toItemName = this.toItemInfo.itemName
item.toItemDesc1 = this.toItemInfo.itemDesc1
item.toItemDesc2 = this.toItemInfo.itemDesc2
item.fromInventoryStatus = this.currentPackage.inventoryStatus
item.fromQty = this.currentPackage.handleQty
item.fromParentPackingNumber = this.currentPackage.parentNumber
item.fromPackingNumber = this.currentPackage.packingNumber
item.fromBatch = this.currentPackage.batch
item.fromLocationCode = this.currentPackage.locationCode
item.fromPackUnit = this.currentPackage.packUnit
item.fromPackQty = this.currentPackage.packQty
item.toPackQty = this.currentPackage.packUnit
item.toPackUnit = this.currentPackage.packUnit
item.subList = subList
item.creator = creator
return item
},
showMessage(message) {
@ -357,6 +399,7 @@ export default {
},
confirmSelect(e) {
this.toItemCode = e[0].value
this.toItemInfo = e[0]
}
}
}

14
src/pages/issue/coms/comIssueRequestPopup.vue

@ -12,7 +12,7 @@
<view class="split_line"></view>
<view class="uni-flex uni-column" style="background-color: white">
<view class="uni-flex uni-column">
<view class="uni-flex uni-row padding title u-col-center">
<!-- <view class="uni-flex uni-row padding title u-col-center">
<text>从仓库代码</text>
<view class="uni-flex u-col-center uni-row" @click="showWarseHouseSelect">
<view class="" style="margin-left: 20rpx; width: 100%">
@ -20,8 +20,8 @@
</view>
<u-select v-model="showWareHouse" mode="single-column" :list="wareHouseList" @confirm="confirmWareHouse"></u-select>
</view>
</view>
<view class="split_line"></view>
</view> -->
<!-- <view class="split_line"></view> -->
<view class="uni-flex uni-row" style="align-items: center; background-color: #fff; margin-right: 20rpx; border-radius: 8rpx">
<view class="uni-center" style="width: 25%; font-size: 32rpx"> 优先级 </view>
<view style="width: 100%">
@ -250,10 +250,10 @@ const confirm = () => {
return
}
if (fromWarehouseCode.value == '请选择仓库代码') {
showErrorMessage('请选择仓库代码')
return
}
// if (fromWarehouseCode.value == '') {
// showErrorMessage('')
// return
// }
if (itemCode.value == '请扫描物料信息') {
showErrorMessage('请输入物料', 'itemCode')

8
src/pages/package/job/overPackageJobDetail.vue

@ -199,6 +199,14 @@ const closeScan = () => {
resizeCollapse()
}
const submit = () => {
if (!jobContent.value.printerUuid) {
showErrorMessage('请选择打印机')
return
}
if (!jobContent.value.modelCode) {
showErrorMessage('请选择打印模板')
return
}
//
const itemCodes = []
const locationCode = detailSource.value[0].toLocationCode

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

@ -115,8 +115,12 @@ const printService = ref()
onLoad(() => {
getBusinessType()
nextTick(() => {
if (uni.getStorageSync('overPackageRecordPointParams')) {
const overPackageRecordPointParams = uni.getStorageSync('overPackageRecordPointParams')
dataContent.value.printerUuid = overPackageRecordPointParams.printDeafult.value
dataContent.value.modelCode = overPackageRecordPointParams.templateDeafult.value
printService.value.setDefaultData(overPackageRecordPointParams.printDeafult, overPackageRecordPointParams.templateDeafult)
}
})
})
onLoad((option) => {
@ -291,6 +295,14 @@ const scanPopupGetFocus = () => {
}
}
const commit = () => {
if (!dataContent.value.printerUuid) {
showErrorMessage('请选择打印机')
return
}
if (!dataContent.value.modelCode) {
showErrorMessage('请选择打印模板')
return
}
if (detailSource.value.length > 0 && detailSource.value[0].subList.length > 0) {
if (toPackUnit.value || toPackUnit.value == '包装规格') {
showErrorMessage('请选择目标包装规格')

29
src/pages/productPutaway/record/productPutawayRecord.vue

@ -1,7 +1,7 @@
<template>
<view class="page-wraper">
<view class="">
<com-blank-view @goScan="showFromLocationPopup" v-if="detailSource.length == 0"></com-blank-view>
<com-blank-view @goScan="openScanPopup" v-if="detailSource.length == 0"></com-blank-view>
</view>
<view class="page-wraper" v-if="detailSource.length > 0">
@ -9,7 +9,9 @@
<scroll-view scroll-y="true" class="page-main-scroll">
<view class="detail-list" v-for="(item, index) in detailSource" :key="item.id">
<view class="">
<record-com-detail-card :dataContent="item" :index="index" :settingParam="dataContent" :isShowStatus="false" @removeItem="removeItem(index, item)" @updateData="updateData" @removePack="removePack"> </record-com-detail-card>
<record-com-detail-card :dataContent="item" :index="index" :settingParam="dataContent"
:isShowStatus="false" @removeItem="removeItem(index,item)" @updateData="updateData"
@removePack="removePack">
</view>
<view class="split_line"></view>
</view>
@ -19,7 +21,8 @@
<view class="page-footer">
<view class="uni-flex u-col-center space-between padding_10" style="background-color: ghostwhite; width: 100%">
<view class="">
<requiredLocation title="目标库位" :locationCode="toLocationCode" @getLocation="getToLocationCode" :locationAreaTypeList="tolocationTypeList"></requiredLocation>
<requiredLocation title="目标库位" :locationCode="toLocationCode" @getLocation="getToLocationCode"
:locationAreaTypeList="tolocationTypeList"></requiredLocation>
</view>
<view class="uni-flex uni-row">
<button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button>
@ -29,8 +32,8 @@
<win-scan-button @goScan="openScanPopup"></win-scan-button>
</view>
<win-scan-pack-and-location :balanceFromInventoryStatuses="false" ref="scanPopup" @getResult="getScanResult"></win-scan-pack-and-location>
<win-scan-location ref="scanLocationCode" title="来源库位" @getLocation="getLocation" :locationAreaTypeList="fromLocationAreaTypeList"></win-scan-location>
<win-scan-package ref="scanPopup" @getResult='getScanResult'></win-scan-package>
<com-message ref="comMessageRef" />
</view>
</template>
@ -54,6 +57,8 @@ import comBlankView from '@/mycomponents/common/comBlankView.vue'
import winScanLocation from '@/mycomponents/scan/winScanLocation.vue'
import winScanPackAndLocation from '@/mycomponents/scan/winScanPackAndLocation.vue'
import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue'
import winScanPackage from '@/mycomponents/scan/winScanPackage.vue'
import { useCountStore } from '@/store'
// store
@ -70,6 +75,7 @@ const fromLocationAreaTypeList = ref([])
const tolocationTypeList = ref([])
const inInventoryStatus = ref('') //
const outInventoryStatus = ref('') //
const bussinessCode = ref('ProductPutaway')
const businessType = ref({})
const managementList = ref([])
const scanLocationCode = ref()
@ -86,13 +92,12 @@ onLoad((option) => {
} else if (type.value == 'assemble') {
updateTitle('装配上架记录')
}
const typeCode = 'ProductPutaway'
getBusinessType(typeCode, (res) => {
getBusinessType(bussinessCode.value, (res) => {
if (res.success) {
businessType.value = res.businessType
fromLocationAreaTypeList.value = res.fromLocationAreaTypeList
tolocationTypeList.value = res.tolocationTypeList
showFromLocationPopup()
openScanPopup()
} else {
showErrorMessage(res.message)
}
@ -155,11 +160,9 @@ const removePack = () => {
}
const openScanPopup = () => {
if (fromLocationCode.value == '') {
showFromLocationPopup()
return
}
scanPopup.value.openScanPopupForType(fromLocationCode.value, businessType.value)
setTimeout(r => {
scanPopup.value.openScanPopupByBusinessType(businessType.value)
})
}
const showFromLocationPopup = () => {
nextTick(() => {

2
src/pages/productReceipt/job/ccProductReceiptDetail.vue

@ -14,7 +14,7 @@
</view>
<view class="cell_info">
<view class="text_lightblue">生产线</view>
<view>
<view v-if="jobContent&&jobContent.subList&&jobContent.subList[0]">
{{jobContent.subList[0].productionLineCode}}
</view>
</view>

5
src/pages/productReceipt/job/productReceiptDetail.vue

@ -19,7 +19,7 @@
<view class="cell_info">
<view class="text_lightblue">生产线</view>
<view>
{{ jobContent.subList[0].productionLineCode }}
{{ productionLineCode }}
</view>
</view>
<view class="cell_info">
@ -99,6 +99,7 @@ const managementList = ref([])
const jobStatus = ref('')
const jobToLocationCode = ref('')
const status = ref('')
const productionLineCode = ref('')
const scanMessage = ref('')
const scanPopup = ref()
const comScanLocation = ref()
@ -176,6 +177,8 @@ const getDetail = () => {
subList.value = res.data.subList
jobStatus.value = res.data.status
jobToLocationCode.value = subList.value[0].toLocationCode
productionLineCode.value = jobContent.value.subList[0].productionLineCode
if (jobContent.value.allowModifyLocation == 'FALSE') {
toLocationCode.value = subList.value[0].toLocationCode
}

2
src/pages/productionReceipt/coms/comProductionRecord.vue

@ -24,7 +24,7 @@
<view class='split_line'></view>
</view> -->
<u-swipe-action :show="detail.show" :index="index" v-for="(detail, index) in dataContent.subList" :key="index" :options="detail.scaned ? scanOptions : detailOptions" bg-color="rgba(255,255,255,0)" class="u-m-b-20" @click="(...event) => swipeClick(event, detail)">
<production-label :dataContent="item" :packageContent="item.package" :isShowStdPack="false"></production-label>
<production-label :dataContent="item" :packageContent="item.package" :isShowStdPack="false" :isShowLocation="false"></production-label>
</u-swipe-action>
</u-collapse-item>
</u-collapse>

Loading…
Cancel
Save