|
|
|
@ -12,6 +12,8 @@ import com.logpm.distribution.service.*;
|
|
|
|
|
import com.logpm.distribution.vo.DistrilbutionBillStockVO; |
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
|
import lombok.extern.log4j.Log4j2; |
|
|
|
|
import org.springblade.common.constant.Inventory.InventoryLoadingStatusConstant; |
|
|
|
|
import org.springblade.common.constant.Inventory.InventoryPackageStatusConstant; |
|
|
|
|
import org.springblade.common.constant.delivery.DeliveryLoadingStatusConstant; |
|
|
|
|
import org.springblade.common.constant.delivery.DeliveryStatusConstant; |
|
|
|
|
import org.springblade.common.constant.order.OrderReservationStatusConstant; |
|
|
|
@ -19,6 +21,8 @@ import org.springblade.common.constant.orderpackage.OrderPackageLoadingStatusCon
|
|
|
|
|
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant; |
|
|
|
|
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant; |
|
|
|
|
import org.springblade.common.constant.order.OrderStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationInventoryLoadingStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationInventoryStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationLoadingStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationSigningStatusConstant; |
|
|
|
|
import org.springblade.common.constant.stockup.StockupStatusConstant; |
|
|
|
@ -56,6 +60,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
private final DistrilbutionBillStockMapper distrilbutionBillStockMapper; |
|
|
|
|
private final DistributionDeliveryDetailsMapper distributionDeliveryDetailsMapper; |
|
|
|
|
private final DistributionParcelListMapper distributionParcelListMapper; |
|
|
|
|
private final IDisStockListDetailService disStockListDetailService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -209,10 +214,12 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
distributionStockArticleService.updateById(stockArticleEntity); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Async |
|
|
|
|
@Override |
|
|
|
|
@Transactional(isolation = Isolation.READ_UNCOMMITTED, rollbackFor = Exception.class) |
|
|
|
|
public void changeDeliveryListStatus(String barcode,Long deliveryId) { |
|
|
|
|
public void changeDiscussDeliveryListStatus(String barcode,Long deliveryId) { |
|
|
|
|
//这里需要查询出该包件
|
|
|
|
|
DistributionParcelListEntity parcelListEntity = distributionDeliveryListMapper.getLoadingPackageDetails(barcode,deliveryId); |
|
|
|
|
parcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue()); |
|
|
|
@ -268,6 +275,116 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
distributionReservationMapper.updateById(r); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
@Async |
|
|
|
|
@Override |
|
|
|
|
@Transactional(isolation = Isolation.READ_UNCOMMITTED, rollbackFor = Exception.class) |
|
|
|
|
public void changeMarketDeliveryListStatus(String barcode, Long deliveryId) { |
|
|
|
|
//修改包件状态
|
|
|
|
|
//这里需要查询出该包件
|
|
|
|
|
DistributionParcelListEntity parcelListEntity = distributionDeliveryListMapper.getLoadingPackageDetails(barcode,deliveryId); |
|
|
|
|
if (Func.isNotEmpty(parcelListEntity)){ |
|
|
|
|
parcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue()); |
|
|
|
|
parcelListEntity.setOrderPackageStatus(OrderPackageStatusConstant.yichuku.getValue()); |
|
|
|
|
//修改包件状态
|
|
|
|
|
distributionParcelListService.updateById(parcelListEntity); |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.getBaseMapper().selectList(Wrappers.<DistributionParcelListEntity>query().lambda().eq(DistributionParcelListEntity::getStockArticleId, parcelListEntity.getStockArticleId())); |
|
|
|
|
boolean flag = parcelListEntityList.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue())); |
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelListEntity.getStockArticleId()); |
|
|
|
|
//维护包件、订单扫描装车状态
|
|
|
|
|
if (flag){ |
|
|
|
|
stockArticleEntity.setOrderStatus(OrderStatusConstant.chuku.getValue()); |
|
|
|
|
}else { |
|
|
|
|
flag = parcelListEntityList.stream().allMatch(p->p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())); |
|
|
|
|
if (flag){ |
|
|
|
|
stockArticleEntity.setOrderStatus(OrderStatusConstant.ruku.getValue()); |
|
|
|
|
}else { |
|
|
|
|
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenchuku.getValue()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
distributionStockArticleService.updateById(stockArticleEntity); |
|
|
|
|
}else { |
|
|
|
|
//查询库存品
|
|
|
|
|
DisStockListDetailEntity loadingInventoryDetail = distributionDeliveryListMapper.getLoadingInventoryDetail(barcode, deliveryId); |
|
|
|
|
loadingInventoryDetail.setStockLockingStatus(InventoryLoadingStatusConstant.yizhuangche.getValue()); |
|
|
|
|
disStockListDetailService.updateById(loadingInventoryDetail); |
|
|
|
|
//查询出这个库存品的所有需要装车的包件维度库存品
|
|
|
|
|
List<DisStockListDetailEntity> list = disStockListDetailService.list(Wrappers.<DisStockListDetailEntity>query().lambda() |
|
|
|
|
.eq(DisStockListDetailEntity::getReservationId, loadingInventoryDetail.getReservationId()) |
|
|
|
|
.eq(DisStockListDetailEntity::getStockListId, loadingInventoryDetail.getStockListId()) |
|
|
|
|
.ne(DisStockListDetailEntity::getStockPackageStatus, InventoryPackageStatusConstant.quxiao.getValue())); |
|
|
|
|
boolean inventoryFlag = list.stream().allMatch(l -> l.getStockLockingStatus().equals(InventoryLoadingStatusConstant.yizhuangche.getValue())); |
|
|
|
|
List<DistributionReservationStocklistEntity> reservationStockarticleEntityList = distributionReservationStocklistMapper.selectList(Wrappers.<DistributionReservationStocklistEntity>query().lambda() |
|
|
|
|
.eq(DistributionReservationStocklistEntity::getReservationId, loadingInventoryDetail.getReservationId()) |
|
|
|
|
.eq(DistributionReservationStocklistEntity::getStocklistId, loadingInventoryDetail.getStockListId()) |
|
|
|
|
.ne(DistributionReservationStocklistEntity::getStockListStatus, ReservationInventoryStatusConstant.quxiao.getValue())); |
|
|
|
|
if (reservationStockarticleEntityList.size()==1){ |
|
|
|
|
//修改状态
|
|
|
|
|
DistributionReservationStocklistEntity reservationStockarticleEntity = reservationStockarticleEntityList.get(0); |
|
|
|
|
if (inventoryFlag){ |
|
|
|
|
//查询出库存品进行全部状态的变更
|
|
|
|
|
reservationStockarticleEntity.setLoadingStatus(ReservationInventoryLoadingStatusConstant.yizhuangche.getValue()); |
|
|
|
|
|
|
|
|
|
}else { |
|
|
|
|
inventoryFlag = list.stream().allMatch(l -> l.getStockLockingStatus().equals(InventoryLoadingStatusConstant.weizhuangche.getValue())); |
|
|
|
|
if (inventoryFlag){ |
|
|
|
|
reservationStockarticleEntity.setLoadingStatus(ReservationInventoryLoadingStatusConstant.weizhuangche.getValue()); |
|
|
|
|
}else { |
|
|
|
|
reservationStockarticleEntity.setLoadingStatus(ReservationInventoryLoadingStatusConstant.bufenzhuangche.getValue()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
distributionReservationStocklistMapper.updateById(reservationStockarticleEntity); |
|
|
|
|
}else { |
|
|
|
|
log.error("####库存品记录错误+{"+reservationStockarticleEntityList+"}"); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//查询出这个预约下的包件信息和库存品信息分别进行判断是否都完成装车
|
|
|
|
|
List<DistributionReservationEntity> reservationEntityList = distributionDeliveryListMapper.selectReservationByDeliveryListId(deliveryId); |
|
|
|
|
reservationEntityList.forEach(r->{ |
|
|
|
|
//查询预约下的所有包件信息
|
|
|
|
|
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageListByReservationId(r.getId()); |
|
|
|
|
boolean reservationLoadingFlag = parcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue())); |
|
|
|
|
List<DistributionReservationStocklistEntity> distributionReservationStocklistEntities = distributionReservationStocklistMapper.selectList(Wrappers.<DistributionReservationStocklistEntity>query().lambda() |
|
|
|
|
.eq(DistributionReservationStocklistEntity::getReservationId, r.getId()) |
|
|
|
|
.ne(DistributionReservationStocklistEntity::getStockListStatus, ReservationInventoryStatusConstant.quxiao.getValue())); |
|
|
|
|
boolean inventoryLoadingFlag = distributionReservationStocklistEntities.stream().allMatch(i -> i.getLoadingStatus().equals(ReservationInventoryLoadingStatusConstant.yizhuangche.getValue())); |
|
|
|
|
if (reservationLoadingFlag && inventoryLoadingFlag){ |
|
|
|
|
r.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue()); |
|
|
|
|
}else { |
|
|
|
|
reservationLoadingFlag = parcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())); |
|
|
|
|
inventoryLoadingFlag = distributionReservationStocklistEntities.stream().allMatch(i -> i.getLoadingStatus().equals(ReservationInventoryLoadingStatusConstant.weizhuangche.getValue())); |
|
|
|
|
if (reservationLoadingFlag && inventoryLoadingFlag){ |
|
|
|
|
r.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue()); |
|
|
|
|
}else { |
|
|
|
|
r.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
distributionReservationMapper.updateById(r); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
List<DistributionParcelListEntity> deliveryParcelListEntityList = distributionDeliveryListMapper.selectPackageListByDeliveryListId(deliveryId); |
|
|
|
|
List<DisStockListDetailEntity> detailEntities = distributionDeliveryListMapper.selectInventoryListByDeliveryListId(deliveryId); |
|
|
|
|
boolean deliveryLoadingFlag = deliveryParcelListEntityList.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue())); |
|
|
|
|
boolean deliveryInventoryLoadingFlag = detailEntities.stream().allMatch(i -> i.getStockLockingStatus().equals(ReservationInventoryLoadingStatusConstant.yizhuangche.getValue())); |
|
|
|
|
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectOne(Wrappers.<DistributionDeliveryListEntity>query().lambda().eq(DistributionDeliveryListEntity::getId,deliveryId)); |
|
|
|
|
if (deliveryLoadingFlag && deliveryInventoryLoadingFlag){ |
|
|
|
|
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.yizhuangche.getValue()); |
|
|
|
|
}else { |
|
|
|
|
deliveryLoadingFlag = deliveryParcelListEntityList.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())); |
|
|
|
|
deliveryInventoryLoadingFlag = detailEntities.stream().allMatch(i -> i.getStockLockingStatus().equals(ReservationInventoryLoadingStatusConstant.weizhuangche.getValue())); |
|
|
|
|
if (deliveryLoadingFlag && deliveryInventoryLoadingFlag){ |
|
|
|
|
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.weizhuangche.getValue()); |
|
|
|
|
}else { |
|
|
|
|
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.bunfenzhuangche.getValue()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
distributionDeliveryListMapper.updateById(deliveryListEntity); |
|
|
|
|
|
|
|
|
|
//修改整体的预约状态
|
|
|
|
|
//修改整体的配送计划状态
|
|
|
|
|
//
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Async |
|
|
|
|
@Override |
|
|
|
@ -592,4 +709,6 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|