Browse Source

发料任务自动提交

hella_online_20240829
niexiting 4 months ago
parent
commit
bd2e8b49fa
  1. 10
      src/mycomponents/scan/winComScan.vue
  2. 57
      src/pages/issue/coms/comScanIssuePack.vue
  3. 85
      src/pages/issue/job/issueDetail.vue
  4. 77
      src/pages/repleinsh/job/repleinshDetail.vue

10
src/mycomponents/scan/winComScan.vue

@ -101,14 +101,14 @@
}, },
mounted() { mounted() {
this.boxfocus =true; this.boxfocus =true;
uni.hideKeyboard(); // uni.hideKeyboard();
// #ifdef H5 // #ifdef H5
if (document.querySelector('textarea') != null) { // if (document.querySelector('textarea') != null) {
document.querySelector('textarea').setAttribute('inputmode', 'none') // document.querySelector('textarea').setAttribute('inputmode', 'none')
} // }
// #endif // #endif
this.hide() // this.hide()
// #ifdef APP-PLUS // #ifdef APP-PLUS
// //
// this.hide() // this.hide()

57
src/pages/issue/coms/comScanIssuePack.vue

@ -3,12 +3,12 @@
<uni-popup ref="popup" :maskClick='false'> <uni-popup ref="popup" :maskClick='false'>
<view class=""> <view class="">
<view class="popup_box"> <view class="popup_box">
<view class="pop_title uni-flex space-between"> <view class="pop_title uni-flex space-between">
<view class="" style="font-size: 35rpx;"> <view class="" style="font-size: 35rpx;">
扫描箱码 扫描箱码
</view> </view>
<view class=""> <view class="">
<image class="fr icons_scan_close" src="/static/icons/icons_scan_close.svg" <image class="fr icons_scan_close" src="/static/icons/icons_scan_close.svg"
@click="closeScanPopup()"></image> @click="closeScanPopup()"></image>
@ -122,6 +122,7 @@
export default { export default {
name: 'winScanPack', name: 'winScanPack',
emits: ["afterScan"],
components: { components: {
winComScan, winComScan,
balance, balance,
@ -228,24 +229,16 @@
onScan(result) { onScan(result) {
if(this.toLocation&&result.package.packUnit){ if (this.toLocation && result.package.packUnit) {
let item = this.toLocation.Items.find(r => r.itemCode == result.package.itemCode); let item = this.toLocation.Items.find(r => r.itemCode == result.package.itemCode);
if(result.package.packUnit!==item.packUnit){ if (result.package.packUnit !== item.packUnit) {
this.$refs.comMessage.showModal({ this.$refs.comMessage.showQuestionMessage(
iconType:'警告', '扫描物料包装【${result.package.packUnit}】与任务推荐包装规格【${item.packUnit}】不一致.是否要继续发料?', res => {
content:`扫描物料包装【${result.package.packUnit}】与任务推荐包装规格【${item.packUnit}】不一致.是否要继续发料?`, if (res) {
showConfirmButton:true,
showCancelButton:true,
confirmText:'是',
cancelText:'否',
success:({confirm})=>{
if(confirm){
this.onScanResult(result) this.onScanResult(result)
} }
} });
}); } else {
return
}else {
this.onScanResult(result) this.onScanResult(result)
} }
} }
@ -340,6 +333,7 @@
that.showErrorMessage('未查找到该箱码【' + packingCode + '】的明细', that.showErrorMessage('未查找到该箱码【' + packingCode + '】的明细',
res => { res => {
that.getfocus(); that.getfocus();
return;
} }
) )
} }
@ -347,6 +341,7 @@
} else { } else {
that.addRecord(batch, label, balance, packageInfo) that.addRecord(batch, label, balance, packageInfo)
} }
that.$emit("afterScan");
} else { } else {
that.showErrorMessage('箱码【' + packingCode + '】已经扫描,请继续扫描下一箱', that.showErrorMessage('箱码【' + packingCode + '】已经扫描,请继续扫描下一箱',
res => { res => {
@ -354,6 +349,7 @@
} }
) )
} }
} else { } else {
if (this.jobContent.allowModifyBatch == "TRUE") { if (this.jobContent.allowModifyBatch == "TRUE") {
this.showQuestionMessage('在【' + that.fromLocationCode + '】库位下,未查找到批次【' + lot + this.showQuestionMessage('在【' + that.fromLocationCode + '】库位下,未查找到批次【' + lot +
@ -419,8 +415,8 @@
balance: balance, balance: balance,
toLocationCode: this.toLocationCode, toLocationCode: this.toLocationCode,
supplierCode: label.supplierCode, supplierCode: label.supplierCode,
packUnit:packageInfo.packUnit, packUnit: packageInfo.packUnit,
packQty:packageInfo.packQty packQty: packageInfo.packQty
} }
return record; return record;
}, },
@ -428,7 +424,7 @@
calcBatchHandleQty(batch) { calcBatchHandleQty(batch) {
let handleQty = 0; let handleQty = 0;
batch.Records.forEach(res => { batch.Records.forEach(res => {
handleQty = calc.add(handleQty,res.qty) handleQty = calc.add(handleQty, res.qty)
}) })
batch.handleQty = handleQty; batch.handleQty = handleQty;
@ -436,9 +432,6 @@
addRecord(batch, label, balance, packageInfo) { addRecord(batch, label, balance, packageInfo) {
let record = this.creatRecord(label, balance, packageInfo); let record = this.creatRecord(label, balance, packageInfo);
if(!batch.packingNumber){//bug-wyf
batch.packingNumber = label.packingNumber
}
batch.Records.push(record); batch.Records.push(record);
this.issueRecord.unshift(record) this.issueRecord.unshift(record)
this.calcBatchHandleQty(batch); this.calcBatchHandleQty(batch);
@ -490,17 +483,19 @@
this.issueRecord.splice(index, 1) this.issueRecord.splice(index, 1)
let item = this.toLocation.Items.find(r => r.itemCode == record.itemCode); let item = this.toLocation.Items.find(r => r.itemCode == record.itemCode);
if (item != undefined) { if (item != undefined) {
item.Locations.forEach(l => { item.Locations.forEach(l => {
let batch = l.Batchs.find(b => b.packingNumber == record.packingNumber && b.batch == record.batch); let batch = l.Batchs.find(b => b.packingNumber == record.packingNumber && b
.batch == record.batch);
if(batch&&batch.Records&&batch.Records.length>0){
let rIndex = batch.Records.findIndex(r => r.packingNumber == record.packingNumber && r.batch == record.batch); if (batch && batch.Records && batch.Records.length > 0) {
let rIndex = batch.Records.findIndex(r => r.packingNumber == record
.packingNumber && r.batch == record.batch);
batch.Records.splice(rIndex, 1); batch.Records.splice(rIndex, 1);
} }
}) })
} }
this.$emit('updateData', item); this.$emit('updateData', item);
@ -559,4 +554,4 @@
max-height: 300rpx; max-height: 300rpx;
padding: 10rpx; padding: 10rpx;
} }
</style> </style>

85
src/pages/issue/job/issueDetail.vue

@ -21,7 +21,7 @@
</view> </view>
</scroll-view> </scroll-view>
</view> </view>
<view class="page-footer"> <view class="page-footer">
<view class="uni-flex u-col-center space-between padding_10" <view class="uni-flex u-col-center space-between padding_10"
style="background-color:ghostwhite; width: 100%; "> style="background-color:ghostwhite; width: 100%; ">
@ -34,7 +34,8 @@
</view> </view>
<win-scan-button @goScan='openScanDetailPopup'></win-scan-button> <win-scan-button @goScan='openScanDetailPopup'></win-scan-button>
<com-scan-issue-pack ref="comScanIssuePack" @closeScan='closeScan' @updateData='updateData'> <com-scan-issue-pack ref="comScanIssuePack" @closeScan='closeScan' @updateData='updateData'
@afterScan='afterScan'>
</com-scan-issue-pack> </com-scan-issue-pack>
<comMessage ref="comMessage"></comMessage> <comMessage ref="comMessage"></comMessage>
</view> </view>
@ -64,7 +65,7 @@
import { import {
getManagementPrecisions getManagementPrecisions
} from '@/common/balance.js'; } from '@/common/balance.js';
import { import {
calc calc
} from '@/common/calc.js'; } from '@/common/calc.js';
@ -94,7 +95,7 @@
detailSource: [], // detailSource: [], //
detailOptions: [], detailOptions: [],
scanOptions: [], scanOptions: [],
jobStatus:"" jobStatus: ""
}; };
}, },
@ -126,7 +127,7 @@
onBackPress(e) { onBackPress(e) {
// //
if (e.from === 'backbutton') { if (e.from === 'backbutton') {
if (this.jobStatus=="2") { if (this.jobStatus == "2") {
// //
cancleTakeIssueJob(this.id).then(res => { cancleTakeIssueJob(this.id).then(res => {
uni.navigateBack(); uni.navigateBack();
@ -136,10 +137,10 @@
} else { } else {
uni.navigateBack(); uni.navigateBack();
} }
return true; return true;
} }
}, },
watch: { watch: {
@ -243,7 +244,6 @@
// }, // },
submit() { submit() {
uni.showLoading({ uni.showLoading({
title: "提交中....", title: "提交中....",
mask: true mask: true
@ -277,7 +277,7 @@
submitJob() { submitJob() {
var params = this.setParams() var params = this.setParams()
if(!params.subList||params.subList.length==0){ if (!params.subList || params.subList.length == 0) {
uni.hideLoading() uni.hideLoading()
this.showErrorMessage("请扫描您需要提交的发料任务") this.showErrorMessage("请扫描您需要提交的发料任务")
return return
@ -289,7 +289,7 @@
if (res.data) { if (res.data) {
this.showCommitSuccessMessage("提交成功<br>生成发料记录<br>" + res.data) this.showCommitSuccessMessage("提交成功<br>生成发料记录<br>" + res.data)
} else { } else {
this.showErrorMessage("提交失败[" + res.msg+"]") this.showErrorMessage("提交失败[" + res.msg + "]")
} }
}).catch(error => { }).catch(error => {
uni.hideLoading() uni.hideLoading()
@ -335,16 +335,15 @@
record.singlePrice = single_price; record.singlePrice = single_price;
record.amount = single_price * r.qty; record.amount = single_price * r.qty;
// //使 //使
// if (this.jobContent if (this.jobContent
// .useOnTheWayLocation == .useOnTheWayLocation == 'TRUE') {
// 'TRUE') { record.toPackingNumber = r
// record.toPackingNumber = r .packingNumber;
// .packingNumber; record.toBatch = r.batch;
// record.toBatch = r.batch; } else {
// } else { var info =
debugger getPackingNumberAndBatch(
var info = getPackingNumberAndBatch(
this.managementList, r this.managementList, r
.itemCode, .itemCode,
r.packingNumber, r r.packingNumber, r
@ -352,7 +351,7 @@
record.toPackingNumber = info record.toPackingNumber = info
.packingNumber; .packingNumber;
record.toBatch = info.batch; record.toBatch = info.batch;
// } }
subItem.recordList.push(record); subItem.recordList.push(record);
}) })
subList.push(subItem); subList.push(subItem);
@ -400,24 +399,25 @@
}, },
updateData(record) { updateData(record) {
console.log('updateData',record) console.log('updateData', record)
console.log('this.detailSource',this.detailSource) console.log('this.detailSource', this.detailSource)
let requestLocation = this.detailSource.find(r => r.toLocationCode == record.toLocationCode); let requestLocation = this.detailSource.find(r => r.toLocationCode == record.toLocationCode);
let item = requestLocation.Items.find(r => r.itemCode == record.itemCode); let item = requestLocation.Items.find(r => r.itemCode == record.itemCode);
let itemHandleQty = 0; let itemHandleQty = 0;
if (item != undefined) { if (item != undefined) {
item.Locations.forEach(l => { item.Locations.forEach(l => {
let batch = l.Batchs.find(b => (b.packingNumber == record.packingNumber || b.packingNumber == null || b.packingNumber == '') && b.batch == record.batch); let batch = l.Batchs.find(b => (b.packingNumber == record.packingNumber || b
.packingNumber == null || b.packingNumber == '') && b.batch == record.batch);
let handleQty = 0; let handleQty = 0;
if (batch != undefined) { if (batch != undefined) {
batch.Records.forEach(res => { batch.Records.forEach(res => {
handleQty = calc.add(handleQty,res.qty) handleQty = calc.add(handleQty, res.qty)
}) })
batch.handleQty = handleQty; batch.handleQty = handleQty;
itemHandleQty = calc.add(itemHandleQty,handleQty) itemHandleQty = calc.add(itemHandleQty, handleQty)
} }
}) })
} }
@ -425,6 +425,31 @@
item.handleQty = itemHandleQty; item.handleQty = itemHandleQty;
}, },
afterScan() {
this.detailSource.forEach(detail => {
let s = '';
detail.Items.forEach(item => {
let totalHandleQty = 0;
item.Locations.forEach(lco => {
lco.Batchs.forEach(batch => {
totalHandleQty = calc.add(totalHandleQty, batch.handleQty)
})
})
if (item.qty == totalHandleQty) {
this.submit();
} else {
this.$refs.comMessage.showQuestionMessage('实际扫描数量【' + totalHandleQty +
'】与物料需求数量【' + item.qty +
'】不一致,是否继续提交', res => {
if (res) {
this.submit();
}
});
}
})
})
},
scanPopupGetFocus() { scanPopupGetFocus() {
if (this.$refs.scanPopup != undefined) { if (this.$refs.scanPopup != undefined) {
this.$refs.scanPopup.getfocus(); this.$refs.scanPopup.getfocus();
@ -524,4 +549,4 @@
// border-bottom-width: 1px; // border-bottom-width: 1px;
// border-bottom-color: #ebeef5; // border-bottom-color: #ebeef5;
// } // }
</style> </style>

77
src/pages/repleinsh/job/repleinshDetail.vue

@ -61,10 +61,10 @@
import { import {
getDataSource getDataSource
} from '@/pages/issue/js/issue.js'; } from '@/pages/issue/js/issue.js';
import { import {
calc calc
} from '@/common/calc.js'; } from '@/common/calc.js';
import { import {
getManagementPrecisions getManagementPrecisions
@ -97,7 +97,7 @@
scanOptions: [], scanOptions: [],
toLocationCode: '', toLocationCode: '',
toLocationAreaTypeList: [], toLocationAreaTypeList: [],
jobStatus:"" jobStatus: ""
}; };
}, },
@ -129,7 +129,7 @@
onBackPress(e) { onBackPress(e) {
// //
if (e.from === 'backbutton') { if (e.from === 'backbutton') {
if (this.jobStatus=="2") { if (this.jobStatus == "2") {
// //
cancleTakeRepleinshJob(this.id).then(res => { cancleTakeRepleinshJob(this.id).then(res => {
uni.navigateBack(); uni.navigateBack();
@ -139,10 +139,10 @@
} else { } else {
uni.navigateBack(); uni.navigateBack();
} }
return true; return true;
} }
}, },
watch: { watch: {
@ -184,7 +184,10 @@
that.toLocationCode = that.subList[0].toLocationCode that.toLocationCode = that.subList[0].toLocationCode
that.toLocationAreaTypeList = getDirectoryItemArray(that.jobContent.toAreaTypes) that.toLocationAreaTypeList = getDirectoryItemArray(that.jobContent.toAreaTypes)
that.detailSource = getDataSource(that.detailSource, that.subList) that.detailSource = getDataSource(that.detailSource, that.subList)
that.resizeCollapse();
setTimeout(r => {
that.resizeCollapse();
}, 100)
} else { } else {
that.showMessage('列表数据为0'); that.showMessage('列表数据为0');
} }
@ -210,30 +213,30 @@
submit() { submit() {
var scanCount = this.getScanCount(this.subList); var scanCount = this.getScanCount(this.subList);
// //
if(this.jobContent.allowPartialComplete=="TRUE"){ if (this.jobContent.allowPartialComplete == "TRUE") {
// 00 // 00
if(scanCount == 0){ if (scanCount == 0) {
this.$refs.comMessage.showQuestionMessage("扫描数为0,是否提交?",res=>{ this.$refs.comMessage.showQuestionMessage("扫描数为0,是否提交?", res => {
if(res){ if (res) {
this.setSubmitParamsAndSubmit(); this.setSubmitParamsAndSubmit();
} }
}) })
}else { } else {
this.setSubmitParamsAndSubmit(); this.setSubmitParamsAndSubmit();
} }
}else { } else {
// //
if(scanCount == 0){ if (scanCount == 0) {
this.showErrorMessage("扫描数为0,当前补料任务不允许部分提交,请先扫描") this.showErrorMessage("扫描数为0,当前补料任务不允许部分提交,请先扫描")
}else { } else {
this.setSubmitParamsAndSubmit(); this.setSubmitParamsAndSubmit();
} }
} }
}, },
setSubmitParamsAndSubmit(){ setSubmitParamsAndSubmit() {
// //
var itemCodes = [] var itemCodes = []
let locationCode = this.toLocationCode let locationCode = this.toLocationCode
@ -242,7 +245,7 @@
itemCodes.push(item.itemCode) itemCodes.push(item.itemCode)
}) })
}) })
//使 //使
if (this.jobContent.useOnTheWayLocation == 'TRUE') { if (this.jobContent.useOnTheWayLocation == 'TRUE') {
this.submitJob(); this.submitJob();
@ -268,6 +271,7 @@
var params = this.setParams() var params = this.setParams()
console.log("提交参数", JSON.stringify(params)); console.log("提交参数", JSON.stringify(params));
return;
repleinshJobSubmit(params).then(res => { repleinshJobSubmit(params).then(res => {
uni.hideLoading() uni.hideLoading()
if (res.data) { if (res.data) {
@ -311,21 +315,24 @@
record.toLocationCode = this record.toLocationCode = this
.toLocationCode; .toLocationCode;
record.supplierCode = r.supplierCode; record.supplierCode = r.supplierCode;
if(r.parentPackingNumber!=''&&r.parentPackingNumber!=null) if (r.parentPackingNumber != '' && r
{ .parentPackingNumber != null) {
record.fromPackingNumber = r.parentPackingNumber; record.fromPackingNumber = r
.parentPackingNumber;
record.toPackingNumber = r record.toPackingNumber = r
.packingNumber; .packingNumber;
} // record.fromPackUnit = r.packUnit;
else record.toPackUnit = r.packUnit;
{ } else {
record.fromPackingNumber = r.packingNumber; record.fromPackingNumber = r
.packingNumber;
record.toPackingNumber = r record.toPackingNumber = r
.packingNumber; .packingNumber;
record.toPackUnit = r.packUnit;
} }
record.toBatch = r.batch; record.toBatch = r.batch;
// //使 // //使
// if (this.jobContent // if (this.jobContent
@ -403,10 +410,10 @@
let handleQty = 0; let handleQty = 0;
if (batch != undefined) { if (batch != undefined) {
batch.Records.forEach(res => { batch.Records.forEach(res => {
handleQty = calc.add(handleQty,res.qty) handleQty = calc.add(handleQty, res.qty)
}) })
batch.handleQty = handleQty; batch.handleQty = handleQty;
itemHandleQty = calc.add(itemHandleQty,handleQty) itemHandleQty = calc.add(itemHandleQty, handleQty)
} }
}) })
} }
@ -491,7 +498,7 @@
fromLocation.Batchs.forEach(batch => { fromLocation.Batchs.forEach(batch => {
let subItem = batch.detail; let subItem = batch.detail;
if (batch.Records.length > 0) { if (batch.Records.length > 0) {
scanCount = calc.add(scanCount,batch.Records.length) scanCount = calc.add(scanCount, batch.Records.length)
} }
}) })
}) })
@ -507,4 +514,4 @@
<style scoped lang="scss"> <style scoped lang="scss">
</style> </style>
Loading…
Cancel
Save