|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
package com.logpm.distribution.service.impl; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
@ -12,10 +13,59 @@ import com.logpm.distribution.dto.DistributionStockArticleDTO;
|
|
|
|
|
import com.logpm.distribution.dto.app.DistrilbutionloadingscanDTO; |
|
|
|
|
import com.logpm.distribution.dto.app.StockupDTO; |
|
|
|
|
import com.logpm.distribution.dto.app.StockupZeroDTO; |
|
|
|
|
import com.logpm.distribution.entity.*; |
|
|
|
|
import com.logpm.distribution.mapper.*; |
|
|
|
|
import com.logpm.distribution.service.*; |
|
|
|
|
import com.logpm.distribution.vo.*; |
|
|
|
|
import com.logpm.distribution.entity.DisStockListDetailEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionBillLadingScanEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionDeliveryDetailsEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionDeliveryListEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionLoadscanEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionLoadscaninvnEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionParcelListEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionParcelNumberEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionReservationEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionReservationPackageEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionReservationStockarticleEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionReservationStocklistEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionReservationZeroPackageEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionSignforEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionStockArticleEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionStockEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionStockListEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionStockupEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistributionStockupInfoEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistrilbutionBillLadingEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistrilbutionBillPackageEntity; |
|
|
|
|
import com.logpm.distribution.entity.DistrilbutionBillStockEntity; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionBillLadingScanMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionDeliveryDetailsMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionDeliveryListMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionLoadscanMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionLoadscaninvnMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionParcelListMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionReservationMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionReservationPackageMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionReservationStockarticleMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionReservationStocklistMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionSignforMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionStockListMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionStockMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionStockupInfoMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistributionStockupMapper; |
|
|
|
|
import com.logpm.distribution.mapper.DistrilbutionBillLadingMapper; |
|
|
|
|
import com.logpm.distribution.service.IDisStockListDetailService; |
|
|
|
|
import com.logpm.distribution.service.IDistributionAsyncService; |
|
|
|
|
import com.logpm.distribution.service.IDistributionDeliveryDetailsService; |
|
|
|
|
import com.logpm.distribution.service.IDistributionParcelNumberService; |
|
|
|
|
import com.logpm.distribution.service.IDistributionReservationStockarticleService; |
|
|
|
|
import com.logpm.distribution.service.IDistributionReservationStocklistService; |
|
|
|
|
import com.logpm.distribution.service.IDistributionReservationZeroPackageService; |
|
|
|
|
import com.logpm.distribution.service.IDistributionStockArticleService; |
|
|
|
|
import com.logpm.distribution.service.IDistrilbutionBillPackageService; |
|
|
|
|
import com.logpm.distribution.service.IDistrilbutionBillStockService; |
|
|
|
|
import com.logpm.distribution.vo.DistributionParcelNumberVO; |
|
|
|
|
import com.logpm.distribution.vo.DistributionSignPrintVO; |
|
|
|
|
import com.logpm.distribution.vo.DistributionStockPackageVO; |
|
|
|
|
import com.logpm.distribution.vo.DistributionStockupSelfVO; |
|
|
|
|
import com.logpm.distribution.vo.DistrilbutionBillStockVO; |
|
|
|
|
import com.logpm.factory.comfac.dto.OrderStatusDTO; |
|
|
|
|
import com.logpm.factory.mt.dto.MtReceiveContentDTO; |
|
|
|
|
import com.logpm.factory.mt.dto.MtReceiveDTO; |
|
|
|
@ -23,9 +73,7 @@ import com.logpm.factory.mt.dto.MtReceiveImagesDTO;
|
|
|
|
|
import com.logpm.factory.mt.feign.IMtOrderMainClinet; |
|
|
|
|
import com.logpm.factory.oupai.feign.IOuPaiFactoryClinet; |
|
|
|
|
import com.logpm.trunkline.dto.AddWaybillTrackDTO; |
|
|
|
|
import com.logpm.trunkline.feign.ITrunklineWaybillOrderClient; |
|
|
|
|
import com.logpm.trunkline.feign.ITrunklineWaybillTrackClient; |
|
|
|
|
import com.logpm.warehouse.entity.WarehouseWarehouseEntity; |
|
|
|
|
import com.logpm.warehouse.entity.WarehouseWaybillEntity; |
|
|
|
|
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient; |
|
|
|
|
import com.logpm.warehouse.feign.IWarehouseWaybillClient; |
|
|
|
@ -46,11 +94,17 @@ 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.orderpackage.OrderPackageStockupStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.*; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationInventoryLoadingStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationInventorySigningStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationInventoryStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationLoadingStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationOrderStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationPackageStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationSigningStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationStockupStatusConstant; |
|
|
|
|
import org.springblade.common.constant.signing.SignforStatusConstant; |
|
|
|
|
import org.springblade.common.constant.stockup.StockupStatusConstant; |
|
|
|
|
import org.springblade.common.constant.stockup.StockupTypeConstant; |
|
|
|
|
import org.springblade.common.exception.CustomerException; |
|
|
|
|
import org.springblade.core.log.exception.ServiceException; |
|
|
|
|
import org.springblade.core.secure.BladeUser; |
|
|
|
|
import org.springblade.core.tool.utils.Func; |
|
|
|
@ -60,7 +114,12 @@ import org.springframework.transaction.annotation.Isolation;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.Objects; |
|
|
|
|
import java.util.concurrent.atomic.AtomicBoolean; |
|
|
|
|
import java.util.concurrent.atomic.AtomicInteger; |
|
|
|
|
import java.util.concurrent.atomic.AtomicReference; |
|
|
|
@ -666,7 +725,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
distributionStockupSelfVO = distributionStockupMapper.stockupSelfOffShelf(stockupDTO); |
|
|
|
|
} else { |
|
|
|
|
//商 市
|
|
|
|
|
log.info(">>>> find bug stockupDTO {}",stockupDTO); |
|
|
|
|
log.info(">>>> find bug stockupDTO {}", stockupDTO); |
|
|
|
|
distributionStockupSelfVO = distributionStockupMapper.stockupOffShelf(stockupDTO); |
|
|
|
|
} |
|
|
|
|
//有
|
|
|
|
@ -962,7 +1021,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
if (Func.isNotEmpty(parcelNumberEntityList)) { |
|
|
|
|
parcelNumberEntityList.forEach(p -> { |
|
|
|
|
DistributionParcelListEntity zeroParcelListEntity = distributionParcelListService.getById(p.getParcelListId()); |
|
|
|
|
if (p.getOutboundQuantity() .equals(p.getQuantity()) && p.getOutboundQuantity() > 0) { |
|
|
|
|
if (p.getOutboundQuantity().equals(p.getQuantity()) && p.getOutboundQuantity() > 0) { |
|
|
|
|
//出库数量和总数量一致,此时包件处于装车状态
|
|
|
|
|
zeroParcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue()); |
|
|
|
|
} |
|
|
|
@ -1448,8 +1507,8 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
// }
|
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
log.info("开单其它品牌stockArticleEntity.getBrand() ={}",stockArticleEntity.getBrand()); |
|
|
|
|
//其他.....
|
|
|
|
|
log.info("开单其它品牌stockArticleEntity.getBrand() ={}", stockArticleEntity.getBrand()); |
|
|
|
|
//其他.....
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1506,6 +1565,11 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
List<DistributionSignPrintVO> distributionSignPrintVOS = distributionSignforMapper.selectSignImgsUrl(distributionSignforEntity.getReservationId()); |
|
|
|
|
if (Func.isNotEmpty(distributionSignPrintVOS)) { |
|
|
|
|
for (DistributionSignPrintVO distributionSignPrintVO : distributionSignPrintVOS) { |
|
|
|
|
if (StrUtil.isNotBlank(distributionSignPrintVO.getUrlRoute())) { |
|
|
|
|
if (distributionSignPrintVO.getUrlRoute().startsWith("blob:")) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
MtReceiveImagesDTO mtReceiveImagesDTO = new MtReceiveImagesDTO(); |
|
|
|
|
mtReceiveImagesDTO.setImage(distributionSignPrintVO.getUrlRoute()); |
|
|
|
|
mtReceiveImagesDTOS.add(mtReceiveImagesDTO); |
|
|
|
@ -1525,8 +1589,8 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
|
|
|
|
|
log.info(">>>>>>>>>>>>>>> 文员复核推送 品牌 {} ", brand); |
|
|
|
|
|
|
|
|
|
assert brand != null; |
|
|
|
|
if (Func.isNotEmpty(brand.get("梦天"))) { |
|
|
|
|
assert brand != null; |
|
|
|
|
if (Func.isNotEmpty(brand.get("梦天"))) { |
|
|
|
|
mtReceiveDTO.setReceiveContentList(brand.get("梦天")); |
|
|
|
|
orderMainClinet.sendReceiveInfoByNewSystem(mtReceiveDTO); |
|
|
|
|
} |
|
|
|
@ -1618,7 +1682,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
.filter(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()) && !p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue())) |
|
|
|
|
.map(DistributionParcelListEntity::getOrderCode) |
|
|
|
|
.distinct().collect(Collectors.joining(",")); |
|
|
|
|
log.info(method+"维护订制品订单:{}",orderCodes); |
|
|
|
|
log.info(method + "维护订制品订单:{}", orderCodes); |
|
|
|
|
builder.append(orderCodes); |
|
|
|
|
|
|
|
|
|
log.info(">>>>>> updatePackageDeliveryStatus,{}, {}", reservationId, packageIds); |
|
|
|
@ -1627,7 +1691,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
//维护预约订单状态
|
|
|
|
|
} |
|
|
|
|
List<DistributionParcelNumberDTO> distributionParcelNumberDTOS = distributionReservationMapper.selectZeroPackageListByReservationId(reservationId); |
|
|
|
|
if (Func.isNotEmpty(distributionParcelNumberDTOS)){ |
|
|
|
|
if (Func.isNotEmpty(distributionParcelNumberDTOS)) { |
|
|
|
|
//查询此预约单下未进行装车且签收的零担包件
|
|
|
|
|
List<Long> packageIds = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getParcelListId).collect(Collectors.toList()); |
|
|
|
|
List<DistributionLoadscanEntity> loadscanEntityList = distributionLoadscanMapper.selectList(Wrappers.<DistributionLoadscanEntity>query().lambda() |
|
|
|
@ -1635,22 +1699,22 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
.in(DistributionLoadscanEntity::getPackageId, packageIds) |
|
|
|
|
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) |
|
|
|
|
); |
|
|
|
|
if (Func.isNotEmpty(loadscanEntityList)){ |
|
|
|
|
if (Func.isNotEmpty(loadscanEntityList)) { |
|
|
|
|
//查看是否存在需要进行回库的零担
|
|
|
|
|
List<Long> collect = loadscanEntityList.stream().filter(f -> !packageIds.contains(f.getPackageId())).map(DistributionLoadscanEntity::getPackageId).collect(Collectors.toList()); |
|
|
|
|
if (Func.isNotEmpty(collect)){ |
|
|
|
|
if (Func.isNotEmpty(collect)) { |
|
|
|
|
String orderCode = distributionParcelNumberDTOS.stream().filter(f -> collect.contains(f.getParcelListId())).map(DistributionParcelNumberDTO::getOrderCode).collect(Collectors.joining(",")); |
|
|
|
|
log.info(method+"维护零担订单:{}",orderCode); |
|
|
|
|
log.info(method + "维护零担订单:{}", orderCode); |
|
|
|
|
builder.append(orderCode); |
|
|
|
|
//这些单子就是需要进行状态回退的零担包件
|
|
|
|
|
reservationZeroPackageService.recoverZeroPackage(reservationId,collect); |
|
|
|
|
reservationZeroPackageService.recoverZeroPackage(reservationId, collect); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
} else { |
|
|
|
|
//计划数量全部回退
|
|
|
|
|
String orderCode = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getOrderCode).distinct().collect(Collectors.joining(",")); |
|
|
|
|
log.info(method+"维护零担订单:{}",orderCode); |
|
|
|
|
log.info(method + "维护零担订单:{}", orderCode); |
|
|
|
|
builder.append(orderCode); |
|
|
|
|
reservationZeroPackageService.recoverZeroPackage(reservationId,packageIds); |
|
|
|
|
reservationZeroPackageService.recoverZeroPackage(reservationId, packageIds); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
distributionStockArticleService.maintenanceOrderInfo(builder.toString(), warehouseId); |
|
|
|
@ -1690,54 +1754,52 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
* @param deliveryId |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
public void sendTrunkineLog(Long deliveryId,Long reservationId, BladeUser user, BasicdataWarehouseEntity warehouse,Integer a) { |
|
|
|
|
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(deliveryId); |
|
|
|
|
public void sendTrunkineLog(Long deliveryId, Long reservationId, BladeUser user, BasicdataWarehouseEntity warehouse, Integer a) { |
|
|
|
|
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(deliveryId); |
|
|
|
|
List<DistributionParcelListEntity> distributionParcelListEntities = null; |
|
|
|
|
if (1 ==a ){ |
|
|
|
|
if (1 == a) { |
|
|
|
|
distributionParcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(deliveryId); |
|
|
|
|
}else { |
|
|
|
|
} else { |
|
|
|
|
distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId); |
|
|
|
|
} |
|
|
|
|
//查询配送司机信息
|
|
|
|
|
Map<String,Object> driverInfo = distributionDeliveryListMapper.selectDeliveryDriverInfo(distributionDeliveryListEntity.getId()); |
|
|
|
|
if (Func.isNotEmpty(distributionParcelListEntities)){ |
|
|
|
|
Map<String, List<DistributionParcelListEntity>> listMap = distributionParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getWaybillNumber)); |
|
|
|
|
listMap.forEach((k, v) ->{ |
|
|
|
|
StringBuilder builder = new StringBuilder(); |
|
|
|
|
//统计已装车数量
|
|
|
|
|
WarehouseWaybillEntity byWaybillNo = waybillClient.findByWaybillNo(k); |
|
|
|
|
AddWaybillTrackDTO addWaybillTrackDTO = new AddWaybillTrackDTO(); |
|
|
|
|
addWaybillTrackDTO.setWaybillId(byWaybillNo.getId()); |
|
|
|
|
addWaybillTrackDTO.setWaybillNo(byWaybillNo.getWaybillNo()); |
|
|
|
|
if (1 ==a){ |
|
|
|
|
int sum = v.stream().filter(p -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(p.getOrderPackageLoadingStatus())).mapToInt(DistributionParcelListEntity::getQuantity).sum(); |
|
|
|
|
addWaybillTrackDTO.setTrackType("90"); |
|
|
|
|
addWaybillTrackDTO.setRefer("运单配送"); |
|
|
|
|
String msg = "运单配送:"+sum+"/"+v.size()+"件"; |
|
|
|
|
builder.append(msg); |
|
|
|
|
//拼接配送信息
|
|
|
|
|
String deliveryMsg = "车牌号:"+ driverInfo.get("vehicleNub")+","+"司机姓名:"+driverInfo.get("driverName")+",司机电话:"+driverInfo.get("driverPhone")+",配送时间:"+distributionDeliveryListEntity.getTaskTime(); |
|
|
|
|
builder.append(deliveryMsg); |
|
|
|
|
}else { |
|
|
|
|
int sum = v.stream().filter(p -> OrderPackageStatusConstant.yiqianshou.getValue().equals(p.getOrderPackageStatus())).mapToInt(DistributionParcelListEntity::getQuantity).sum(); |
|
|
|
|
addWaybillTrackDTO.setTrackType("100"); |
|
|
|
|
addWaybillTrackDTO.setRefer("运单签收"); |
|
|
|
|
String msg = "运单签收:"+sum+"/"+v.size()+"件"; |
|
|
|
|
builder.append(msg); |
|
|
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss"); |
|
|
|
|
String deliveryMsg = "最近操作人:"+user.getNickName()+simpleDateFormat.format(new Date()); |
|
|
|
|
builder.append(deliveryMsg); |
|
|
|
|
} |
|
|
|
|
addWaybillTrackDTO.setNickName(user.getNickName()); |
|
|
|
|
addWaybillTrackDTO.setUserId(user.getUserId()); |
|
|
|
|
addWaybillTrackDTO.setWarehouseId(warehouse.getId()); |
|
|
|
|
addWaybillTrackDTO.setWarehouseName(warehouse.getName()); |
|
|
|
|
addWaybillTrackDTO.setOperationRemark(builder.toString()); |
|
|
|
|
trunklineWaybillTrackClient.addWaybillLog(addWaybillTrackDTO); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//查询配送司机信息
|
|
|
|
|
Map<String, Object> driverInfo = distributionDeliveryListMapper.selectDeliveryDriverInfo(distributionDeliveryListEntity.getId()); |
|
|
|
|
if (Func.isNotEmpty(distributionParcelListEntities)) { |
|
|
|
|
Map<String, List<DistributionParcelListEntity>> listMap = distributionParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getWaybillNumber)); |
|
|
|
|
listMap.forEach((k, v) -> { |
|
|
|
|
StringBuilder builder = new StringBuilder(); |
|
|
|
|
//统计已装车数量
|
|
|
|
|
WarehouseWaybillEntity byWaybillNo = waybillClient.findByWaybillNo(k); |
|
|
|
|
AddWaybillTrackDTO addWaybillTrackDTO = new AddWaybillTrackDTO(); |
|
|
|
|
addWaybillTrackDTO.setWaybillId(byWaybillNo.getId()); |
|
|
|
|
addWaybillTrackDTO.setWaybillNo(byWaybillNo.getWaybillNo()); |
|
|
|
|
if (1 == a) { |
|
|
|
|
int sum = v.stream().filter(p -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(p.getOrderPackageLoadingStatus())).mapToInt(DistributionParcelListEntity::getQuantity).sum(); |
|
|
|
|
addWaybillTrackDTO.setTrackType("90"); |
|
|
|
|
addWaybillTrackDTO.setRefer("运单配送"); |
|
|
|
|
String msg = "运单配送:" + sum + "/" + v.size() + "件"; |
|
|
|
|
builder.append(msg); |
|
|
|
|
//拼接配送信息
|
|
|
|
|
String deliveryMsg = "车牌号:" + driverInfo.get("vehicleNub") + "," + "司机姓名:" + driverInfo.get("driverName") + ",司机电话:" + driverInfo.get("driverPhone") + ",配送时间:" + distributionDeliveryListEntity.getTaskTime(); |
|
|
|
|
builder.append(deliveryMsg); |
|
|
|
|
} else { |
|
|
|
|
int sum = v.stream().filter(p -> OrderPackageStatusConstant.yiqianshou.getValue().equals(p.getOrderPackageStatus())).mapToInt(DistributionParcelListEntity::getQuantity).sum(); |
|
|
|
|
addWaybillTrackDTO.setTrackType("100"); |
|
|
|
|
addWaybillTrackDTO.setRefer("运单签收"); |
|
|
|
|
String msg = "运单签收:" + sum + "/" + v.size() + "件"; |
|
|
|
|
builder.append(msg); |
|
|
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss"); |
|
|
|
|
String deliveryMsg = "最近操作人:" + user.getNickName() + simpleDateFormat.format(new Date()); |
|
|
|
|
builder.append(deliveryMsg); |
|
|
|
|
} |
|
|
|
|
addWaybillTrackDTO.setNickName(user.getNickName()); |
|
|
|
|
addWaybillTrackDTO.setUserId(user.getUserId()); |
|
|
|
|
addWaybillTrackDTO.setWarehouseId(warehouse.getId()); |
|
|
|
|
addWaybillTrackDTO.setWarehouseName(warehouse.getName()); |
|
|
|
|
addWaybillTrackDTO.setOperationRemark(builder.toString()); |
|
|
|
|
trunklineWaybillTrackClient.addWaybillLog(addWaybillTrackDTO); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
@ -2343,18 +2405,18 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
public void changeOrderReservationStatus(DistributionStockArticleDTO stockArticleDTO) { |
|
|
|
|
Long id = stockArticleDTO.getId(); |
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = Func.copy(stockArticleDTO, DistributionStockArticleEntity.class); |
|
|
|
|
assert stockArticleEntity != null; |
|
|
|
|
if (stockArticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) { |
|
|
|
|
assert stockArticleEntity != null; |
|
|
|
|
if (stockArticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) { |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.getBaseMapper().selectList(Wrappers.<DistributionParcelListEntity>query().lambda().eq(DistributionParcelListEntity::getStockArticleId, id)); |
|
|
|
|
boolean flag = parcelListEntityList.stream().allMatch(p -> p.getOrderPackageReservationStatus().equals(OrderPackageReservationStatusConstant.yiyueyue.getValue())); |
|
|
|
|
if (flag && stockArticleEntity.getTotalNumber() == parcelListEntityList.size()) { |
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
} else { |
|
|
|
|
flag = parcelListEntityList.stream().allMatch(p -> p.getOrderPackageReservationStatus().equals(OrderPackageReservationStatusConstant.daiyuyue.getValue())); |
|
|
|
|
if (flag) { |
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.daiyuyue.getValue()); |
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.daiyuyue.getValue()); |
|
|
|
|
} else { |
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue()); |
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
@ -2365,10 +2427,10 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
// parcelNumberEntities.forEach(p -> {
|
|
|
|
|
// unavailableNum.getAndAdd(p.getOutboundQuantity() + p.getDeliveryQuantity());
|
|
|
|
|
// });
|
|
|
|
|
if (Func.isNotEmpty(parcelNumberEntities)){ |
|
|
|
|
if (Func.isNotEmpty(parcelNumberEntities)) { |
|
|
|
|
int sum = parcelNumberEntities.stream().mapToInt(p -> p.getOutboundQuantity() + p.getDeliveryQuantity()).sum(); |
|
|
|
|
unavailableNum.getAndAdd(sum); |
|
|
|
|
log.info("################零担包件当前不可用数量:{}",sum); |
|
|
|
|
log.info("################零担包件当前不可用数量:{}", sum); |
|
|
|
|
} |
|
|
|
|
if (unavailableNum.get() == stockArticleDTO.getHandQuantity()) { |
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
@ -2656,13 +2718,13 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
|
|
|
|
|
//修改
|
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
distributionStockup.setId(stockupDTO.getStockupId()); |
|
|
|
|
if (i == 0) { |
|
|
|
|
distributionStockup.setId(stockupDTO.getStockupId()); |
|
|
|
|
if (i == 0) { |
|
|
|
|
//修改备货状态
|
|
|
|
|
distributionStockup.setStockupStatus(StockupStatusConstant.yibeihuo.getValue()); |
|
|
|
|
distributionStockup.setStockupStatus(StockupStatusConstant.yibeihuo.getValue()); |
|
|
|
|
} else { |
|
|
|
|
//修改备货状态
|
|
|
|
|
distributionStockup.setStockupStatus(StockupStatusConstant.beihuozhong.getValue()); |
|
|
|
|
distributionStockup.setStockupStatus(StockupStatusConstant.beihuozhong.getValue()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|