refactor(biz): 重构采购退料和销售发货功能
This commit is contained in:
parent
2fd6b57e09
commit
203cc6e1bc
@ -230,6 +230,7 @@ public class GlobalExceptionHandler {
|
|||||||
|
|
||||||
// 处理表数据相关异常
|
// 处理表数据相关异常
|
||||||
if (ex instanceof DuplicateKeyException){
|
if (ex instanceof DuplicateKeyException){
|
||||||
|
log.error("[defaultExceptionHandler][url({}) 数据重复]", req.getRequestURL(), ex);
|
||||||
return CommonResult.error(REPEAT_DATA);
|
return CommonResult.error(REPEAT_DATA);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -104,6 +104,10 @@ public class PurReceiptDetailRespVO {
|
|||||||
@ExcelProperty("已退料数量")
|
@ExcelProperty("已退料数量")
|
||||||
private BigDecimal returnQty;
|
private BigDecimal returnQty;
|
||||||
|
|
||||||
|
@Schema(description = "已退料数量")
|
||||||
|
@ExcelProperty("已退料数量")
|
||||||
|
private BigDecimal returnedQty;
|
||||||
|
|
||||||
@Schema(description = "发货数量")
|
@Schema(description = "发货数量")
|
||||||
@ExcelProperty("发货数量")
|
@ExcelProperty("发货数量")
|
||||||
private BigDecimal deliveryQty;
|
private BigDecimal deliveryQty;
|
||||||
|
|||||||
@ -83,7 +83,7 @@ public class RawStorageDO extends BaseDO {
|
|||||||
/**
|
/**
|
||||||
* 单据类型(1 标准采购申请 2设备采购申请 3 标准采购退料 4设备采购退料)
|
* 单据类型(1 标准采购申请 2设备采购申请 3 标准采购退料 4设备采购退料)
|
||||||
*/
|
*/
|
||||||
private String billType;
|
// private String billType;
|
||||||
/**
|
/**
|
||||||
* 来源单号
|
* 来源单号
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -31,7 +31,7 @@ public interface RawStorageMapper extends BaseMapperX<RawStorageDO> {
|
|||||||
.likeIfPresent(RawStorageDO::getOperatorName, reqVO.getOperatorName())
|
.likeIfPresent(RawStorageDO::getOperatorName, reqVO.getOperatorName())
|
||||||
.eqIfPresent(RawStorageDO::getRelarionNo, reqVO.getRelarionNo())
|
.eqIfPresent(RawStorageDO::getRelarionNo, reqVO.getRelarionNo())
|
||||||
.eqIfPresent(RawStorageDO::getRelarionId, reqVO.getRelarionId())
|
.eqIfPresent(RawStorageDO::getRelarionId, reqVO.getRelarionId())
|
||||||
.eqIfPresent(RawStorageDO::getBillType, reqVO.getBillType())
|
// .eqIfPresent(RawStorageDO::getBillType, reqVO.getBillType())
|
||||||
.eqIfPresent(RawStorageDO::getSourceNo, reqVO.getSourceNo())
|
.eqIfPresent(RawStorageDO::getSourceNo, reqVO.getSourceNo())
|
||||||
.eqIfPresent(RawStorageDO::getSourceId, reqVO.getSourceId())
|
.eqIfPresent(RawStorageDO::getSourceId, reqVO.getSourceId())
|
||||||
.orderByDesc(RawStorageDO::getId));
|
.orderByDesc(RawStorageDO::getId));
|
||||||
|
|||||||
@ -26,17 +26,7 @@ public interface RawStorageInventoryMapper extends BaseMapperX<RawStorageInvento
|
|||||||
.eqIfPresent(RawStorageInventoryDO::getMaterialId, reqVO.getMaterialId())
|
.eqIfPresent(RawStorageInventoryDO::getMaterialId, reqVO.getMaterialId())
|
||||||
.likeIfPresent(RawStorageInventoryDO::getMatName, reqVO.getMatName())
|
.likeIfPresent(RawStorageInventoryDO::getMatName, reqVO.getMatName())
|
||||||
.eqIfPresent(RawStorageInventoryDO::getMatCode, reqVO.getMatCode())
|
.eqIfPresent(RawStorageInventoryDO::getMatCode, reqVO.getMatCode())
|
||||||
.eqIfPresent(RawStorageInventoryDO::getSpec, reqVO.getSpec())
|
|
||||||
.eqIfPresent(RawStorageInventoryDO::getUnit, reqVO.getUnit())
|
|
||||||
.eqIfPresent(RawStorageInventoryDO::getLotNo, reqVO.getLotNo())
|
|
||||||
.betweenIfPresent(RawStorageInventoryDO::getCreateTime, reqVO.getCreateTime())
|
.betweenIfPresent(RawStorageInventoryDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.eqIfPresent(RawStorageInventoryDO::getDescription, reqVO.getDescription())
|
|
||||||
.eqIfPresent(RawStorageInventoryDO::getYardQty, reqVO.getYardQty())
|
|
||||||
.eqIfPresent(RawStorageInventoryDO::getUseQty, reqVO.getUseQty())
|
|
||||||
.eqIfPresent(RawStorageInventoryDO::getPreQty, reqVO.getPreQty())
|
|
||||||
.eqIfPresent(RawStorageInventoryDO::getPrice, reqVO.getPrice())
|
|
||||||
.eqIfPresent(RawStorageInventoryDO::getPackQty, reqVO.getPackQty())
|
|
||||||
.eqIfPresent(RawStorageInventoryDO::getBagSpec, reqVO.getBagSpec())
|
|
||||||
// .betweenIfPresent(RawStorageInventoryDO::getEarStoreDate, reqVO.getEarStoreDate())
|
// .betweenIfPresent(RawStorageInventoryDO::getEarStoreDate, reqVO.getEarStoreDate())
|
||||||
.eqIfPresent(RawStorageInventoryDO::getInventBillNo, reqVO.getInventBillNo())
|
.eqIfPresent(RawStorageInventoryDO::getInventBillNo, reqVO.getInventBillNo())
|
||||||
.orderByDesc(RawStorageInventoryDO::getId));
|
.orderByDesc(RawStorageInventoryDO::getId));
|
||||||
|
|||||||
@ -19,7 +19,6 @@ import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.purreceiptdetail.PurReceip
|
|||||||
import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.purreturn.PurReturnMapper;
|
import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.purreturn.PurReturnMapper;
|
||||||
import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.purreturndetail.PurReturnDetailMapper;
|
import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.purreturndetail.PurReturnDetailMapper;
|
||||||
import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.rawstorageinventory.RawStorageInventoryMapper;
|
import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.rawstorageinventory.RawStorageInventoryMapper;
|
||||||
import com.ningxia.yunxi.chemmes.module.biz.service.rawstorageinventory.RawStorageInventoryService;
|
|
||||||
import com.ningxia.yunxi.chemmes.module.biz.service.rawstoragelog.RawStorageLogService;
|
import com.ningxia.yunxi.chemmes.module.biz.service.rawstoragelog.RawStorageLogService;
|
||||||
import com.ningxia.yunxi.chemmes.module.biz.service.supplier.SupplierService;
|
import com.ningxia.yunxi.chemmes.module.biz.service.supplier.SupplierService;
|
||||||
import com.ningxia.yunxi.chemmes.module.system.dal.dataobject.user.AdminUserDO;
|
import com.ningxia.yunxi.chemmes.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
@ -53,8 +52,6 @@ public class PurReturnServiceImpl implements PurReturnService {
|
|||||||
|
|
||||||
private final PurReceiptDetailMapper purreceiptDetailMapper;
|
private final PurReceiptDetailMapper purreceiptDetailMapper;
|
||||||
|
|
||||||
private final RawStorageInventoryService rawStorageInventoryService;
|
|
||||||
|
|
||||||
private final RawStorageInventoryMapper rawStorageInventoryMapper;
|
private final RawStorageInventoryMapper rawStorageInventoryMapper;
|
||||||
|
|
||||||
private final SupplierService supplierService;
|
private final SupplierService supplierService;
|
||||||
@ -123,6 +120,7 @@ public class PurReturnServiceImpl implements PurReturnService {
|
|||||||
PurReceiptDetailDO purReceiptDetailDO = purreceiptDetailMapper.selectById(purReturnDetailDO.getPurReceiptDetailId());
|
PurReceiptDetailDO purReceiptDetailDO = purreceiptDetailMapper.selectById(purReturnDetailDO.getPurReceiptDetailId());
|
||||||
RawStorageInventoryDO rawStorageInventory = rawStorageInventoryMapper.selectOne(new LambdaQueryWrapper<RawStorageInventoryDO>().eq(RawStorageInventoryDO::getInventBillNo, purReturnDetailDO.getInventBillNo()));
|
RawStorageInventoryDO rawStorageInventory = rawStorageInventoryMapper.selectOne(new LambdaQueryWrapper<RawStorageInventoryDO>().eq(RawStorageInventoryDO::getInventBillNo, purReturnDetailDO.getInventBillNo()));
|
||||||
rawStorageInventory.setYardQty(rawStorageInventory.getYardQty().subtract(purReturnDetailDO.getReturnQty()));
|
rawStorageInventory.setYardQty(rawStorageInventory.getYardQty().subtract(purReturnDetailDO.getReturnQty()));
|
||||||
|
purReturnDetailDO.setReturnedQty(purReceiptDetailDO.getReturnQty());
|
||||||
purReceiptDetailDO.setReturnQty(purReceiptDetailDO.getReturnQty().add(purReturnDetailDO.getReturnQty()));
|
purReceiptDetailDO.setReturnQty(purReceiptDetailDO.getReturnQty().add(purReturnDetailDO.getReturnQty()));
|
||||||
purreceiptDetailMapper.updateById(purReceiptDetailDO);
|
purreceiptDetailMapper.updateById(purReceiptDetailDO);
|
||||||
//twm_raw_storage_log 插入
|
//twm_raw_storage_log 插入
|
||||||
@ -161,6 +159,7 @@ public class PurReturnServiceImpl implements PurReturnService {
|
|||||||
rawStorageLog.setInventBillNo(purReturnDetailDO.getInventBillNo());
|
rawStorageLog.setInventBillNo(purReturnDetailDO.getInventBillNo());
|
||||||
rawStorageLogService.saveRawStorageLog(rawStorageLog);
|
rawStorageLogService.saveRawStorageLog(rawStorageLog);
|
||||||
rawStorageInventoryMapper.updateById(rawStorageInventory);
|
rawStorageInventoryMapper.updateById(rawStorageInventory);
|
||||||
|
purReturnDetailMapper.updateById(purReturnDetailDO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -118,7 +118,7 @@ public class RawStorageServiceImpl implements RawStorageService {
|
|||||||
private void updateOrderItem(PurReceiptDetailDO detail) {
|
private void updateOrderItem(PurReceiptDetailDO detail) {
|
||||||
//更新库存 tsc_pur_order_item
|
//更新库存 tsc_pur_order_item
|
||||||
PurOrderItemDO purOrderItemDO = purOrderItemMapper.selectById(detail.getPurOrdDetailId());
|
PurOrderItemDO purOrderItemDO = purOrderItemMapper.selectById(detail.getPurOrdDetailId());
|
||||||
purOrderItemDO.setDeliveryQty(purOrderItemDO.getDeliveryQty().add(detail.getReceiptQty()));
|
purOrderItemDO.setDeliveryQty(purOrderItemDO.getDeliveryQty() != null ? purOrderItemDO.getDeliveryQty().add(detail.getReceiptQty()) : detail.getReceiptQty());
|
||||||
// 判断出库状态
|
// 判断出库状态
|
||||||
if (purOrderItemDO.getDeliveryQty().compareTo(purOrderItemDO.getPurQty()) >= 0) {
|
if (purOrderItemDO.getDeliveryQty().compareTo(purOrderItemDO.getPurQty()) >= 0) {
|
||||||
purOrderItemDO.setDeliveryStatus("3");
|
purOrderItemDO.setDeliveryStatus("3");
|
||||||
@ -215,7 +215,7 @@ public class RawStorageServiceImpl implements RawStorageService {
|
|||||||
rawStorageInventoryDO.setLotNo(detail.getLotNo());
|
rawStorageInventoryDO.setLotNo(detail.getLotNo());
|
||||||
rawStorageInventoryDO.setDescription("");
|
rawStorageInventoryDO.setDescription("");
|
||||||
rawStorageInventoryDO.setYardQty(detail.getRemaimQty());
|
rawStorageInventoryDO.setYardQty(detail.getRemaimQty());
|
||||||
rawStorageInventoryDO.setUseQty(detail.getReceiptQty());
|
// rawStorageInventoryDO.setUseQty(detail.getReceiptQty());
|
||||||
// rawStorageInventoryDO.setPreQty();
|
// rawStorageInventoryDO.setPreQty();
|
||||||
// rawStorageInventoryDO.setPrice(detail.getTotalPrice());
|
// rawStorageInventoryDO.setPrice(detail.getTotalPrice());
|
||||||
// rawStorageInventoryDO.setPackQty(detail.getPackQty());
|
// rawStorageInventoryDO.setPackQty(detail.getPackQty());
|
||||||
|
|||||||
@ -211,13 +211,13 @@
|
|||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="formType !== 'detail'"
|
v-if="formType !== 'detail'"
|
||||||
@click="handleSave"
|
@click="handleSave(false)"
|
||||||
type="primary"
|
type="primary"
|
||||||
:disabled="formLoading"
|
:disabled="formLoading"
|
||||||
>保存</el-button>
|
>保存</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="formData.purStatus === '1' && formType !== 'detail'"
|
v-if="formData.purStatus === '1' && formType !== 'detail'"
|
||||||
@click="handleConfirm"
|
@click="handleSave(true)"
|
||||||
type="primary"
|
type="primary"
|
||||||
:disabled="formLoading"
|
:disabled="formLoading"
|
||||||
>确认</el-button>
|
>确认</el-button>
|
||||||
@ -515,7 +515,7 @@ const removeDetailItem = (index: number) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** 保存 */
|
/** 保存 */
|
||||||
const handleSave = async () => {
|
const handleSave = async (isAudit: boolean) => {
|
||||||
try {
|
try {
|
||||||
await formRef.value.validate()
|
await formRef.value.validate()
|
||||||
|
|
||||||
@ -555,6 +555,8 @@ const handleSave = async () => {
|
|||||||
// 准备明细数据
|
// 准备明细数据
|
||||||
// 新增时:item.id 是采购订单明细ID,需要映射为 purOrdDetailId
|
// 新增时:item.id 是采购订单明细ID,需要映射为 purOrdDetailId
|
||||||
// 编辑时:后端返回的 items 中应该已有 purOrdDetailId 字段,保持不变
|
// 编辑时:后端返回的 items 中应该已有 purOrdDetailId 字段,保持不变
|
||||||
|
formData.purStatus = isAudit ? '2' : '1'
|
||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
...formData,
|
...formData,
|
||||||
items: detailList.value.map(item => ({
|
items: detailList.value.map(item => ({
|
||||||
@ -563,7 +565,7 @@ const handleSave = async () => {
|
|||||||
purOrdDetailId: item.purOrdDetailId || item.id
|
purOrdDetailId: item.purOrdDetailId || item.id
|
||||||
})),
|
})),
|
||||||
}
|
}
|
||||||
|
|
||||||
if (formType.value === 'create') {
|
if (formType.value === 'create') {
|
||||||
await PurReceiptApi.createPurReceipt(data)
|
await PurReceiptApi.createPurReceipt(data)
|
||||||
message.success(t('common.createSuccess'))
|
message.success(t('common.createSuccess'))
|
||||||
|
|||||||
@ -134,6 +134,7 @@ const handleQuery = () => {
|
|||||||
/** 重置 */
|
/** 重置 */
|
||||||
const resetQuery = () => {
|
const resetQuery = () => {
|
||||||
queryParams.purReceiptNo = undefined
|
queryParams.purReceiptNo = undefined
|
||||||
|
queryParams.materialName = undefined
|
||||||
handleQuery()
|
handleQuery()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -178,7 +179,8 @@ const handleSave = () => {
|
|||||||
materialCode: row.materialCode,
|
materialCode: row.materialCode,
|
||||||
materialName: row.materialName,
|
materialName: row.materialName,
|
||||||
receiptQty: row.receiptQty,
|
receiptQty: row.receiptQty,
|
||||||
returnedQty: row.returnedQty || 0,
|
returnQty: row.returnQty || 0,
|
||||||
|
ordQty: row.ordQty,
|
||||||
spec: row.spec,
|
spec: row.spec,
|
||||||
storeHouseName: row.storeHouseName,
|
storeHouseName: row.storeHouseName,
|
||||||
storeHouseId: row.storeHouseId,
|
storeHouseId: row.storeHouseId,
|
||||||
@ -204,6 +206,7 @@ const open = (supplierName?: string) => {
|
|||||||
// 设置查询参数,携带供应商信息
|
// 设置查询参数,携带供应商信息
|
||||||
queryParams.supplierName = supplierName
|
queryParams.supplierName = supplierName
|
||||||
queryParams.purReceiptNo = undefined
|
queryParams.purReceiptNo = undefined
|
||||||
|
queryParams.materialName = undefined
|
||||||
queryParams.pageNo = 1
|
queryParams.pageNo = 1
|
||||||
handleQuery()
|
handleQuery()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -292,9 +292,10 @@ const handlePurReceiptSelect = async (selectedData: any[]) => {
|
|||||||
// 设置明细
|
// 设置明细
|
||||||
detailList.value = selectedData.map(item => ({
|
detailList.value = selectedData.map(item => ({
|
||||||
...item,
|
...item,
|
||||||
receiptQty: item.receiptQty || item.purQty,
|
receiptQty: item.receiptQty || 0,
|
||||||
returnedQty: item.returnedQty || 0,
|
returnedQty: item.returnQty || 0,
|
||||||
returnQty: (Number(item.receiptQty || item.purQty) || 0) - (Number(item.returnedQty) || 0) // 默认退料数量 = 收货数量 - 已退料数量
|
returnQty: (Number(item.receiptQty ) || 0) - (Number(item.returnQty) || 0), // 默认退料数量 = 收货数量 - 已退料数量
|
||||||
|
inStorageTime: item.inStorageTime || new Date().toISOString().split('T')[0] // 默认当前日期
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -322,6 +323,14 @@ const handleSave = async () => {
|
|||||||
message.warning(`第${i + 1}行物料的退料数量不能为空且必须大于0`)
|
message.warning(`第${i + 1}行物料的退料数量不能为空且必须大于0`)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 校验:退料数量 + 已退料数量 不能大于收货数量
|
||||||
|
const totalReturned = Number(item.returnQty) + Number(item.returnedQty || 0)
|
||||||
|
const receiptQty = Number(item.receiptQty) || 0
|
||||||
|
if (totalReturned > receiptQty) {
|
||||||
|
message.warning(`第${i + 1}行物料的退料数量(${item.returnQty}) + 已退料数量(${item.returnedQty || 0}) 不能大于收货数量(${receiptQty})`)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
formLoading.value = true
|
formLoading.value = true
|
||||||
@ -367,6 +376,14 @@ const handleConfirm = async () => {
|
|||||||
message.warning(`第${i + 1}行物料的退料数量不能为空且必须大于0`)
|
message.warning(`第${i + 1}行物料的退料数量不能为空且必须大于0`)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 校验:退料数量 + 已退料数量 不能大于收货数量
|
||||||
|
const totalReturned = Number(item.returnQty) + Number(item.returnedQty || 0)
|
||||||
|
const receiptQty = Number(item.receiptQty) || 0
|
||||||
|
if (totalReturned > receiptQty) {
|
||||||
|
message.warning(`第${i + 1}行物料的退料数量(${item.returnQty}) + 已退料数量(${item.returnedQty || 0}) 不能大于收货数量(${receiptQty})`)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
formLoading.value = true
|
formLoading.value = true
|
||||||
|
|||||||
@ -811,61 +811,8 @@ const validateDeliveryQty = async () => {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
const submitForm = async () => {
|
/** 提交表单 */
|
||||||
// 校验发货数量
|
const submitForm = async (isConfirm: boolean = false) => {
|
||||||
if (!(await validateDeliveryQty())) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 校验表单
|
|
||||||
await formRef.value.validate()
|
|
||||||
|
|
||||||
// 提交请求
|
|
||||||
formLoading.value = true
|
|
||||||
try {
|
|
||||||
// 将产品信息数据传输到 detailList,字段对应后端
|
|
||||||
const detailList = productList.value.map(item => ({
|
|
||||||
twmStorageDetailId: item.twmStorageDetailId || item.id || item.inventoryId,
|
|
||||||
storeHouseId: item.storeHouseId,
|
|
||||||
storeHouseName: item.warehouse,
|
|
||||||
storeHouseCd: item.storeHouseCd,
|
|
||||||
storeAreaId: item.storeAreaId,
|
|
||||||
storeAreaName: item.warehouseArea,
|
|
||||||
storeAreCd: item.storeAreCd,
|
|
||||||
lotNo: item.batchNo,
|
|
||||||
bagSpec: item.bagSpec,
|
|
||||||
deliveriedBagQty: item.deliveriedBag,
|
|
||||||
deliveriedQty: item.deliveriedQty,
|
|
||||||
remark: item.remark,
|
|
||||||
inventBillNo: item.inventBillNo,
|
|
||||||
packQty: item.packQty || 0,
|
|
||||||
yardQty: item.yardQty || 0,
|
|
||||||
// 库存单号
|
|
||||||
}))
|
|
||||||
|
|
||||||
// 只传递用户选择的联系人信息,不传递备用的联系人字段
|
|
||||||
const { contact1, conPhone1, conAddress1, contact2, conPhone2, conAddress2, ...submitData } = formData
|
|
||||||
const data = {
|
|
||||||
...submitData,
|
|
||||||
detailList,
|
|
||||||
}
|
|
||||||
|
|
||||||
if (formType.value === 'create') {
|
|
||||||
await SaleDeliveryApi.createSaleDelivery(data)
|
|
||||||
message.success(t('common.createSuccess'))
|
|
||||||
} else {
|
|
||||||
await SaleDeliveryApi.updateSaleDelivery(data)
|
|
||||||
message.success(t('common.updateSuccess'))
|
|
||||||
}
|
|
||||||
dialogVisible.value = false
|
|
||||||
emit('success')
|
|
||||||
} finally {
|
|
||||||
formLoading.value = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 提交确认 */
|
|
||||||
const submitAudit = async () => {
|
|
||||||
// 校验发货数量
|
// 校验发货数量
|
||||||
if (!(await validateDeliveryQty())) {
|
if (!(await validateDeliveryQty())) {
|
||||||
return
|
return
|
||||||
@ -893,19 +840,25 @@ const submitAudit = async () => {
|
|||||||
deliveriedQty: item.deliveriedQty,
|
deliveriedQty: item.deliveriedQty,
|
||||||
remark: item.remark,
|
remark: item.remark,
|
||||||
inventBillNo: item.inventBillNo,
|
inventBillNo: item.inventBillNo,
|
||||||
packQty: item.packQty || '',
|
packQty: item.packQty || 0,
|
||||||
yardQty: item.yardQty || '',
|
yardQty: item.yardQty || 0,
|
||||||
// 库存单号
|
|
||||||
}))
|
}))
|
||||||
|
|
||||||
// 只传递用户选择的联系人信息,不传递备用的联系人字段
|
// 只传递用户选择的联系人信息,不传递备用的联系人字段
|
||||||
const { contact1, conPhone1, conAddress1, contact2, conPhone2, conAddress2, ...submitData } = formData
|
const { contact1, conPhone1, conAddress1, contact2, conPhone2, conAddress2, ...submitData } = formData
|
||||||
const data = {
|
|
||||||
|
// 组装提交数据
|
||||||
|
const data: any = {
|
||||||
...submitData,
|
...submitData,
|
||||||
deliveryStatus: '2', // 已确认
|
|
||||||
detailList,
|
detailList,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 如果是确认,设置状态为已确认
|
||||||
|
if (isConfirm) {
|
||||||
|
data.deliveryStatus = '2'
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增调用新增接口,编辑调用更新接口
|
||||||
if (formType.value === 'create') {
|
if (formType.value === 'create') {
|
||||||
await SaleDeliveryApi.createSaleDelivery(data)
|
await SaleDeliveryApi.createSaleDelivery(data)
|
||||||
message.success(t('common.createSuccess'))
|
message.success(t('common.createSuccess'))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user