新增库位绑定Feign接口与合并采购销售订单

This commit is contained in:
潘荣晟
2026-01-30 11:11:01 +08:00
parent de66bd6b12
commit 499da0a9b2
15 changed files with 209 additions and 26 deletions

View File

@@ -153,7 +153,7 @@ public class PurchaseOrderSaveReqVO {
@Schema(description = "订单明细")
@ExcelProperty("订单明细")
private List<PrchOrdDtlSaveReqVO> prchOrdDtlSaveReqVOS;
private List<PrchOrdDtlSaveReqVO> details;
@Schema(description = "流程实例编号")

View File

@@ -201,5 +201,8 @@ public class SalesOrderSaveReqVO {
@Schema(description = "货权转移类型(字典ASY_MTNG_TP)")
@ExcelProperty("货权转移类型(字典ASY_MTNG_TP)")
private String meteringType;
@Schema(description = "订单明细")
@ExcelProperty("订单明细")
private List<SalesOrderDetailSaveReqVO> details;
}

View File

@@ -69,6 +69,13 @@ public interface PrchOrdDtlService {
* @return List<PrchOrdDtlRespVO>
*/
List<PrchOrdDtlRespVO> batchCreatePrchOrdDtl(@Valid List<PrchOrdDtlSaveReqVO> createReqVOS);
/**
* 批量更新采购订单明细
*
* @param createReqVOS 更新信息
* @return List<PrchOrdDtlRespVO>
*/
List<PrchOrdDtlRespVO> batchUpdatePrchOrdDtl(@Valid List<PrchOrdDtlSaveReqVO> createReqVOS);
/**
* 批量删除采购订单明细
*

View File

@@ -149,6 +149,14 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService {
return BeanUtils.toBean(prchOrdDtlDOS, PrchOrdDtlRespVO.class);
}
@Override
public List<PrchOrdDtlRespVO> batchUpdatePrchOrdDtl(List<PrchOrdDtlSaveReqVO> createReqVOS) {
List<PrchOrdDtlDO> prchOrdDtlDOS = BeanUtils.toBean(createReqVOS, PrchOrdDtlDO.class);
prchOrdDtlMapper.insertOrUpdate(prchOrdDtlDOS);
log.info("批量更新采购订单明细成功,更新【{}】条数据", prchOrdDtlDOS.size());
return BeanUtils.toBean(prchOrdDtlDOS, PrchOrdDtlRespVO.class);
}
@Override
public void deletePrchOrdDtlListByOrdIds(List<Long> ordIds) {
//通过订单组件查询订单明细

View File

@@ -115,14 +115,14 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
purchaseOrder.setSystemOrderNumber(orderNumber);
purchaseOrderMapper.insert(purchaseOrder);
// if (createReqVO.getPrchOrdDtlSaveReqVOS()==null||createReqVO.getPrchOrdDtlSaveReqVOS().isEmpty()) {
// return BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
// }
// //批量插入订单明细
// createReqVO.getPrchOrdDtlSaveReqVOS().forEach(prchOrdDtlSaveReqVO -> prchOrdDtlSaveReqVO.setOrdId(purchaseOrder.getId()));
// List<PrchOrdDtlRespVO> prchOrdDtlRespVOS = prchOrdDtlService.batchCreatePrchOrdDtl(createReqVO.getPrchOrdDtlSaveReqVOS());
// PurchaseOrderRespVO purchaseOrderRespVO = BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
// purchaseOrderRespVO.setPrchOrdDtlRespVOS(prchOrdDtlRespVOS);
if (createReqVO.getDetails()==null||createReqVO.getDetails().isEmpty()) {
throw exception(ORDER_DETAIL_NOT_EXISTS);
}
//批量插入订单明细
createReqVO.getDetails().forEach(details -> details.setOrdId(purchaseOrder.getId()));
List<PrchOrdDtlRespVO> prchOrdDtlRespVOS = prchOrdDtlService.batchCreatePrchOrdDtl(createReqVO.getDetails());
PurchaseOrderRespVO purchaseOrderRespVO = BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
purchaseOrderRespVO.setPrchOrdDtlRespVOS(prchOrdDtlRespVOS);
return BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class);
}
@@ -134,22 +134,25 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
// 更新
PurchaseOrderDO updateObj = BeanUtils.toBean(updateReqVO, PurchaseOrderDO.class);
purchaseOrderMapper.updateById(updateObj);
//删除订单明细
// prchOrdDtlService.deletePrchOrdDtlListByOrdIds(Collections.singletonList(updateReqVO.getId()));
// log.info("删除旧的订单明细成功");
// 返回
//批量插入订单明细
// updateReqVO.getPrchOrdDtlSaveReqVOS().forEach(prchOrdDtlSaveReqVO -> prchOrdDtlSaveReqVO.setOrdId(updateReqVO.getId()));
// prchOrdDtlService.batchCreatePrchOrdDtl(updateReqVO.getPrchOrdDtlSaveReqVOS());
// 批量插入订单明细
updateReqVO.getDetails().forEach(prchOrdDtlSaveReqVO ->{
//表示新增
if (prchOrdDtlSaveReqVO.getId() == null){
prchOrdDtlSaveReqVO.setOrdId(updateReqVO.getId());
}
});
prchOrdDtlService.batchUpdatePrchOrdDtl(updateReqVO.getDetails());
log.info("更新订单明细成功");
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deletePurchaseOrder(Long id) {
// 校验存在
validatePurchaseOrderExists(id);
// 删除
purchaseOrderMapper.deleteById(id);
prchOrdDtlService.deletePrchOrdDtlListByOrdIds(Collections.singletonList(id));
}
@Override

View File

@@ -40,7 +40,12 @@ public interface SalesOrderDetailService {
* @param updateReqVO 更新信息
*/
void updateSalesOrderDetail(@Valid SalesOrderDetailSaveReqVO updateReqVO);
/**
* 批量更新销售订单明细
*
* @param updateReqVO 更新信息
*/
void updateSalesOrderDetailList(@Valid List<SalesOrderDetailSaveReqVO> updateReqVO);
/**
* 删除销售订单明细
*

View File

@@ -77,7 +77,7 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService {
@Override
@Transactional
@Transactional(rollbackFor = Exception.class)
public List<SalesOrderDetailRespVO> createSalesOrderDetail(List<SalesOrderDetailSaveReqVO> createReqVOS) {
List<SalesOrderDetailDO> salesOrderDetailDOS = BeanUtils.toBean(createReqVOS, SalesOrderDetailDO.class);
salesOrderDetailDOS.forEach(salesOrderDetail -> {
@@ -96,6 +96,11 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService {
salesOrderDetailMapper.updateById(updateObj);
}
@Override
public void updateSalesOrderDetailList(List<SalesOrderDetailSaveReqVO> updateReqVO) {
salesOrderDetailMapper.insertOrUpdate(BeanUtils.toBean(updateReqVO, SalesOrderDetailDO.class));
}
@Override
public void deleteSalesOrderDetail(Long id) {
// 校验存在

View File

@@ -98,7 +98,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
private InternalWarehouseService internalWarehouseService;
@Override
@Transactional
@Transactional(rollbackFor = Exception.class)
public SalesOrderRespVO createSalesOrder(SalesOrderSaveReqVO createReqVO) {
// 插入
SalesOrderDO salesOrderDO = BeanUtils.toBean(createReqVO, SalesOrderDO.class);
@@ -108,22 +108,35 @@ public class SalesOrderServiceImpl implements SalesOrderService {
String orderNumber = generateOrderNumber(salesOrderDO.getMtrlTp());
salesOrderDO.setSystemOrderNumber(orderNumber);
salesOrderMapper.insert(salesOrderDO);
//插入订单明细
if (createReqVO.getDetails()==null||createReqVO.getDetails().isEmpty()) {
throw exception(Sales_ORD_DTL_NOT_EXISTS);
}
createReqVO.getDetails().forEach(details ->details.setOrderId(String.valueOf(salesOrderDO.getId())));
List<SalesOrderDetailRespVO> salesOrderDetail = salesOrderDetailService.createSalesOrderDetail(createReqVO.getDetails());
// 返回
return BeanUtils.toBean(salesOrderDO, SalesOrderRespVO.class);
SalesOrderRespVO bean = BeanUtils.toBean(salesOrderDO, SalesOrderRespVO.class);
bean.setSalesOrderDetailRespVOS(salesOrderDetail);
return bean;
}
@Override
@Transactional
@Transactional(rollbackFor = Exception.class)
public void updateSalesOrder(SalesOrderSaveReqVO updateReqVO) {
// 校验存在
validateSalesOrderExists(updateReqVO.getId());
// 更新
SalesOrderDO updateObj = BeanUtils.toBean(updateReqVO, SalesOrderDO.class);
salesOrderMapper.updateById(updateObj);
if (updateReqVO.getDetails()==null||updateReqVO.getDetails().isEmpty()) {
return;
}
updateReqVO.getDetails().forEach(details ->details.setOrderId(String.valueOf(updateObj.getId())));
salesOrderDetailService.updateSalesOrderDetailList(updateReqVO.getDetails());
}
@Override
@Transactional
@Transactional(rollbackFor = Exception.class)
public void deleteSalesOrder(Long id) {
// 校验存在
validateSalesOrderExists(id);
@@ -132,7 +145,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
}
@Override
@Transactional
@Transactional(rollbackFor = Exception.class)
public void deleteSalesOrderListByIds(List<Long> ids) {
// 校验存在
validateSalesOrderExists(ids);