初始化仓库
This commit is contained in:
261
pages/wms/pdcMaterial/materRequisitiontask/InventoryDetails.vue
Normal file
261
pages/wms/pdcMaterial/materRequisitiontask/InventoryDetails.vue
Normal file
@@ -0,0 +1,261 @@
|
||||
<template>
|
||||
<view>
|
||||
<uni-forms>
|
||||
<uni-collapse>
|
||||
<uni-row>
|
||||
<uni-col :span="12">物料编码:{{checkedMaterialDetailList[0].materialCode}}</uni-col>
|
||||
<uni-col :span="12">待分配:{{options.number}},已分配:{{planNumer}}</uni-col>
|
||||
</uni-row>
|
||||
<uni-row>
|
||||
<uni-col :span="24">物料名称:{{checkedMaterialDetailList[0].materialName}}</uni-col>
|
||||
|
||||
</uni-row>
|
||||
<uni-collapse-item title="选择物料">
|
||||
<uni-table ref="table" border type="selection" emptyText="暂无更多数据"
|
||||
@selection-change="selectionChange">
|
||||
<uni-tr>
|
||||
<uni-th width="40" align="center">库位</uni-th>
|
||||
<!-- <uni-th width="40" align="center">数量</uni-th> -->
|
||||
<uni-th width="60" align="center">可用数量</uni-th>
|
||||
<uni-th width="60" align="center">库存总量</uni-th>
|
||||
<uni-th width="120" align="center">计划拣货数量</uni-th>
|
||||
</uni-tr>
|
||||
<uni-tr v-for="(item, index) in checkedMaterialDetailList" :key="index">
|
||||
<uni-td>{{ item.whCode }}</uni-td>
|
||||
<uni-td align="center">{{ item.number }}</uni-td>
|
||||
<uni-td>
|
||||
{{ item.number }}
|
||||
</uni-td>
|
||||
<uni-td align="center">
|
||||
<input type="number" v-model="item.planNum" placeholder="请输入计划拣货数量" />
|
||||
</uni-td>
|
||||
</uni-tr>
|
||||
</uni-table>
|
||||
</uni-collapse-item>
|
||||
</uni-collapse>
|
||||
<button @click="submit" type="primary" style="position: fixed;bottom: 0;width: 100vw;">确定</button>
|
||||
</uni-forms>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
selectExactStockList,
|
||||
getConfigKey,
|
||||
addU9StockRecord,
|
||||
updateTask
|
||||
} from "@/api/wms/materRequisitiontask";
|
||||
import {
|
||||
convertBySecondUnitOrNum
|
||||
} from "@/api/basic/unit"
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
options: {},
|
||||
checkedMaterialDetailList: [],
|
||||
wmsDrawTaskDetailList: [],
|
||||
planNumer: 0,
|
||||
countNum: 0,
|
||||
checkedMaterialDetailListArr: [],
|
||||
getListArr: {},
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
this.options = JSON.parse(options.data)
|
||||
this.getListArr = JSON.parse(options.getListArr)
|
||||
this.wmsDrawTaskDetailList = JSON.parse(options.wmsDrawTaskDetailList)
|
||||
console.log(this.wmsDrawTaskDetailList, options, "this.wmsDrawTaskDetailList");
|
||||
selectExactStockList({
|
||||
materialCode: JSON.parse(options.data).materialCode,
|
||||
businessType: 'PRODUCE_DRAW'
|
||||
}).then(res => {
|
||||
if (res.total) {
|
||||
this.checkedMaterialDetailList = res.rows
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
convertBySecondUnitOrNum({
|
||||
materialCode: this.wmsDrawTaskDetailList[JSON.parse(options.index)].materialCode,
|
||||
unitId: this.wmsDrawTaskDetailList[JSON.parse(options.index)].unitId,
|
||||
secondUnitId: this.wmsDrawTaskDetailList[JSON.parse(options.index)].secondUnitId,
|
||||
secondNumber: this.wmsDrawTaskDetailList[JSON.parse(options.index)].secondNumber,
|
||||
}).then(res => {
|
||||
console.log("convertBySecondUnitOrNum", res.data);
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
selectionChange(item, indexs) {
|
||||
this.checkedMaterialDetailListArr = [];
|
||||
let count = 0
|
||||
count = item.length;
|
||||
this.countNum = count
|
||||
let planNumers = 0
|
||||
|
||||
item.detail.index.map(item => {
|
||||
|
||||
planNumers += Number(this.checkedMaterialDetailList[item].planNum) ?? 0;
|
||||
// console.log(this.checkedMaterialDetailList[item],"this.checkedMaterialDetailList[item]",item);
|
||||
this.checkedMaterialDetailListArr.push(this.checkedMaterialDetailList[item])
|
||||
})
|
||||
console.log(this.checkedMaterialDetailListArr, "this.checkedMaterialDetailListArr");
|
||||
this.planNumer = planNumers
|
||||
},
|
||||
/**第二数量(数量改变)
|
||||
* 要求基本单位和数量不为空
|
||||
*
|
||||
* */
|
||||
async secondNumberChange(materialCode, number, unitId, seconNumber, secondUnitId) {
|
||||
|
||||
console.log(materialCode, number, unitId, seconNumber, secondUnitId);
|
||||
|
||||
// 设置父组件的第一数量
|
||||
if (seconNumber == null || seconNumber === "") {
|
||||
number = 0;
|
||||
} else if (unitId == null || unitId === "") {
|
||||
number = seconNumber;
|
||||
} else if (materialCode && materialCode !== "" && unitId && secondUnitId) {
|
||||
let params = {
|
||||
materialCode: materialCode,
|
||||
number: null,
|
||||
unitId: unitId,
|
||||
secondUnitId: secondUnitId,
|
||||
secondNumber: seconNumber,
|
||||
};
|
||||
const response = await convertBySecondUnitOrNum(params);
|
||||
console.log("res", params, "params", response);
|
||||
number = response.data.number;
|
||||
} else {
|
||||
// 其它所有异常情况,都将第二数量同步传给第一数量
|
||||
number = seconNumber;
|
||||
}
|
||||
return number; // 返回修改后的 number 值
|
||||
},
|
||||
async submit() {
|
||||
let row = this.options; //明细主表信息
|
||||
if (this.planNumer > this.options.number) {
|
||||
return this.$modal.msgError("分配数量不能大于待分配数量");
|
||||
}
|
||||
if (this.countNum == 0) {
|
||||
return this.$modal.msgError("请先选择要调拨的物料详细数据")
|
||||
}
|
||||
/**删除用来选择的物料,即无批号箱号信息的记录 */
|
||||
for (let i = 0; i < this.wmsDrawTaskDetailList.length; i++) {
|
||||
if (row.id == this.wmsDrawTaskDetailList[i].id) {
|
||||
this.wmsDrawTaskDetailList.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
/**插入选中的物料 */
|
||||
let count = 0;
|
||||
for (let i = 0; i < this.checkedMaterialDetailListArr.length; i++) { //库存物料
|
||||
// let obj = { ...this.row };
|
||||
let obj = {};
|
||||
Object.assign(obj, row)
|
||||
obj.id = null;
|
||||
obj.originWmsMaterialStockId = row.wmsMaterialStockId == null ? this.checkedMaterialDetailListArr[
|
||||
i]
|
||||
.id :
|
||||
row.wmsMaterialStockId;
|
||||
obj.wmsMaterialStockId = this.checkedMaterialDetailListArr[i].id;
|
||||
obj.materialCode = this.checkedMaterialDetailListArr[i].materialCode;
|
||||
obj.materialName = this.checkedMaterialDetailListArr[i].materialName;
|
||||
obj.materialBatchNo = this.checkedMaterialDetailListArr[i].batchNo;
|
||||
obj.materialLotNo = this.checkedMaterialDetailListArr[i].lotNo;
|
||||
obj.originAreaCode = this.checkedMaterialDetailListArr[i].areaCode;
|
||||
obj.originShelvesCode = this.checkedMaterialDetailListArr[i].shelvesCode;
|
||||
obj.originLocationCode = this.checkedMaterialDetailListArr[i].storageLocationCode;
|
||||
obj.number = isNaN(this.checkedMaterialDetailListArr[i].planNum) ? 0 : Number(this
|
||||
.checkedMaterialDetailListArr[i].planNum);
|
||||
//将一单一数传入二单二数中,根据库存的第一单位,第二单位,第一数量获取第二数量
|
||||
if (obj.unitId != obj.secondUnitId) {
|
||||
obj.secondNumber = await this.secondNumberChange(obj.materialCode, obj.secondNumber, obj
|
||||
.secondUnitId, obj.number, obj.unitId);
|
||||
|
||||
} else {
|
||||
obj.secondNumber = obj.number;
|
||||
}
|
||||
|
||||
obj.productionVersion = this.checkedMaterialDetailListArr[i].productionVersion;
|
||||
// obj.schemeNumber = this.row[i].schemeNumber;
|
||||
obj.targetAreaCode = "";
|
||||
obj.targetShelves = "";
|
||||
obj.targetLocation = "";
|
||||
obj.availableNumber = this.checkedMaterialDetailListArr[i].number - this
|
||||
.checkedMaterialDetailListArr[i]
|
||||
.lockNumber;
|
||||
obj.schemeNumber = "";
|
||||
obj.actualNumber = "";
|
||||
obj.numUnitId = "";
|
||||
obj.delStatus = "";
|
||||
|
||||
count += Number(obj.number) ?? 0;
|
||||
console.log("count", count, obj.number)
|
||||
//u9库存信息插入
|
||||
getConfigKey("wms.u9.whMode").then(response => {
|
||||
if (response.msg == 'true') {
|
||||
let u9Obj = {};
|
||||
u9Obj.materialCode = this.checkedMaterialDetailListArr[i].materialCode;
|
||||
u9Obj.materialName = this.checkedMaterialDetailListArr[i].materialName;
|
||||
u9Obj.batchNo = this.checkedMaterialDetailListArr[i].batchNo;
|
||||
u9Obj.lotNo = this.checkedMaterialDetailListArr[i].lotNo;
|
||||
u9Obj.whCode = this.checkedMaterialDetailListArr[i].whCode;
|
||||
u9Obj.areaCode = this.checkedMaterialDetailListArr[i].areaCode;
|
||||
u9Obj.shelvesCode = this.checkedMaterialDetailListArr[i].shelvesCode;
|
||||
u9Obj.storageLocationCode = this.checkedMaterialDetailListArr[i]
|
||||
.storageLocationCode;
|
||||
u9Obj.number = this.checkedMaterialDetailListArr[i].number;
|
||||
u9Obj.seibanNo = this.checkedMaterialDetailListArr[i].seibanNo;
|
||||
u9Obj.resvStQty = this.checkedMaterialDetailListArr[i].resvStQty;
|
||||
|
||||
u9Obj.lockNumber = this.checkedMaterialDetailListArr[i].planNum;
|
||||
addU9StockRecord(u9Obj).then(res => {
|
||||
this.$modal.msgSuccess("库存选择成功");
|
||||
console.log(res, "666");
|
||||
obj.u9WmsMaterialStockId = res.obj.id;
|
||||
});
|
||||
}
|
||||
})
|
||||
this.wmsDrawTaskDetailList.push(obj);
|
||||
}
|
||||
if (count < row.number) {
|
||||
// let obj = this.row;
|
||||
let obj = {};
|
||||
Object.assign(obj, row)
|
||||
obj.number = row.number - count;
|
||||
console.log(obj.materialCode, obj.secondNumber, obj
|
||||
.secondUnitId, obj.number, obj.unitId, "obj.materialCode,");
|
||||
//将一单一数传入二单二数中,根据库存的第一单位,第二单位,第一数量获取第二数量
|
||||
if (obj.unitId != obj.secondUnitId) {
|
||||
obj.secondNumber = await this.secondNumberChange(obj.materialCode, obj.secondNumber, obj
|
||||
.secondUnitId, obj.number, obj.unitId);
|
||||
console.log("sec2", obj.secondNumber);
|
||||
} else {
|
||||
obj.secondNumber = obj.number;
|
||||
}
|
||||
// obj.secondNumber = obj.number;
|
||||
console.log(obj)
|
||||
this.wmsDrawTaskDetailList.push(obj);
|
||||
}
|
||||
console.log(this.$tab, "this.$tab", this.wmsDrawTaskDetailList);
|
||||
// uni.setStorageSync('inVentData', JSON.stringify(this.wmsDrawTaskDetailList));
|
||||
// this.$tab.navigateBack({
|
||||
// delta: 1 // 返回上一级页面
|
||||
// });
|
||||
this.getListArr.wmsDrawTaskDetailList = this.wmsDrawTaskDetailList
|
||||
updateTask(this.getListArr).then(res => {
|
||||
this.$modal.msgSuccess("修改成功")
|
||||
})
|
||||
|
||||
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
@@ -0,0 +1,153 @@
|
||||
<template>
|
||||
<view class="materRe">
|
||||
<uni-forms>
|
||||
<uni-collapse>
|
||||
<uni-forms-item :labelWidth="90" label="领料单号">
|
||||
<uni-easyinput :value="options.drawTaskCode" disabled />
|
||||
</uni-forms-item>
|
||||
<button type="primary" @click="allocateStockBtn">一键分配库存</button>
|
||||
|
||||
<uni-collapse-item :open="true" title="明细信息">
|
||||
<uni-card v-for="(item,index) in getTaskData.wmsDrawTaskDetailList" :key="index">
|
||||
<uni-row>
|
||||
<uni-col :span="12" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis; ">
|
||||
物料编码:{{item.materialCode}}
|
||||
</uni-forms-item>
|
||||
</uni-col>
|
||||
<uni-col :span="12" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis; ">
|
||||
|
||||
数量:{{item.number}}
|
||||
|
||||
</uni-col>
|
||||
</uni-row>
|
||||
<uni-row>
|
||||
<uni-col :span="12" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis; ">
|
||||
|
||||
物料名称:{{item.materialName}}
|
||||
|
||||
</uni-col>
|
||||
<uni-col :span="12" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis; ">
|
||||
|
||||
单位:{{item.unitId}}
|
||||
|
||||
</uni-col>
|
||||
</uni-row>
|
||||
<uni-row>
|
||||
<uni-col :span="12" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis; ">
|
||||
|
||||
物料规格:{{item.specification}}
|
||||
|
||||
</uni-col>
|
||||
<uni-col :span="12" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis; ">
|
||||
|
||||
可用数量:{{item.availableNumber}}
|
||||
|
||||
</uni-col>
|
||||
</uni-row>
|
||||
<uni-row>
|
||||
<uni-col :span="24" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis; ">
|
||||
|
||||
物料批号:{{item.materialBatchNo}}
|
||||
|
||||
</uni-col>
|
||||
</uni-row>
|
||||
<uni-row>
|
||||
<uni-col :span="24">
|
||||
|
||||
<button type="primary"
|
||||
:disabled="item.pickedNumber > 0 ? true : false || item.outedNumber > 0 ? true : false"
|
||||
@click="InventoryBtn(item,index)">选择物料库存</button>
|
||||
|
||||
</uni-col>
|
||||
</uni-row>
|
||||
</uni-card>
|
||||
</uni-collapse-item>
|
||||
</uni-collapse>
|
||||
<button @click="goBack" type="primary" style="position: fixed;bottom: 0;width: 100vw;">确定</button>
|
||||
</uni-forms>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getTask
|
||||
} from "@/api/wms/pdcMaterial"
|
||||
import {
|
||||
allocateStock, //分配库存
|
||||
} from "@/api/wms/materRequisitiontask";
|
||||
|
||||
|
||||
export default {
|
||||
onLoad(options) {
|
||||
this.options = JSON.parse(options.data)
|
||||
console.log(this.options, "optj");
|
||||
getTask(JSON.parse(options.data).id).then(res => {
|
||||
console.log(res, "res");
|
||||
this.getTaskData = res.data;
|
||||
this.getTaskData.wmsDrawTaskDetailList.forEach(item => {
|
||||
item.secondNumber =
|
||||
item.secondNumber == null ? item.number : item.secondNumber;
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
// onShow() {
|
||||
// console.log(this.getTaskData.wmsDrawTaskDetailList, "this.getTaskData.wmsDrawTaskDetailList");
|
||||
// if (this.getTaskData.wmsDrawTaskDetailList) {
|
||||
// this.getTaskData.wmsDrawTaskDetailList.forEach(item => {
|
||||
// convertBySecondUnitOrNum({
|
||||
// materialCode: item.materialCode,
|
||||
// unitId: item.unitId,
|
||||
// secondUnitId: item.secondUnitId,
|
||||
// secondNumber: item.secondNumber,
|
||||
// }).then(res => {
|
||||
// console.log("单位1", res);
|
||||
// })
|
||||
// })
|
||||
// }
|
||||
|
||||
|
||||
// },
|
||||
mounted() {
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
options: {},
|
||||
getTaskData: {},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
InventoryBtn(item, index) {
|
||||
console.log(item, index);
|
||||
this.$tab.navigateTo("/pages/wms/pdcMaterial/materRequisitiontask/InventoryDetails?data=" +
|
||||
encodeURIComponent(JSON.stringify(item)) + '&wmsDrawTaskDetailList=' + encodeURIComponent(JSON
|
||||
.stringify(this.getTaskData.wmsDrawTaskDetailList)) + '&index=' + encodeURIComponent(JSON
|
||||
.stringify(index))+"&getListArr="+encodeURIComponent(JSON
|
||||
.stringify(this.options)));
|
||||
},
|
||||
allocateStockBtn() {
|
||||
console.log(this.options, "this");
|
||||
allocateStock([this.options.id]).then(res => {
|
||||
console.log(res)
|
||||
})
|
||||
},
|
||||
goBack() {
|
||||
this.$tab.navigateBack({
|
||||
delta: 1 // 返回的页面数量,1 表示返回上一级页面
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.materRe {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user