Browse Source

修改发料和发料记录箱码重复校验

intex
lijuncheng 5 days ago
parent
commit
d6da3ee64a
  1. 13
      src/api/request2.js
  2. 8
      src/mycomponents/recommend/recommend.vue
  3. 8
      src/pages/issue/coms/comIssueDetailCardBatch.vue
  4. 1807
      src/pages/issue/job/issueDetailBatch.vue
  5. 85
      src/pages/issue/record/directIssueByBatch.vue
  6. 1
      src/pages/issue/request/issueScanRequest.vue

13
src/api/request2.js

@ -1528,6 +1528,19 @@ export function getIssueJobDetail(id) {
});
}
/**
* 发料校验
* @param {*} 任务id
*
*/
export function issueCheck(packNumber) {
return request({
url: baseApi + "/wms/issue-record-main/selectRecordByPackNumber?packNumber=" + packNumber,
method: "get",
data: {},
});
}
/**
* 获取推荐明细接口

8
src/mycomponents/recommend/recommend.vue

@ -5,7 +5,7 @@
<view style="word-break: break-all;">
<!-- <container v-if="isShowContainer&&detail.containerNumber!=null" :container="detail.containerNumber">
</container> -->
<pack v-if="isShowPack && detail.packingNumber" :packingCode="detail.packingNumber"></pack>
<pack v-if="isShowPack && detail.packingNumber" :isShowPackingNumberProps="isShowPackingNumberProps" :packingCode="detail.packingNumber"></pack>
<batch v-if="isShowBatch && detail.batch!=null" :batch="detail.batch"></batch>
<location v-if="isShowFromLocation" :title="formLocationTitle" :locationCode="detail.fromLocationCode">
</location>
@ -94,6 +94,12 @@
type: String,
default: '来源库位'
},
isShowPackingNumberProps: {
type: Boolean,
default: false
},
},
watch: {

8
src/pages/issue/coms/comIssueDetailCardBatch.vue

@ -16,7 +16,7 @@
<uni-swipe-action-item
:right-options="(item.scaned&&settingParam.allowModifyQty == 'TRUE')?editAndRemoveOptions : item.scaned? removeOptions:[]" @click="itemCoceClick($event,item,index)">
<view class="" :class="item.scaned?'scan_view':''">
<recommend :detail="item" :isShowLocation="false" :isShowFromLocation="true" :isShowToLocation="settingParam.allowModifyLocation=='TRUE'"></recommend>
<recommend :isShowPackingNumberProps="true" :isShowPack="true" :detail="item" :isShowLocation="false" :isShowFromLocation="true" :isShowToLocation="item.isRecommTaskItem?true:false"></recommend>
</view>
</uni-swipe-action-item>
</uni-swipe-action>
@ -79,6 +79,12 @@
type: Boolean,
default: true
},
isShowPackingNumberProps: {
type: Boolean,
default: true
},
},
watch: {

1807
src/pages/issue/job/issueDetailBatch.vue

File diff suppressed because it is too large

85
src/pages/issue/record/directIssueByBatch.vue

@ -12,8 +12,7 @@
<record-com-detail-card :dataContent="item" :index="index" :settingParam="dataContent"
:isShowFromLocation="true" @removeItem="removeItem(index,item)"
:isShowToLocation="false" :isShowParentToLocation="false" @updateData="updateData"
:allowModifyQty="true"
@removePack="removePack">
:allowModifyQty="true" :isShowPackingNumberProps="true" @removePack="removePack">
</record-com-detail-card>
</view>
@ -48,7 +47,7 @@
<!-- <winComScanBalance ref="scanPopup" @getBalance='getScanResult' :bussinessCode="businessTypeCode">
</winComScanBalance> -->
<fifoQuery ref="refFifoQuery" :businessTypeCode="businessTypeCode"></fifoQuery>
<comMessage ref="comMessage"></comMessage>
</view>
</template>
@ -57,7 +56,8 @@
import {
issueRecordSubmit,
getWorkShopLineStation,
getBalanceByFilter
getBalanceByFilter,
issueCheck
} from '@/api/request2.js';
import {
@ -104,7 +104,7 @@
import balanceSelect from '@/mycomponents/balance/balanceSelect.vue'
import winComScanBalance from '@/mycomponents/scan/winComScanBalance.vue'
import fifoQuery from '@/mycomponents/query/fifoQuery.vue'
export default {
components: {
@ -142,7 +142,7 @@
resultData: {},
itemCode: "",
managementType: '',
fifoSwitch:false
fifoSwitch: false
};
},
onLoad(option) {
@ -197,13 +197,36 @@
});
},
getScanResult(result, managementTypeParams) {
getScanResult(result, managementTypeParams) {
this.managementType = managementTypeParams
if (managementTypeParams == "BY_BATCH" || managementTypeParams == "BY_QUANTITY") {
this.setDataBatch(result);
} else {
this.setData(result);
// if (managementTypeParams == "BY_BATCH" || managementTypeParams == "BY_QUANTITY") {
// this.setDataBatch(result);
// } else {
// this.setData(result);
// }
if(!result.package.number){
this.showErrorMessage("包装号不能为空")
return;
}
uni.showLoading({
title:"校验中...",
mask:true
})
//
issueCheck(result.package.number).then(res=>{
uni.hideLoading()
if(res.data.length==0){
this.setData(result);
}else {
this.showErrorMessage("箱码["+result.package.number+"]已经发过料")
}
}).catch(error=>{
uni.hideLoading()
this.showErrorMessage(error.message)
})
},
async setData(result) {
let balance = result.balance;
@ -217,11 +240,12 @@
if (item == undefined) {
var itemp = createItemInfo(balance, pack);
let newDetail = createDetailInfo(balance, pack); //
newDetail.packingNumber = pack.number
itemp.subList.push(newDetail);
this.detailSource.push(itemp)
} else {
var detail = item.subList.find(r => {
if (r.packingNumber == balance.packingNumber &&
if (r.packingNumber == pack.number &&
r.batch == balance.batch &&
r.locationCode == balance.locationCode &&
r.inventoryStatus == balance.inventoryStatus) {
@ -230,17 +254,18 @@
})
if (detail == undefined) {
let newDetail = createDetailInfo(balance, pack);
newDetail.packingNumber = pack.number
item.subList.push(newDetail);
} else {
if (detail.scaned == true) {
this.showErrorMessage("箱码[" + balance.packingNumber + "批次[" + balance.batch + "]重复扫描")
this.showErrorMessage("箱码[" + pack.number + "]已经扫描")
}
}
}
calcHandleQty(this.detailSource)
},
setDataBatch(result) {
setDataBatch(result) {
let balance = result.balance;
let label = result.label;
let pack = result.package;
@ -251,8 +276,9 @@
})
if (item == undefined) {
var itemp = createItemInfo(balance, pack);
let newDetail = createDetailInfo(balance, pack,label);
newDetail.handleQty =label.qty
let newDetail = createDetailInfo(balance, pack, label);
newDetail.handleQty = label.qty
itemp.subList.push(newDetail);
this.detailSource.push(itemp)
} else {
@ -264,14 +290,15 @@
}
})
if (detail == undefined) {
let newDetail = createDetailInfo(balance, pack,label);
newDetail.handleQty =label.qty
let newDetail = createDetailInfo(balance, pack, label);
newDetail.handleQty = label.qty
newDetail.packingNumber = pack.number
item.subList.push(newDetail);
} else {
detail.handleQty =calc.add(detail.handleQty, result.label.qty)
detail.handleQty = calc.add(detail.handleQty, result.label.qty)
}
}
calcHandleQty(this.detailSource)
},
@ -395,17 +422,18 @@
this.showErrorMessage("请选择生产线")
return
}
var commitHint=""
var commitHint = ""
this.detailSource.forEach((item) => {
item.subList.forEach(cur=>{
if(cur.scaned){
if(parseFloat(cur.handleQty)>parseFloat(cur.qty)){
commitHint += `物料号【${item.itemCode}】批次【${cur.batch}】实际提交数量【${cur.handleQty}】不可以大于库存数量【${cur.qty}\n`
item.subList.forEach(cur => {
if (cur.scaned) {
if (parseFloat(cur.handleQty) > parseFloat(cur.qty)) {
commitHint +=
`物料号【${item.itemCode}】批次【${cur.batch}】实际提交数量【${cur.handleQty}】不可以大于库存数量【${cur.qty}\n`
}
}
})
})
if(commitHint){
if (commitHint) {
this.showErrorMessage(commitHint)
return;
}
@ -479,7 +507,7 @@
submitItem.recordList = [{
toInventoryStatus: detail.inventoryStatus,
fromParentPackingNumber: detail.parentNumber,
fromPackingNumber: info.packingNumber,
fromPackingNumber: detail.packingNumber,
fromBatch: info.batch,
toPackingNumber: info.packingNumber,
toBatch: info.batch,
@ -501,6 +529,7 @@
this.dataContent.subList = subList
this.dataContent.creator = creator;
this.dataContent.fromWarehouseCode = this.fromWarehouseCode;
this.dataContent.sourceType="record"
return this.dataContent;
},

1
src/pages/issue/request/issueScanRequest.vue

@ -111,6 +111,7 @@
setParams() {
this.detailSource.dueTime = getCurrDateOneMonthsTimes();
this.detailSource.isCallMaterialsLabel = "TRUE";
this.detailSource.sourceType ="scan"
return this.detailSource
},
submit() {

Loading…
Cancel
Save