Browse Source

Merge remote-tracking branch 'origin/dev' into dev

master
zhaoqiaobo 9 months ago
parent
commit
51c8458b68
  1. 8
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseRetentionScanClient.java
  2. 15
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java
  3. 14
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java
  4. 195
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  5. 10
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseRetentionScanClient.java
  6. 9
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseRetentionRecordService.java
  7. 52
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java

8
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseRetentionScanClient.java

@ -17,6 +17,7 @@
package com.logpm.warehouse.feign; package com.logpm.warehouse.feign;
import com.logpm.warehouse.entity.WarehouseRetentionScanEntity; import com.logpm.warehouse.entity.WarehouseRetentionScanEntity;
import org.springblade.common.constant.ModuleNameConstant;
import org.springblade.core.mp.support.BladePage; import org.springblade.core.mp.support.BladePage;
import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity; import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
@ -26,6 +27,8 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/** /**
* 滞留扫描记录 Feign接口类 * 滞留扫描记录 Feign接口类
* *
@ -33,7 +36,7 @@ import org.springframework.web.bind.annotation.RequestParam;
* @since 2023-11-03 * @since 2023-11-03
*/ */
@FeignClient( @FeignClient(
value = "warehouseRetentionScan" value = ModuleNameConstant.APPLICATION_WAREHOUSE_NAME
) )
public interface IWarehouseRetentionScanClient { public interface IWarehouseRetentionScanClient {
@ -58,4 +61,7 @@ public interface IWarehouseRetentionScanClient {
@PostMapping(TOP+"/saveRetentionScan") @PostMapping(TOP+"/saveRetentionScan")
R saveRetentionScan(@RequestBody WarehouseRetentionScanEntity warehouseRetentionScanEntity); R saveRetentionScan(@RequestBody WarehouseRetentionScanEntity warehouseRetentionScanEntity);
@PostMapping(TOP+"/saveBatchRetentionScan")
R saveBatchRetentionScan(@RequestBody List<WarehouseRetentionScanEntity> warehouseRetentionScanEntities);
} }

15
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java

@ -541,22 +541,13 @@ public class DistributionDeliveryListController extends BladeController {
} }
@PostMapping("/retentionScan") @PostMapping("/retentionPC")
@ApiOperationSupport(order = 11) @ApiOperationSupport(order = 11)
public R retentionScan(@Valid @RequestBody DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) { public R retentionPC(@Valid @RequestBody DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
R r = distributionDeliveryListService.retentionScan(distrilbutionloadingscanDTO); R r = distributionDeliveryListService.retentionPC(distrilbutionloadingscanDTO);
return r; return r;
} }
@PostMapping("/retentionSave")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "PC取消配送任务")
public R retentionSave(@Valid @RequestBody WarehouseRetentionScanEntity warehouseRetentionScanEntity) {
R r = distributionDeliveryListService.retentionSave(warehouseRetentionScanEntity);
return r;
}
/** /**
* 导出数据 * 导出数据
*/ */

14
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java

@ -301,6 +301,13 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi
*/ */
R retentionScan(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO); R retentionScan(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO);
/**
* 扫描查询配送任务下的包件信息
* @param distrilbutionloadingscanDTO
* @return
*/
R retentionPC(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO);
/** /**
* 通过订单自编号进行配送任务零担订单信息查询 * 通过订单自编号进行配送任务零担订单信息查询
* @param distrilbutionloadingscanDTO * @param distrilbutionloadingscanDTO
@ -463,12 +470,7 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi
*/ */
void mallClientSignfor(String trainNumber, Long warehouseId, String orderPackageCode); void mallClientSignfor(String trainNumber, Long warehouseId, String orderPackageCode);
/**
* 滞留保存
* @param warehouseRetentionRecordEntity
* @return
*/
R retentionSave(WarehouseRetentionScanEntity warehouseRetentionScanEntity);

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

@ -6097,6 +6097,190 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
return R.data(retentionScanVos); return R.data(retentionScanVos);
} }
@Override
public R retentionPC(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
if (distrilbutionloadingscanDTO.getBarcode().isEmpty()) {
log.error("参数缺失Barcode:{}", distrilbutionloadingscanDTO.getBarcode());
return R.fail(403, "数据错误");
}
//查询包件
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if (Func.isEmpty(myCurrentWarehouse)) {
return R.fail(403, "未授权!!!");
}
List<String> barcode = Func.toStrList(distrilbutionloadingscanDTO.getBarcode());
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.in(DistributionParcelListEntity::getOrderPackageCode, barcode)
.eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId())
);
if (!parcelListEntities.isEmpty()) {
boolean flag = parcelListEntities.stream().allMatch(a -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(a.getOrderPackageLoadingStatus()) && !OrderPackageStatusConstant.yiqianshou.getValue().equals(a.getOrderPackageStatus()));
if (!flag){
String str = parcelListEntities.stream().filter(a -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(a.getOrderPackageLoadingStatus()) && !OrderPackageStatusConstant.yiqianshou.getValue().equals(a.getOrderPackageStatus())).map(DistributionParcelListEntity::getOrderCode).distinct().collect(Collectors.joining(","));
return R.fail(str+"不满足滞留");
}
}
Integer retentionType = distrilbutionloadingscanDTO.getRetentionType();
Long deliveryId = null;
if (Func.isEmpty(distrilbutionloadingscanDTO.getDeliveryId())) {
//不在车次任务内进行扫描
//查询此包件属于哪个车次
List<DistributionLoadscanEntity> loadscanEntityList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda()
.in(DistributionLoadscanEntity::getOrderPackageCode, barcode)
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
.ne(DistributionLoadscanEntity::getSignforState, LoadScanSigningStatusConstant.yiqianshou.getValue())
);
if (loadscanEntityList.isEmpty()) {
//查询库存品
List<DistributionLoadscaninvnEntity> loadscaninvnEntityList = distributionLoadscaninvnService.list(Wrappers.<DistributionLoadscaninvnEntity>query().lambda()
.in(DistributionLoadscaninvnEntity::getOrderPackageCode, barcode)
.ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
.ne(DistributionLoadscaninvnEntity::getSignforState, LoadScanSigningStatusConstant.yiqianshou.getValue())
);
if (!loadscaninvnEntityList.isEmpty()) {
deliveryId = loadscaninvnEntityList.stream().map(DistributionLoadscaninvnEntity::getDeliveryId).distinct().collect(Collectors.toList()).get(0);
} else {
deliveryId = null;
}
} else {
deliveryId = loadscanEntityList.stream().map(DistributionLoadscanEntity::getDeliveryId).distinct().collect(Collectors.toList()).get(0);
}
if (deliveryId == null) {
return Resp.scanFail("此包件无装车记录", "此包件无装车记录");
}
} else {
deliveryId = distrilbutionloadingscanDTO.getDeliveryId();
}
DistributionDeliveryListEntity deliveryListEntity = this.getById(deliveryId);
List<DistributionRetentionScanVo> retentionScanVos = new ArrayList<>();
switch (retentionType) {
case 1:
//包件--库存品 和包件
List<DistributionLoadscanEntity> loadscanEntityList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda()
.eq(DistributionLoadscanEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode())
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
.eq(DistributionLoadscanEntity::getWarehouseId, myCurrentWarehouse.getId())
);
if (Func.isNotEmpty(loadscanEntityList)) {
if (loadscanEntityList.size() == 1) {
//包件存在装车才能进行滞留
//通过配送任务和包件确定预约信息
DistributionLoadscanEntity distributionLoadscanEntity = loadscanEntityList.get(0);
// if (2 == distributionLoadscanEntity.getIsAbnormalLoading()) {
// //异常装车未进行审核
// return Resp.scanFail("包件存在异常操作,请先处理异常", "包件存在异常操作,请先处理异常");
// }
if (2 == distributionLoadscanEntity.getSignforState()) {
log.info("滞留扫描失败,包件已签收>>>>>>>>>>>>>>>>>>>>>>>reservationId:{},packageCode:{}", distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getOrderPackageCode());
return Resp.scanFail("包件已签收", "包件已签收");
}
DistributionRetentionScanVo retentionScanVo = baseMapper.selectRetentionPackage(distributionLoadscanEntity.getOrderPackageCode(), distributionLoadscanEntity.getDeliveryId(), myCurrentWarehouse.getId());
if (Func.isEmpty(retentionScanVo)){
//不存在计划之中属于异常驳回的情况
retentionScanVo = new DistributionRetentionScanVo();
retentionScanVo.setDeliveryId(distributionLoadscanEntity.getDeliveryId());
retentionScanVo.setOrderId(distributionLoadscanEntity.getOrderId());
retentionScanVo.setReservationId(distributionLoadscanEntity.getReservationId());
retentionScanVo.setTrainNumber(distributionLoadscanEntity.getTrainNumber());
retentionScanVo.setConditions(1);
retentionScanVo.setScanType(1);
retentionScanVo.setRetentionQuantity(1);
retentionScanVo.setOrderPackageId(distributionLoadscanEntity.getPackageId());
//查询包件
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(distributionLoadscanEntity.getPackageId());
retentionScanVo.setOrderCode(parcelListEntity.getOrderCode());
retentionScanVo.setOrderPackageStatus(parcelListEntity.getOrderPackageStatus());
retentionScanVo.setOrderPackageCode(parcelListEntity.getOrderPackageCode());
retentionScanVo.setWaybillNumber(parcelListEntity.getWaybillNumber());
retentionScanVo.setWaybillId(parcelListEntity.getWaybillId());
DistributionReservationEntity reservationEntity = distributionReservationMapper.selectById(distributionLoadscanEntity.getReservationId());
retentionScanVo.setReservationCode(reservationEntity.getReservationCode());
}
retentionScanVo.setWarehouseId(myCurrentWarehouse.getId());
retentionScanVo.setWarehouseName(myCurrentWarehouse.getName());
retentionScanVo.setLoadingId(distributionLoadscanEntity.getId());
retentionScanVos.add(retentionScanVo);
}
} else {
List<DistributionLoadscaninvnEntity> loadscaninvnEntityList = distributionLoadscaninvnService.list(Wrappers.<DistributionLoadscaninvnEntity>query().lambda()
.eq(DistributionLoadscaninvnEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode())
.ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
.eq(DistributionLoadscaninvnEntity::getWarehouseId, myCurrentWarehouse.getId())
);
if (Func.isNotEmpty(loadscaninvnEntityList)) {
if (loadscaninvnEntityList.size() == 1) {
//库存品存在装车数据才能进行滞留操作
DistributionLoadscaninvnEntity loadscaninvnEntity = loadscaninvnEntityList.get(0);
if (2 == loadscaninvnEntity.getSignforState()) {
return Resp.scanFail("包件已签收", "包件已签收");
}
DistributionRetentionScanVo inventoryPackage = baseMapper.selectRetentionInventoryPackage(loadscaninvnEntity.getOrderPackageCode(), loadscaninvnEntity.getDeliveryId());
inventoryPackage.setWarehouseId(myCurrentWarehouse.getId());
inventoryPackage.setWarehouseName(myCurrentWarehouse.getName());
inventoryPackage.setLoadingId(loadscaninvnEntity.getId());
retentionScanVos.add(inventoryPackage);
}
}
}
break;
case 2:
List<DistributionRetentionScanVo> distributionRetentionScanVos = baseMapper.selectRetentionZeroPackage(distrilbutionloadingscanDTO.getDeliveryId(), distrilbutionloadingscanDTO.getBarcode());
if (Func.isNotEmpty(distributionRetentionScanVos)) {
retentionScanVos.addAll(distributionRetentionScanVos);
}
}
if (!Func.isEmpty(retentionScanVos)) {
//查询此包件是否存在有异常未处理的数据
List<DistributionLoadscanAbnormalEntity> list = distributionLoadscanAbnormalService.list(Wrappers.<DistributionLoadscanAbnormalEntity>query().lambda()
.eq(DistributionLoadscanAbnormalEntity::getPackageCode, distrilbutionloadingscanDTO.getBarcode())
.eq(DistributionLoadscanAbnormalEntity::getAuditingStatus, LoadingAbnormalAuditingStatusConstant.daishenhe.getValue())
);
if (!list.isEmpty()) {
//存在异常进行是否均完成审核判断
Long finalDeliveryId = deliveryId;
boolean AuditingStatusFlag = list.stream().anyMatch(f-> finalDeliveryId.equals(f.getDeliveryListId()));
if (AuditingStatusFlag){
return Resp.scanFail("请先处理包件异常操作", "请先处理包件异常操作");
}
}
//如果均不存在则就该判断该货物是否属于当前的配送任务,如果属于则是未装车,如果不属于则此码无效
List<DistributionParcelListEntity> distributionParcelListEntities = baseMapper.selectPackageListByDeliveryListId(deliveryListEntity.getId());
boolean flag = false;
if (Func.isNotEmpty(distributionParcelListEntities)) {
List<DistributionParcelListEntity> isHave = distributionParcelListEntities.stream().filter(p -> p.getOrderPackageCode().equals(distrilbutionloadingscanDTO.getBarcode())).collect(Collectors.toList());
if (Func.isNotEmpty(isHave)) {
flag = isHave.size() == 1;
//判断是否存在有待处理的异常
}
} else {
List<DisStockListDetailEntity> disStockListDetailEntities = baseMapper.selectInventoryListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId());
if (Func.isNotEmpty(disStockListDetailEntities)) {
List<DisStockListDetailEntity> isHaveinven = disStockListDetailEntities.stream().filter(inven -> Func.isNotEmpty(inven.getStockPackageCode()) && inven.getStockPackageCode().equals(distrilbutionloadingscanDTO.getBarcode())).collect(Collectors.toList());
if (Func.isNotEmpty(isHaveinven)) {
flag = isHaveinven.size() == 1;
}
}
}
List<WarehouseRetentionScanEntity> warehouseRetentionScanEntities = new ArrayList<>();
if (!retentionScanVos.isEmpty()) {
retentionScanVos.forEach(r->{
WarehouseRetentionScanEntity warehouseRetntionScanEntity = Func.copy(r, WarehouseRetentionScanEntity.class);
warehouseRetentionScanEntities.add(warehouseRetntionScanEntity);
});
}
if (!warehouseRetentionScanEntities.isEmpty()) {
//进行批量滞留
R r = warehouseRetentionScanClient.saveBatchRetentionScan(warehouseRetentionScanEntities);
if (!Objects.equals(r.getCode(),200)){
throw new RuntimeException(r.getMsg());
}
}
}
return R.success("滞留操作成功");
}
@Override @Override
public R getZeroPackageInfo(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) { public R getZeroPackageInfo(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) {
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = baseMapper.selectReservationStockByDeliveryId(distrilbutionloadingscanDTO.getDeliveryId()); List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = baseMapper.selectReservationStockByDeliveryId(distrilbutionloadingscanDTO.getDeliveryId());
@ -7787,16 +7971,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
} }
@Override
public R retentionSave(WarehouseRetentionScanEntity warehouseRetentionScanEntity) {
R r = warehouseRetentionScanClient.saveRetentionScan(warehouseRetentionScanEntity);
Integer code = r.getCode();
Integer aaa = new Integer(200);
if (code.equals(aaa)){
return R.success("滞留成功");
}
return R.fail("滞留失败");
}
@Override @Override

10
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseRetentionScanClient.java

@ -30,6 +30,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
/** /**
* 滞留扫描记录 Feign实现类 * 滞留扫描记录 Feign实现类
* *
@ -43,6 +45,8 @@ public class WarehouseRetentionScanClient implements IWarehouseRetentionScanClie
private final IWarehouseRetentionScanService warehouseRetentionScanService; private final IWarehouseRetentionScanService warehouseRetentionScanService;
private final IWarehouseRetentionRecordService warehouseRetentionRecordService;
@Override @Override
@GetMapping(TOP) @GetMapping(TOP)
public BladePage<WarehouseRetentionScanEntity> retentionScanTop(Integer current, Integer size) { public BladePage<WarehouseRetentionScanEntity> retentionScanTop(Integer current, Integer size) {
@ -58,4 +62,10 @@ public class WarehouseRetentionScanClient implements IWarehouseRetentionScanClie
return R.status(warehouseRetentionScanService.save(warehouseRetentionScanEntity)); return R.status(warehouseRetentionScanService.save(warehouseRetentionScanEntity));
} }
@Override
public R saveBatchRetentionScan(List<WarehouseRetentionScanEntity> warehouseRetentionScanEntities) {
return warehouseRetentionRecordService.saveBatchRetentionList(warehouseRetentionScanEntities);
}
} }

9
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseRetentionRecordService.java

@ -23,6 +23,7 @@ import com.logpm.warehouse.dto.RetentionDTO;
import com.logpm.warehouse.dto.WarehouseRetentionRecordDTO; import com.logpm.warehouse.dto.WarehouseRetentionRecordDTO;
import com.logpm.warehouse.dto.WarehouseRetentionScanDTO; import com.logpm.warehouse.dto.WarehouseRetentionScanDTO;
import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity; import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity;
import com.logpm.warehouse.entity.WarehouseRetentionScanEntity;
import com.logpm.warehouse.excel.WarehouseRetentionRecordExcel; import com.logpm.warehouse.excel.WarehouseRetentionRecordExcel;
import com.logpm.warehouse.vo.WarehouseRetentionRecordVO; import com.logpm.warehouse.vo.WarehouseRetentionRecordVO;
import com.logpm.warehouse.vo.WarehouseRetentionScanVO; import com.logpm.warehouse.vo.WarehouseRetentionScanVO;
@ -98,4 +99,12 @@ public interface IWarehouseRetentionRecordService extends BaseService<WarehouseR
* @return * @return
*/ */
List<WarehouseRetentionScanVO> getRetentionPackageByType(@Param("retentionId") Long retentionId,@Param("type") Integer type); List<WarehouseRetentionScanVO> getRetentionPackageByType(@Param("retentionId") Long retentionId,@Param("type") Integer type);
/**
* 后台批量进行滞留
* @param warehouseRetentionScanEntities
* @return
*/
R saveBatchRetentionList(List<WarehouseRetentionScanEntity> warehouseRetentionScanEntities);
} }

52
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java

@ -155,9 +155,9 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
@Override @Override
public WarehouseRetentionRecordVO initRetentionList(Long deliveryId) { public WarehouseRetentionRecordVO initRetentionList(Long deliveryId) {
WarehouseRetentionRecordVO warehouseRetentionRecordVO = new WarehouseRetentionRecordVO(); WarehouseRetentionRecordVO warehouseRetentionRecordVO = new WarehouseRetentionRecordVO();
if (Func.isEmpty(deliveryId)){ if (Func.isEmpty(deliveryId)) {
//外层列表进行滞留 //外层列表进行滞留
}else { } else {
List<WarehouseRetentionScanEntity> retentionScanEntityList = warehouseRetentionScanService.list(Wrappers.<WarehouseRetentionScanEntity>query().lambda() List<WarehouseRetentionScanEntity> retentionScanEntityList = warehouseRetentionScanService.list(Wrappers.<WarehouseRetentionScanEntity>query().lambda()
.eq(WarehouseRetentionScanEntity::getDeliveryId, deliveryId) .eq(WarehouseRetentionScanEntity::getDeliveryId, deliveryId)
@ -297,7 +297,7 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
} }
//统计该滞留任务的包件数量 //统计该滞留任务的包件数量
int retentionTotal = warehouseRetentionScanService.list(Wrappers.<WarehouseRetentionScanEntity>query().lambda() int retentionTotal = warehouseRetentionScanService.list(Wrappers.<WarehouseRetentionScanEntity>query().lambda()
.eq(WarehouseRetentionScanEntity::getDeliveryId, warehouseRetentionScanDTOS.getDeliveryId())).stream().mapToInt(WarehouseRetentionScanEntity::getRetentionQuantity) .eq(WarehouseRetentionScanEntity::getDeliveryId, warehouseRetentionScanDTOS.getDeliveryId())).stream().mapToInt(WarehouseRetentionScanEntity::getRetentionQuantity)
.sum(); .sum();
if (saveFlah.get()) { if (saveFlah.get()) {
return Resp.scanSuccess("操作成功", "共计滞留" + retentionTotal + "件"); return Resp.scanSuccess("操作成功", "共计滞留" + retentionTotal + "件");
@ -381,4 +381,50 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
return warehouseRetentionScanVOS; return warehouseRetentionScanVOS;
} }
@Override
@Transactional
public R saveBatchRetentionList(List<WarehouseRetentionScanEntity> warehouseRetentionScanEntities) {
AtomicBoolean saveFlah = new AtomicBoolean(false);
if (!warehouseRetentionScanEntities.isEmpty()) {
List<Long> deliveryIds = warehouseRetentionScanEntities.stream().map(WarehouseRetentionScanEntity::getDeliveryId).distinct().collect(Collectors.toList());
//查询出该滞留任务是否存在
List<WarehouseRetentionScanEntity> retentionScanEntityList = warehouseRetentionScanService.list(Wrappers.<WarehouseRetentionScanEntity>query().lambda()
.in(WarehouseRetentionScanEntity::getDeliveryId, deliveryIds)
);
if (!retentionScanEntityList.isEmpty()) {
String collect = retentionScanEntityList.stream().filter(f ->
warehouseRetentionScanEntities.stream().map(w -> w.getOrderPackageCode())
.collect(Collectors.toList())
.contains(f.getOrderPackageCode()))
.map(WarehouseRetentionScanEntity::getOrderPackageCode).collect(Collectors.joining(","));
if (Objects.isNull(collect)){
return R.fail(collect+"重复滞留");
}
}
for (WarehouseRetentionScanEntity warehouseRetentionScanEntity : warehouseRetentionScanEntities) {
//进行滞留逻辑处理
switch (warehouseRetentionScanEntity.getConditions()) {
case 1:
//订制品
saveFlah.set(distributionDeliveryListClient.retentionDeliveryReservationPackage(warehouseRetentionScanEntity.getDeliveryId(), warehouseRetentionScanEntity.getReservationId(), warehouseRetentionScanEntity.getOrderPackageId(), warehouseRetentionScanEntity.getConditions()));
break;
case 2:
//库存品
saveFlah.set(distributionDeliveryListClient.retentionDeliveryReservationInventory(warehouseRetentionScanEntity.getDeliveryId(), warehouseRetentionScanEntity.getReservationId(), warehouseRetentionScanEntity.getOrderPackageId()));
break;
case 3:
//零担
saveFlah.set(distributionDeliveryListClient.retentionDeliveryReservationZeroPackage(warehouseRetentionScanEntity.getDeliveryId(), warehouseRetentionScanEntity.getReservationId(), warehouseRetentionScanEntity.getOrderPackageId(), warehouseRetentionScanEntity.getRetentionQuantity(), warehouseRetentionScanEntity.getOrderId()));
break;
default:
log.error(">>>>> rs.getConditions()={}", warehouseRetentionScanEntity.getConditions());
}
//进行滞留信息的保存
warehouseRetentionScanService.save(Func.copy(warehouseRetentionScanEntity, WarehouseRetentionScanEntity.class));
}
}
return R.success("操作成功");
}
} }

Loading…
Cancel
Save