|
|
|
@ -847,6 +847,11 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
public void stockZero(StockupZeroDTO stockupDTO) { |
|
|
|
|
try { |
|
|
|
|
Thread.sleep(300L); |
|
|
|
|
} catch (InterruptedException e) { |
|
|
|
|
throw new RuntimeException(e); |
|
|
|
|
} |
|
|
|
|
log.debug("修改备货数据》》》",stockupDTO); |
|
|
|
|
QueryWrapper<DistributionReservationZeroPackageEntity> queryWrapper = new QueryWrapper(); |
|
|
|
|
if(ObjectUtils.isNotNull(stockupDTO.getStockArticleId())){ |
|
|
|
@ -861,46 +866,83 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
DistributionStockupEntity stockupEntity = new DistributionStockupEntity(); |
|
|
|
|
list.stream().forEach(i -> { |
|
|
|
|
if(!i.getQuantity().equals(i.getRealityQuantity())){ |
|
|
|
|
//不同
|
|
|
|
|
//不同 不能修改为完成
|
|
|
|
|
pian.set(false); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
if(pian.get()){ |
|
|
|
|
//查询有没有不是零担的订单
|
|
|
|
|
List<DistributionStockPackageVO> distributionStockPackageVOS = distrilbutionBillStockService.listPackageSelf(stockupDTO.getReservationId()); |
|
|
|
|
if(!distributionStockPackageVOS.isEmpty()){ |
|
|
|
|
AtomicReference<Boolean> s = new AtomicReference<>(false); |
|
|
|
|
distributionStockPackageVOS.forEach( i ->{ |
|
|
|
|
QueryWrapper<DistributionStockEntity> queryWrapper1 = new QueryWrapper<>(); |
|
|
|
|
queryWrapper1.eq("stock_article",i.getStockArticleId()); |
|
|
|
|
queryWrapper1.eq("parcel_list_id",i.getParcelListId()); |
|
|
|
|
|
|
|
|
|
if(stockupDTO.getTypeService().equals("3")){ |
|
|
|
|
queryWrapper1.eq("bill_lading_id",stockupDTO.getReservationId()); |
|
|
|
|
}else{ |
|
|
|
|
queryWrapper1.eq("reservation_id",stockupDTO.getReservationId()); |
|
|
|
|
} |
|
|
|
|
DistributionStockEntity stockEntity = distributionStockService.selectOne(queryWrapper1); |
|
|
|
|
if(ObjectUtils.isNull(stockEntity)){ |
|
|
|
|
//没有扫
|
|
|
|
|
s.set(true); |
|
|
|
|
AtomicReference<Boolean> s = new AtomicReference<>(false); |
|
|
|
|
if(stockupDTO.getTypeService().equals("3")){ |
|
|
|
|
//自提
|
|
|
|
|
//查询有没有不是零担的订单
|
|
|
|
|
List<DistributionStockPackageVO> distributionStockPackageVOS = distrilbutionBillStockService.listPackageSelf(stockupDTO.getReservationId()); |
|
|
|
|
if(!distributionStockPackageVOS.isEmpty()){ |
|
|
|
|
|
|
|
|
|
distributionStockPackageVOS.forEach( i ->{ |
|
|
|
|
if(getDoneStockUp(i.getStockArticleId(), i.getParcelListId(), stockupDTO.getReservationId(), stockupDTO.getTypeService())){ |
|
|
|
|
//没有扫
|
|
|
|
|
s.set(true); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}else{ |
|
|
|
|
//查询有没有库存品
|
|
|
|
|
List<DistributionDeliveryDetailsEntity> distributionDeliveryDetailsEntities = distributionDeliveryDetailsMapper.selectList(Wrappers.<DistributionDeliveryDetailsEntity>query().lambda() |
|
|
|
|
.eq(DistributionDeliveryDetailsEntity::getBillLadingId, stockupDTO.getReservationId()) |
|
|
|
|
.in(DistributionDeliveryDetailsEntity::getInventoryStatus, "1", "3") |
|
|
|
|
); |
|
|
|
|
if(!distributionDeliveryDetailsEntities.isEmpty()){ |
|
|
|
|
int sum = distributionDeliveryDetailsEntities.stream().mapToInt(DistributionDeliveryDetailsEntity::getQuantity).sum(); //全部的库存数量
|
|
|
|
|
distributionDeliveryDetailsEntities.forEach(d ->{ |
|
|
|
|
if(!getDoneStockUpStock(d.getStockListId(),stockupDTO.getReservationId(),stockupDTO.getTypeService(),stockupDTO.getStockupId(),sum )){ |
|
|
|
|
s.set(true); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
if(s.get()){ |
|
|
|
|
stockupEntity.setStockupStatus(StockupStatusConstant.beihuozhong.getValue()); |
|
|
|
|
stockupEntity.setStockupStatus(StockupStatusConstant.yibeihuo.getValue()); |
|
|
|
|
stockupEntity.setFixTime(new Date()); |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
//商,市
|
|
|
|
|
List<DistributionReservationPackageEntity> packageEntities = distributionReservationPackageMapper.selectList(Wrappers.<DistributionReservationPackageEntity>query().lambda() |
|
|
|
|
.eq(DistributionReservationPackageEntity::getReservationId, stockupDTO.getReservationId()) |
|
|
|
|
.eq(DistributionReservationPackageEntity::getPacketBarStatus, '1') |
|
|
|
|
); |
|
|
|
|
if(!packageEntities.isEmpty()){ |
|
|
|
|
packageEntities.forEach( i ->{ |
|
|
|
|
if(getDoneStockUp(i.getStockArticleId(), i.getParceListId(), stockupDTO.getReservationId(), stockupDTO.getTypeService())){ |
|
|
|
|
//没有扫
|
|
|
|
|
s.set(true); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}else{ |
|
|
|
|
//查询有没有库存品
|
|
|
|
|
List<DistributionReservationStocklistEntity> distributionReservationStocklistEntities = distributionReservationStocklistMapper.selectList(Wrappers.<DistributionReservationStocklistEntity>query().lambda() |
|
|
|
|
.eq(DistributionReservationStocklistEntity::getReservationId, stockupDTO.getReservationId()) |
|
|
|
|
.in(DistributionReservationStocklistEntity::getStockListStatus, "1", "3") |
|
|
|
|
); |
|
|
|
|
if(!distributionReservationStocklistEntities.isEmpty()){ |
|
|
|
|
int sum = distributionReservationStocklistEntities.stream().mapToInt(DistributionReservationStocklistEntity::getRealityNum).sum(); //全部的库存数量
|
|
|
|
|
distributionReservationStocklistEntities.forEach(d ->{ |
|
|
|
|
if(!getDoneStockUpStock(d.getStocklistId(),stockupDTO.getReservationId(),stockupDTO.getTypeService(),stockupDTO.getStockupId(),sum )){ |
|
|
|
|
s.set(true); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
stockupEntity.setStockupStatus(StockupStatusConstant.yibeihuo.getValue()); |
|
|
|
|
stockupEntity.setFixTime(new Date()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if(s.get()){ |
|
|
|
|
stockupEntity.setStockupStatus(StockupStatusConstant.beihuozhong.getValue()); |
|
|
|
|
}else{ |
|
|
|
|
stockupEntity.setStockupStatus(StockupStatusConstant.yibeihuo.getValue()); |
|
|
|
|
stockupEntity.setFixTime(new Date()); |
|
|
|
|
} |
|
|
|
|
stockupEntity.setId(stockupDTO.getStockupId()); |
|
|
|
|
stockupEntity.setFixTime(new Date()); |
|
|
|
|
|
|
|
|
|
}else{ |
|
|
|
|
stockupEntity.setId(stockupDTO.getStockupId()); |
|
|
|
|
stockupEntity.setStockupStatus(StockupStatusConstant.beihuozhong.getValue()); |
|
|
|
|
} |
|
|
|
|
stockupEntity.setId(stockupDTO.getStockupId()); |
|
|
|
|
distributionStockupService.updateById(stockupEntity); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1238,9 +1280,11 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public void stockupUpdateState(StockupDTO stockupDTO) { |
|
|
|
|
//修改包件备货状态
|
|
|
|
|
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListMapper.selectList(Wrappers.<DistributionParcelListEntity>query().lambda().eq(DistributionParcelListEntity::getOrderPackageCode, stockupDTO.getPacketBarCode())); |
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
//查询包件备货状态
|
|
|
|
|
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListMapper.selectList(Wrappers.<DistributionParcelListEntity>query().lambda() |
|
|
|
|
.eq(DistributionParcelListEntity::getOrderPackageCode, stockupDTO.getPacketBarCode())); |
|
|
|
|
//修改
|
|
|
|
|
if(!distributionParcelListEntities.isEmpty()){ |
|
|
|
|
DistributionParcelListEntity distributionParcelListEntity = new DistributionParcelListEntity(); |
|
|
|
|
distributionParcelListEntity.setId(distributionParcelListEntities.get(0).getId()); |
|
|
|
@ -1256,6 +1300,12 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
AtomicReference<Integer> nu = new AtomicReference<>(0); //全部
|
|
|
|
|
AtomicReference<Integer> nuy = new AtomicReference<>(0); // 以扫
|
|
|
|
|
AtomicReference<Integer> ku = new AtomicReference<>(0); // 库
|
|
|
|
|
//查询有没有零担数据
|
|
|
|
|
List<DistributionReservationZeroPackageEntity> zeroList = reservationZeroPackageService.getZeroList(stockupDTO.getReservationId()); |
|
|
|
|
if(!zeroList.isEmpty()){ |
|
|
|
|
int sum = zeroList.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum(); |
|
|
|
|
nu.set(nu.get() + sum); |
|
|
|
|
} |
|
|
|
|
distributionStockupInfoEntities.forEach(i -> { |
|
|
|
|
//预约包件
|
|
|
|
|
//查询已扫描的数量
|
|
|
|
@ -1263,8 +1313,10 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
.eq(DistributionStockEntity::getReservationId, i.getReservationId()) |
|
|
|
|
.eq(DistributionStockEntity::getStockupId, stockupDTO.getStockupId()) |
|
|
|
|
); |
|
|
|
|
int size = list.size(); |
|
|
|
|
nuy.set(nuy.get() + size); |
|
|
|
|
if(!list.isEmpty()){ |
|
|
|
|
int size = list.stream().mapToInt(DistributionStockEntity::getStockQuantity).sum(); |
|
|
|
|
nuy.set(nuy.get() + size); |
|
|
|
|
} |
|
|
|
|
//查询全部数量
|
|
|
|
|
List<DistributionReservationStockarticleEntity> distributionReservationStockarticleEntities = distributionReservationStockarticleMapper.selectList(Wrappers.<DistributionReservationStockarticleEntity>query().lambda() |
|
|
|
|
.eq(DistributionReservationStockarticleEntity::getReservationId, i.getReservationId()) |
|
|
|
@ -1462,5 +1514,60 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 查询是否有没有备货的数据 |
|
|
|
|
* @param stockArticleId |
|
|
|
|
* @param parcelListId |
|
|
|
|
* @param reservationId |
|
|
|
|
* @param typeService |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public Boolean getDoneStockUp(Long stockArticleId,Long parcelListId,Long reservationId,String typeService){ |
|
|
|
|
QueryWrapper<DistributionStockEntity> queryWrapper1 = new QueryWrapper<>(); |
|
|
|
|
queryWrapper1.eq("stock_article",stockArticleId); |
|
|
|
|
queryWrapper1.eq("parcel_list_id",parcelListId); |
|
|
|
|
|
|
|
|
|
if(typeService.equals("3")){ |
|
|
|
|
queryWrapper1.eq("bill_lading_id",reservationId); |
|
|
|
|
}else{ |
|
|
|
|
queryWrapper1.eq("reservation_id",reservationId); |
|
|
|
|
} |
|
|
|
|
DistributionStockEntity stockEntity = distributionStockService.selectOne(queryWrapper1); |
|
|
|
|
if(ObjectUtils.isNull(stockEntity)){ |
|
|
|
|
//没有扫
|
|
|
|
|
return true; |
|
|
|
|
}else{ |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 查询是否有没有备货的库存品数据 |
|
|
|
|
* @param stockListId |
|
|
|
|
* @param reservationId |
|
|
|
|
* @param typeService |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public Boolean getDoneStockUpStock(Long stockListId,Long reservationId,String typeService,Long stockupId,Integer num ){ |
|
|
|
|
QueryWrapper<DistributionStockEntity> queryWrapper1 = new QueryWrapper<>(); |
|
|
|
|
queryWrapper1.eq("stock_list_id",stockListId); |
|
|
|
|
queryWrapper1.eq("stockup_id",stockupId); |
|
|
|
|
queryWrapper1.eq("type","2"); |
|
|
|
|
|
|
|
|
|
if(typeService.equals("3")){ |
|
|
|
|
queryWrapper1.eq("bill_lading_id",reservationId); |
|
|
|
|
}else{ |
|
|
|
|
queryWrapper1.eq("reservation_id",reservationId); |
|
|
|
|
} |
|
|
|
|
List<DistributionStockEntity> stockEntityList = distributionStockService.selectList(queryWrapper1); |
|
|
|
|
if(!stockEntityList.isEmpty() && stockEntityList.size() >= num){ |
|
|
|
|
return true; //已完成
|
|
|
|
|
} else{ |
|
|
|
|
return false; //未完成
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|