Browse Source

装车明细接口调整

training
kilo 1 year ago
parent
commit
4f3b243a11
  1. 5
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionStockListEntity.java
  2. 12
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppDeliveryListVO.java
  3. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionDeliveryAppController.java
  4. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java
  5. 20
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java
  6. 141
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

5
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionStockListEntity.java

@ -39,6 +39,11 @@ import java.util.List;
@EqualsAndHashCode(callSuper = true)
public class DistributionStockListEntity extends TenantEntity {
/**
* 预留1
*/
@ApiModelProperty(value = "预留1")
private Long id;
/**
* 预留1
*/

12
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppDeliveryListVO.java

@ -37,28 +37,28 @@ public class DistributionAppDeliveryListVO extends DistributionDeliveryListEntit
/**
* 装车件数
*/
@ApiModelProperty(value = "装车件数")
@ApiModelProperty(value = "计划装车件数")
private Integer loadingNub;
/**
* 装车订单数
*/
@ApiModelProperty(value = "装车订单数")
@ApiModelProperty(value = "完成装车订单数")
private Integer loadOrdNub;
/**
* 签收件数
*/
@ApiModelProperty(value = "签收件数")
@ApiModelProperty(value = "实际装车件数")
private Integer signNub;
/**
* 签收完成件数
*/
@ApiModelProperty(value = "签收完成件数")
@ApiModelProperty(value = "装车完成件数")
private Integer signNubSr;
/**
* 装车客户数
*/
@ApiModelProperty(value = "装车客户数")
@ApiModelProperty(value = "完成装车客户数")
private Integer loadCusNub;
/**
@ -136,6 +136,8 @@ public class DistributionAppDeliveryListVO extends DistributionDeliveryListEntit
private List<DistributionAppReservationVO> reservationList;
/**
* 包条数据
*/

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionDeliveryAppController.java

@ -112,8 +112,8 @@ public class DistributionDeliveryAppController {
@GetMapping("/wrap")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "查看配送明细", notes = "DistributionAppDeliveryListDTO")
public R<IPage<DistributionAppParcelListVO>> wrap(DistributionAppDeliveryListDTO distributionAppDeliveryListDTO, Query query) {
IPage<DistributionAppParcelListVO> page = distributionDeliveryListService.selectDistributionAppDeliverywrap(Condition.getPage(query), distributionAppDeliveryListDTO);
public R<DistributionAppDeliveryListVO> wrap(DistributionAppDeliveryListDTO distributionAppDeliveryListDTO) {
DistributionAppDeliveryListVO page = distributionDeliveryListService.selectDistributionAppDeliverywrap(distributionAppDeliveryListDTO);
return R.data(page);
}
@ -123,8 +123,8 @@ public class DistributionDeliveryAppController {
@GetMapping("/wrapIn")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "查看配送明细", notes = "DistributionAppDeliveryListDTO")
public R<IPage<DistributionAppStockArticleVO>> wrapIn(DistributionAppDeliveryListDTO distributionAppDeliveryListDTO, Query query) {
IPage<DistributionAppStockArticleVO> page = distributionDeliveryListService.selectDistributionAppDeliverywrapIn(Condition.getPage(query), distributionAppDeliveryListDTO);
public R<List<DisStockListDetailVO>> wrapIn(DistributionAppDeliveryListDTO distributionAppDeliveryListDTO) {
List<DisStockListDetailVO> page = distributionDeliveryListService.selectDistributionAppDeliverywrapIn(distributionAppDeliveryListDTO);
return R.data(page);
}

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

@ -139,7 +139,7 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi
* @param distributionAppDeliveryListDTO
* @return
*/
IPage<DistributionAppParcelListVO> selectDistributionAppDeliverywrap(IPage<DistributionAppParcelListVO> page, DistributionAppDeliveryListDTO distributionAppDeliveryListDTO);
DistributionAppDeliveryListVO selectDistributionAppDeliverywrap( DistributionAppDeliveryListDTO distributionAppDeliveryListDTO);
/**
* 查询配送任务详情
* @param id
@ -151,7 +151,7 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi
*/
IPage<DistributionAppReservationVO> getAppDeliveryreservationListPage(IPage<DistributionAppReservationVO> page,DistributionAppDeliveryListDTO distributionDeliveryList);
IPage<DistributionAppStockArticleVO> selectDistributionAppDeliverywrapIn(IPage<DistributionAppStockArticleVO> page, DistributionAppDeliveryListDTO distributionAppDeliveryListDTO);
List<DisStockListDetailVO> selectDistributionAppDeliverywrapIn( DistributionAppDeliveryListDTO distributionAppDeliveryListDTO);
/**
* 修改配送任务

20
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java

@ -75,6 +75,8 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
private IDistributionStockArticleService distributionStockArticleService;
private IDistributionStockListService distributionStockListService;
@Override
public IPage<DistributionDeliveryInfoVO> selectDistributionDeliveryInfoPage(IPage<DistributionDeliveryInfoVO> page, DistributionDeliveryInfoVO distributionDeliveryInfo) {
List<DistributionDeliveryInfoVO> distributionDeliveryInfoVOS = baseMapper.selectDistributionDeliveryInfoPage(page, distributionDeliveryInfo);
@ -393,8 +395,24 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib
@Override
public List<DisStockListDetailVO> selectDistributionAppDeliveryInventory( DistributionAppDeliveryListDTO distributionAppDeliveryListDTO) {
List<DisStockListDetailEntity> inventoryList = distributionReservationMapper.selectInventoryListByReservation(Long.parseLong(distributionAppDeliveryListDTO.getReservationId()));
if (Func.isEmpty(inventoryList)){
log.error("##########查询该客户库存品信息为null");
return null;
}
List<Long> stockListIds = inventoryList.stream().map(DisStockListDetailEntity::getStockListId).distinct().collect(Collectors.toList());
List<DistributionStockListEntity> distributionStockListEntities = distributionStockListService.listByIds(stockListIds);
Map<Long, DistributionStockListEntity> stockListMap = distributionStockListEntities.stream().collect(Collectors.toMap(DistributionStockListEntity::getId, Function.identity(), (k1, k2) -> k2));
List<DisStockListDetailVO> disStockListDetailVOS = DistributionDisStockListWrapper.build().listVO(inventoryList);
disStockListDetailVOS.stream().forEach(sd->{
if (Func.isNotEmpty(stockListMap.get(sd.getStockListId()))){
DistributionStockListEntity distributionStockListEntity = stockListMap.get(sd.getStockListId());
sd.setMarketName(distributionStockListEntity.getMarketName());
sd.setDescriptionGoods(distributionStockListEntity.getDescriptionGoods());
sd.setCargoUnit(distributionStockListEntity.getCargoUnit());
sd.setCargoNorms(distributionStockListEntity.getCargoNorms());
sd.setCargoNumber(distributionStockListEntity.getCargoNumber());
}
});
// List<DistributionAppStockArticleVO> distributionAppStockArticleVOS = baseMapper.selectDistributionAppDeliveryInventoryPage(page, distributionAppDeliveryListDTO);
return disStockListDetailVOS;
}

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

@ -41,10 +41,7 @@ import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.*;
import com.logpm.distribution.vo.app.*;
import com.logpm.distribution.vo.print.PrintPreviewVO;
import com.logpm.distribution.wrapper.DistributionDeliveryListWrapper;
import com.logpm.distribution.wrapper.DistributionParcelListWrapper;
import com.logpm.distribution.wrapper.DistributionReservationWrapper;
import com.logpm.distribution.wrapper.DistributionStockArticleWrapper;
import com.logpm.distribution.wrapper.*;
import com.logpm.warehouse.entity.WarehouseTrayGoodsEntity;
import com.logpm.warehouse.feign.IWarehouseTrayTypeClient;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
@ -89,6 +86,7 @@ import org.springframework.data.redis.connection.ReactiveListCommands;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
@ -141,6 +139,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
private final IBasicdataWarehouseClient warehouseClient;
private final IDisStockListDetailService disStockListDetailService;
private final DistributionStockListMapper distributionStockListMapper;
private final IDistributionStockListService distributionStockListService;
private final IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
private final IBasicPrintTemplateClient basicPrintTemplateClient;
private final IWarehouseTrayTypeClient warehouseTrayTypeClient;
@ -1249,6 +1248,16 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
if (Func.isEmpty(reservationStockarticleEntityList)) {
log.error("####################reservationStockarticleEntityList维护数据异常,reservationID:{}", distrilbutionloadingscanDTO.getReservationId());
}
List<DisStockListDetailEntity> stockListDetailEntityList = disStockListDetailService.list(Wrappers.<DisStockListDetailEntity>query().lambda()
.eq(DisStockListDetailEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId())
.ne(DisStockListDetailEntity::getStockPackageStatus, ReservationInventoryStatusConstant.quxiao.getValue()));
boolean inventoryLoadingFlag = stockListDetailEntityList.stream().allMatch(i -> i.getStockPackageStatus().equals(InventoryLoadingStatusConstant.yizhuangche.getValue()));
boolean inventoryStockUpFlag = stockListDetailEntityList.stream().anyMatch(l -> Func.isEmpty(l.getStockPackageCode()));
if (inventoryStockUpFlag) {
log.error("##################库存品未备货");
return Resp.scanFail("操作失败","存在库存品未备货");
// return R.fail("该客户存在库存品暂未备货 一键装车失败!!!");
}
Map<String, List<DistributionReservationStockarticleEntity>> allStockArticle = reservationStockarticleEntityList.stream().filter(f -> Func.isNotEmpty(f.getIsZero())).collect(Collectors.groupingBy(DistributionReservationStockarticleEntity::getIsZero));
DistributionDeliverySelfEntity finalDistributionDeliverySelfEntity = distributionDeliverySelfEntity;
allStockArticle.forEach((k, v) -> {
@ -1443,16 +1452,16 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
break;
}
});
List<DisStockListDetailEntity> stockListDetailEntityList = disStockListDetailService.list(Wrappers.<DisStockListDetailEntity>query().lambda()
.eq(DisStockListDetailEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId())
.ne(DisStockListDetailEntity::getStockPackageStatus, ReservationInventoryStatusConstant.quxiao.getValue()));
boolean inventoryLoadingFlag = stockListDetailEntityList.stream().allMatch(i -> i.getStockPackageStatus().equals(InventoryLoadingStatusConstant.yizhuangche.getValue()));
boolean inventoryStockUpFlag = stockListDetailEntityList.stream().anyMatch(l -> Func.isEmpty(l.getStockPackageCode()));
if (inventoryStockUpFlag) {
log.error("##################库存品未备货");
throw new RuntimeException("该客户存在库存品暂未备货 一键装车失败!!!");
// return R.fail("该客户存在库存品暂未备货 一键装车失败!!!");
}
// List<DisStockListDetailEntity> stockListDetailEntityList = disStockListDetailService.list(Wrappers.<DisStockListDetailEntity>query().lambda()
// .eq(DisStockListDetailEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId())
// .ne(DisStockListDetailEntity::getStockPackageStatus, ReservationInventoryStatusConstant.quxiao.getValue()));
// boolean inventoryLoadingFlag = stockListDetailEntityList.stream().allMatch(i -> i.getStockPackageStatus().equals(InventoryLoadingStatusConstant.yizhuangche.getValue()));
// boolean inventoryStockUpFlag = stockListDetailEntityList.stream().anyMatch(l -> Func.isEmpty(l.getStockPackageCode()));
// if (inventoryStockUpFlag) {
// log.error("##################库存品未备货");
// return Resp.scanFail("操作失败","存在库存品未备货");
//// return R.fail("该客户存在库存品暂未备货 一键装车失败!!!");
// }
if (!inventoryLoadingFlag) {
//存在库存品海为进行装车
for (DisStockListDetailEntity disStockListDetailEntity : stockListDetailEntityList) {
@ -2464,9 +2473,27 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
}
@Override
public IPage<DistributionAppStockArticleVO> selectDistributionAppDeliverywrapIn(IPage<DistributionAppStockArticleVO> page, DistributionAppDeliveryListDTO distributionAppDeliveryListDTO) {
List<DistributionAppStockArticleVO> distributionAppStockListVOS = baseMapper.selectListbyink(page, distributionAppDeliveryListDTO.getId());
return page.setRecords(distributionAppStockListVOS);
public List<DisStockListDetailVO> selectDistributionAppDeliverywrapIn(DistributionAppDeliveryListDTO distributionAppDeliveryListDTO) {
List<DisStockListDetailEntity> detailEntities = baseMapper.selectInventoryListByDeliveryListId(distributionAppDeliveryListDTO.getId());
if (Func.isEmpty(detailEntities)){
return null;
}
List<Long> stockListIds = detailEntities.stream().map(DisStockListDetailEntity::getStockListId).distinct().collect(Collectors.toList());
List<DistributionStockListEntity> distributionStockListEntities = distributionStockListService.listByIds(stockListIds);
Map<Long, DistributionStockListEntity> stockListMap = distributionStockListEntities.stream().collect(Collectors.toMap(DistributionStockListEntity::getId, Function.identity(), (k1, k2) -> k2));
List<DisStockListDetailVO> disStockListDetailVOS = DistributionDisStockListWrapper.build().listVO(detailEntities);
disStockListDetailVOS.stream().forEach(sd->{
if (Func.isNotEmpty(stockListMap.get(sd.getStockListId()))){
DistributionStockListEntity distributionStockListEntity = stockListMap.get(sd.getStockListId());
sd.setMarketName(distributionStockListEntity.getMarketName());
sd.setDescriptionGoods(distributionStockListEntity.getDescriptionGoods());
sd.setCargoUnit(distributionStockListEntity.getCargoUnit());
sd.setCargoNorms(distributionStockListEntity.getCargoNorms());
sd.setCargoNumber(distributionStockListEntity.getCargoNumber());
}
});
return disStockListDetailVOS;
}
@Override
@ -3619,7 +3646,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
@Override
public IPage<DistributionAppParcelListVO> selectDistributionAppDeliverywrap(IPage<DistributionAppParcelListVO> page, DistributionAppDeliveryListDTO distributionAppDeliveryListDTO) {
public DistributionAppDeliveryListVO selectDistributionAppDeliverywrap( DistributionAppDeliveryListDTO distributionAppDeliveryListDTO) {
//查询配送
// DistributionDeliveryListEntity distributionDeliveryListEntity = baseMapper.selectById(distributionAppDeliveryListDTO.getId());
// DistributionAppDeliveryListVO distributionAppDeliveryListVO = new DistributionAppDeliveryListVO();
@ -3633,10 +3660,84 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
// for (DistributionAppStockArticleVO distributionAppStockArticleVO : distributionAppStockArticleVOS) {
// if (distributionAppStockArticleVO.getLoadingNub() >=distributionAppStockArticleVO.getReservationNum()) {ordCount +=1;}
// }
DistributionDeliveryListEntity distributionDeliveryListEntity = baseMapper.selectById(distributionAppDeliveryListDTO.getId());
DistributionAppDeliveryListVO distributionAppDeliveryListVO = Func.copy(distributionDeliveryListEntity, DistributionAppDeliveryListVO.class);
//查询该配送所有包条
List<DistributionAppParcelListVO> parcelListVOS = baseMapper.selectListbypack(page, distributionAppDeliveryListDTO);
List<DistributionAppParcelListVO> appParcelListVOS = new ArrayList<>();
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = baseMapper.selectReservationStockByDeliveryId(distributionAppDeliveryListDTO.getId());
List<DistributionReservationEntity> reservationEntityList = baseMapper.selectReservationByDeliveryListId(distributionAppDeliveryListDTO.getId());
if (Func.isEmpty(reservationEntityList)){
log.error("###################查询配送预约信息异常,deliveryID:{}",distributionAppDeliveryListDTO.getId());
return null;
}
if (Func.isEmpty(reservationStockarticleEntityList)){
return null;
}
//计划客户数
Long customersNumber = reservationStockarticleEntityList.stream().map(DistributionReservationStockarticleEntity::getReservationId).count();
Long orderNumber = reservationStockarticleEntityList.stream().map(DistributionReservationStockarticleEntity::getStockArticleId).count();
int signNub = reservationEntityList.stream().mapToInt(DistributionReservationEntity::getReservationNum).sum() + reservationEntityList.stream().mapToInt(DistributionReservationEntity::getReservationStockListNum).sum();
//维护计划数量
distributionAppDeliveryListVO.setCustomersNumber(customersNumber.intValue());
distributionAppDeliveryListVO.setOrderNumber(orderNumber.intValue());
distributionAppDeliveryListVO.setSignNub(signNub);
//维护完成情况
Long loadCusNub = reservationEntityList.stream().filter(r -> r.getLoadingStatus().equals(ReservationLoadingStatusConstant.yizhuangche.getValue())).count();
distributionAppDeliveryListVO.setLoadCusNub(loadCusNub.intValue());
AtomicInteger loadOrdNub = new AtomicInteger();
AtomicInteger signNubSr = new AtomicInteger();
// distributionLoadscanService.list(Wrappers.query().lambda().eq(DistributionLoadscanEntity::get))
reservationStockarticleEntityList.forEach(rs->{
if (rs.getIsZero().equals(IsOrNoConstant.no.getValue())){
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageByReservationAndStockArticle(rs.getReservationId(), rs.getStockArticleId());
List<DistributionLoadscanEntity> packageLoadingList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda()
.eq(DistributionLoadscanEntity::getDeliveryId, distributionAppDeliveryListDTO.getId())
.eq(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
.eq(DistributionLoadscanEntity::getReservationId, rs.getReservationId())
.in(DistributionLoadscanEntity::getPackageId, parcelListEntityList.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList())));
if (Func.isNotEmpty(packageLoadingList)){
signNubSr.getAndAdd(packageLoadingList.stream().mapToInt(DistributionLoadscanEntity::getLoadedNub).sum());
}
boolean packageFlag = parcelListEntityList.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (packageFlag){
//完成订单累加
loadOrdNub.getAndIncrement();
}
for (DistributionParcelListEntity parcelListEntity : parcelListEntityList) {
DistributionAppParcelListVO appParcelListVO = Func.copy(parcelListEntity, DistributionAppParcelListVO.class);
appParcelListVOS.add(appParcelListVO);
}
}else if (rs.getIsZero().equals(IsOrNoConstant.yes.getValue())){
List<DistributionParcelNumberVO> parcelNumberVOS = distributionReservationMapper.selectReservationZeroOrderDetail(rs.getStockArticleId(), rs.getReservationId());
List<DistributionLoadscanEntity> loadscanEntities = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda()
.eq(DistributionLoadscanEntity::getDeliveryId, distributionAppDeliveryListDTO.getId())
.eq(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
.eq(DistributionLoadscanEntity::getReservationId, rs.getReservationId())
.in(DistributionLoadscanEntity::getPackageId, parcelNumberVOS.stream().map(DistributionParcelNumberVO::getParcelListId).collect(Collectors.toList())));
if (Func.isNotEmpty(loadscanEntities)){
//统计装车数量
signNubSr.getAndAdd(loadscanEntities.stream().mapToInt(DistributionLoadscanEntity::getLoadedNub).sum());
int zeroPackageLoadingNum = loadscanEntities.stream().mapToInt(DistributionLoadscanEntity::getLoadedNub).sum();
if (rs.getReservationNum() == zeroPackageLoadingNum){
loadOrdNub.getAndIncrement();
}
}
parcelNumberVOS.forEach(p->{
DistributionAppParcelListVO appParcelListVO = Func.copy(p, DistributionAppParcelListVO.class);
appParcelListVOS.add(appParcelListVO);
});
}else {
log.error("############reservation_stockarticle表isZero字段维护错误,reservationId:{}",rs.getReservationId());
}
});
return page.setRecords(parcelListVOS);
distributionAppDeliveryListVO.setLoadOrdNub(loadOrdNub.get());
distributionAppDeliveryListVO.setSignNubSr(signNubSr.get());
// List<DistributionAppParcelListVO> parcelListVOS = baseMapper.selectListbypack(page, distributionAppDeliveryListDTO);
return distributionAppDeliveryListVO;
}
@Override

Loading…
Cancel
Save