Browse Source

库存品备货调整、PDA备货签收调整+

training
汤建军 1 year ago
parent
commit
886d6f23d3
  1. 4
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockArticleVO.java
  2. 315
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java
  3. 130
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  4. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  5. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
  6. 24
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java

4
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockArticleVO.java

@ -39,7 +39,7 @@ public class DistributionAppStockArticleVO extends DistributionStockArticleEntit
* 扫描数 * 扫描数
*/ */
@ApiModelProperty(value = "扫描数") @ApiModelProperty(value = "扫描数")
private Integer loadingNub; private Integer loadingNub=0;
/** /**
* 订单ID * 订单ID
@ -50,7 +50,7 @@ public class DistributionAppStockArticleVO extends DistributionStockArticleEntit
* 签收数 * 签收数
*/ */
@ApiModelProperty(value = "签收(订单)") @ApiModelProperty(value = "签收(订单)")
private Integer signforNub; private Integer signforNub=0;
/** /**
* 是否存在异常包间 * 是否存在异常包间

315
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java

@ -696,11 +696,11 @@ public class DistributionStockupAppController extends BladeController {
return Resp.scanFail(60008,"包件不属于此计划!!!","包件不属于此计划!!!",""); return Resp.scanFail(60008,"包件不属于此计划!!!","包件不属于此计划!!!","");
case 2: case 2:
return R.data(60002, distributionStockListEntities.getId(), "当前包件批次号与入库批次号不符,是否确认修改计划批次"); return R.data(60002, distributionStockListEntities.getId(), "当前包件批次号与入库批次号不符,是否确认修改计划批次");
// case 3:
// //查询其他所用的页面信息
// DistributionStockupStockListVO distributionStockupStockListVO = distributionReservationService.selectStockupStockListByStockListId(reservationId,distributionStockListEntities.getId());
// return R.data(200, distributionStockupStockListVO, "扫描成功!");
case 3: case 3:
//查询其他所用的页面信息
DistributionStockupStockListVO distributionStockupStockListVO = distributionReservationService.selectStockupStockListByStockListId(reservationId,distributionStockListEntities.getId());
return R.data(200, distributionStockupStockListVO, "扫描成功!");
case 4:
return R.data(200, distributionStockListEntities.getId(), "扫描成功!"); return R.data(200, distributionStockListEntities.getId(), "扫描成功!");
} }
@ -736,45 +736,54 @@ public class DistributionStockupAppController extends BladeController {
} }
return R.data(200, "", "扫描成功!"); return R.data(200, "", "扫描成功!");
} }
private int judgmentIsStockUp(Long reservationId,Long stockListId, DistributionParcelListEntity distributionParcelListEntity, Long warehouseId,String cargoNumber) { private int judgmentIsStockUp(Long reservationId,Long stockListId, DistributionParcelListEntity distributionParcelListEntity, Long warehouseId,String cargoNumber) {
List<DistributionReservationStocklistEntity> distributionReservationStocklistEntities = distributionReservationMapper.selectStockListByReservationId(reservationId); List<DistributionReservationStocklistEntity> distributionReservationStocklistEntities = distributionReservationMapper.selectStockListByReservationId(reservationId);
if (Func.isNotEmpty(distributionReservationStocklistEntities)){ if (Func.isNotEmpty(distributionReservationStocklistEntities)){
List<Long> stockListIds = distributionReservationStocklistEntities.stream().map(DistributionReservationStocklistEntity::getStocklistId).collect(Collectors.toList());
//查询库存品信息 //查询库存品信息
List<Long> stockListIds = distributionReservationStocklistEntities.stream().map(DistributionReservationStocklistEntity::getStocklistId).collect(Collectors.toList());
List<DistributionStockListEntity> stockListEntityList = distributionStockListService.list(Wrappers.<DistributionStockListEntity>query().lambda() List<DistributionStockListEntity> stockListEntityList = distributionStockListService.list(Wrappers.<DistributionStockListEntity>query().lambda()
.in(DistributionStockListEntity::getId, stockListId) .in(DistributionStockListEntity::getId, stockListIds)
.eq(DistributionStockListEntity::getWarehouseId, warehouseId) .eq(DistributionStockListEntity::getWarehouseId, warehouseId)
.eq(DistributionStockListEntity::getCargoNumber, cargoNumber) .eq(DistributionStockListEntity::getCargoNumber, cargoNumber)
); );
//判断该库存品包件是否属于计划库存品的物料 //判断该库存品包件是否属于计划库存品的物料
//首先判断包件的物料和此计划中的物料是否一致
// if (!stockListEntityList.getCargoNumber().equals(distributionParcelListEntity.getMaterialCode())){
// return 1;
// }
// //查看是否和当前页的计划批次一致
// if (!stockListEntityList.getIncomingBatch().equals(distributionParcelListEntity.getOrderCode())){
// //查看计划下是否存在该包件对应批次的计划
// List<DistributionReservationStocklistEntity> reservationStocklistEntityList = distributionReservationMapper.selectStockListByReservationIdAndCargoNumber(reservationId, cargoNumber, stockListId);
// if (Func.isNotEmpty(reservationStocklistEntityList)){
// List<Long> stockListIds = reservationStocklistEntityList.stream().map(DistributionReservationStocklistEntity::getStocklistId).collect(Collectors.toList());
// List<DistributionStockListEntity> distributionStockListEntities = distributionStockListService.listByIds(stockListIds);
// boolean isHave = distributionStockListEntities.stream().map(DistributionStockListEntity::getIncomingBatch).allMatch(s -> s.contains(distributionParcelListEntity.getOrderCode()));
// if (isHave){
// return 3;
// }
// }else {
// return 2;
// }
// }
boolean isHave = stockListEntityList.stream().map(DistributionStockListEntity::getCargoNumber).anyMatch(s -> s.contains(distributionParcelListEntity.getMaterialCode())); boolean isHave = stockListEntityList.stream().map(DistributionStockListEntity::getCargoNumber).anyMatch(s -> s.contains(distributionParcelListEntity.getMaterialCode()));
if (!isHave){ if (!isHave){
//判断包件是否属于计划物料信息
return 1; return 1;
} }
//判断该库存品包件是否属于计划的批次 //判断该库存品包件是否属于计划的批次
boolean isHaveIncomingBatch = stockListEntityList.stream().map(DistributionStockListEntity::getIncomingBatch).anyMatch(s -> s.contains( distributionParcelListEntity.getOrderCode())); boolean isHaveIncomingBatch = stockListEntityList.stream().map(DistributionStockListEntity::getIncomingBatch).anyMatch(s -> s.contains( distributionParcelListEntity.getOrderCode()));
if (!isHaveIncomingBatch){ if (!isHaveIncomingBatch){
//判断计划下是否还存在哟该物料的库存品 return 2;
List<DistributionStockListEntity> distributionStockListEntities = distributionStockListService.list(Wrappers.<DistributionStockListEntity>query().lambda()
.in(DistributionStockListEntity::getId, stockListId)
.eq(DistributionStockListEntity::getWarehouseId, warehouseId)
.eq(DistributionStockListEntity::getCargoNumber, cargoNumber)
);
boolean isOther = distributionStockListEntities.stream().map(DistributionStockListEntity::getCargoNumber).anyMatch(s -> s.contains(distributionParcelListEntity.getMaterialCode()));
if (isOther){
//是否是计划下同物料的库存品
return 3;
}else {
//不属于计划中同物料的库存品
return 2;
}
} }
} }
return 4; return 3;
} }
/** /**
@ -805,9 +814,144 @@ public class DistributionStockupAppController extends BladeController {
@ApiOperation(value = "修改批次", notes = "传入stockupDTO") @ApiOperation(value = "修改批次", notes = "传入stockupDTO")
// 修改预约备货信息 需要传入修改的包条 // 修改预约备货信息 需要传入修改的包条
public R updateStockup(@RequestBody StockupDTO stockupDTO) { public R updateStockup(@RequestBody StockupDTO stockupDTO) {
List<DistributionReservationStocklistEntity> distributionReservationStocklistEntities = distributionReservationMapper.selectStockListByReservationId(stockupDTO.getReservationId()); List<DistributionReservationStocklistEntity> distributionReservationStocklistEntities = distributionReservationMapper.selectStockListByReservationId(stockupDTO.getReservationId());
//当前预约是否存在该批次库存品计划 //当前预约是否存在该批次库存品计划
// if (stockupDTO.getStockListId().equals(stockupDTO.getNewStockListId())){
// if (Func.isNotEmpty(distributionReservationStocklistEntities)){
// boolean isAdd = distributionReservationStocklistEntities.stream().map(DistributionReservationStocklistEntity::getStocklistId).anyMatch(s -> s.equals(stockupDTO.getStockListId()));
// //扣减对应的库存品信息
//// DistributionStockListEntity newStockListEntity = distributionStockListService.getById(stockupDTO.getStockListId());
// if (!isAdd){
// ///先进行对应的扣减
// //查询该预约该物料的库存品信息
// List<DistributionReservationStocklistEntity> reservationStocklistEntities = distributionReservationMapper.selectInventoryListByIdAndMateriel(stockupDTO.getReservationId(),stockupDTO.getCargoNumber());
// //可能会出现同一物料不同批次的库存品
// List<DistributionReservationStocklistEntity> reservationStockList = reservationStocklistEntities.stream().filter(drs -> drs.getReservationNum() > 0 && drs.getRealityNum() < drs.getReservationNum()).collect(Collectors.toList());
// if (Func.isNotEmpty(reservationStockList)){
// DistributionReservationStocklistEntity oldReservationStocklistEntity = reservationStockList.get(0);
// //扣减计划数量
// oldReservationStocklistEntity.setReservationNum(oldReservationStocklistEntity.getReservationNum() - 1);
// distributionReservationStocklistService.updateById(oldReservationStocklistEntity);
//
// //维护对应的库存品包件
// List<DisStockListDetailEntity> stockListDetailEntities = disStockListDetailService.list(Wrappers.<DisStockListDetailEntity>query().lambda()
// .eq(DisStockListDetailEntity::getReservationId, oldReservationStocklistEntity.getReservationId())
// .eq(DisStockListDetailEntity::getStockListId, oldReservationStocklistEntity.getStocklistId())
// .ne(DisStockListDetailEntity::getStockPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
// );
//
// DistributionStockListEntity oldStockListEntity = distributionStockListService.getById(oldReservationStocklistEntity.getStocklistId());
// oldStockListEntity.setQuantityOccupied(oldStockListEntity.getQuantityOccupied() - 1);
// distributionStockListService.updateById(oldStockListEntity);
//
// //对指定库存品包件进行库存品ID修改
// DisStockListDetailEntity disStockListDetailEntity = stockListDetailEntities.stream().filter(sd -> Func.isEmpty(sd.getStockPackageCode())).collect(Collectors.toList()).get(0);
// if (Func.isNotEmpty(disStockListDetailEntity)){
// disStockListDetailEntity.setStockListId(stockupDTO.getStockListId());
// disStockListDetailService.updateById(disStockListDetailEntity);
// }
// //维护对应库存品的冻结数量
// DistributionStockListEntity newStockListEntity = distributionStockListService.getById(stockupDTO.getStockListId());
// newStockListEntity.setQuantityOccupied(oldStockListEntity.getQuantityOccupied() + 1);
// distributionStockListService.updateById(newStockListEntity);
// }
//
// // 增加实际扫描的包件对应的库存品信息 增加在预约库存品中间表上
// DistributionReservationStocklistEntity reservationStocklistEntity = new DistributionReservationStocklistEntity();
// reservationStocklistEntity.setReservationId(stockupDTO.getReservationId());
// reservationStocklistEntity.setReservationNum(1);
// reservationStocklistEntity.setLoadingStatus("10");
// reservationStocklistEntity.setSigningStatus("10");
// reservationStocklistEntity.setStockListStatus("3");
// DistributionStockListEntity stockListEntity = distributionStockListService.getById(stockupDTO.getStockListId());
// if(ObjectUtils.isNotNull(stockListEntity)){
// reservationStocklistEntity.setStocklistId(stockListEntity.getId());
// reservationStocklistEntity.setUnit(stockListEntity.getCargoUnit());
// reservationStocklistEntity.setRealityNum(0);
// }
// distributionReservationStocklistService.save(reservationStocklistEntity);
//
// }else {
// //扣减该物料的计划库存品
// List<DistributionReservationStocklistEntity> reservationStocklistEntityList = distributionReservationMapper.selectStockListByReservationIdAndCargoNumber(stockupDTO.getReservationId(), stockupDTO.getCargoNumber(), stockupDTO.getStockListId());
// List<DistributionReservationStocklistEntity> oldReservationStockList = reservationStocklistEntityList.stream().filter(rs -> rs.getReservationNum() > 0 && rs.getRealityNum() < rs.getReservationNum()).collect(Collectors.toList());
// if (Func.isNotEmpty(oldReservationStockList)){
// //对老的计划数量进行减少
// DistributionReservationStocklistEntity reservationStocklistEntity = oldReservationStockList.get(0);
// reservationStocklistEntity.setReservationNum(reservationStocklistEntity.getReservationNum() - 1);
// distributionReservationStocklistService.updateById(reservationStocklistEntity);
//
//
// //维护对应库存品的冻结数量
// DistributionStockListEntity oldStockListEntity = distributionStockListService.getById(reservationStocklistEntity.getStocklistId());
// oldStockListEntity.setQuantityOccupied(oldStockListEntity.getQuantityOccupied() - 1);
// distributionStockListService.updateById(oldStockListEntity);
//
// //维护对应的库存品包件
// List<DisStockListDetailEntity> stockListDetailEntities = disStockListDetailService.list(Wrappers.<DisStockListDetailEntity>query().lambda()
// .eq(DisStockListDetailEntity::getReservationId, reservationStocklistEntity.getReservationId())
// .eq(DisStockListDetailEntity::getStockListId, reservationStocklistEntity.getStocklistId())
// .ne(DisStockListDetailEntity::getStockPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
// );
//
// //对指定库存品包件进行库存品ID修改
// DisStockListDetailEntity disStockListDetailEntity = stockListDetailEntities.stream().filter(sd -> Func.isEmpty(sd.getStockPackageCode())).collect(Collectors.toList()).get(0);
// if (Func.isNotEmpty(disStockListDetailEntity)){
// disStockListDetailEntity.setStockListId(stockupDTO.getStockListId());
// disStockListDetailService.updateById(disStockListDetailEntity);
// distributionReservationStocklistService.updateById(reservationStocklistEntity);
// }
//
// //新的数量进行增加
// DistributionReservationStocklistEntity stocklistEntity = distributionReservationStocklistService.getOne(Wrappers.<DistributionReservationStocklistEntity>query().lambda()
// .eq(DistributionReservationStocklistEntity::getReservationId, stockupDTO.getReservationId())
// .eq(DistributionReservationStocklistEntity::getStocklistId, stockupDTO.getStockListId())
// .ne(DistributionReservationStocklistEntity::getStockListStatus, ReservationOrderStatusConstant.quxiao.getValue())
// );
//
// stocklistEntity
// .setReservationNum(stocklistEntity.getReservationNum() + 1);
// distributionReservationStocklistService.updateById(stocklistEntity);
//
// //维护对应库存品的冻结数量
// DistributionStockListEntity newStockListEntity = distributionStockListService.getById(stockupDTO.getStockListId());
// newStockListEntity.setQuantityOccupied(oldStockListEntity.getQuantityOccupied() + 1);
// distributionStockListService.updateById(newStockListEntity);
//
//
//
//
// }
//
//
//// List<DistributionReservationStocklistEntity> reservationStocklistEntities = stockListMap.get(stockupDTO.getStockListId());
//// DistributionReservationStocklistEntity reservationStocklistEntity = reservationStocklistEntities.get(0);
//// reservationStocklistEntity.setReservationNum(reservationStocklistEntity.getReservationNum() + 1);
//// distributionReservationStocklistService.updateById(reservationStocklistEntity);
//// if (newStockListEntity.getQuantityOccupied() +1 +newStockListEntity.getQuantityOccupied() <= newStockListEntity.getQuantityStock()){
//// newStockListEntity.setQuantityOccupied(newStockListEntity.getQuantityStock() + 1);
//// }
//// //修改对应库存品的冻结数量
//// //查询出原来计划的库存品进行扣减
//// List<DistributionReservationStocklistEntity> distributionReservationStocklistEntityList = distributionReservationMapper.selectStockListByReservationIdAndCargoNumber(stockupDTO.getReservationId(),stockupDTO.getCargoNumber(),stockupDTO.getStockListId());
//// //过滤备货未完成的计划进行数量扣减
//// DistributionReservationStocklistEntity reservationStocklist = distributionReservationStocklistEntityList.stream().filter(drs -> drs.getReservationNum() > 0 && drs.getRealityNum() < drs.getReservationNum()).collect(Collectors.toList()).get(0);
//// reservationStocklist.setReservationNum(reservationStocklist.getReservationNum() - 1);
//// distributionReservationStocklistService.updateById(reservationStocklist);
////
//// //维护库存品对应数量
//// DistributionStockListEntity stockListEntity = distributionStockListService.getById(reservationStocklist.getStocklistId());
//// stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() + 1);
//// distributionStockListService.updateById(stockListEntity);
//// //存在 进行新增计划
// }
// //这里扣减原来的需要排除备货完成的
// }
// }
if (Func.isNotEmpty(distributionReservationStocklistEntities)){ if (Func.isNotEmpty(distributionReservationStocklistEntities)){
boolean isAdd = distributionReservationStocklistEntities.stream().map(DistributionReservationStocklistEntity::getStocklistId).anyMatch(s -> s.equals(stockupDTO.getStockListId())); boolean isAdd = distributionReservationStocklistEntities.stream().map(DistributionReservationStocklistEntity::getStocklistId).anyMatch(s -> s.equals(stockupDTO.getStockListId()));
//扣减对应的库存品信息 //扣减对应的库存品信息
// DistributionStockListEntity newStockListEntity = distributionStockListService.getById(stockupDTO.getStockListId()); // DistributionStockListEntity newStockListEntity = distributionStockListService.getById(stockupDTO.getStockListId());
@ -842,10 +986,9 @@ public class DistributionStockupAppController extends BladeController {
} }
//维护对应库存品的冻结数量 //维护对应库存品的冻结数量
DistributionStockListEntity newStockListEntity = distributionStockListService.getById(stockupDTO.getStockListId()); DistributionStockListEntity newStockListEntity = distributionStockListService.getById(stockupDTO.getStockListId());
newStockListEntity.setQuantityOccupied(oldStockListEntity.getQuantityOccupied() + 1); newStockListEntity.setQuantityOccupied(newStockListEntity.getQuantityOccupied() + 1);
distributionStockListService.updateById(newStockListEntity); distributionStockListService.updateById(newStockListEntity);
} }
// 增加实际扫描的包件对应的库存品信息 增加在预约库存品中间表上 // 增加实际扫描的包件对应的库存品信息 增加在预约库存品中间表上
DistributionReservationStocklistEntity reservationStocklistEntity = new DistributionReservationStocklistEntity(); DistributionReservationStocklistEntity reservationStocklistEntity = new DistributionReservationStocklistEntity();
reservationStocklistEntity.setReservationId(stockupDTO.getReservationId()); reservationStocklistEntity.setReservationId(stockupDTO.getReservationId());
@ -861,85 +1004,57 @@ public class DistributionStockupAppController extends BladeController {
} }
distributionReservationStocklistService.save(reservationStocklistEntity); distributionReservationStocklistService.save(reservationStocklistEntity);
}else {
//扣减该物料的计划库存品
List<DistributionReservationStocklistEntity> reservationStocklistEntityList = distributionReservationMapper.selectStockListByReservationIdAndCargoNumber(stockupDTO.getReservationId(), stockupDTO.getCargoNumber(), stockupDTO.getStockListId());
List<DistributionReservationStocklistEntity> oldReservationStockList = reservationStocklistEntityList.stream().filter(rs -> rs.getReservationNum() > 0 && rs.getRealityNum() < rs.getReservationNum()).collect(Collectors.toList());
if (Func.isNotEmpty(oldReservationStockList)){
//对老的计划数量进行减少
DistributionReservationStocklistEntity reservationStocklistEntity = oldReservationStockList.get(0);
reservationStocklistEntity.setReservationNum(reservationStocklistEntity.getReservationNum() - 1);
distributionReservationStocklistService.updateById(reservationStocklistEntity);
//维护对应库存品的冻结数量
DistributionStockListEntity oldStockListEntity = distributionStockListService.getById(reservationStocklistEntity.getStocklistId());
oldStockListEntity.setQuantityOccupied(oldStockListEntity.getQuantityOccupied() - 1);
distributionStockListService.updateById(oldStockListEntity);
//维护对应的库存品包件
List<DisStockListDetailEntity> stockListDetailEntities = disStockListDetailService.list(Wrappers.<DisStockListDetailEntity>query().lambda()
.eq(DisStockListDetailEntity::getReservationId, reservationStocklistEntity.getReservationId())
.eq(DisStockListDetailEntity::getStockListId, reservationStocklistEntity.getStocklistId())
.ne(DisStockListDetailEntity::getStockPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
//对指定库存品包件进行库存品ID修改
DisStockListDetailEntity disStockListDetailEntity = stockListDetailEntities.stream().filter(sd -> Func.isEmpty(sd.getStockPackageCode())).collect(Collectors.toList()).get(0);
if (Func.isNotEmpty(disStockListDetailEntity)){
disStockListDetailEntity.setStockListId(stockupDTO.getStockListId());
disStockListDetailService.updateById(disStockListDetailEntity);
distributionReservationStocklistService.updateById(reservationStocklistEntity);
}
//新的数量进行增加
DistributionReservationStocklistEntity stocklistEntity = distributionReservationStocklistService.getOne(Wrappers.<DistributionReservationStocklistEntity>query().lambda()
.eq(DistributionReservationStocklistEntity::getReservationId, stockupDTO.getReservationId())
.eq(DistributionReservationStocklistEntity::getStocklistId, stockupDTO.getStockListId())
.ne(DistributionReservationStocklistEntity::getStockListStatus, ReservationOrderStatusConstant.quxiao.getValue())
);
stocklistEntity
.setReservationNum(stocklistEntity.getReservationNum() + 1);
distributionReservationStocklistService.updateById(stocklistEntity);
//维护对应库存品的冻结数量
DistributionStockListEntity newStockListEntity = distributionStockListService.getById(stockupDTO.getStockListId());
newStockListEntity.setQuantityOccupied(oldStockListEntity.getQuantityOccupied() + 1);
distributionStockListService.updateById(newStockListEntity);
}
// List<DistributionReservationStocklistEntity> reservationStocklistEntities = stockListMap.get(stockupDTO.getStockListId());
// DistributionReservationStocklistEntity reservationStocklistEntity = reservationStocklistEntities.get(0);
// reservationStocklistEntity.setReservationNum(reservationStocklistEntity.getReservationNum() + 1);
// distributionReservationStocklistService.updateById(reservationStocklistEntity);
// if (newStockListEntity.getQuantityOccupied() +1 +newStockListEntity.getQuantityOccupied() <= newStockListEntity.getQuantityStock()){
// newStockListEntity.setQuantityOccupied(newStockListEntity.getQuantityStock() + 1);
// }
// //修改对应库存品的冻结数量
// //查询出原来计划的库存品进行扣减
// List<DistributionReservationStocklistEntity> distributionReservationStocklistEntityList = distributionReservationMapper.selectStockListByReservationIdAndCargoNumber(stockupDTO.getReservationId(),stockupDTO.getCargoNumber(),stockupDTO.getStockListId());
// //过滤备货未完成的计划进行数量扣减
// DistributionReservationStocklistEntity reservationStocklist = distributionReservationStocklistEntityList.stream().filter(drs -> drs.getReservationNum() > 0 && drs.getRealityNum() < drs.getReservationNum()).collect(Collectors.toList()).get(0);
// reservationStocklist.setReservationNum(reservationStocklist.getReservationNum() - 1);
// distributionReservationStocklistService.updateById(reservationStocklist);
//
// //维护库存品对应数量
// DistributionStockListEntity stockListEntity = distributionStockListService.getById(reservationStocklist.getStocklistId());
// stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() + 1);
// distributionStockListService.updateById(stockListEntity);
// //存在 进行新增计划
} }
//这里扣减原来的需要排除备货完成的 // else {
// //扣减该物料的计划库存品
// List<DistributionReservationStocklistEntity> reservationStocklistEntityList = distributionReservationMapper.selectStockListByReservationIdAndCargoNumber(stockupDTO.getReservationId(), stockupDTO.getCargoNumber(), stockupDTO.getStockListId());
// List<DistributionReservationStocklistEntity> oldReservationStockList = reservationStocklistEntityList.stream().filter(rs -> rs.getReservationNum() > 0 && rs.getRealityNum() < rs.getReservationNum()).collect(Collectors.toList());
// if (Func.isNotEmpty(oldReservationStockList)){
// //对老的计划数量进行减少
// DistributionReservationStocklistEntity reservationStocklistEntity = oldReservationStockList.get(0);
// reservationStocklistEntity.setReservationNum(reservationStocklistEntity.getReservationNum() - 1);
// distributionReservationStocklistService.updateById(reservationStocklistEntity);
//
//
// //维护对应库存品的冻结数量
// DistributionStockListEntity oldStockListEntity = distributionStockListService.getById(reservationStocklistEntity.getStocklistId());
// oldStockListEntity.setQuantityOccupied(oldStockListEntity.getQuantityOccupied() - 1);
// distributionStockListService.updateById(oldStockListEntity);
//
// //维护对应的库存品包件
// List<DisStockListDetailEntity> stockListDetailEntities = disStockListDetailService.list(Wrappers.<DisStockListDetailEntity>query().lambda()
// .eq(DisStockListDetailEntity::getReservationId, reservationStocklistEntity.getReservationId())
// .eq(DisStockListDetailEntity::getStockListId, reservationStocklistEntity.getStocklistId())
// .ne(DisStockListDetailEntity::getStockPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
// );
//
// //对指定库存品包件进行库存品ID修改
// DisStockListDetailEntity disStockListDetailEntity = stockListDetailEntities.stream().filter(sd -> Func.isEmpty(sd.getStockPackageCode())).collect(Collectors.toList()).get(0);
// if (Func.isNotEmpty(disStockListDetailEntity)){
// disStockListDetailEntity.setStockListId(stockupDTO.getStockListId());
// disStockListDetailService.updateById(disStockListDetailEntity);
// distributionReservationStocklistService.updateById(reservationStocklistEntity);
// }
//
// //新的数量进行增加
// DistributionReservationStocklistEntity stocklistEntity = distributionReservationStocklistService.getOne(Wrappers.<DistributionReservationStocklistEntity>query().lambda()
// .eq(DistributionReservationStocklistEntity::getReservationId, stockupDTO.getReservationId())
// .eq(DistributionReservationStocklistEntity::getStocklistId, stockupDTO.getStockListId())
// .ne(DistributionReservationStocklistEntity::getStockListStatus, ReservationOrderStatusConstant.quxiao.getValue())
// );
//
// stocklistEntity
// .setReservationNum(stocklistEntity.getReservationNum() + 1);
// distributionReservationStocklistService.updateById(stocklistEntity);
//
// //维护对应库存品的冻结数量
// DistributionStockListEntity newStockListEntity = distributionStockListService.getById(stockupDTO.getStockListId());
// newStockListEntity.setQuantityOccupied(oldStockListEntity.getQuantityOccupied() + 1);
// distributionStockListService.updateById(newStockListEntity);
// }
// }
} }
// 默认 计划数量和实际数量为0 // 默认 计划数量和实际数量为0
return R.success("操作成功"); return R.success("操作成功");
} }

130
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml

@ -298,78 +298,78 @@
</select> </select>
<select id="selectStockupStockListNew" resultType="com.logpm.distribution.vo.DistributionStockupStockListVO"> <select id="selectStockupStockListNew" resultType="com.logpm.distribution.vo.DistributionStockupStockListVO">
<!-- SELECT-->
<!--&lt;!&ndash; ldslNew.id AS stockListId,&ndash;&gt;-->
<!-- ldslNew.sku AS sku,-->
<!-- ldslNew.cargo_number AS cargoNumber,-->
<!-- ldslNew.description_goods AS materialName,-->
<!-- ldslNew.cargo_norms AS cargoNorms,-->
<!-- ldslNew.cargo_unit AS cargoUnit,-->
<!-- ldslNew.tray_name AS trayName,-->
<!-- ldslNew.unpack AS unpack,-->
<!-- ldslNew.source_type AS sourceType,-->
<!-- count(ldss.id) AS realNum,-->
<!--&lt;!&ndash; t.deliveryDetailsId AS deliveryDetailsId,&ndash;&gt;-->
<!-- t.reservation_num as planNum,-->
<!-- (-->
<!-- select GROUP_CONCAT( DISTINCT (allocation_id)) from logpm_warehouse_updown_goods where association_value =ldslNew.cargo_number or association_value in (-->
<!-- SELECT order_package_code from logpm_distribution_parcel_list where conditions=2 and material_code=ldslNew.cargo_number)-->
<!-- ) as allocations-->
<!-- FROM-->
<!-- (-->
<!-- SELECT-->
<!-- ldsl.cargo_number,-->
<!-- ldsl.description_goods,-->
<!-- ldsl.id,-->
<!-- ldrs.id as deliveryDetailsId,-->
<!-- ldrs.reservation_num-->
<!-- FROM-->
<!-- logpm_distribution_reservation_stocklist ldrs-->
<!-- LEFT JOIN logpm_distribution_stock_list ldsl ON ldrs.stocklist_id = ldsl.id-->
<!-- WHERE-->
<!-- ldrs.reservation_id = #{reservationId}-->
<!-- ) t-->
<!-- LEFT JOIN logpm_distribution_stock_list ldslNew ON t.cargo_number = ldslNew.cargo_number-->
<!-- LEFT JOIN logpm_distribution_stock ldss ON ldss.stock_list_id = t.id where ldslNew.is_deleted = 0-->
SELECT SELECT
ldsl.sku AS sku, <!-- ldslNew.id AS stockListId,-->
ldsl.cargo_number AS cargoNumber, ldslNew.sku AS sku,
ldsl.description_goods AS materialName, ldslNew.cargo_number AS cargoNumber,
ldsl.cargo_norms AS cargoNorms, ldslNew.description_goods AS materialName,
ldsl.cargo_unit AS cargoUnit, ldslNew.cargo_norms AS cargoNorms,
ldsl.tray_name AS trayName, ldslNew.cargo_unit AS cargoUnit,
ldsl.unpack AS unpack, ldslNew.tray_name AS trayName,
ldsl.source_type AS sourceType, ldslNew.unpack AS unpack,
ldrs.stocklist_id AS stockListId, ldslNew.source_type AS sourceType,
ldrs.reservation_num AS planNum, count(ldss.id) AS realNum,
(SELECT COUNT(ldss.id) FROM logpm_distribution_stock AS ldss WHERE ldss.stock_list_id = ldsl.id ) AS realNum, <!-- t.deliveryDetailsId AS deliveryDetailsId,-->
CASE t.reservation_num as planNum,
ldsl.source_type
WHEN 1 THEN
( (
SELECT select GROUP_CONCAT( DISTINCT (allocation_id)) from logpm_warehouse_updown_goods where association_value =ldslNew.cargo_number or association_value in (
group_concat( DISTINCT lwug.allocation_id ) AS allocations SELECT order_package_code from logpm_distribution_parcel_list where conditions=2 and material_code=ldslNew.cargo_number)
) as allocations
FROM FROM
logpm_distribution_stock_list ldslnew (
LEFT JOIN logpm_distribution_parcel_list ldpl ON ldpl.order_code = ldslnew.incoming_batch SELECT
AND ldpl.material_id = ldslnew.material_id ldsl.cargo_number,
AND ldpl.conditions = '2' ldsl.description_goods,
LEFT JOIN logpm_warehouse_updown_goods lwug ON lwug.association_value = ldpl.order_package_code ldsl.id,
WHERE ldrs.id as deliveryDetailsId,
ldslnew.id = ldsl.id AND lwug.association_type = '3' ldrs.reservation_num
)
WHEN 2 THEN
( SELECT group_concat( DISTINCT lwug.allocation_id ) AS allocations FROM logpm_warehouse_updown_goods lwug WHERE lwug.association_id = ldsl.material_id AND lwug.association_type = '4')
END allocations
FROM FROM
logpm_distribution_reservation_stocklist ldrs logpm_distribution_reservation_stocklist ldrs
LEFT JOIN logpm_distribution_stock_list ldsl ON ldrs.stocklist_id = ldsl.id LEFT JOIN logpm_distribution_stock_list ldsl ON ldrs.stocklist_id = ldsl.id
LEFT JOIN logpm_distribution_stock ldss ON ldss.stock_list_id = ldsl.id
WHERE WHERE
ldrs.reservation_id =#{reservationId} ldrs.reservation_id = #{reservationId}
) t
LEFT JOIN logpm_distribution_stock_list ldslNew ON t.cargo_number = ldslNew.cargo_number
LEFT JOIN logpm_distribution_stock ldss ON ldss.stock_list_id = t.id where ldslNew.is_deleted = 0
<!-- SELECT-->
<!-- ldsl.sku AS sku,-->
<!-- ldsl.cargo_number AS cargoNumber,-->
<!-- ldsl.description_goods AS materialName,-->
<!-- ldsl.cargo_norms AS cargoNorms,-->
<!-- ldsl.cargo_unit AS cargoUnit,-->
<!-- ldsl.tray_name AS trayName,-->
<!-- ldsl.unpack AS unpack,-->
<!-- ldsl.source_type AS sourceType,-->
<!-- ldrs.stocklist_id AS stockListId,-->
<!-- ldrs.reservation_num AS planNum,-->
<!-- (SELECT COUNT(ldss.id) FROM logpm_distribution_stock AS ldss WHERE ldss.stock_list_id = ldsl.id ) AS realNum,-->
<!-- CASE-->
<!-- ldsl.source_type-->
<!-- WHEN 1 THEN-->
<!-- (-->
<!-- SELECT-->
<!-- group_concat( DISTINCT lwug.allocation_id ) AS allocations-->
<!-- FROM-->
<!-- logpm_distribution_stock_list ldslnew-->
<!-- LEFT JOIN logpm_distribution_parcel_list ldpl ON ldpl.order_code = ldslnew.incoming_batch-->
<!-- AND ldpl.material_id = ldslnew.material_id-->
<!-- AND ldpl.conditions = '2'-->
<!-- LEFT JOIN logpm_warehouse_updown_goods lwug ON lwug.association_value = ldpl.order_package_code-->
<!-- WHERE-->
<!-- ldslnew.id = ldsl.id AND lwug.association_type = '3'-->
<!-- )-->
<!-- WHEN 2 THEN-->
<!-- ( SELECT group_concat( DISTINCT lwug.allocation_id ) AS allocations FROM logpm_warehouse_updown_goods lwug WHERE lwug.association_id = ldsl.material_id AND lwug.association_type = '4')-->
<!-- END allocations-->
<!-- FROM-->
<!-- logpm_distribution_reservation_stocklist ldrs-->
<!-- LEFT JOIN logpm_distribution_stock_list ldsl ON ldrs.stocklist_id = ldsl.id-->
<!-- LEFT JOIN logpm_distribution_stock ldss ON ldss.stock_list_id = ldsl.id-->
<!-- WHERE-->
<!-- ldrs.reservation_id =#{reservationId}-->
</select> </select>
<select id="selectOrderNumByReservationId" resultType="Integer"> <select id="selectOrderNumByReservationId" resultType="Integer">

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

@ -906,7 +906,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
loadingNum.getAndAdd(inventoryLoadingNum); loadingNum.getAndAdd(inventoryLoadingNum);
} }
StringBuilder str = new StringBuilder(); StringBuilder str = new StringBuilder();
str.append("装车").append(loadingNum.get() + "件"); str.append("装车").append(loadingNum.get() + "件");
if (abnormalLoadingNum.get() > 0) { if (abnormalLoadingNum.get() > 0) {
str.append("异常").append(abnormalLoadingNum.get() + "件"); str.append("异常").append(abnormalLoadingNum.get() + "件");
} }

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

@ -397,6 +397,14 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
} else if (Func.isEmpty(collect)) { } else if (Func.isEmpty(collect)) {
//这里就需要对该包件信息是否属于该配送计划进行判定。如果属于该配送计划则是串货。不是那么则需要提示是否异常签收或者返回的操作 //这里就需要对该包件信息是否属于该配送计划进行判定。如果属于该配送计划则是串货。不是那么则需要提示是否异常签收或者返回的操作
//查询配送计划中是否存在该包件 //查询配送计划中是否存在该包件
DistributionParcelListEntity one = distributionParcelListService.getOne(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode())
.eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId())
);
if (Func.isNotEmpty(one) && one.getConditions() == 2){
log.error("#####################此包件不是定制品", one.getConditions());
return Resp.scanFail("此包件不是定制品", "此包件不是定制品");
}
List<DistributionParcelListEntity> parcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId()); List<DistributionParcelListEntity> parcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
//该货物是否属于该计划 //该货物是否属于该计划
List<DistributionParcelListEntity> distributionParcelListEntities = parcelListEntities.stream().filter(p -> p.getOrderPackageCode().equals(distrilbutionloadingscanDTO.getBarcode())).collect(Collectors.toList()); List<DistributionParcelListEntity> distributionParcelListEntities = parcelListEntities.stream().filter(p -> p.getOrderPackageCode().equals(distrilbutionloadingscanDTO.getBarcode())).collect(Collectors.toList());

24
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java

@ -2220,6 +2220,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
DisStockOrdercodeRecoEntity ordercodeRecoEntity = new DisStockOrdercodeRecoEntity(); DisStockOrdercodeRecoEntity ordercodeRecoEntity = new DisStockOrdercodeRecoEntity();
DisStockOrdercodeRecoEntity one = disStockOrdercodeRecoService.getOne(Wrappers.<DisStockOrdercodeRecoEntity>query().lambda() DisStockOrdercodeRecoEntity one = disStockOrdercodeRecoService.getOne(Wrappers.<DisStockOrdercodeRecoEntity>query().lambda()
.eq(DisStockOrdercodeRecoEntity::getCode, stockupDTO.getPacketBarCode()) .eq(DisStockOrdercodeRecoEntity::getCode, stockupDTO.getPacketBarCode())
.eq(DisStockOrdercodeRecoEntity::getIsDeleted, 0)
); );
if (ObjectUtils.isNotNull(one) && one.getCodeStatus().equals("1")) { if (ObjectUtils.isNotNull(one) && one.getCodeStatus().equals("1")) {
return 8; return 8;
@ -2926,6 +2927,10 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
*/ */
@Override @Override
public R handlingPackages(StockupDTO stockupDTO) { public R handlingPackages(StockupDTO stockupDTO) {
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if (Func.isEmpty(myCurrentWarehouse)){
return R.data(403,"未授权!!!");
}
//查询包件是不是属于该货位 //查询包件是不是属于该货位
WarehouseUpdownGoodsEntity warehouseUpdownGoods = new WarehouseUpdownGoodsEntity(); WarehouseUpdownGoodsEntity warehouseUpdownGoods = new WarehouseUpdownGoodsEntity();
warehouseUpdownGoods.setAllocationId(stockupDTO.getAllocationId()); warehouseUpdownGoods.setAllocationId(stockupDTO.getAllocationId());
@ -2944,7 +2949,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
} }
DistributionStockListEntity distributionStockListEntity = distributionStockListMapper.selectOne(Wrappers.<DistributionStockListEntity>query().lambda() DistributionStockListEntity distributionStockListEntity = distributionStockListMapper.selectOne(Wrappers.<DistributionStockListEntity>query().lambda()
.eq(DistributionStockListEntity::getIncomingBatch, byId.getOrderCode()) .eq(DistributionStockListEntity::getIncomingBatch, byId.getOrderCode())
.eq(DistributionStockListEntity::getWarehouseId,stockupDTO.getWarehouseId()) .eq(DistributionStockListEntity::getWarehouseId,myCurrentWarehouse.getId())
); );
if(ObjectUtils.isNull(distributionStockListEntity)){ if(ObjectUtils.isNull(distributionStockListEntity)){
return R.fail("该包件不是库存品!"); return R.fail("该包件不是库存品!");
@ -2959,13 +2964,13 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
} }
Optional<DistributionReservationStocklistEntity> first = list.stream().filter(i -> i.getStocklistId().equals(distributionStockListEntity.getId())).findFirst(); Optional<DistributionReservationStocklistEntity> first = list.stream().filter(i -> i.getStocklistId().equals(distributionStockListEntity.getId())).findFirst();
if(first.isPresent()){ if(!first.isPresent()){
//没有一样的库存品数据 //没有一样的库存品数据
return R.fail("没有一样的库存品数据"); return R.fail("没有一样的库存品数据");
} }
//判断数量是否可以直接备货 //判断数量是否可以直接备货
DistributionReservationStocklistEntity reservationStocklistEntity1 = first.get(); DistributionReservationStocklistEntity reservationStocklistEntity1 = first.get();
if(reservationStocklistEntity1.getRealityNum() > reservationStocklistEntity1.getReservationNum()){ if(reservationStocklistEntity1.getRealityNum() < reservationStocklistEntity1.getReservationNum()){
return R.success("可以直接备货!"); return R.success("可以直接备货!");
} }
List<DistributionReservationStocklistEntity> keYi = new ArrayList<>(); //可以操作的库存品 List<DistributionReservationStocklistEntity> keYi = new ArrayList<>(); //可以操作的库存品
@ -2974,7 +2979,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
DistributionStockListEntity distributionStockListEntity1 = distributionStockListMapper.selectById(i.getStocklistId()); DistributionStockListEntity distributionStockListEntity1 = distributionStockListMapper.selectById(i.getStocklistId());
if(distributionStockListEntity1.getDescriptionGoods().equals(distributionStockListEntity.getDescriptionGoods()) if(distributionStockListEntity1.getDescriptionGoods().equals(distributionStockListEntity.getDescriptionGoods())
&& distributionStockListEntity1.getCargoNumber().equals(distributionStockListEntity.getCargoNumber()) && distributionStockListEntity1.getCargoNumber().equals(distributionStockListEntity.getCargoNumber())
&& i.getRealityNum() > i.getReservationNum() ){ && i.getRealityNum() < i.getReservationNum() ){
keYi.add(i); keYi.add(i);
} }
}); });
@ -2990,7 +2995,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
); );
//修改可以修改的库存平 //修改可以修改的库存平
Optional<DistributionReservationStocklistEntity> collect2 = keYi.stream().filter(i -> i.getStocklistId().equals(distributionStockListEntities.get(0).getId())).findFirst(); Optional<DistributionReservationStocklistEntity> collect2 = keYi.stream().filter(i -> i.getStocklistId().equals(distributionStockListEntities.get(0).getId())).findFirst();
if(!collect2.isPresent()){ if(collect2.isPresent()){
DistributionReservationStocklistEntity distributionReservationStocklistEntity = collect2.get(); DistributionReservationStocklistEntity distributionReservationStocklistEntity = collect2.get();
Integer reservationNum = distributionReservationStocklistEntity.getReservationNum() - 1; Integer reservationNum = distributionReservationStocklistEntity.getReservationNum() - 1;
@ -3033,9 +3038,16 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
//回复冻结数量 //回复冻结数量
DistributionStockListEntity distributionStockList = new DistributionStockListEntity(); DistributionStockListEntity distributionStockList = new DistributionStockListEntity();
distributionStockList.setId(distributionReservationStocklistEntity.getStocklistId()); distributionStockList.setId(distributionReservationStocklistEntity.getStocklistId());
distributionStockList.setQuantityStock(distributionStockListEntity.getQuantityStock() + 1);
distributionStockList.setQuantityOccupied(distributionStockListEntity.getQuantityOccupied() -1); distributionStockList.setQuantityOccupied(distributionStockListEntity.getQuantityOccupied() -1);
distributionStockListMapper.updateById(distributionStockList); distributionStockListMapper.updateById(distributionStockList);
//扣减新添加库存品数
DistributionStockListEntity newDistributionStockList = new DistributionStockListEntity();
newDistributionStockList.setId(reservationStocklistEntity1.getStocklistId());
newDistributionStockList.setQuantityOccupied(distributionStockListEntity.getQuantityOccupied() + 1);
distributionStockListMapper.updateById(newDistributionStockList);
} }
return R.success("成功!!"); return R.success("成功!!");
} }

Loading…
Cancel
Save