|
|
|
@ -22,18 +22,18 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
import com.logpm.distribution.bean.Res; |
|
|
|
|
import com.logpm.distribution.bean.Resp; |
|
|
|
|
import com.logpm.distribution.dto.DistributionAddvalueDTO; |
|
|
|
|
import com.logpm.distribution.dto.DistributionAddvaluePackageDTO; |
|
|
|
|
import com.logpm.distribution.dto.app.DistributionAppAddvalueDTO; |
|
|
|
|
import com.logpm.distribution.entity.*; |
|
|
|
|
import com.logpm.distribution.excel.DistributionAddvalueExcel; |
|
|
|
|
import com.logpm.distribution.mapper.*; |
|
|
|
|
import com.logpm.distribution.service.IDistributionAddvalueDetailService; |
|
|
|
|
import com.logpm.distribution.service.IDistributionAddvaluePackageService; |
|
|
|
|
import com.logpm.distribution.service.IDistributionAddvalueService; |
|
|
|
|
import com.logpm.distribution.service.IDistributionStockListService; |
|
|
|
|
import com.logpm.distribution.service.*; |
|
|
|
|
import com.logpm.distribution.vo.DistributionAddvaluePackageVO; |
|
|
|
|
import com.logpm.distribution.vo.DistributionAddvalueVO; |
|
|
|
|
import com.logpm.distribution.vo.app.DistributionAppAddvalueVO; |
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.springblade.common.constant.loading.LoadingStatusConstant; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
|
import org.springblade.core.tool.utils.Func; |
|
|
|
@ -72,6 +72,7 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
|
|
|
|
|
private final IDistributionAddvalueDetailService distributionAddvalueDetailService; |
|
|
|
|
private final DistributionAddvalueDetailMapper distributionAddvalueDetailMapper; |
|
|
|
|
private final DistributionAddvaluePackageMapper distributionAddvaluePackageMapper; |
|
|
|
|
private final IDistributionLoadscanService distributionLoadscanService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -189,17 +190,29 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
|
|
|
|
|
@Override |
|
|
|
|
@Transactional |
|
|
|
|
public R saveAddvalueInfo(DistributionAppAddvalueDTO distributionAppAddvalueDTO) { |
|
|
|
|
List<DistributionAddvaluePackageEntity> packageEntityList = distributionAppAddvalueDTO.getPackageEntityList(); |
|
|
|
|
List<DistributionAddvaluePackageDTO> packageEntityList = distributionAppAddvalueDTO.getPackageEntityList().stream().filter(p->p.getQuantity()>0).collect(Collectors.toList()); |
|
|
|
|
//查询是否重复添加
|
|
|
|
|
DistributionAddvalueEntity addvalueEntity = distributionAddvalueMapper.selectOne(Wrappers.<DistributionAddvalueEntity>query().lambda() |
|
|
|
|
.eq(DistributionAddvalueEntity::getAddvalueId, distributionAppAddvalueDTO.getAddvalueType()) |
|
|
|
|
.eq(DistributionAddvalueEntity::getRefId, distributionAppAddvalueDTO.getReservationId()) |
|
|
|
|
.eq(DistributionAddvalueEntity::getRefType, 1)); |
|
|
|
|
if (Func.isNotEmpty(addvalueEntity)){ |
|
|
|
|
return Resp.scanFail("操作失败", "存在该类型增值服务项,如需更改请编辑"); |
|
|
|
|
} |
|
|
|
|
if (Func.isEmpty(packageEntityList)) { |
|
|
|
|
return Resp.scanFail("请添加包件", "请添加包件"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
DistributionAddvalueDetailEntity distributionAddvalueDetailEntity = new DistributionAddvalueDetailEntity(); |
|
|
|
|
if (Func.isEmpty(distributionAppAddvalueDTO.getNum())) { |
|
|
|
|
return Resp.scanFail("添加失败", "错误的包件数量"); |
|
|
|
|
}else { |
|
|
|
|
distributionAddvalueDetailEntity.setNum(distributionAppAddvalueDTO.getNum()); |
|
|
|
|
} |
|
|
|
|
DistributionReservationEntity reservationEntity = distributionReservationMapper.selectById(distributionAppAddvalueDTO.getReservationId()); |
|
|
|
|
if (Func.isEmpty(reservationEntity)){ |
|
|
|
|
return Resp.scanFail("添加失败", "客户信息错误"); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
// 上楼 超区 平移 搬运 分拣 专车
|
|
|
|
|
switch (distributionAppAddvalueDTO.getAddvalueType()) { |
|
|
|
|
case "1": |
|
|
|
@ -223,14 +236,14 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
|
|
|
|
|
distributionAddvalueDetailEntity.setDistance(distributionAppAddvalueDTO.getDistance()); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
// case "4" :
|
|
|
|
|
// case "5":
|
|
|
|
|
// if (Func.isEmpty(distributionAppAddvalueDTO.getNum())) {
|
|
|
|
|
// return Resp.scanFail("添加失败", "请输入件数");
|
|
|
|
|
// } else {
|
|
|
|
|
// distributionAddvalueDetailEntity.setNum(distributionAppAddvalueDTO.getNum());
|
|
|
|
|
// }
|
|
|
|
|
// break;
|
|
|
|
|
case "4": |
|
|
|
|
case "5": |
|
|
|
|
if (Func.isEmpty(distributionAppAddvalueDTO.getNum())) { |
|
|
|
|
return Resp.scanFail("添加失败", "请输入件数"); |
|
|
|
|
} else { |
|
|
|
|
distributionAddvalueDetailEntity.setNum(packageEntityList.stream().mapToInt(DistributionAddvaluePackageEntity::getQuantity).sum()); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case "6": |
|
|
|
|
if (Func.isEmpty(distributionAppAddvalueDTO.getFee())) { |
|
|
|
|
return Resp.scanFail("添加失败", "请输入件数"); |
|
|
|
@ -243,7 +256,7 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
|
|
|
|
|
} |
|
|
|
|
DistributionAddvalueEntity distributionAddvalueEntity = new DistributionAddvalueEntity(); |
|
|
|
|
distributionAddvalueEntity.setAddvalueId(distributionAppAddvalueDTO.getAddvalueType()); |
|
|
|
|
distributionAddvalueEntity.setCode(Func.random(13, RandomType.INT)); |
|
|
|
|
distributionAddvalueEntity.setCode(reservationEntity.getReservationCode()); |
|
|
|
|
distributionAddvalueEntity.setRefType(1); |
|
|
|
|
distributionAddvalueEntity.setRefId(distributionAppAddvalueDTO.getReservationId()); |
|
|
|
|
distributionAddvalueEntity.setDeliveryListId(distributionAppAddvalueDTO.getDeliveryId()); |
|
|
|
@ -255,20 +268,32 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
|
|
|
|
|
distributionAddvalueDetailEntity.setRecordType(1); |
|
|
|
|
} |
|
|
|
|
distributionAddvalueDetailService.save(distributionAddvalueDetailEntity); |
|
|
|
|
packageEntityList.stream().forEach(p->p.setAddvalueDetailId(distributionAddvalueDetailEntity.getId())); |
|
|
|
|
distributionAddvaluePackageService.saveBatch(packageEntityList); |
|
|
|
|
List<DistributionAddvaluePackageEntity> addvaluePackageEntities = new ArrayList<>(); |
|
|
|
|
packageEntityList.stream().forEach(p->{p.setAddvalueDetailId(distributionAddvalueDetailEntity.getId());p.setQuantity(p.getZeroQuantity());addvaluePackageEntities.add(Func.copy(p,DistributionAddvaluePackageEntity.class));}); |
|
|
|
|
distributionAddvaluePackageService.saveBatch(addvaluePackageEntities); |
|
|
|
|
return Resp.scanSuccess("添加成功","添加成功"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public List<DistributionAddvaluePackageEntity> getAllPackageList(DistributionAppAddvalueDTO distributionAppAddvalueDTO) { |
|
|
|
|
public List<DistributionAddvaluePackageVO> getAllPackageList(DistributionAppAddvalueDTO distributionAppAddvalueDTO) { |
|
|
|
|
// List<DistributionAddvaluePackageEntity> packageEntityList = distributionAppAddvalueDTO.getPackageEntityList();
|
|
|
|
|
List<Long> packageListIds = distributionAppAddvalueDTO.getPackageListIds(); |
|
|
|
|
Long reservationId = distributionAppAddvalueDTO.getReservationId(); |
|
|
|
|
List<DistributionAddvaluePackageEntity> parcelListEntities = distributionReservationMapper.selectAppPackageListByReservationId(reservationId); |
|
|
|
|
List<DistributionAddvaluePackageEntity> zeroPackageList = distributionReservationMapper.selectAppZeroPackageListByReservationId(reservationId); |
|
|
|
|
List<DistributionAddvaluePackageEntity> detailEntities = distributionReservationMapper.selectAppInventoryListByReservation(reservationId); |
|
|
|
|
List<DistributionAddvaluePackageVO> parcelListEntities = distributionReservationMapper.selectAppPackageListByReservationId(reservationId); |
|
|
|
|
List<DistributionAddvaluePackageVO> zeroPackageList = distributionReservationMapper.selectAppZeroPackageListByReservationId(reservationId); |
|
|
|
|
List<DistributionAddvaluePackageVO> detailEntities = distributionReservationMapper.selectAppInventoryListByReservation(reservationId); |
|
|
|
|
if (Func.isNotEmpty(zeroPackageList)){ |
|
|
|
|
zeroPackageList.forEach(zp->{ |
|
|
|
|
//查询最大输入数量
|
|
|
|
|
DistributionLoadscanEntity loadscanEntities = distributionLoadscanService.getOne(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getReservationId, distributionAppAddvalueDTO.getReservationId()).eq(DistributionLoadscanEntity::getPackageId, zp.getPackageId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); |
|
|
|
|
zp.setMaxQuantity(0); |
|
|
|
|
if (Func.isNotEmpty(loadscanEntities)){ |
|
|
|
|
zp.setMaxQuantity(loadscanEntities.getReceivedQuantity()); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
parcelListEntities.addAll(detailEntities); |
|
|
|
|
parcelListEntities.addAll(zeroPackageList); |
|
|
|
|
if (Func.isEmpty(parcelListEntities)) { |
|
|
|
|
log.error("################该客户下包件信息:{}", parcelListEntities); |
|
|
|
|
log.error("################该客户下库存品包件信息:{}", detailEntities); |
|
|
|
@ -277,6 +302,9 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
|
|
|
|
|
if (Func.isNotEmpty(parcelListEntities)){ |
|
|
|
|
parcelListEntities.stream().forEach(p->{p.setRecordType("1");}); |
|
|
|
|
} |
|
|
|
|
if (Func.isNotEmpty(zeroPackageList)){ |
|
|
|
|
zeroPackageList.stream().forEach(p->{p.setRecordType("1");}); |
|
|
|
|
} |
|
|
|
|
// List<DistributionAddvaluePackageEntity> entityList = null;
|
|
|
|
|
// if (Func.isNotEmpty(packageEntityList)) {
|
|
|
|
|
// entityList = parcelListEntities.stream().filter(p1 -> packageEntityList.stream().noneMatch(p2 -> p2.equals(p1.getId()))).collect(Collectors.toList());
|
|
|
|
@ -296,7 +324,7 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
|
|
|
|
|
@Override |
|
|
|
|
@Transactional |
|
|
|
|
public R updateAddvalueInfo(DistributionAppAddvalueDTO distributionAppAddvalueDTO) { |
|
|
|
|
List<DistributionAddvaluePackageEntity> packageEntityList = distributionAppAddvalueDTO.getPackageEntityList(); |
|
|
|
|
List<DistributionAddvaluePackageDTO> packageEntityList = distributionAppAddvalueDTO.getPackageEntityList(); |
|
|
|
|
//这里需要查询出原来的增值服务项详情
|
|
|
|
|
DistributionAddvalueDetailEntity distributionAddvalueDetailEntity = new DistributionAddvalueDetailEntity(); |
|
|
|
|
// DistributionAddvalueVO addvalueVO = distributionAddvalueMapper.selectReservationAddvalue(distributionAppAddvalueDTO.getReservationId(), distributionAppAddvalueDTO.getAddvalueType());
|
|
|
|
@ -404,8 +432,21 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
|
|
|
|
|
String packageListIds = addvalueVO.getPackageListIds(); |
|
|
|
|
if (Func.isNotEmpty(packageListIds)){ |
|
|
|
|
List<Long> longs = Func.toLongList(packageListIds); |
|
|
|
|
List<DistributionAddvaluePackageEntity> distributionAddvaluePackageEntities = distributionAddvaluePackageService.list(Wrappers.<DistributionAddvaluePackageEntity>query().lambda().in(DistributionAddvaluePackageEntity::getPackageId,longs).eq(DistributionAddvaluePackageEntity::getAddvalueDetailId,addvalueVO.getAddvalueDetailId())); |
|
|
|
|
addvalueVO.setPackageEntityList(distributionAddvaluePackageEntities); |
|
|
|
|
List<DistributionAddvaluePackageEntity> distributionAddvaluePackageEntities = distributionAddvaluePackageService.list(Wrappers.<DistributionAddvaluePackageEntity>query().lambda() |
|
|
|
|
.in(DistributionAddvaluePackageEntity::getPackageId,longs) |
|
|
|
|
.eq(DistributionAddvaluePackageEntity::getAddvalueDetailId,addvalueVO.getAddvalueDetailId())); |
|
|
|
|
List<DistributionAddvaluePackageVO> addvaluePackageVOS = new ArrayList<>(); |
|
|
|
|
distributionAddvaluePackageEntities.stream().forEach(p->{ |
|
|
|
|
DistributionAddvaluePackageVO addvaluePackageVO = Func.copy(p, DistributionAddvaluePackageVO.class); |
|
|
|
|
//查询当前最多增值服务数
|
|
|
|
|
DistributionLoadscanEntity loadscanEntity = distributionLoadscanService.getOne(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getReservationId, distributionAppAddvalueDTO.getReservationId()).eq(DistributionLoadscanEntity::getPackageId, p.getPackageId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); |
|
|
|
|
addvaluePackageVO.setMaxQuantity(0); |
|
|
|
|
if (Func.isNotEmpty(loadscanEntity)){ |
|
|
|
|
addvaluePackageVO.setMaxQuantity(loadscanEntity.getReceivedQuantity()); |
|
|
|
|
} |
|
|
|
|
addvaluePackageVOS.add(addvaluePackageVO); |
|
|
|
|
}); |
|
|
|
|
addvalueVO.setPackageEntityList(addvaluePackageVOS); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return R.data(addvalueVO); |
|
|
|
@ -414,7 +455,14 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl<Distributio
|
|
|
|
|
@Override |
|
|
|
|
public R addvalueInfo(DistributionAppAddvalueDTO distributionAppAddvalueDTO) { |
|
|
|
|
List<DistributionAddvalueVO> addvalueInfo= distributionAddvalueMapper.addvalueInfo(distributionAppAddvalueDTO.getReservationId()); |
|
|
|
|
addvalueInfo.stream().filter(a->Func.isNotEmpty(a.getPackageListIds())).forEach(a-> a.setPackageEntityList(distributionAddvaluePackageService.listByIds(Func.toLongList(a.getPackageListIds())))); |
|
|
|
|
addvalueInfo.stream().filter(a->Func.isNotEmpty(a.getPackageListIds())).forEach(a-> { |
|
|
|
|
List<DistributionAddvaluePackageEntity> addvaluePackageEntities = distributionAddvaluePackageService.listByIds(Func.toLongList(a.getPackageListIds())); |
|
|
|
|
List<DistributionAddvaluePackageVO> addvaluePackageVOS = new ArrayList<>(); |
|
|
|
|
addvaluePackageEntities.stream().forEach(p->{ |
|
|
|
|
addvaluePackageVOS.add(Func.copy(p,DistributionAddvaluePackageVO.class)); |
|
|
|
|
}); |
|
|
|
|
a.setPackageEntityList(addvaluePackageVOS); |
|
|
|
|
}); |
|
|
|
|
return R.data(addvalueInfo); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|