|
|
@@ -289,6 +289,19 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
@GlobalTransactional
|
|
|
public void comfire(Delivery delivery)
|
|
|
{
|
|
|
+ //防重校验
|
|
|
+ Long deliveryId = delivery.getId();
|
|
|
+ Delivery select = baseMapper.selectById(deliveryId);
|
|
|
+ if(select==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("未查到相关数据,操作失败");
|
|
|
+ }
|
|
|
+ if(select.getDeliveryStatus()==null||!select.getDeliveryStatus().equals("已收货"))
|
|
|
+ {
|
|
|
+ throw new SecurityException("此单据已收货或者不存在,禁止重复操作");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//保存收货单主表 和 收货单明细
|
|
|
this.submitDelivery(delivery);
|
|
|
//验证收货单库存与传入库存是否一致,如果一直则修改库存
|
|
|
@@ -332,22 +345,27 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
// 比较2个库存值是否相等
|
|
|
//BigDecimal surplusRouteQuantity = stockGoodsVOR.getData().getSurplusRouteQuantity();
|
|
|
|
|
|
- //新增库存单
|
|
|
- if(stock==null)
|
|
|
- {
|
|
|
- StockGoods stockGoods = iDeliveryItemsService.saveStock(delivery.getTradeType(), delivery.getCorpId(), delivery.getStorageId(), e);
|
|
|
- //更新收货单明细库存
|
|
|
- e.setInventoryNumber(stockGoods.getSurplusRouteQuantity());
|
|
|
- e.setInWeight(stockGoods.getInWeight());
|
|
|
- }
|
|
|
- //修改库存单
|
|
|
- else if(stock!=null)
|
|
|
+ //达沃特新需求-禅道860中体现-国内-采购确认-不增加库存
|
|
|
+ if(!delivery.getTradeType().equals("GN"))
|
|
|
{
|
|
|
- StockGoods receiving = iDeliveryItemsService.receiving(delivery.getTradeType(), stock.getId(), e);
|
|
|
- //更新收货单明细库存
|
|
|
- e.setInventoryNumber(receiving.getSurplusRouteQuantity());
|
|
|
- e.setInWeight(receiving.getInWeight());
|
|
|
+ //新增库存单
|
|
|
+ if(stock==null)
|
|
|
+ {
|
|
|
+ StockGoods stockGoods = iDeliveryItemsService.saveStock(delivery.getTradeType(), delivery.getCorpId(), delivery.getStorageId(), e);
|
|
|
+ //更新收货单明细库存
|
|
|
+ e.setInventoryNumber(stockGoods.getSurplusRouteQuantity());
|
|
|
+ e.setInWeight(stockGoods.getInWeight());
|
|
|
+ }
|
|
|
+ //修改库存单
|
|
|
+ else if(stock!=null)
|
|
|
+ {
|
|
|
+ StockGoods receiving = iDeliveryItemsService.receiving(delivery.getTradeType(), stock.getId(), e);
|
|
|
+ //更新收货单明细库存
|
|
|
+ e.setInventoryNumber(receiving.getSurplusRouteQuantity());
|
|
|
+ e.setInWeight(receiving.getInWeight());
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
//更新item已发数量
|
|
|
R r = iOrderItemsClient.updateActualQuantity(e.getSrcId(), inventoryNumber, 1);
|
|
|
if(!r.isSuccess())
|
|
|
@@ -379,10 +397,16 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
@GlobalTransactional
|
|
|
public void cancel(Delivery delivery)
|
|
|
{
|
|
|
- //判断当前收货单状态,是否可以撤销
|
|
|
- if(delivery.getDeliveryStatus()==null||!delivery.getDeliveryStatus().equals("已收货"))
|
|
|
+ //防重校验
|
|
|
+ Long deliveryId = delivery.getId();
|
|
|
+ Delivery select = baseMapper.selectById(deliveryId);
|
|
|
+ if(select==null)
|
|
|
+ {
|
|
|
+ throw new SecurityException("未查到相关数据,操作失败");
|
|
|
+ }
|
|
|
+ if(select.getDeliveryStatus()==null||!select.getDeliveryStatus().equals("已收货"))
|
|
|
{
|
|
|
- throw new SecurityException("非已发货状态,禁止撤回");
|
|
|
+ throw new SecurityException("此单据已撤回或者不存在,禁止重复操作");
|
|
|
}
|
|
|
|
|
|
List<DeliveryItems> deliveryItemsList = delivery.getDeliveryItemsList();
|