@ -21,6 +21,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper ;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper ;
import com.baomidou.mybatisplus.core.metadata.IPage ;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils ;
import com.baomidou.mybatisplus.core.toolkit.StringUtils ;
@ -667,14 +668,71 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
log . error ( method + "取消自提单存在自提扫描数据:{}" , errorBillLading ) ;
return R . fail ( errorBillLading + "已提货或已签收!!!" ) ;
}
//满足进行取消自提,进行自提单的资源释放
//直接对配送的包件和库存品进行取消
Integer a = this . cancelBillLodingPackage ( ids ) ;
return R . status ( true ) ;
}
private Integer cancelBillLodingPackage ( List < Long > ids ) {
String method = "##########类DistrilbutionBillLadingServiceImpl执行方法cancelBillLoding," ;
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient . getMyCurrentWarehouse ( ) ;
if ( Func . isEmpty ( myCurrentWarehouse ) ) {
//未授权
return 1 ;
}
//查询关联包件进行状态恢复
List < DistributionParcelListEntity > distributionParcelListEntities = baseMapper . selectBillLadingPackage ( ids ) ;
if ( Func . isNotEmpty ( distributionParcelListEntities ) ) {
List < DistributionParcelListEntity > signingPakcage = distributionParcelListEntities . stream ( ) . filter ( f - > f . getOrderPackageStatus ( ) . equals ( OrderPackageStatusConstant . yiqianshou . getValue ( ) ) ) . collect ( Collectors . toList ( ) ) ;
if ( Func . isEmpty ( signingPakcage ) ) {
//存在签收包件
return 3 ;
}
List < Long > packageIds = distributionParcelListEntities . stream ( ) . map ( DistributionParcelListEntity : : getId ) . collect ( Collectors . toList ( ) ) ;
//将这些包件还原成可操作状态
Integer num = distributionParcelListService . restorePakcageByIds ( packageIds ) ;
//维护订单状态
String orderCodes = distributionParcelListEntities . stream ( ) . map ( DistributionParcelListEntity : : getOrderCode ) . distinct ( ) . collect ( Collectors . joining ( "," ) ) ;
distributionStockArticleService . maintenanceOrderInfo ( orderCodes , myCurrentWarehouse . getId ( ) ) ;
} else {
log . error ( method + "查询无包件信息:{}" , ids ) ;
//自提无包件信息
return 2 ;
}
//取消库存品
//查询自提库存品信息
List < DistributionDeliveryDetailsEntity > distributionStockListEntities = baseMapper . selectBillLadingInventory ( ids ) ;
if ( Func . isNotEmpty ( distributionStockListEntities ) ) {
//已经备货的库存品 存在库存品包件
distributionStockListEntities . forEach ( ddd - > {
//进行库存品包件取消
if ( ddd . getStockStatus ( ) . equals ( "3" ) ) {
disStockListDetailService . cancelInventoryPackageByReservationIdAnStockListId ( ddd . getStockListId ( ) , ddd . getBillLadingId ( ) ) ;
}
//恢复库存品数量
return R . status ( true ) ;
}
) ;
//对所有的库存品相关进行取消标识
UpdateWrapper < DistributionDeliveryDetailsEntity > updateWrapper = new UpdateWrapper < > ( ) ;
updateWrapper . lambda ( )
. set ( DistributionDeliveryDetailsEntity : : getConditions , 3 )
. set ( DistributionDeliveryDetailsEntity : : getQuantity , 0 )
. in ( DistributionDeliveryDetailsEntity : : getBillLadingId , ids ) ;
distributionDeliveryDetailsService . update ( updateWrapper ) ;
}
return 0 ;
}
/ * *