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. 72
      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 * @param retentionQuantity
*/ */
void reduceNum(Long reservationId, Long orderId, Long orderPackageId, Integer retentionQuantity,Long loadingId); 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);
} }

72
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) .eq(DistributionLoadscanEntity::getSignforState, 2)
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) .ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
); );
List<Long> recoverZeroPackageIds = new ArrayList<>();
for (DistributionParcelNumberDTO distributionParcelNumberDTO : distributionParcelNumberDTOS) { for (DistributionParcelNumberDTO distributionParcelNumberDTO : distributionParcelNumberDTOS) {
//判断是全部进行返回还是部分 //判断是全部进行返回还是部分
if (!loadscanEntityList.isEmpty()) { 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()); List<DistributionLoadscanEntity> zeroLoading = loadscanEntityList.stream().filter(f -> f.getPackageId().equals(distributionParcelNumberDTO.getParcelListId())).collect(Collectors.toList());
if (!zeroLoading.isEmpty()) { 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 {
String orderCode = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getOrderCode).distinct().collect(Collectors.joining(","));
log.info(method + "维护零担订单:{}", orderCode);
if(Func.isNotEmpty(builder)){
builder.append(",");
}
builder.append(orderCode);
//计划全部释放
} }
}else { }else {
//进行全部释放 String orderCode = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getOrderCode).distinct().collect(Collectors.joining(","));
}
}
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); log.info(method + "维护零担订单:{}", orderCode);
if(Func.isNotEmpty(builder)){ if(Func.isNotEmpty(builder)){
builder.append(","); builder.append(",");
} }
builder.append(orderCode); builder.append(orderCode);
//针对未签收完成零担进行回库操作 //进行全部释放
recoverZeroPackageIds.add(distributionParcelNumberDTO.getParcelListId());
//这些单子就是需要进行状态回退的零担包件
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);
} }
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()); distributionStockArticleService.maintenanceOrderInfo(builder.toString(), warehouse.getId());
distributionReservationStockarticleService.maintenanceReservationStockArticle(reservationId, 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.service.*;
import com.logpm.distribution.vo.DistributionReservationZeroPackageVO; import com.logpm.distribution.vo.DistributionReservationZeroPackageVO;
import com.sun.org.apache.xpath.internal.operations.Bool; import com.sun.org.apache.xpath.internal.operations.Bool;
import io.jsonwebtoken.lang.Objects;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.DistributionTypeConstant; import org.springblade.common.constant.DistributionTypeConstant;
import org.springblade.common.constant.common.IsOrNoConstant; import org.springblade.common.constant.common.IsOrNoConstant;
@ -43,6 +42,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List; 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