|
|
@@ -224,7 +224,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @Transactional
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @GlobalTransactional
|
|
|
public void comfire(Delivery delivery)
|
|
|
{
|
|
|
//保存收货单主表 和 收货单明细
|
|
|
@@ -240,20 +241,20 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
//不同的出口对应不同的查询条件
|
|
|
if(delivery.getTradeType().equals("JK"))
|
|
|
{
|
|
|
- model.setCntrNo(e.getCntrNo());
|
|
|
- model.setBillNo(e.getBillNo());
|
|
|
- model.setCorpId(delivery.getCorpId());
|
|
|
- model.setStorageId(delivery.getStorageId());
|
|
|
- model.setItemType(e.getSpecificationAndModel());
|
|
|
+ model.setCntrNo(e.getCntrNo());//箱号
|
|
|
+ model.setBillNo(e.getBillNo());//提单号
|
|
|
+ /* model.setCorpId(delivery.getCorpId());*/
|
|
|
+ model.setStorageId(delivery.getStorageId());//仓库
|
|
|
+ model.setContractNumber(e.getContractNumber());//采购订单号
|
|
|
}
|
|
|
else if(delivery.getTradeType().equals("CK"))
|
|
|
{
|
|
|
- model.setCorpId(delivery.getCorpId());
|
|
|
+
|
|
|
model.setItemType(e.getSpecificationAndModel());
|
|
|
}
|
|
|
else if(delivery.getTradeType().equals("GN"))
|
|
|
{
|
|
|
- model.setStorageId(delivery.getStorageId());
|
|
|
+
|
|
|
model.setItemType(e.getSpecificationAndModel());
|
|
|
}
|
|
|
else
|
|
|
@@ -288,7 +289,60 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @GlobalTransactional
|
|
|
+ public void cancel(Delivery delivery)
|
|
|
+ {
|
|
|
+ //判断当前收货单状态,是否可以撤销
|
|
|
+ if(delivery.getDeliveryStatus()==null||!delivery.getDeliveryStatus().equals("已发货"))
|
|
|
+ {
|
|
|
+ throw new SecurityException("非已发货状态,禁止撤回");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<DeliveryItems> deliveryItemsList = delivery.getDeliveryItemsList();
|
|
|
+ deliveryItemsList.forEach(e->{
|
|
|
+ //更新item已发数量
|
|
|
+ BigDecimal inventoryNumber = e.getActualQuantity();
|
|
|
+ R r = iOrderItemsClient.updateActualQuantity(e.getSrcId(), inventoryNumber, 2);
|
|
|
+ if(!r.isSuccess())
|
|
|
+ {
|
|
|
+ throw new SecurityException("更新采购明细失败");
|
|
|
+ }
|
|
|
+ //查询stock,后续更新stock数量
|
|
|
+ StockGoods model=new StockGoods();
|
|
|
+ model.setGoodsId(e.getItemId());
|
|
|
+ //不同的出口对应不同的查询条件
|
|
|
+ if(delivery.getTradeType().equals("JK"))
|
|
|
+ {
|
|
|
+ model.setCntrNo(e.getCntrNo());//箱号
|
|
|
+ model.setBillNo(e.getBillNo());//提单号
|
|
|
+ /* model.setCorpId(delivery.getCorpId());*/
|
|
|
+ model.setStorageId(delivery.getStorageId());//仓库
|
|
|
+ model.setContractNumber(e.getContractNumber());//采购订单号
|
|
|
+ }
|
|
|
+ else if(delivery.getTradeType().equals("CK"))
|
|
|
+ {
|
|
|
|
|
|
+ model.setItemType(e.getSpecificationAndModel());
|
|
|
+ }
|
|
|
+ else if(delivery.getTradeType().equals("GN"))
|
|
|
+ {
|
|
|
+
|
|
|
+ model.setItemType(e.getSpecificationAndModel());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ throw new SecurityException("贸易类型未指定");
|
|
|
+ }
|
|
|
+ StockGoods stock=stockGoodsClient.getOneStock(model);
|
|
|
+ //更新stock库存数量
|
|
|
+ iDeliveryItemsService.revocationDeliverGoods(delivery.getTradeType(),stock.getId(),e);
|
|
|
+ });
|
|
|
+ //更新收货单状态为:录入
|
|
|
+ delivery.setDeliveryStatus("录入");
|
|
|
+ baseMapper.updateById(delivery);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|