fix(saledelivery): 解决发货单功能中的数据传递和计算问题
This commit is contained in:
parent
71d1d6e707
commit
ba58b68ab0
@ -81,5 +81,6 @@ public class SaleDeliveryDetailDO extends BaseDO {
|
||||
*/
|
||||
private Integer deliveriedBagQty;
|
||||
|
||||
private String inventBillNo;
|
||||
|
||||
}
|
||||
|
||||
@ -120,6 +120,7 @@ public class SaleDeliveryServiceImpl implements SaleDeliveryService {
|
||||
List<SaleDeliveryDetailDO> saleDeliveryDetails = BeanUtils.toBean(list, SaleDeliveryDetailDO.class);
|
||||
saleDeliveryDetails.forEach(detail ->
|
||||
detail.setSaleDeliveryId(saleDeliveryId)
|
||||
.setInventBillNo(detail.getInventBillNo())
|
||||
.setId(null)
|
||||
);
|
||||
saleDeliveryDetailMapper.insertBatch(saleDeliveryDetails);
|
||||
@ -239,8 +240,8 @@ public class SaleDeliveryServiceImpl implements SaleDeliveryService {
|
||||
.billDate(LocalDate.now())
|
||||
.operatorId(saleDelivery.getDeliveryEmpId())
|
||||
.operatorName(saleDelivery.getDeliveryEmpName())
|
||||
.relarionNo(saleDelivery.getSaleOrdNo())
|
||||
.relarionId(saleDelivery.getSaleOrdId())
|
||||
.relarionNo(saleDelivery.getSaleDeliveryNo())
|
||||
.relarionId(saleDelivery.getId())
|
||||
.sourceNo(saleDelivery.getSaleOrdNo())
|
||||
.sourceId(saleDelivery.getSaleOrdId())
|
||||
.build();
|
||||
@ -279,7 +280,7 @@ public class SaleDeliveryServiceImpl implements SaleDeliveryService {
|
||||
.bagSpec(detail.getBagSpec())
|
||||
.bagQty(detail.getDeliveriedBagQty())
|
||||
|
||||
.relarionId(inventory.getId())
|
||||
.relarionId(detail.getSaleDeliveryId().longValue())
|
||||
.planId(inventory.getPlanId())
|
||||
.proNo(inventory.getProNo())
|
||||
.sourceId(inventory.getId())
|
||||
|
||||
@ -135,6 +135,7 @@ const queryParams = reactive({
|
||||
storeAreaId: undefined,
|
||||
yardQty: 1,
|
||||
matName: undefined,
|
||||
spec: undefined,
|
||||
})
|
||||
|
||||
// 仓储列表(条件:store_type = '3' )
|
||||
@ -228,8 +229,8 @@ const handleQuery = () => {
|
||||
const resetQuery = () => {
|
||||
queryParams.storeHouseId = undefined
|
||||
queryParams.storeAreaId = undefined
|
||||
queryParams.matName = undefined
|
||||
queryParams.spec = undefined
|
||||
// queryParams.matName = undefined
|
||||
// queryParams.spec = undefined
|
||||
queryParams.yardQty = 1
|
||||
|
||||
queryParams.pageNo = 1
|
||||
@ -284,11 +285,13 @@ const open = (params?: { materialName?: string }) => {
|
||||
queryParams.pageNo = 1
|
||||
queryParams.storeHouseId = undefined
|
||||
queryParams.storeAreaId = undefined
|
||||
queryParams.matName = params?.materialName
|
||||
queryParams.matName = params?.materialName || undefined
|
||||
queryParams.spec = params?.spec || undefined
|
||||
// 清空列表数据,不自动查询
|
||||
inventoryList.value = []
|
||||
total.value = 0
|
||||
// 初始化仓储列表
|
||||
getStoreHouseList()
|
||||
// 执行搜索
|
||||
getList()
|
||||
}
|
||||
|
||||
defineExpose({ open, setSelectedIds })
|
||||
|
||||
@ -250,6 +250,10 @@ const emitSelect = (row) => {
|
||||
const open = () => {
|
||||
dialogVisible.value = true
|
||||
selectedId.value = ''
|
||||
// 清空查询参数
|
||||
queryParams.custName = undefined
|
||||
queryParams.saleOrdNo = undefined
|
||||
queryParams.pageNo = 1
|
||||
handleQuery()
|
||||
}
|
||||
|
||||
|
||||
@ -181,7 +181,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="单袋规格" prop="bagSpec" width="150px" align="center">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.bagSpec" placeholder="手动录入" />
|
||||
{{ scope.row.bagSpec }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="发货袋数(*)" prop="deliveriedBag" width="120px" align="center">
|
||||
@ -396,6 +396,12 @@ const getSummary = (param: any) => {
|
||||
|
||||
/** 强制刷新表格(用于实时更新合计) */
|
||||
const refreshTable = () => {
|
||||
// 自动计算发货数量:deliveriedQty = deliveriedBag * bagSpec
|
||||
productList.value.forEach(item => {
|
||||
const bag = Number(item.deliveriedBag) || 0
|
||||
const spec = Number(item.bagSpec) || 0
|
||||
item.deliveriedQty = bag * spec
|
||||
})
|
||||
// 通过修改key强制表格重新渲染
|
||||
if (productList.value.length > 0) {
|
||||
productList.value = [...productList.value]
|
||||
@ -580,6 +586,9 @@ const handleOrderSelect = async (data: any) => {
|
||||
formData.deliveriedQty = data.remaimQty
|
||||
formData.unit = data.unit
|
||||
|
||||
// 切换销售订单后,清空产品信息列表
|
||||
productList.value = []
|
||||
|
||||
// 添加到选项列表以便显示
|
||||
if (!saleOrderOptions.value.find(item => item.id === data.saleOrdId)) {
|
||||
saleOrderOptions.value.push({
|
||||
@ -643,6 +652,12 @@ const loadCustomerContact = async (custId: number) => {
|
||||
|
||||
/** 添加产品项 */
|
||||
const addProductItem = () => {
|
||||
// 校验:必须先选择销售订单(确保有产品名称和规格)
|
||||
if (!formData.materialName || !formData.spec) {
|
||||
message.warning('请先选择销售订单!')
|
||||
return
|
||||
}
|
||||
|
||||
// 获取已选择的库存ID列表
|
||||
const selectedIds = productList.value
|
||||
.filter(item => item.inventoryId)
|
||||
@ -651,8 +666,8 @@ const addProductItem = () => {
|
||||
// 设置已选择的ID,以便弹窗打开时自动选中
|
||||
inventorySelectRef.value.setSelectedIds(selectedIds)
|
||||
|
||||
// 打开弹窗,传入产品名称作为查询参数
|
||||
inventorySelectRef.value.open({ materialName: formData.materialName })
|
||||
// 打开弹窗,传入产品名称和规格信息作为查询参数
|
||||
inventorySelectRef.value.open({ materialName: formData.materialName, spec: formData.spec })
|
||||
}
|
||||
|
||||
/** 处理库存选择 */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user