Browse Source

零担释放BUG修复

dev
汤建军 2 weeks ago
parent
commit
de3f835ddb
  1. 9
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationZeroPackageService.java
  2. 58
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  3. 35
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationZeroPackageServiceImpl.java

9
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationZeroPackageService.java

@ -88,4 +88,13 @@ public interface IDistributionReservationZeroPackageService extends BaseService<
* @param retentionQuantity
*/
void reduceNum(Long reservationId, Long orderId, Long orderPackageId, Integer retentionQuantity,Long loadingId);
/**
* 计划指定数量释放
* @param reservationId
* @param parcelListId
* @param recoverNum
* @param b
*/
void recoverZeroPackageByNum(Long reservationId, Long parcelListId, int recoverNum, boolean b);
}

58
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java

@ -1358,6 +1358,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
.eq(DistributionLoadscanEntity::getSignforState, 2)
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
);
List<Long> recoverZeroPackageIds = new ArrayList<>();
for (DistributionParcelNumberDTO distributionParcelNumberDTO : distributionParcelNumberDTOS) {
//判断是全部进行返回还是部分
if (!loadscanEntityList.isEmpty()) {
@ -1365,38 +1366,63 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
List<DistributionLoadscanEntity> zeroLoading = loadscanEntityList.stream().filter(f -> f.getPackageId().equals(distributionParcelNumberDTO.getParcelListId())).collect(Collectors.toList());
if (!zeroLoading.isEmpty()) {
//存在签收数据,进行部分释放
DistributionLoadscanEntity distributionLoadscanEntity = zeroLoading.get(0);
Integer receivedQuantity = distributionLoadscanEntity.getReceivedQuantity();
if (!Objects.equals(receivedQuantity,distributionParcelNumberDTO.getReservationNum())){
//未签收完成,进行释放指定数量
int recoverNum = distributionParcelNumberDTO.getReservationNum() - receivedQuantity;
//
reservationZeroPackageService.recoverZeroPackageByNum(reservationId,distributionParcelNumberDTO.getParcelListId(),recoverNum,true);
}
} else {
//进行全部释放
}
}
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)) {
String orderCode = distributionParcelNumberDTOS.stream().filter(f -> collect.contains(f.getParcelListId())).map(DistributionParcelNumberDTO::getOrderCode).collect(Collectors.joining(","));
String orderCode = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getOrderCode).distinct().collect(Collectors.joining(","));
log.info(method + "维护零担订单:{}", orderCode);
if(Func.isNotEmpty(builder)){
builder.append(",");
}
builder.append(orderCode);
//针对未签收完成零担进行回库操作
//这些单子就是需要进行状态回退的零担包件
reservationZeroPackageService.recoverZeroPackage(reservationId, collect,true);
//计划全部释放
}
}else {
//计划数量全部回退
String orderCode = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getOrderCode).distinct().collect(Collectors.joining(","));
log.info(method + "维护零担订单:{}", orderCode);
if(Func.isNotEmpty(builder)){
builder.append(",");
}
builder.append(orderCode);
reservationZeroPackageService.recoverZeroPackage(reservationId, packageIds,true);
//进行全部释放
recoverZeroPackageIds.add(distributionParcelNumberDTO.getParcelListId());
}
}
if (!recoverZeroPackageIds.isEmpty()) {
reservationZeroPackageService.recoverZeroPackage(reservationId, recoverZeroPackageIds,true);
}
// 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)) {
// String orderCode = distributionParcelNumberDTOS.stream().filter(f -> collect.contains(f.getParcelListId())).map(DistributionParcelNumberDTO::getOrderCode).collect(Collectors.joining(","));
// log.info(method + "维护零担订单:{}", orderCode);
// if(Func.isNotEmpty(builder)){
// builder.append(",");
// }
// builder.append(orderCode);
// //针对未签收完成零担进行回库操作
//
//
// //这些单子就是需要进行状态回退的零担包件
// reservationZeroPackageService.recoverZeroPackage(reservationId, collect,true);
// }
// } else {
// //计划数量全部回退
// String orderCode = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getOrderCode).distinct().collect(Collectors.joining(","));
// log.info(method + "维护零担订单:{}", orderCode);
// if(Func.isNotEmpty(builder)){
// builder.append(",");
// }
// builder.append(orderCode);
// }
}
distributionStockArticleService.maintenanceOrderInfo(builder.toString(), warehouse.getId());
distributionReservationStockarticleService.maintenanceReservationStockArticle(reservationId, warehouse.getId());

35
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationZeroPackageServiceImpl.java

@ -28,7 +28,6 @@ import com.logpm.distribution.mapper.DistributionReservationZeroPackageMapper;
import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.DistributionReservationZeroPackageVO;
import com.sun.org.apache.xpath.internal.operations.Bool;
import io.jsonwebtoken.lang.Objects;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.DistributionTypeConstant;
import org.springblade.common.constant.common.IsOrNoConstant;
@ -43,6 +42,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Objects;
/**
* 预约零担包件中间表 服务实现类
@ -207,4 +207,37 @@ public class DistributionReservationZeroPackageServiceImpl extends BaseServiceIm
}
}
@Override
@Transactional
public void recoverZeroPackageByNum(Long reservationId, Long parcelListId, int recoverNum, boolean b) {
DistributionReservationZeroPackageEntity zeroPackageEntity = this.getOne(Wrappers.<DistributionReservationZeroPackageEntity>query().lambda()
.eq(DistributionReservationZeroPackageEntity::getReservationId, reservationId)
.eq(DistributionReservationZeroPackageEntity::getParcelListId, parcelListId)
.ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
if (!Objects.isNull(zeroPackageEntity)){
//存在此计划进行数量扣减
DistributionReservationZeroPackageEntity distributionReservationZeroPackageEntity = new DistributionReservationZeroPackageEntity();
distributionReservationZeroPackageEntity.setId(zeroPackageEntity.getId());
distributionReservationZeroPackageEntity.setPlanNum(zeroPackageEntity.getQuantity());
if (b) {
distributionReservationZeroPackageEntity.setCancelStatus(Integer.parseInt(IsOrNoConstant.yes.getValue()));
}
distributionReservationZeroPackageEntity.setQuantity(zeroPackageEntity.getQuantity() - recoverNum);
this.updateById(distributionReservationZeroPackageEntity);
//进行零担的配送数量扣减
DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda()
.eq(DistributionParcelNumberEntity::getParcelListId, parcelListId)
);
if (!Objects.isNull(distributionParcelNumberEntity)){
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity();
parcelNumberEntity.setId(distributionParcelNumberEntity.getId());
parcelNumberEntity.setDeliveryQuantity(distributionParcelNumberEntity.getDeliveryQuantity() - recoverNum);
distributionParcelNumberService.updateById(parcelNumberEntity);
}
}
}
}

Loading…
Cancel
Save