|
|
@@ -228,6 +228,49 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @GlobalTransactional
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R revocation(Delivery delivery) {
|
|
|
+ String billStatus = null;//订单状态
|
|
|
+ if (delivery.getDeliveryType() != null && delivery.getDeliveryType() == DeliveryEnum.TAKE.getType()){
|
|
|
+ billStatus = DeliveryStatusEnum.REVOCATION.getType();
|
|
|
+ }else if (delivery.getDeliveryType() != null && delivery.getDeliveryType() == DeliveryEnum.REVOCATION.getType()){
|
|
|
+ billStatus = DeliveryStatusEnum.DELIVER.getType();
|
|
|
+ }
|
|
|
+ if (delivery.getId() == null){
|
|
|
+ R billNo = serialClient.getBillNo(delivery.getBillType(),delivery.getTradeType(),delivery.getBillType());
|
|
|
+ if (billNo.isSuccess() && billNo.getData() != null){
|
|
|
+ delivery.setSysNo((String) billNo.getData());
|
|
|
+ }else {
|
|
|
+ return R.fail(500,"系统编号生成失败");
|
|
|
+ }
|
|
|
+ delivery.setCreateUser(SecureUtil.getUserId());
|
|
|
+ delivery.setCreateTime(new Date());
|
|
|
+ delivery.setTenantId(SecureUtil.getTenantId());
|
|
|
+ delivery.setDeliveryStatus(billStatus);
|
|
|
+ baseMapper.insert(delivery);
|
|
|
+ }else {
|
|
|
+ Delivery deliverys = baseMapper.selectById(delivery.getId());//查询原始单据
|
|
|
+ if (delivery.getDeliveryType() == DeliveryEnum.TAKE.getType() && delivery.getDeliveryStatus().equals(DeliveryStatusEnum.REVOCATION.getType())){//发货
|
|
|
+ throw new RuntimeException("已收货请勿重复收货");
|
|
|
+ }else if (delivery.getDeliveryType() == DeliveryEnum.REVOCATION.getType() && !delivery.getDeliveryStatus().equals(DeliveryStatusEnum.REVOCATION.getType()))//撤销发货
|
|
|
+ {
|
|
|
+ throw new RuntimeException("已撤销收货请勿重复撤销收货");
|
|
|
+ }
|
|
|
+ delivery.setDeliveryStatus(billStatus);
|
|
|
+ delivery.setUpdateUser(SecureUtil.getUserId());
|
|
|
+ delivery.setUpdateTime(new Date());
|
|
|
+ baseMapper.updateById(delivery);
|
|
|
+ }
|
|
|
+ //保存发货明细信息
|
|
|
+ if (CollectionUtils.isNotEmpty(delivery.getDeliveryItemsList())){
|
|
|
+ List<DeliveryItems> deliveryItemsList = deliveryItemsService.revocation(delivery.getId(),delivery, delivery.getDeliveryItemsList());
|
|
|
+ delivery.setDeliveryItemsList(deliveryItemsList);
|
|
|
+ }
|
|
|
+ return R.data(delivery);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@GlobalTransactional
|
|
|
public void comfire(Delivery delivery)
|