fix(saledelivery): 解决发货单功能中的数据传递和计算问题

This commit is contained in:
zxy 2026-05-21 09:46:12 +08:00
parent 71d1d6e707
commit ba58b68ab0
5 changed files with 35 additions and 11 deletions

View File

@ -81,5 +81,6 @@ public class SaleDeliveryDetailDO extends BaseDO {
*/ */
private Integer deliveriedBagQty; private Integer deliveriedBagQty;
private String inventBillNo;
} }

View File

@ -120,6 +120,7 @@ public class SaleDeliveryServiceImpl implements SaleDeliveryService {
List<SaleDeliveryDetailDO> saleDeliveryDetails = BeanUtils.toBean(list, SaleDeliveryDetailDO.class); List<SaleDeliveryDetailDO> saleDeliveryDetails = BeanUtils.toBean(list, SaleDeliveryDetailDO.class);
saleDeliveryDetails.forEach(detail -> saleDeliveryDetails.forEach(detail ->
detail.setSaleDeliveryId(saleDeliveryId) detail.setSaleDeliveryId(saleDeliveryId)
.setInventBillNo(detail.getInventBillNo())
.setId(null) .setId(null)
); );
saleDeliveryDetailMapper.insertBatch(saleDeliveryDetails); saleDeliveryDetailMapper.insertBatch(saleDeliveryDetails);
@ -239,8 +240,8 @@ public class SaleDeliveryServiceImpl implements SaleDeliveryService {
.billDate(LocalDate.now()) .billDate(LocalDate.now())
.operatorId(saleDelivery.getDeliveryEmpId()) .operatorId(saleDelivery.getDeliveryEmpId())
.operatorName(saleDelivery.getDeliveryEmpName()) .operatorName(saleDelivery.getDeliveryEmpName())
.relarionNo(saleDelivery.getSaleOrdNo()) .relarionNo(saleDelivery.getSaleDeliveryNo())
.relarionId(saleDelivery.getSaleOrdId()) .relarionId(saleDelivery.getId())
.sourceNo(saleDelivery.getSaleOrdNo()) .sourceNo(saleDelivery.getSaleOrdNo())
.sourceId(saleDelivery.getSaleOrdId()) .sourceId(saleDelivery.getSaleOrdId())
.build(); .build();
@ -279,7 +280,7 @@ public class SaleDeliveryServiceImpl implements SaleDeliveryService {
.bagSpec(detail.getBagSpec()) .bagSpec(detail.getBagSpec())
.bagQty(detail.getDeliveriedBagQty()) .bagQty(detail.getDeliveriedBagQty())
.relarionId(inventory.getId()) .relarionId(detail.getSaleDeliveryId().longValue())
.planId(inventory.getPlanId()) .planId(inventory.getPlanId())
.proNo(inventory.getProNo()) .proNo(inventory.getProNo())
.sourceId(inventory.getId()) .sourceId(inventory.getId())

View File

@ -135,6 +135,7 @@ const queryParams = reactive({
storeAreaId: undefined, storeAreaId: undefined,
yardQty: 1, yardQty: 1,
matName: undefined, matName: undefined,
spec: undefined,
}) })
// store_type = '3' // store_type = '3'
@ -228,8 +229,8 @@ const handleQuery = () => {
const resetQuery = () => { const resetQuery = () => {
queryParams.storeHouseId = undefined queryParams.storeHouseId = undefined
queryParams.storeAreaId = undefined queryParams.storeAreaId = undefined
queryParams.matName = undefined // queryParams.matName = undefined
queryParams.spec = undefined // queryParams.spec = undefined
queryParams.yardQty = 1 queryParams.yardQty = 1
queryParams.pageNo = 1 queryParams.pageNo = 1
@ -284,11 +285,13 @@ const open = (params?: { materialName?: string }) => {
queryParams.pageNo = 1 queryParams.pageNo = 1
queryParams.storeHouseId = undefined queryParams.storeHouseId = undefined
queryParams.storeAreaId = undefined queryParams.storeAreaId = undefined
queryParams.matName = params?.materialName queryParams.matName = params?.materialName || undefined
queryParams.spec = params?.spec || undefined
//
inventoryList.value = []
total.value = 0
// //
getStoreHouseList() getStoreHouseList()
//
getList()
} }
defineExpose({ open, setSelectedIds }) defineExpose({ open, setSelectedIds })

View File

@ -250,6 +250,10 @@ const emitSelect = (row) => {
const open = () => { const open = () => {
dialogVisible.value = true dialogVisible.value = true
selectedId.value = '' selectedId.value = ''
//
queryParams.custName = undefined
queryParams.saleOrdNo = undefined
queryParams.pageNo = 1
handleQuery() handleQuery()
} }

View File

@ -181,7 +181,7 @@
</el-table-column> </el-table-column>
<el-table-column label="单袋规格" prop="bagSpec" width="150px" align="center"> <el-table-column label="单袋规格" prop="bagSpec" width="150px" align="center">
<template #default="scope"> <template #default="scope">
<el-input v-model="scope.row.bagSpec" placeholder="手动录入" /> {{ scope.row.bagSpec }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="发货袋数(*)" prop="deliveriedBag" width="120px" align="center"> <el-table-column label="发货袋数(*)" prop="deliveriedBag" width="120px" align="center">
@ -396,6 +396,12 @@ const getSummary = (param: any) => {
/** 强制刷新表格(用于实时更新合计) */ /** 强制刷新表格(用于实时更新合计) */
const refreshTable = () => { 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 // key
if (productList.value.length > 0) { if (productList.value.length > 0) {
productList.value = [...productList.value] productList.value = [...productList.value]
@ -580,6 +586,9 @@ const handleOrderSelect = async (data: any) => {
formData.deliveriedQty = data.remaimQty formData.deliveriedQty = data.remaimQty
formData.unit = data.unit formData.unit = data.unit
//
productList.value = []
// 便 // 便
if (!saleOrderOptions.value.find(item => item.id === data.saleOrdId)) { if (!saleOrderOptions.value.find(item => item.id === data.saleOrdId)) {
saleOrderOptions.value.push({ saleOrderOptions.value.push({
@ -643,6 +652,12 @@ const loadCustomerContact = async (custId: number) => {
/** 添加产品项 */ /** 添加产品项 */
const addProductItem = () => { const addProductItem = () => {
//
if (!formData.materialName || !formData.spec) {
message.warning('请先选择销售订单!')
return
}
// ID // ID
const selectedIds = productList.value const selectedIds = productList.value
.filter(item => item.inventoryId) .filter(item => item.inventoryId)
@ -651,8 +666,8 @@ const addProductItem = () => {
// ID便 // ID便
inventorySelectRef.value.setSelectedIds(selectedIds) inventorySelectRef.value.setSelectedIds(selectedIds)
// //
inventorySelectRef.value.open({ materialName: formData.materialName }) inventorySelectRef.value.open({ materialName: formData.materialName, spec: formData.spec })
} }
/** 处理库存选择 */ /** 处理库存选择 */