|
|
|
@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
|
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; |
|
|
|
|
import com.logpm.distribution.dto.*; |
|
|
|
|
import com.logpm.distribution.entity.*; |
|
|
|
@ -31,6 +32,7 @@ import org.springblade.common.constant.DistributionTypeConstant;
|
|
|
|
|
import org.springblade.common.constant.delivery.DeliveryStatusConstant; |
|
|
|
|
import org.springblade.common.constant.order.OrderReservationStatusConstant; |
|
|
|
|
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant; |
|
|
|
|
import org.springblade.common.constant.orderpackage.OrderPackageStockupStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationDeliveryTypeConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationStatusConstant; |
|
|
|
|
import org.springblade.common.constant.reservation.ReservationStockupStatusConstant; |
|
|
|
@ -220,13 +222,17 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
|
|
|
|
|
List<String> arrayList = new ArrayList<>(); |
|
|
|
|
//服务号拼接
|
|
|
|
|
HashSet serviceNumber = new HashSet(); |
|
|
|
|
// HashSet serviceNumber = new HashSet();
|
|
|
|
|
HashSet<String> serviceNumber = new HashSet<>(); |
|
|
|
|
|
|
|
|
|
AtomicReference<BigDecimal> initTotal = new AtomicReference<>(BigDecimal.ZERO); |
|
|
|
|
|
|
|
|
|
//存在订单构建预约订单关联信息
|
|
|
|
|
if (!Func.isEmpty(stockArticleList)) { |
|
|
|
|
//存在订单的情况下才会对预约和包件的关系进行维护
|
|
|
|
|
//选择了订单但是未进行包件的选择,默认选择了订单下的所有在库包件
|
|
|
|
|
stockArticleList.forEach(s -> { |
|
|
|
|
serviceNumber.add(s.getServiceNumber()); |
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = Func.copy(s, DistributionStockArticleEntity.class); |
|
|
|
|
DistributionReservationStockarticleEntity distributionReservationStockarticleEntity = new DistributionReservationStockarticleEntity(); |
|
|
|
|
//预约订单数量
|
|
|
|
@ -263,7 +269,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
distributionReservationPackageEntity.setReservationId(reservationId); |
|
|
|
|
distributionReservationPackageEntity.setParceListId(p.getId()); |
|
|
|
|
distributionReservationPackageEntity.setStockArticleId(s.getId()); |
|
|
|
|
distributionReservationPackageMapper.insert(distributionReservationPackageEntity); |
|
|
|
|
distributionReservationPackageService.save(distributionReservationPackageEntity); |
|
|
|
|
packageNum.getAndAdd(p.getQuantity()); |
|
|
|
|
p.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
// p.setBrandId(p.getBrandId());
|
|
|
|
@ -280,23 +286,17 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
s.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
}else { |
|
|
|
|
s.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue()); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
distributionReservationStockarticleEntity.setReservationNum(packageNum.get()); |
|
|
|
|
//订单无数据源,不需要进行包件信息维护
|
|
|
|
|
//修改订单状态为已预约
|
|
|
|
|
// TODO 需要根据订单预约的包件数量是否等于订单总包件数量,存入 部分预约和已预约的状态值
|
|
|
|
|
// s.setReservationStatus(30+"");
|
|
|
|
|
// s.setOrderStatus(ServiceConstant.ORDER_STATE_ALREADY_RESERVATION);
|
|
|
|
|
|
|
|
|
|
stockArticleCount.getAndAdd(s.getReservationNum()); |
|
|
|
|
// DistributionStockArticleEntity stockArticleEntity = Func.copy(s, DistributionStockArticleEntity.class);
|
|
|
|
|
distributionStockArticleService.updateById(s); |
|
|
|
|
//拼接订单自编号
|
|
|
|
|
arrayList.add(s.getOrderCode()); |
|
|
|
|
//拼接服务号
|
|
|
|
|
serviceNumber.add(s.getServiceNumber()); |
|
|
|
|
// //订单增值服务费
|
|
|
|
|
// initTotal.accumulateAndGet(new BigDecimal(s.getFee().toString()), BigDecimal::add);
|
|
|
|
|
// //订单协商费用
|
|
|
|
@ -356,8 +356,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
//设置预约为市配
|
|
|
|
|
reservationEntity.setDeliveryType(DistributionTypeConstant.shipie.getValue()); |
|
|
|
|
//设置预约配送方式为送货
|
|
|
|
|
reservationEntity.setDeliveryWay(ServiceConstant.DELIVERY_GOODS_WAY); |
|
|
|
|
reservationEntity.setServiceNumber(String.join(",", serviceNumber)); |
|
|
|
|
reservationEntity.setDeliveryWay(ReservationDeliveryTypeConstant.songhuo.getValue()); |
|
|
|
|
String s = String.join(",", serviceNumber); |
|
|
|
|
reservationEntity.setServiceNumber(s); |
|
|
|
|
reservationEntity.setReservationNum(stockArticleCount.get() ); |
|
|
|
|
reservationEntity.setReservationStockListNum(stockListCount.get() ); |
|
|
|
|
distributionReservationMapper.updateById(reservationEntity); |
|
|
|
@ -401,14 +402,12 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
List<Long> reservationIds = Func.toLongList(ids); |
|
|
|
|
for (Long reservationId : reservationIds) { |
|
|
|
|
DistributionReservationEntity reservationEntity = distributionReservationMapper.selectById(reservationId); |
|
|
|
|
if (Func.isEmpty(reservationEntity) || !reservationEntity.getReservationStatus().equals("2")) { |
|
|
|
|
if (Func.isEmpty(reservationEntity) || !reservationEntity.getReservationStatus().equals("20")) { |
|
|
|
|
log.error("reservationEntity参数异常:+{" + reservationEntity + "}"); |
|
|
|
|
return R.fail("预约信息状态异常!!!"); |
|
|
|
|
} |
|
|
|
|
//修改预约备货状态
|
|
|
|
|
reservationEntity.setStockupStatus(ReservationStockupStatusConstant.daibeihuo.getValue()); |
|
|
|
|
// reservationEntity.setGoodsAreaName(stockupAreaName);
|
|
|
|
|
// reservationEntity.setGoodsAreaId(Long.parseLong(goddsAreaId));
|
|
|
|
|
result = SqlHelper.retBool(distributionReservationMapper.updateById(reservationEntity)); |
|
|
|
|
//构建中间表信息
|
|
|
|
|
DistributionStockupInfoEntity reservationStockupEntity = new DistributionStockupInfoEntity(); |
|
|
|
@ -430,11 +429,12 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public List<DistributionReservationEntity> getReservationAddr(String ids) { |
|
|
|
|
public IPage<DistributionReservationEntity> getReservationAddr(String ids) { |
|
|
|
|
if (Func.isBlank(ids)) { |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
String[] split = ids.split(","); |
|
|
|
|
|
|
|
|
|
List<DistributionReservationEntity> distributionReservationVOS = new ArrayList<>(); |
|
|
|
|
if (split.length == 1) { |
|
|
|
|
DistributionReservationEntity reservationEntity = this.getBaseMapper().selectById(ids); |
|
|
|
@ -445,7 +445,10 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
distributionReservationVOS.add(reservationEntity); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return distributionReservationVOS; |
|
|
|
|
|
|
|
|
|
Page<DistributionReservationEntity> distributionReservationVOPage = new Page<>(); |
|
|
|
|
Page<DistributionReservationEntity> resultPage = distributionReservationVOPage.setRecords(distributionReservationVOS); |
|
|
|
|
return resultPage; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -463,33 +466,37 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
DistributionStockupDTO stockup = allocationDTO.getStockup(); |
|
|
|
|
DistributionStockupEntity stockupentity = Func.copy(stockup, DistributionStockupEntity.class); |
|
|
|
|
List<Long> ids = Func.toLongList(reservationIds); |
|
|
|
|
boolean flag = Func.isEmpty(stockupentity); |
|
|
|
|
DistributionStockupEntity distributionStockupEntity = Func.copy(stockup, DistributionStockupEntity.class); |
|
|
|
|
Integer stockListTotal = distributionReservationStocklistMapper.getStockListTotal(ids); |
|
|
|
|
if (!flag){ |
|
|
|
|
BladeUser user = AuthUtil.getUser(); |
|
|
|
|
distributionStockupEntity.setStockupUser(user.getUserName()); |
|
|
|
|
distributionStockupEntity.setAssignStatus(StockAssignStatusConstant.yizhipai.getValue()); |
|
|
|
|
//这里判断是否选择了司机
|
|
|
|
|
if (Func.isEmpty(stockupentity.getForkliftId())){ |
|
|
|
|
//这里就是米有选择司机
|
|
|
|
|
distributionStockupEntity.setAssignStatus(StockAssignStatusConstant.weizhipai.getValue()); |
|
|
|
|
distributionStockupEntity.setStockupStatus(StockupStatusConstant.weibeihuo.getValue()); |
|
|
|
|
}else { |
|
|
|
|
distributionStockupEntity.setAssignTime(new Date()); |
|
|
|
|
distributionStockupEntity.setStockupUser(user.getUserName()); |
|
|
|
|
distributionStockupEntity.setStockupUserId(user.getUserId()); |
|
|
|
|
distributionStockupEntity.setAssignStatus(StockAssignStatusConstant.yizhipai.getValue()); |
|
|
|
|
distributionStockupEntity.setStockupStatus(StockupStatusConstant.daibeihuo.getValue()); |
|
|
|
|
distributionStockupEntity.setForkliftId(stockup.getForkliftId()); |
|
|
|
|
distributionStockupEntity.setForkliftName(stockup.getForkliftName()); |
|
|
|
|
distributionStockupEntity.setStockupUser(AuthUtil.getUserId().toString()); |
|
|
|
|
distributionStockupEntity.setStockupStatus(StockupStatusConstant.weibeihuo.getValue()); |
|
|
|
|
distributionStockupEntity.setTypeService(DistributionTypeConstant.shipie.getValue()); |
|
|
|
|
distributionStockupService.save(distributionStockupEntity); |
|
|
|
|
}else { |
|
|
|
|
//这里就是未填写备货信息
|
|
|
|
|
if (stockListTotal > 0 ){ |
|
|
|
|
return R.fail("配送库存品请填写备货信息!!!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
BladeUser user = AuthUtil.getUser(); |
|
|
|
|
distributionStockupEntity.setStockupUser(user.getUserName()); |
|
|
|
|
distributionStockupEntity.setStockupArea(stockup.getGoodsAreaName()); |
|
|
|
|
distributionStockupEntity.setLoaderName(stockup.getLoaderName()); |
|
|
|
|
distributionStockupEntity.setLoaderId(stockup.getLoaderId()); |
|
|
|
|
distributionStockupEntity.setStockupUserId(user.getUserId()); |
|
|
|
|
distributionStockupEntity.setTeamResponsibility(stockup.getLoadAndUnload()); |
|
|
|
|
distributionStockupEntity.setOutboundDate(stockup.getOutboundDate()); |
|
|
|
|
distributionStockupEntity.setTypeService(DistributionTypeConstant.shipie.getValue()); |
|
|
|
|
distributionStockupService.save(distributionStockupEntity); |
|
|
|
|
DistributionDeliveryListEntity distributionDeliveryListEntity = new DistributionDeliveryListEntity(); |
|
|
|
|
//设置车次号
|
|
|
|
|
String today = DateUtil.today(); |
|
|
|
|
String random = Func.random(7, RandomType.ALL); |
|
|
|
|
distributionDeliveryListEntity.setTrainNumber(random + today); |
|
|
|
|
distributionDeliveryListEntity.setFee(BigDecimal.ZERO); |
|
|
|
|
distributionDeliveryListEntity.setPrice(BigDecimal.ZERO); |
|
|
|
|
distributionDeliveryListService.save(distributionDeliveryListEntity); |
|
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
|
// //获取备货任务的编号
|
|
|
|
@ -527,10 +534,11 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
Long stockupId = distributionStockupInfoEntity.getStockupId(); |
|
|
|
|
DistributionStockupEntity stockupEntity = distributionStockupService.getById(stockupId); |
|
|
|
|
//2、预约单存在备货任务还未指派
|
|
|
|
|
if (Func.equals(stockupEntity.getAssignStatus(), StockAssignStatusConstant.weizhipai.getValue())) { |
|
|
|
|
if (!Func.equals(stockupEntity.getAssignStatus(), StockAssignStatusConstant.yizhipai.getValue())) { |
|
|
|
|
//备货任务只存在一个,对该备货任务进行删除
|
|
|
|
|
//查询备货任务下是否具有
|
|
|
|
|
Long id = distributionStockupInfoEntity.getStockupId(); |
|
|
|
|
|
|
|
|
|
Integer reservationNum = distributionStockupMapper.getReservationTotal(id); |
|
|
|
|
if (reservationNum==1){ |
|
|
|
|
//只有一条,对该备货记录进行删除
|
|
|
|
@ -567,13 +575,24 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationStockarticleService.getBaseMapper().selectList(q); |
|
|
|
|
List<DistributionReservationStocklistEntity> reservationStocklistEntityList = distributionReservationStocklistService.getBaseMapper().selectList(w); |
|
|
|
|
//查询预约单下的包件信息
|
|
|
|
|
QueryWrapper<DistributionReservationPackageEntity> o = Condition.getQueryWrapper(map, DistributionReservationPackageEntity.class); |
|
|
|
|
o.lambda().eq(DistributionReservationPackageEntity::getReservationId, reservationEntity.getId()); |
|
|
|
|
List<DistributionReservationPackageEntity> reservationPackageEntityList = distributionReservationPackageService.getBaseMapper().selectList(o); |
|
|
|
|
// QueryWrapper<DistributionReservationPackageEntity> o = Condition.getQueryWrapper(map, DistributionReservationPackageEntity.class);
|
|
|
|
|
// o.lambda().eq(DistributionReservationPackageEntity::getReservationId, reservationEntity.getId());
|
|
|
|
|
// List<DistributionReservationPackageEntity> reservationPackageEntityList = distributionReservationPackageService.getBaseMapper().selectList(o);
|
|
|
|
|
if (!Func.isEmpty(reservationStockarticleEntityList)) { |
|
|
|
|
reservationStockarticleEntityList.forEach(r -> { |
|
|
|
|
//查询订单信息,完成对订单的信息修改
|
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(r.getStockArticleId()); |
|
|
|
|
//这里查询出订单下所有包件信息的长度,和预约的包件进行比对,如果一致那么订单状态为已预约否则为部分预约
|
|
|
|
|
QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>(); |
|
|
|
|
queryWrapper.lambda().eq(DistributionParcelListEntity::getStockArticleId,r.getStockArticleId()); |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.getBaseMapper().selectList(queryWrapper); |
|
|
|
|
//查询出这个预约单下订单所备选取的包件数量
|
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationStocklistMapper.selectReservationPackageNum(reservationEntity.getId(),r.getStockArticleId()); |
|
|
|
|
if (parcelListEntities.size()!=parcelListEntityList.size()){ |
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue()); |
|
|
|
|
}else { |
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
} |
|
|
|
|
//拼接订单编号
|
|
|
|
|
orderIds.append(stockArticleEntity.getId()).append(","); |
|
|
|
|
//拼接订单自编号
|
|
|
|
@ -586,8 +605,13 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
//修改订单的在库数量
|
|
|
|
|
stockArticleEntity.setHandQuantity(stockArticleEntity.getHandQuantity() - r.getReservationNum()); |
|
|
|
|
//对订单进行修改
|
|
|
|
|
distributionStockArticleService.updateById(stockArticleEntity); |
|
|
|
|
} |
|
|
|
|
distributionStockArticleService.updateById(stockArticleEntity); |
|
|
|
|
//查询出选取的包件信息然后进行包件的备货信息修改
|
|
|
|
|
parcelListEntityList.forEach(p->{ |
|
|
|
|
p.setOrderPackageStockupStatus(OrderPackageStockupStatusConstant.daibeihuo.getValue()); |
|
|
|
|
distributionParcelListService.updateById(p); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (!Func.isEmpty(reservationStocklistEntityList)) { |
|
|
|
@ -745,6 +769,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
//删除前需要对订单的可用数进行操作
|
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(s1.getStockArticleId()); |
|
|
|
|
stockArticleEntity.setAvailableQuantity(s1.getReservationNum() + stockArticleEntity.getAvailableQuantity()); |
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.daiyuyue.getValue()); |
|
|
|
|
distributionStockArticleService.updateById(stockArticleEntity); |
|
|
|
|
//这里对原表进行物理删除
|
|
|
|
|
distributionReservationStockarticleMapper.deleteReservationStockarticle(distributionReservationDTO.getId()); |
|
|
|
@ -767,9 +792,10 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
//对已有预约信息的订单包件数量进行清理
|
|
|
|
|
reservationPackageEntityList.forEach(p1 -> { |
|
|
|
|
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(p1.getParceListId()); |
|
|
|
|
parcelListEntity.setOrderPackageStockupStatus(OrderPackageStockupStatusConstant.daibeihuo.getValue()); |
|
|
|
|
parcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.daiyuyue.getValue()); |
|
|
|
|
//todo 这里需要将包件状态设置成未预约;备货信息设置为未备货
|
|
|
|
|
// parcelListEntity.setOrderPackageReservationStatus();
|
|
|
|
|
|
|
|
|
|
//这里对原表进行物理删除
|
|
|
|
|
distributionReservationPackageMapper.deleteReservationPackage(distributionReservationDTO.getId()); |
|
|
|
|
}); |
|
|
|
@ -785,6 +811,14 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
//这里判断修改内容是否存在订单信息,如果存在则进行中间表数据的重新插入
|
|
|
|
|
stockArticleList.forEach(s -> { |
|
|
|
|
List<DistributionParcelListEntity> packageList = s.getPackageList(); |
|
|
|
|
QueryWrapper<DistributionParcelListEntity> parcelListEntityQueryWrapper = new QueryWrapper<>(); |
|
|
|
|
LambdaQueryWrapper<DistributionParcelListEntity> queryWrapper = parcelListEntityQueryWrapper.lambda().eq(DistributionParcelListEntity::getStockArticleId, s.getId()); |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.getBaseMapper().selectList(queryWrapper); |
|
|
|
|
if (packageList.size()!=parcelListEntityList.size()){ |
|
|
|
|
s.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue()); |
|
|
|
|
}else { |
|
|
|
|
s.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
} |
|
|
|
|
AtomicInteger packageNum = new AtomicInteger(); |
|
|
|
|
if (Func.isEmpty(packageList)) { |
|
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
@ -801,8 +835,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
distributionReservationPackageEntity.setStockArticleId(s.getId()); |
|
|
|
|
//维护订单下包件信息
|
|
|
|
|
distributionReservationPackageService.save(distributionReservationPackageEntity); |
|
|
|
|
// todo 改变包件的预约信息为已预约
|
|
|
|
|
// p.setOrderPackageReservationStatus();
|
|
|
|
|
p.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
distributionParcelListService.updateById(p); |
|
|
|
|
}); |
|
|
|
|
//设置订单可用数为0
|
|
|
|
|
s.setAvailableQuantity(0); |
|
|
|
@ -816,11 +850,11 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
distributionReservationPackageEntity.setStockArticleId(s.getId()); |
|
|
|
|
distributionReservationPackageEntity.setPacketBarCode(p.getOrderPackageCode()); |
|
|
|
|
distributionReservationPackageService.save(distributionReservationPackageEntity); |
|
|
|
|
// todo 改变包件的预约信息为已预约
|
|
|
|
|
// p.setOrderPackageReservationStatus();
|
|
|
|
|
p.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
distributionParcelListService.updateById(p); |
|
|
|
|
}); |
|
|
|
|
s.setAvailableQuantity(s.getAvailableQuantity() - s.getReservationNum()); |
|
|
|
|
// todo 这里进行选取的包件和订单的包件进行比对,如果选取的包件数量和订单本身的数量一致,那么订单的状态为已预约,如果选取的和订单下的包件长度少那么订单的状态为部分预约
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
DistributionReservationStockarticleEntity distributionReservationStockarticleEntity = new DistributionReservationStockarticleEntity(); |
|
|
|
|
//构建预约订单中间表信息
|
|
|
|
@ -878,32 +912,35 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
DistributionStockupDTO stockup = allocationDTO.getStockup(); |
|
|
|
|
DistributionStockupEntity stockupEntity = Func.copy(stockup, DistributionStockupEntity.class); |
|
|
|
|
if (!Func.isBlank(stockup.getForkliftName())){ |
|
|
|
|
stockupEntity.setAssignTime(new Date()); |
|
|
|
|
stockupEntity.setForkliftId(stockupEntity.getForkliftId()); |
|
|
|
|
stockupEntity.setForkliftName(stockupEntity.getForkliftName()); |
|
|
|
|
stockupEntity.setAssignStatus(StockAssignStatusConstant.yizhipai.getValue()); |
|
|
|
|
stockupEntity.setStockupStatus(StockupStatusConstant.daibeihuo.getValue()); |
|
|
|
|
}else { |
|
|
|
|
stockupEntity.setStockupStatus(StockupStatusConstant.weibeihuo.getValue()); |
|
|
|
|
stockupEntity.setAssignStatus(StockAssignStatusConstant.weizhipai.getValue()); |
|
|
|
|
} |
|
|
|
|
stockupEntity.setStockupStatus(StockupStatusConstant.weibeihuo.getValue()); |
|
|
|
|
BladeUser user = AuthUtil.getUser(); |
|
|
|
|
stockupEntity.setStockupUser(user.getUserName()); |
|
|
|
|
stockupEntity.setStockupUserId(user.getUserId()); |
|
|
|
|
stockupEntity.setStockupUser(user.getUserName()); |
|
|
|
|
stockupEntity.setLoaderId(stockup.getLoaderId()); |
|
|
|
|
stockupEntity.setStockupArea(stockup.getGoodsAreaName()); |
|
|
|
|
stockupEntity.setOutboundDate(stockup.getOutboundDate()); |
|
|
|
|
stockupEntity.setTeamResponsibility(stockup.getLoadAndUnload()); |
|
|
|
|
stockupEntity.setStockupDate(stockup.getStockupDate()); |
|
|
|
|
//设置类型为商配
|
|
|
|
|
stockupEntity.setTypeService(DistributionTypeConstant.shangpei.getValue()); |
|
|
|
|
stockupEntity.setAssignTime(new Date()); |
|
|
|
|
//2、添加备货任务
|
|
|
|
|
distributionStockupService.save(stockupEntity); |
|
|
|
|
//4、维护配送表数据
|
|
|
|
|
DistributionDeliveryListEntity distributionDeliveryListEntity = new DistributionDeliveryListEntity(); |
|
|
|
|
String str = Func.random(7, RandomType.ALL) + DateUtil.today(); |
|
|
|
|
|
|
|
|
|
distributionDeliveryListEntity.setTrainNumber(str); |
|
|
|
|
distributionDeliveryListEntity.setType(DistributionTypeConstant.shangpei.getValue()); |
|
|
|
|
distributionDeliveryListEntity.setDeliveryStatus(DeliveryStatusConstant.daipeisong.getValue()); |
|
|
|
|
distributionDeliveryListEntity.setPrice(BigDecimal.ZERO); |
|
|
|
|
distributionDeliveryListEntity.setFee(BigDecimal.ZERO); |
|
|
|
|
distributionDeliveryListService.save(distributionDeliveryListEntity); |
|
|
|
|
//获取所有订单
|
|
|
|
|
List<DistributionStockArticleDTO> stockArticle = allocationDTO.getStockArticle(); |
|
|
|
@ -983,6 +1020,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
QueryWrapper<DistributionParcelListEntity> o = Condition.getQueryWrapper(map, DistributionParcelListEntity.class); |
|
|
|
|
// o.lambda().eq(DistributionParcelListEntity::getStockArticleId, stockArticleEntity.getId());
|
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.getBaseMapper().selectList(o); |
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
parcelListEntityList.forEach(p -> { |
|
|
|
|
packageCount.getAndAdd(p.getQuantity()); |
|
|
|
|
DistributionReservationPackageEntity reservationPackageEntity = new DistributionReservationPackageEntity(); |
|
|
|
@ -991,6 +1029,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
reservationPackageEntity.setPacketBarCode(p.getOrderPackageCode()); |
|
|
|
|
reservationPackageEntity.setParceListId(p.getId()); |
|
|
|
|
distributionReservationPackageService.save(reservationPackageEntity); |
|
|
|
|
p.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
distributionParcelListService.updateById(p); |
|
|
|
|
}); |
|
|
|
|
} else { |
|
|
|
|
//订单选择了指定包件进行配送
|
|
|
|
@ -1002,7 +1042,16 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
reservationPackageEntity.setStockArticleId(stockArticleEntity.getId()); |
|
|
|
|
reservationPackageEntity.setParceListId(p.getId()); |
|
|
|
|
distributionReservationPackageService.save(reservationPackageEntity); |
|
|
|
|
p.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
distributionParcelListService.updateById(p); |
|
|
|
|
}); |
|
|
|
|
//查询出这个预约单下订单所备选取的包件数量
|
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationStocklistMapper.selectReservationPackageNum(reservationEntity.getId(),stockArticleEntity.getId()); |
|
|
|
|
if (packageList.size()!=parcelListEntityList.size()){ |
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue()); |
|
|
|
|
}else { |
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
reservationStockarticleEntity.setReservationNum(packageCount.get()); |
|
|
|
|
reservationStockarticleEntity.setIsHaveData(ServiceConstant.ORDER_HAVE_DATA); |
|
|
|
@ -1043,7 +1092,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
// tripartiteEntity.setReservationIds(reservationIds);
|
|
|
|
|
tripartiteEntity.setDeliveryId(distributionDeliveryListEntity.getId()); |
|
|
|
|
distributionDeliveryTripartiteService.save(tripartiteEntity); |
|
|
|
|
distributionDeliveryListEntity.setKind(ServiceConstant.DELIVERLIST_KIND_SELF); |
|
|
|
|
distributionDeliveryListEntity.setKind(ServiceConstant.DELIVERLIST_KIND_TRIPARTITE); |
|
|
|
|
distributionDeliveryListEntity.setDriverName(tripartiteEntity.getDriverName()); |
|
|
|
|
distributionDeliveryListEntity.setVehicleName(tripartiteEntity.getVehicleNum()); |
|
|
|
|
distributionDeliveryListEntity.setDistributionCompany(tripartite.getDistributionCompany()); |
|
|
|
@ -1082,6 +1131,10 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
// distributionDeliveryListEntity.setLoadingTeamName(stockup.getLoaderName());
|
|
|
|
|
// distributionDeliveryListEntity.setLoadingTeamId(stockup.getLoaderId());
|
|
|
|
|
// distributionDeliveryListEntity.setLeadTime(stockup.getStockupDate());
|
|
|
|
|
String taskTime = allocationDTO.getTaskTime(); |
|
|
|
|
if(!Func.isEmpty(taskTime)){ |
|
|
|
|
distributionDeliveryListEntity.setTaskTime(taskTime); |
|
|
|
|
} |
|
|
|
|
distributionDeliveryListEntity.setOrderCode(orderSelfNumbering.deleteCharAt(orderSelfNumbering.length() - 1).toString()); |
|
|
|
|
distributionDeliveryListEntity.setOrderNumber(orderTotal.get()); |
|
|
|
|
distributionDeliveryListEntity.setDeliveryNumber(packageTotal.get()); |
|
|
|
@ -1107,7 +1160,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
} |
|
|
|
|
boolean result = false; |
|
|
|
|
reservationEntity.setCancelReason(reservationDTO.getCancelReason()); |
|
|
|
|
reservationEntity.setReservationStatus(ServiceConstant.RESERVATION_STATE_CANCEL); |
|
|
|
|
reservationEntity.setReservationStatus(ReservationStatusConstant.yiquexiao.getValue()); |
|
|
|
|
result = this.updateById(reservationEntity); |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|