|
|
|
@ -215,6 +215,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
@Autowired |
|
|
|
|
private DistributionLoadscanMapper distributionLoadscanMapper; |
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
private DistributionStockMapper distributionStockMapper; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -3531,50 +3534,69 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
throw new RuntimeException("服务器正忙!!!"); |
|
|
|
|
} |
|
|
|
|
DistributionReservationEntity reservationEntity = this.getById(reservationId); |
|
|
|
|
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId); |
|
|
|
|
List<DisStockListDetailEntity> disStockListDetailEntities = distributionReservationMapper.selectInventoryListByReservation(reservationId); |
|
|
|
|
boolean loadStatus = false; |
|
|
|
|
boolean signStatus = false; |
|
|
|
|
if (Func.isNotEmpty(distributionParcelListEntities)){ |
|
|
|
|
loadStatus = distributionParcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue())); |
|
|
|
|
signStatus = distributionParcelListEntities.stream().allMatch(p->p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (Func.isNotEmpty(disStockListDetailEntities)){ |
|
|
|
|
loadStatus = disStockListDetailEntities.stream().allMatch(p -> p.getStockLockingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue())); |
|
|
|
|
signStatus = disStockListDetailEntities.stream().anyMatch(p->p.getStockSignfoStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())); |
|
|
|
|
} |
|
|
|
|
//已签收预约单不需要进行预约状态维护 预约单状态达到最终
|
|
|
|
|
if (!ReservationSigningStatusConstant.yiqianshou.getValue().equals(reservationEntity.getSigningStatus())){ |
|
|
|
|
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId); |
|
|
|
|
List<DisStockListDetailEntity> disStockListDetailEntities = distributionReservationMapper.selectInventoryListByReservation(reservationId); |
|
|
|
|
boolean loadStatus = false; |
|
|
|
|
boolean signStatus = false; |
|
|
|
|
boolean stockUpStatus = false; |
|
|
|
|
if (Func.isNotEmpty(distributionParcelListEntities)){ |
|
|
|
|
loadStatus = distributionParcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue())); |
|
|
|
|
signStatus = distributionParcelListEntities.stream().allMatch(p->p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())); |
|
|
|
|
stockUpStatus = distributionParcelListEntities.stream().allMatch(p->p.getOrderPackageStockupStatus().equals(OrderPackageStockupStatusConstant.yibeihu.getValue())); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (loadStatus){ |
|
|
|
|
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue()); |
|
|
|
|
}else { |
|
|
|
|
//判断是否都为完成装车
|
|
|
|
|
Integer loadingNum = distributionLoadscanMapper.selectLoadingNumByReservationId(reservationId); |
|
|
|
|
if (Func.isEmpty(loadingNum)){ |
|
|
|
|
if (loadingNum > 0){ |
|
|
|
|
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue()); |
|
|
|
|
}else { |
|
|
|
|
if (Func.isNotEmpty(disStockListDetailEntities)){ |
|
|
|
|
loadStatus = disStockListDetailEntities.stream().allMatch(p -> p.getStockLockingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue())); |
|
|
|
|
signStatus = disStockListDetailEntities.stream().anyMatch(p->p.getStockSignfoStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())); |
|
|
|
|
stockUpStatus = disStockListDetailEntities.stream().allMatch(p->p.getStockStatus().equals(OrderPackageStockupStatusConstant.yibeihu.getValue())); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue()); |
|
|
|
|
if (loadStatus){ |
|
|
|
|
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue()); |
|
|
|
|
}else { |
|
|
|
|
//判断是否都为完成装车
|
|
|
|
|
Integer loadingNum = distributionLoadscanMapper.selectLoadingNumByReservationId(reservationId); |
|
|
|
|
if (Func.isEmpty(loadingNum)){ |
|
|
|
|
if (loadingNum > 0){ |
|
|
|
|
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue()); |
|
|
|
|
} |
|
|
|
|
if (loadingNum ==0){ |
|
|
|
|
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (signStatus){ |
|
|
|
|
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.yiqianshou.getValue()); |
|
|
|
|
}else { |
|
|
|
|
//判断是否都为完成签收
|
|
|
|
|
Integer signingNum = distributionLoadscanMapper.selectSigningNumByReservationId(reservationId); |
|
|
|
|
//判断当前客户是否签收完成了
|
|
|
|
|
if (signingNum > 0){ |
|
|
|
|
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.bufenqianshou.getValue()); |
|
|
|
|
if (signStatus){ |
|
|
|
|
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.yiqianshou.getValue()); |
|
|
|
|
}else { |
|
|
|
|
//判断是否都为完成签收
|
|
|
|
|
Integer signingNum = distributionLoadscanMapper.selectSigningNumByReservationId(reservationId); |
|
|
|
|
//判断当前客户是否签收完成了
|
|
|
|
|
if (signingNum > 0){ |
|
|
|
|
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.bufenqianshou.getValue()); |
|
|
|
|
} |
|
|
|
|
if (signingNum == 0){ |
|
|
|
|
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.daiqianshou.getValue()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (stockUpStatus){ |
|
|
|
|
reservationEntity.setStockStatus(ReservationStockupStatusConstant.yibeihuo.getValue()); |
|
|
|
|
}else { |
|
|
|
|
//判断是否都为完成签收
|
|
|
|
|
Integer stockNum = distributionStockMapper.selectStockNumByReservationId(reservationId); |
|
|
|
|
//判断当前客户是否签收完成了
|
|
|
|
|
if (stockNum > 0){ |
|
|
|
|
reservationEntity.setStockStatus(ReservationStockupStatusConstant.daibeihuo.getValue()); |
|
|
|
|
}else { |
|
|
|
|
reservationEntity.setStockStatus(ReservationStockupStatusConstant.weibeihuo.getValue()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (signingNum == 0){ |
|
|
|
|
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.daiqianshou.getValue()); |
|
|
|
|
if ((reservationEntity.getReservationNum()+reservationEntity.getReservationStockListNum())==0){ |
|
|
|
|
reservationEntity.setReservationStatus(ReservationStatusConstant.yiquexiao.getValue()); |
|
|
|
|
} |
|
|
|
|
this.updateById(reservationEntity); |
|
|
|
|
} |
|
|
|
|
this.updateById(reservationEntity); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -3692,4 +3714,30 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
} |
|
|
|
|
return baseMapper.selectByReservationCode(myCurrentWarehouse.getId(),searchCode); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param warehouseIds |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
@Transactional |
|
|
|
|
public R maintenanceReservationInfoByWarehouseId(String warehouseIds) { |
|
|
|
|
if (Func.isNotEmpty(warehouseIds)){ |
|
|
|
|
for (Long l : Func.toLongList(warehouseIds)) { |
|
|
|
|
List<DistributionReservationEntity> reservationEntityList = this.list(Wrappers.<DistributionReservationEntity>query().lambda().eq(DistributionReservationEntity::getWarehouseId, l)); |
|
|
|
|
if (Func.isNotEmpty(reservationEntityList)){ |
|
|
|
|
for (DistributionReservationEntity reservationEntity : reservationEntityList) { |
|
|
|
|
this.maintenanceReservationInfo(reservationEntity.getId()); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
log.info("##################"+l+"没有预约单信息"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}else { |
|
|
|
|
log.error("#####################维护预约单信息缺少仓库信息"); |
|
|
|
|
return R.fail("操作失败"); |
|
|
|
|
} |
|
|
|
|
return R.success("操作成功"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|