|
|
|
@ -76,8 +76,6 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
private final IDistributionReservationStocklistService distributionReservationStocklistService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<DistributionReservationVO> selectDistrbutionReservationPage(IPage<DistributionReservationVO> page, DistributionReservationVO distrbutionReservation) { |
|
|
|
|
return page.setRecords(baseMapper.selectDistrbutionReservationPage(page, distrbutionReservation)); |
|
|
|
@ -129,7 +127,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
//构建预约单
|
|
|
|
|
DistributionReservationEntity reservationEntity = new DistributionReservationEntity(); |
|
|
|
|
Func.copy(distributionReservationDTO, reservationEntity); |
|
|
|
|
//新建预约单为待确认状态
|
|
|
|
|
reservationEntity.setReservationStatus("1"); |
|
|
|
|
//新建预约单订单处于未备货状态
|
|
|
|
|
reservationEntity.setStockupStatus("1"); |
|
|
|
|
this.save(reservationEntity); |
|
|
|
|
//获取新增预约信息的编号
|
|
|
|
@ -147,9 +147,16 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
s.setState(2); |
|
|
|
|
stockArticleCount.getAndAdd(s.getReservationNum()); |
|
|
|
|
distributionStockArticleService.updateById(s); |
|
|
|
|
//拼接订单自编号
|
|
|
|
|
arrayList.add(s.getOrderSelfNumbering()); |
|
|
|
|
//订单增值服务费
|
|
|
|
|
initTotal.accumulateAndGet(new BigDecimal(s.getFee().toString()), BigDecimal::add); |
|
|
|
|
//订单协商费用
|
|
|
|
|
initTotal.accumulateAndGet(new BigDecimal(s.getRate().toString()), BigDecimal::add); |
|
|
|
|
//订单到付费用
|
|
|
|
|
initTotal.accumulateAndGet(new BigDecimal(s.getCollectFee().toString()), BigDecimal::add); |
|
|
|
|
//仓储费用
|
|
|
|
|
initTotal.accumulateAndGet(new BigDecimal(s.getStorageFee().toString()), BigDecimal::add); |
|
|
|
|
Long stockArticleId = s.getId(); |
|
|
|
|
DistributionReservationStockarticleEntity distributionReservationStockarticleEntity = new DistributionReservationStockarticleEntity(); |
|
|
|
|
distributionReservationStockarticleEntity.setReservationId(reservationId); |
|
|
|
@ -182,6 +189,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
//统计数量
|
|
|
|
|
BigDecimal fee = initTotal.get().add(reservationEntity.getOtherFee()); |
|
|
|
|
reservationEntity.setFee(fee); |
|
|
|
|
int count = stockArticleCount.get() + stockListCount.get(); |
|
|
|
|
reservationEntity.setReservationNum(count); |
|
|
|
|
distributionReservationMapper.updateById(reservationEntity); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
@ -273,9 +282,6 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
log.error("预约参数错误+{" + ids + "}"); |
|
|
|
|
return R.fail("预约信息错误!!!"); |
|
|
|
|
} |
|
|
|
|
String text = "4564654654"; |
|
|
|
|
String[] split = text.split(","); |
|
|
|
|
|
|
|
|
|
//判断是自主配送还是三方配送
|
|
|
|
|
String tripartiteSource = (String) deliveryInfo.get("tripartiteSource"); |
|
|
|
|
boolean result = false; |
|
|
|
@ -409,9 +415,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
List<DistributionReservationStocklistEntity> reservationStocklistEntityList = distributionReservationStocklistService.getBaseMapper().selectList(w); |
|
|
|
|
if (!Func.isEmpty(reservationStockarticleEntityList)) { |
|
|
|
|
List<DistributionStockArticleEntity> stockArticleEntityList = new ArrayList<>(); |
|
|
|
|
reservationStockarticleEntityList.forEach(a->{ |
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(a.getStockarticleId()); |
|
|
|
|
stockArticleEntity.setReservationNum(a.getReservationNum()); |
|
|
|
|
reservationStockarticleEntityList.forEach(a1 -> { |
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(a1.getStockarticleId()); |
|
|
|
|
stockArticleEntity.setReservationNum(a1.getReservationNum()); |
|
|
|
|
stockArticleEntityList.add(stockArticleEntity); |
|
|
|
|
}); |
|
|
|
|
//查询出 库存信息
|
|
|
|
@ -419,9 +425,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
} |
|
|
|
|
if (!Func.isEmpty(reservationStocklistEntityList)) { |
|
|
|
|
List<DistributionStockListEntity> stockArticleEntityList = new ArrayList<>(); |
|
|
|
|
reservationStocklistEntityList.forEach(a->{ |
|
|
|
|
DistributionStockListEntity stockListEntity = distributionStockListService.getById(a.getStocklistId()); |
|
|
|
|
stockListEntity.setReservationNum(a.getReservationNum()); |
|
|
|
|
reservationStocklistEntityList.forEach(a2 -> { |
|
|
|
|
DistributionStockListEntity stockListEntity = distributionStockListService.getById(a2.getStocklistId()); |
|
|
|
|
stockListEntity.setReservationNum(a2.getReservationNum()); |
|
|
|
|
stockArticleEntityList.add(stockListEntity); |
|
|
|
|
}); |
|
|
|
|
//查询出 库存信息
|
|
|
|
@ -429,4 +435,82 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
} |
|
|
|
|
return R.data(reservationVO); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@Transactional |
|
|
|
|
public boolean updateReservation(DistributionReservationDTO distributionReservationDTO) { |
|
|
|
|
//修改预约信息
|
|
|
|
|
if (Func.isEmpty(distributionReservationDTO)) { |
|
|
|
|
log.error("参数异常+{" + distributionReservationDTO + "}"); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
//删除原有
|
|
|
|
|
DistributionReservationEntity distributionReservationEntity = this.getById(distributionReservationDTO.getId()); |
|
|
|
|
Func.copy(distributionReservationDTO, distributionReservationEntity); |
|
|
|
|
QueryWrapper<DistributionReservationStockarticleEntity> q = Condition.getQueryWrapper(new HashMap<String, Object>(), DistributionReservationStockarticleEntity.class); |
|
|
|
|
q.lambda().eq(DistributionReservationStockarticleEntity::getReservationId, distributionReservationEntity.getId()); |
|
|
|
|
QueryWrapper<DistributionReservationStocklistEntity> w = Condition.getQueryWrapper(new HashMap<String, Object>(), DistributionReservationStocklistEntity.class); |
|
|
|
|
q.lambda().eq(DistributionReservationStockarticleEntity::getReservationId, distributionReservationEntity.getId()); |
|
|
|
|
//查询已有的中间表信息
|
|
|
|
|
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationStockarticleService.getBaseMapper().selectList(q); |
|
|
|
|
List<DistributionReservationStocklistEntity> reservationStocklistEntityList = distributionReservationStocklistService.getBaseMapper().selectList(w); |
|
|
|
|
if (!Func.isEmpty(reservationStockarticleEntityList)) { |
|
|
|
|
//对已有预约信息的订单包件数量进行清理
|
|
|
|
|
reservationStockarticleEntityList.forEach(s1 -> { |
|
|
|
|
int delete = distributionReservationStockarticleService.getBaseMapper().delete(q); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (!Func.isEmpty(reservationStocklistEntityList)) { |
|
|
|
|
//对已有预约信息的订单包件数量进行清理
|
|
|
|
|
reservationStocklistEntityList.forEach(r1 -> { |
|
|
|
|
int delete = distributionReservationStocklistService.getBaseMapper().delete(w); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
//包件数量累加
|
|
|
|
|
AtomicInteger count = new AtomicInteger(); |
|
|
|
|
//计算总费用
|
|
|
|
|
AtomicReference<BigDecimal> initTotal = new AtomicReference<>(BigDecimal.ZERO); |
|
|
|
|
//订单自编号拼接
|
|
|
|
|
HashSet<String> hashSet = new HashSet<>(); |
|
|
|
|
List<DistributionStockArticleEntity> stockArticleList = distributionReservationDTO.getStockArticleList(); |
|
|
|
|
if (!Func.isEmpty(stockArticleList)) { |
|
|
|
|
//这里判断修改内容是否存在订单信息,如果存在则进行中间表数据的重新插入
|
|
|
|
|
stockArticleList.forEach(s -> { |
|
|
|
|
DistributionReservationStockarticleEntity distributionReservationStockarticleEntity = new DistributionReservationStockarticleEntity(); |
|
|
|
|
//构建预约订单中间表信息
|
|
|
|
|
distributionReservationStockarticleEntity.setReservationNum(s.getReservationNum()); |
|
|
|
|
distributionReservationStockarticleEntity.setStockarticleId(s.getId()); |
|
|
|
|
distributionReservationStockarticleEntity.setReservationId(distributionReservationEntity.getId()); |
|
|
|
|
distributionReservationStockarticleService.save(distributionReservationStockarticleEntity); |
|
|
|
|
//统计订单包件数量
|
|
|
|
|
count.getAndAdd(s.getReservationNum()); |
|
|
|
|
//订单到付费用
|
|
|
|
|
initTotal.getAndAccumulate(new BigDecimal(s.getCollectFee().toString()), BigDecimal::add); |
|
|
|
|
//订单仓储费
|
|
|
|
|
initTotal.getAndAccumulate(new BigDecimal(s.getStorageFee().toString()), BigDecimal::add); |
|
|
|
|
//协商费用
|
|
|
|
|
initTotal.getAndAccumulate(new BigDecimal(s.getRate().toString()), BigDecimal::add); |
|
|
|
|
hashSet.add(s.getOrderSelfNumbering()); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
List<DistributionStockListEntity> inventoryList = distributionReservationDTO.getInventoryList(); |
|
|
|
|
if (!Func.isEmpty(inventoryList)) { |
|
|
|
|
//重新构建备货信息
|
|
|
|
|
inventoryList.forEach(i -> { |
|
|
|
|
DistributionReservationStocklistEntity distributionReservationStocklistEntity = new DistributionReservationStocklistEntity(); |
|
|
|
|
distributionReservationStocklistEntity.setReservationId(distributionReservationEntity.getId()); |
|
|
|
|
distributionReservationStocklistEntity.setReservationNum(i.getReservationNum()); |
|
|
|
|
distributionReservationStocklistEntity.setStocklistId(i.getId()); |
|
|
|
|
distributionReservationStocklistService.save(distributionReservationStocklistEntity); |
|
|
|
|
count.getAndAdd(i.getReservationNum()); |
|
|
|
|
hashSet.add(i.getOrderSelfNumbering()); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
String orderId = String.join(",", hashSet); |
|
|
|
|
distributionReservationEntity.setFee(initTotal.get()); |
|
|
|
|
distributionReservationEntity.setReservationNum(count.get()); |
|
|
|
|
distributionReservationEntity.setStockArticleId(orderId); |
|
|
|
|
distributionReservationMapper.updateById(distributionReservationEntity); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|