@ -36,9 +36,8 @@ import com.logpm.distribution.vo.*;
import com.logpm.distribution.wrapper.DistributionStockupWrapper ;
import com.logpm.warehouse.entity.WarehouseTaryAllocationEntity ;
import com.logpm.warehouse.entity.WarehouseTrayGoodsEntity ;
import com.logpm.warehouse.feign.IWarehouseTaryAllocationClient ;
import com.logpm.warehouse.feign.IWarehouseTrayGoodsClient ;
import com.logpm.warehouse.feign.IWarehouseUpdownGoodsLogClient ;
import com.logpm.warehouse.entity.WarehouseUpdownGoodsEntity ;
import com.logpm.warehouse.feign.* ;
import lombok.AllArgsConstructor ;
import org.springblade.common.constant.CodeDesEnum ;
import org.springblade.common.constant.DictBizConstant ;
@ -70,6 +69,7 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function ;
import java.util.function.Predicate ;
import java.util.stream.Collectors ;
import java.util.stream.Stream ;
/ * *
* 备货信息表 服务实现类
@ -147,7 +147,10 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
private IDistributionAsyncService distributionAsyncService ;
private IWarehouseUpdownGoodsLogClient warehouseUpdownGoodsLogClient ;
@Autowired
private IWarehouseUpdownTypeClient warehouseUpdownTypeClient ;
@Autowired
private final IWarehouseUpdownGoodsClient warehouseUpdownGoodsClient ;
@Override
public IPage < DistributionStockupVO > selectDistributionStockupPage ( IPage < DistributionStockupVO > page , DistributionStockupVO distributionStockup ) {
@ -528,7 +531,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
y . setScanNum ( y . getScanNum ( ) + 1 ) ;
}
//t托盘信息
if ( ObjectUtils . isNotNull ( y . getTrayId ( ) ) & & ! y . getTrayId ( ) . equals ( i . getTrayId ( ) ) ) {
if ( ObjectUtils . isNotNull ( y . getTrayId ( ) ) & & ObjectUtils . isNotNull ( i . getTrayId ( ) ) & & ! y . getTrayId ( ) . equals ( i . getTrayId ( ) ) ) {
y . setPallet ( y . getPallet ( ) + "," + i . getPallet ( ) ) ;
}
//订单自编号信息
@ -592,7 +595,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
wu . setScanNum ( wu . getScanNum ( ) + 1 ) ;
}
//托盘信息
if ( ObjectUtils . isNotNull ( wu . getTrayId ( ) ) & & ! wu . getTrayId ( ) . equals ( i . getTrayId ( ) ) ) {
if ( ObjectUtils . isNotNull ( wu . getTrayId ( ) ) & & ObjectUtils . isNotNull ( i . getTrayId ( ) ) & & ! wu . getTrayId ( ) . equals ( i . getTrayId ( ) ) ) {
wu . setPallet ( wu . getPallet ( ) + "," + i . getPallet ( ) ) ;
}
//订单自编号信息
@ -633,7 +636,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
wu . setScanNum ( wu . getScanNum ( ) + 1 ) ;
}
//托盘信息
if ( ObjectUtils . isNotNull ( wu . getTrayId ( ) ) & & ! wu . getTrayId ( ) . equals ( i . getTrayId ( ) ) ) {
if ( ObjectUtils . isNotNull ( wu . getTrayId ( ) ) & & ObjectUtils . isNotNull ( i . getTrayId ( ) ) & & ! wu . getTrayId ( ) . equals ( i . getTrayId ( ) ) ) {
wu . setPallet ( wu . getPallet ( ) + "," + i . getPallet ( ) ) ;
}
//订单自编号信息
@ -689,7 +692,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
y . setScanNum ( y . getScanNum ( ) + 1 ) ;
}
//t托盘信息
if ( ObjectUtils . isNotNull ( y . getTrayId ( ) ) & & ! y . getTrayId ( ) . equals ( p . getTrayId ( ) ) ) {
if ( ObjectUtils . isNotNull ( y . getTrayId ( ) ) & & ObjectUtils . isNotNull ( p . getTrayId ( ) ) & & ! y . getTrayId ( ) . equals ( p . getTrayId ( ) ) ) {
y . setPallet ( y . getPallet ( ) + "," + p . getPallet ( ) ) ;
}
}
@ -746,7 +749,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
y . setScanNum ( y . getScanNum ( ) + 1 ) ;
}
//t托盘信息
if ( ObjectUtils . isNotNull ( y . getTrayId ( ) ) & & ! y . getTrayId ( ) . equals ( p . getTrayId ( ) ) ) {
if ( ObjectUtils . isNotNull ( y . getTrayId ( ) ) & & ObjectUtils . isNotNull ( p . getTrayId ( ) ) & & ! y . getTrayId ( ) . equals ( p . getTrayId ( ) ) ) {
y . setPallet ( y . getPallet ( ) + "," + p . getPallet ( ) ) ;
}
if ( y . getPlanNum ( ) . equals ( y . getScanNum ( ) ) ) {
@ -790,7 +793,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
wu . setScanNum ( wu . getScanNum ( ) + 1 ) ;
}
//托盘信息
if ( ObjectUtils . isNotNull ( wu . getTrayId ( ) ) & & ! wu . getTrayId ( ) . equals ( i . getTrayId ( ) ) ) {
if ( ObjectUtils . isNotNull ( wu . getTrayId ( ) ) & & ObjectUtils . isNotNull ( i . getTrayId ( ) ) & & ! wu . getTrayId ( ) . equals ( i . getTrayId ( ) ) ) {
wu . setPallet ( wu . getPallet ( ) + "," + i . getPallet ( ) ) ;
}
//订单自编号信息
@ -1391,17 +1394,43 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
@Transactional ( rollbackFor = Exception . class )
public R addPackTrayList ( StockupDTO stockupDTO ) {
AtomicReference < Boolean > stock = new AtomicReference < > ( false ) ;
//查询包件信息
List < DistributionStockPackageVO > list = distributionReservationPackageService . listPackage ( stockupDTO . getReservationId ( ) ) ;
DistributionStockupInfoEntity one = distributionStockupInfoService . getOne ( Wrappers . < DistributionStockupInfoEntity > query ( ) . lambda ( )
. eq ( DistributionStockupInfoEntity : : getReservationId , stockupDTO . getReservationId ( ) )
. eq ( DistributionStockupInfoEntity : : getStockupId , stockupDTO . getStockupId ( ) )
) ;
List < DistributionStockPackageVO > list = new ArrayList < > ( ) ;
if ( ObjectUtils . isNotNull ( one ) ) {
if ( one . getStockUpType ( ) . equals ( "3" ) ) {
//自提
list = distrilbutionBillStockService . listPackageSelf ( stockupDTO . getReservationId ( ) ) ;
} else {
// 市,自
//查询包件信息
list = distributionReservationPackageService . listPackage ( stockupDTO . getReservationId ( ) ) ;
}
} else {
log . warn ( "预约信息不存在!" ) ;
return R . fail ( 3001 , "备货失败!" ) ;
}
if ( list . size ( ) < 1 ) {
log . warn ( "包件信息不存在!" ) ;
return R . fail ( 3001 , "备货失败!" ) ;
}
//查询托盘上面的包件
List < WarehouseTrayGoodsEntity > trayIdList = warehouseTrayGoodsClient . getTrayIdList ( stockupDTO . getTrayId ( ) ) ;
List < DistributionStockPackageVO > voList = new ArrayList < > ( ) ;
List < DistributionStockPackageVO > finalList = list ;
trayIdList . forEach ( t - > {
Optional < DistributionStockPackageVO > first = list . stream ( ) . filter ( l - > l . getParcelListId ( ) . equals ( t . getAssociationId ( ) ) ) . findFirst ( ) ;
if ( first . isPresent ( ) ) {
DistributionStockPackageVO distributionStockPackageVO = first . get ( ) ;
log . warn ( "找到了匹配的对象:" + distributionStockPackageVO ) ;
voList . add ( distributionStockPackageVO ) ;
boolean b = finalList . stream ( ) . anyMatch ( l - > l . getParcelListId ( ) . equals ( t . getAssociationId ( ) ) ) ;
if ( b ) {
finalList . stream ( ) . forEach ( i - > {
if ( i . getParcelListId ( ) . equals ( t . getAssociationId ( ) ) ) {
DistributionStockPackageVO distributionStockPackageVO = i ;
log . warn ( "找到了匹配的对象:" + distributionStockPackageVO ) ;
voList . add ( distributionStockPackageVO ) ;
}
} ) ;
} else {
log . warn ( "没有找到了匹配的对象;" ) ;
stock . set ( true ) ;
@ -1412,25 +1441,57 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
} else {
List < DistributionStockEntity > list1 = new ArrayList < > ( ) ;
voList . forEach ( i - > {
DistributionStockEntity distributionStock = new DistributionStockEntity ( ) ;
distributionStock . setStockupId ( stockupDTO . getStockupId ( ) ) ;
distributionStock . setStockArticle ( i . getStockArticleId ( ) ) ;
distributionStock . setGoodsAllocation ( i . getGoodsAllocation ( ) ) ; //货位信息
distributionStock . setConditions ( "1" ) ;
distributionStock . setParcelListId ( i . getParcelListId ( ) ) ;
distributionStock . setOrderSelfNumbering ( i . getOrderCode ( ) ) ;
distributionStock . setType ( 1 ) ;
distributionStock . setDeliveryListCode ( i . getNoteNumber ( ) ) ;
distributionStock . setDeliveryListId ( i . getDeliveryId ( ) ) ;
distributionStock . setReservationId ( i . getReservationId ( ) ) ;
distributionStock . setReservationCode ( i . getReservationCode ( ) ) ;
distributionStock . setCoding ( i . getPacketBarCode ( ) ) ;
list1 . add ( distributionStock ) ;
//查询是否已备货
DistributionParcelListEntity byId = distributionParcelListService . getById ( i . getParcelListId ( ) ) ;
if ( ObjectUtils . isNotNull ( byId ) & & ! byId . getOrderPackageStockupStatus ( ) . equals ( OrderPackageStockupStatusConstant . yibeihu . getValue ( ) ) ) {
DistributionStockEntity distributionStock = new DistributionStockEntity ( ) ;
//修改包件备货状态
DistributionParcelListEntity parcelList = new DistributionParcelListEntity ( ) ;
parcelList . setId ( i . getParcelListId ( ) ) ;
parcelList . setOrderPackageStockupStatus ( OrderPackageStockupStatusConstant . yibeihu . getValue ( ) ) ;
distributionParcelListService . updateById ( parcelList ) ;
//货位下架
warehouseUpdownTypeClient . downPackage ( i . getPacketBarCode ( ) ) ;
//判断备货任务是否完成
if ( one . getStockUpType ( ) . equals ( "3" ) ) {
distributionAsyncService . stockupSelfUpdateState ( stockupDTO ) ;
distributionStock . setBillLadingId ( i . getReservationId ( ) ) ;
distributionStock . setConditions ( "2" ) ;
} else {
distributionAsyncService . stockupUpdateState ( stockupDTO ) ;
distributionStock . setReservationId ( i . getReservationId ( ) ) ;
distributionStock . setReservationCode ( i . getReservationCode ( ) ) ;
distributionStock . setConditions ( "1" ) ;
}
//查询库位信息
WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity ( ) ;
warehouseUpdownGoodsEntity . setAssociationId ( i . getParcelListId ( ) ) ;
warehouseUpdownGoodsEntity . setAssociationValue ( i . getPacketBarCode ( ) ) ;
WarehouseUpdownGoodsEntity locationInformation = warehouseUpdownGoodsClient . getLocationInformation ( warehouseUpdownGoodsEntity ) ;
if ( ObjectUtils . isNotNull ( locationInformation ) ) {
distributionStock . setAllocationTitle ( locationInformation . getPositionCode ( ) ) ;
distributionStock . setAllocationId ( locationInformation . getAllocationId ( ) ) ;
}
distributionStock . setStockupId ( stockupDTO . getStockupId ( ) ) ;
distributionStock . setStockArticle ( i . getStockArticleId ( ) ) ;
// distributionStock.setGoodsAllocation(i.getGoodsAllocation());//货位信息
distributionStock . setParcelListId ( i . getParcelListId ( ) ) ;
distributionStock . setOrderSelfNumbering ( i . getOrderCode ( ) ) ;
distributionStock . setType ( 1 ) ;
// distributionStock.setDeliveryListCode(i.getNoteNumber());
// distributionStock.setDeliveryListId(i.getDeliveryId());
distributionStock . setCoding ( i . getPacketBarCode ( ) ) ;
list1 . add ( distributionStock ) ;
}
} ) ;
//TODO 其他操作
//添加扫描记录
distributionStockService . saveBatch ( list1 ) ;
return R . fail ( 200 , "备货成功" ) ;
if ( ! list1 . isEmpty ( ) ) {
distributionStockService . saveBatch ( list1 ) ;
}
return R . success ( "备货成功" ) ;
}
}
@ -1456,7 +1517,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
while ( iterator . hasNext ( ) ) {
if ( i . getTrayId ( ) . equals ( iterator . next ( ) . getTrayId ( ) ) ) {
Integer trayPackNum = iterator . next ( ) . getTrayPackNum ( ) ; //在这个托盘的数量
List < WarehouseTrayGoodsEntity > trayIdList = warehouseTrayGoodsClient . getTrayIdList ( i . getTrayId ( ) ) ;
List < WarehouseTrayGoodsEntity > trayIdList = warehouseTrayGoodsClient . getTrayIdList ( i . getTrayId ( ) . toString ( ) ) ;
if ( trayPackNum . equals ( trayIdList . size ( ) ) ) {
trays . set ( true ) ;
}