Browse Source

预约查看

test
kilo 2 years ago
parent
commit
ff24a7adb7
  1. 6
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationVO.java
  2. 33
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionReservationController.java
  3. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java
  4. 76
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  5. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationPackageMapper.java
  6. 28
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationPackageMapper.xml
  7. 20
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationService.java
  8. 245
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java

6
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationVO.java

@ -42,14 +42,12 @@ public class DistributionReservationVO extends DistributionReservationEntity {
* 库存品信息列表
*/
@ApiModelProperty(value = "库存品信息列表")
private List<DistributionStockListEntity> inventoryList;
private List<DistributionStockListVO> inventoryList;
/**
* 订单信息列表
*/
@ApiModelProperty(value = "订单信息列表")
private List<DistributionStockArticleEntity> stockArticleList;
private List<DistributionStockArticleVO> stockArticleList;
}

33
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionReservationController.java

@ -233,4 +233,37 @@ public class DistributionReservationController extends BladeController {
boolean result = reservationService.cancelReservation(reservationDTO);
return R.status(result);
}
/**
* 预约列表 详情
*/
@GetMapping("/getReservationDetail")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "传入distrbutionReservation")
public R<?> getReservationDetail(@RequestParam String id) {
R<?> reservationVO = reservationService.getReservationDetail(id);
return R.data(reservationVO);
}
/**
* 预约列表 详情
*/
@GetMapping("/getReservationPackage")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "传入distrbutionReservation")
public R<?> getReservationPackage(@RequestParam String reservationId,@RequestParam String id) {
R<?> reservationPackage = reservationService.getReservationPackage(reservationId,id);
return reservationPackage;
}
/**
* 预约列表 详情
*/
@GetMapping("/getReservationPackageList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "传入distrbutionReservation")
public R<?> getReservationPackageList(@RequestParam String reservationId) {
R<?> reservationPackage = reservationService.getReservationPackageList(reservationId);
return reservationPackage;
}
}

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

@ -20,8 +20,10 @@ import com.logpm.distribution.entity.DistributionReservationEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.excel.DistributionReservationExcel;
import com.logpm.distribution.vo.DistributionReservationVO;
import com.logpm.distribution.vo.DistributionStockArticleVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -54,4 +56,6 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe
Integer addReservations(@Param("list")List<Long> toLongList);
DistributionReservationVO getReservationDetail(String reservationId);
List<DistributionStockArticleVO> getStockArticleList(@Param("id") String reservationId);
}

76
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml

@ -80,5 +80,81 @@
AND
reservation.reservation.id=#{reservationId}
</select>
<select id="getStockArticleList" resultType="com.logpm.distribution.vo.DistributionStockArticleVO">
SELECT
ldsa.tenant_id,
ldsa.id,
ldsa.create_user,
ldsa.create_time,
ldsa.update_user,
ldsa.update_time,
ldsa.status,
ldsa.is_deleted,
ldsa.create_dept,
ldsa.service_number,
ldsa.order_self_numbering,
ldsa.mall_id,
ldsa.mall_code,
ldsa.mall_name,
ldsa.store_name,
ldsa.store_code,
ldsa.store_id,
ldsa.description_goods,
ldsa.warehouse_id,
ldsa.warehouse,
ldsa.warehouse_entry_time,
ldsa.store_time,
ldsa.total_number,
ldsa.hand_quantity,
ldsa.complete_set,
ldsa.brand,
ldsa.type_service,
ldsa.customer_name,
ldsa.customer_telephone,
ldsa.customer_address,
ldsa.genre,
ldsa.state,
ldsa.notification,
ldsa.fee,
ldsa.rate,
ldsa.advance_id,
ldsa.waybill_number,
ldsa.consignee_unit,
ldsa.collect_fee,
ldsa.storage_fee,
ldsa.consignee_person,
ldsa.consignee_address,
ldsa.consignee_mobile,
ldsa.warehouse_entry_time_end,
ldsa.sorting_quantity,
ldsa.delivery_quantity,
ldsa.transfer_quantity,
ldsa.signin_quantity,
ldsa.grounding_status,
ldsa.allocation,
ldsa.resource,
ldsa.trays,
ldsa.is_opai,
ldsa.inventory_date,
ldsa.inventory_person,
ldsa.inventory_person_id,
ldsa.freeze_status,
ldsa.available_quantity,
ldsa.is_have_data,
ldsa.stock_article_code,
ldsa.dealer_name,
ldsa.dealer_code,
ldrs.reservation_num AS reservationNum
FROM
logpm_distribution_reservation ldr
INNER JOIN logpm_distribution_reservation_stockarticle ldrs ON ldr.id = ldrs.reservation_id
INNER JOIN logpm_distribution_stock_article ldsa ON ldrs.stock_article_id = ldsa.id
<where>
<if test="id != '' and id != null">
ldr.id = #{id}
</if>
</where>
</select>
</mapper>

16
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationPackageMapper.java

@ -16,6 +16,8 @@
*/
package com.logpm.distribution.mapper;
import com.logpm.distribution.dto.DistributionReservationPackageDTO;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionReservationPackageEntity;
import com.logpm.distribution.vo.DistributionReservationPackageVO;
import com.logpm.distribution.excel.DistributionReservationPackageExcel;
@ -57,4 +59,18 @@ public interface DistributionReservationPackageMapper extends BaseMapper<Distrib
* @return
*/
int deleteReservationPackage(@Param("id")Long id);
/**
* 查询订单下的包件信息
* @param reservationPackageDTO
* @return
*/
List<DistributionParcelListEntity> getReservationPackage(@Param("po")DistributionReservationPackageDTO reservationPackageDTO);
/**
* 查询预约单的所有包件信息
* @param reservationId
* @return
*/
List<DistributionParcelListEntity> getReservationPackageList(@Param("id")String reservationId);
}

28
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationPackageMapper.xml

@ -36,5 +36,33 @@
<select id="exportDistributionReservationPackage" resultType="com.logpm.distribution.excel.DistributionReservationPackageExcel">
SELECT * FROM logpm_distribution_reservation_package ${ew.customSqlSegment}
</select>
<select id="getReservationPackage" resultType="com.logpm.distribution.entity.DistributionParcelListEntity">
SELECT
ldpl.*
FROM
logpm_distribution_reservation_package ldrp
INNER JOIN logpm_distribution_parcel_list ldpl ON ldrp.parce_list_id = ldpl.id
<where>
<if test="po.reservationId !='' and po.reservationId != null">
and ldrp.reservation_id = #{po.reservationId}
</if>
<if test="po.id !='' and po.id != null">
and ldrp.stock_article_id = #{po.id}
</if>
</where>
</select>
<select id="getReservationPackageList" resultType="com.logpm.distribution.entity.DistributionParcelListEntity">
SELECT
ldpl.*
FROM
`logpm_distribution_reservation_package` ldrp
INNER JOIN logpm_distribution_parcel_list ldpl ON ldrp.parce_list_id = ldpl.id
<where>
<if test="id != '' and id !=null">
and ldrp.reservation_id = #{id}
</if>
</where>
</select>
</mapper>

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

@ -66,7 +66,7 @@ public interface IDistributionReservationService extends BaseService<Distributio
* @param reservationId 预约信息ID
* @return
*/
DistributionReservationVO getReservationDetail(String reservationId);
R<?> getReservationDetail(String reservationId);
/**
* 新增预约列表数据
@ -120,10 +120,24 @@ public interface IDistributionReservationService extends BaseService<Distributio
R<?> deliveryBusinessTask(DistributionDeliveryAllocationDTO allocationDTO);
/**
*
* @param allocationDTO
*取消预约
* @param reservationDTO
* @return
*/
boolean cancelReservation(DistributionReservationDTO reservationDTO);
/**
* 查询预约下的包件信息
* @param reservationId
* @param id
* @return
*/
R<?> getReservationPackage(String reservationId, String id);
/**
* 查询预约单下的所有包件信息
* @param reservationId
* @return
*/
R<?> getReservationPackageList(String reservationId);
}

245
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java

@ -26,7 +26,10 @@ import com.logpm.distribution.mapper.DistributionReservationPackageMapper;
import com.logpm.distribution.mapper.DistributionReservationStockarticleMapper;
import com.logpm.distribution.mapper.DistributionReservationStocklistMapper;
import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.DistributionReservationStockarticleVO;
import com.logpm.distribution.vo.DistributionReservationVO;
import com.logpm.distribution.vo.DistributionStockArticleVO;
import com.logpm.distribution.vo.DistributionStockListVO;
import lombok.AllArgsConstructor;
import org.springblade.common.serviceConstant.ServiceConstant;
import org.springblade.core.mp.support.Condition;
@ -98,10 +101,6 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
private final IDistributionSignforService distributionSignforService;
@Override
public IPage<DistributionReservationVO> selectDistrbutionReservationPage(IPage<DistributionReservationVO> page, DistributionReservationVO distrbutionReservation) {
return page.setRecords(baseMapper.selectDistrbutionReservationPage(page, distrbutionReservation));
@ -138,9 +137,34 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
}
@Override
public DistributionReservationVO getReservationDetail(String reservationId) {
DistributionReservationVO distributionReservationVO = distributionReservationMapper.getReservationDetail(reservationId);
return distributionReservationVO;
public R<?> getReservationDetail(String reservationId) {
if (Func.isBlank(reservationId)) {
log.error("参数异常reservationId+{" + reservationId + "}");
return R.fail("服务器正忙!!");
}
//创建预约对象
//2、查询预约单下的包件信息列表
//3、查询预约单下的库存品信息列表
DistributionReservationEntity reservationEntity = this.getById(reservationId);
DistributionReservationVO reservationVO = Func.copy(reservationEntity, DistributionReservationVO.class);
String reservationStatus = reservationVO.getReservationStatus();
Integer typeService = reservationVO.getTypeService();
switch (reservationStatus) {
case "2":
reservationVO.setReservationStatus("已确定");
break;
case "1":
reservationVO.setReservationStatus("待确定");
break;
}
//1、查询预约单下的订单列表信息
List<DistributionStockArticleVO> stockArticleEntityList = distributionReservationMapper.getStockArticleList(reservationId);
if (stockArticleEntityList.size() >= 1) {
reservationVO.setStockArticleList(stockArticleEntityList);
}
// DistributionReservationVO distributionReservationVO = distributionReservationMapper.getReservationDetail(reservationId);
return R.data(reservationVO);
}
@Override
@ -154,9 +178,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
DistributionReservationEntity reservationEntity = new DistributionReservationEntity();
Func.copy(distributionReservationDTO, reservationEntity);
//新建预约单为待确认状态
reservationEntity.setReservationStatus("1");
reservationEntity.setReservationStatus(ServiceConstant.RESERVATION_STATE_WAIT_CONFIRM);
//新建预约单订单处于未备货状态
reservationEntity.setStockupStatus("1");
reservationEntity.setStockupStatus(ServiceConstant.STOCkUP_STATE_NOT_EXECUTION);
this.save(reservationEntity);
//获取新增预约信息的编号
Long reservationId = reservationEntity.getId();
@ -177,45 +201,40 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
//预约订单数量
AtomicInteger packageNum = new AtomicInteger();
List<DistributionParcelListEntity> packageList = s.getPackageList();
if (s.getIsHaveData().equals(ServiceConstant.ORDER_HAVE_DATA)){
if (packageList.size() == 0){
if (s.getIsHaveData() == 2 ){
Map<String,Object> map = new HashMap<>();
map.put("stockArticleId",s.getId());
QueryWrapper<DistributionParcelListEntity> qw = Condition.getQueryWrapper(map, DistributionParcelListEntity.class);
//添加订单下的所有在库订单的包件
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListService.getBaseMapper().selectList(qw);
distributionParcelListEntities.forEach(p->{
DistributionReservationPackageEntity distributionReservationPackageEntity = new DistributionReservationPackageEntity();
distributionReservationPackageEntity.setReservationId(reservationId);
distributionReservationPackageEntity.setParceListId(p.getId());
distributionReservationPackageEntity.setStockArticleId(s.getId());
distributionReservationPackageEntity.setPacketBarCode(p.getPacketBarCode());
//维护订单下包件信息
distributionReservationPackageService.save(distributionReservationPackageEntity);
//此时订单下的所有包件都处于预约状态,可用数为0
packageNum.getAndIncrement();
});
}
s.setAvailableQuantity(0);
}else {
//维护选中的包件信息
packageList.forEach(p->{
if (packageList.size() == 0) {
if (s.getIsHaveData() == 2) {
Map<String, Object> map = new HashMap<>();
map.put("stockArticleId", s.getId());
QueryWrapper<DistributionParcelListEntity> qw = Condition.getQueryWrapper(map, DistributionParcelListEntity.class);
//添加订单下的所有在库订单的包件
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListService.getBaseMapper().selectList(qw);
distributionParcelListEntities.forEach(p -> {
DistributionReservationPackageEntity distributionReservationPackageEntity = new DistributionReservationPackageEntity();
distributionReservationPackageEntity.setReservationId(reservationId);
distributionReservationPackageEntity.setParceListId(p.getId());
distributionReservationPackageEntity.setStockArticleId(s.getId());
distributionReservationPackageMapper.insert(distributionReservationPackageEntity);
distributionReservationPackageEntity.setPacketBarCode(p.getPacketBarCode());
//维护订单下包件信息
distributionReservationPackageService.save(distributionReservationPackageEntity);
//此时订单下的所有包件都处于预约状态,可用数为0
packageNum.getAndIncrement();
});
//设置订单可用数量为
s.setAvailableQuantity(s.getHandQuantity() - s.getReservationNum());
}
distributionReservationStockarticleEntity.setReservationNum(packageNum.get());
}else {
distributionReservationStockarticleEntity.setIsHaveData(ServiceConstant.ORDER_NOT_HAVE_DATA);
distributionReservationStockarticleEntity.setReservationNum(s.getTotalNumber());
s.setAvailableQuantity(0);
} else {
//维护选中的包件信息
packageList.forEach(p -> {
DistributionReservationPackageEntity distributionReservationPackageEntity = new DistributionReservationPackageEntity();
distributionReservationPackageEntity.setReservationId(reservationId);
distributionReservationPackageEntity.setParceListId(p.getId());
distributionReservationPackageEntity.setStockArticleId(s.getId());
distributionReservationPackageMapper.insert(distributionReservationPackageEntity);
packageNum.getAndIncrement();
});
//设置订单可用数量为
s.setAvailableQuantity(s.getHandQuantity() - s.getReservationNum());
}
distributionReservationStockarticleEntity.setReservationNum(packageNum.get());
//订单无数据源,不需要进行包件信息维护
//修改订单状态为已预约
s.setState(ServiceConstant.ORDER_STATE_ALREADY_RESERVATION);
@ -276,7 +295,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationEntity.setDeliveryType(ServiceConstant.DELIVERY_TYPE_CUSTOMER);
//设置预约配送方式为送货
reservationEntity.setDeliveryWay(ServiceConstant.DELIVERY_GOODS_WAY);
reservationEntity.setServiceNumber(String.join(",",serviceNumber));
reservationEntity.setServiceNumber(String.join(",", serviceNumber));
reservationEntity.setReservationNum(count);
distributionReservationMapper.updateById(reservationEntity);
return true;
@ -369,8 +388,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
//这里站配送任务主要有两个方面
//1、针对市配订单需要将预约信息填充至配送计划中
//2、商配跳过预约阶段直接将订单信息和配送计划进行关联
if (Func.isEmpty(allocationDTO)){
log.error("参数异常allocationDTO:+{"+allocationDTO+"}");
if (Func.isEmpty(allocationDTO)) {
log.error("参数异常allocationDTO:+{" + allocationDTO + "}");
return R.fail("服务器正忙!!!");
}
String reservationIds = allocationDTO.getReservationIds();
@ -388,10 +407,10 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
//设置车次号
String today = DateUtil.today();
String random = Func.random(7, RandomType.ALL);
distributionDeliveryListEntity.setTrainNumber(random+today);
distributionDeliveryListEntity.setTrainNumber(random + today);
distributionDeliveryListService.save(distributionDeliveryListEntity);
List<Long> ids = Func.toLongList(reservationIds);
Map<String,Object> map = new HashMap<>();
Map<String, Object> map = new HashMap<>();
//获取备货任务的编号
Long stockupEntityId = distributionStockupEntity.getId();
//统计包件数量
@ -410,25 +429,25 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
StringBuilder vehicleNubs = new StringBuilder();
//司机名称拼接
StringBuilder driverNames = new StringBuilder();
ids.forEach(i->{
ids.forEach(i -> {
//查询备货任务
map.put("reservationId",i);
map.put("reservationId", i);
QueryWrapper<DistributionStockupInfoEntity> qw = Condition.getQueryWrapper(map, DistributionStockupInfoEntity.class);
DistributionStockupInfoEntity distributionStockupInfoEntity = distributionStockupInfoService.getOne(qw);
if (Func.isEmpty(distributionStockupInfoEntity)){
if (Func.isEmpty(distributionStockupInfoEntity)) {
//1、预约单不存在备货任务
//利用中间表建立起预约和备货表之间的关系
DistributionStockupInfoEntity stockupInfoEntity = new DistributionStockupInfoEntity();
stockupInfoEntity.setReservationId(i);
stockupInfoEntity.setStockupId(stockupEntityId);
distributionStockupInfoService.save(stockupInfoEntity);
}else {
} else {
//TODO 这里还需要考虑一个备货任务下只有一条记录
//获取备货任务编号
Long stockupId = distributionStockupInfoEntity.getStockupId();
DistributionStockupEntity stockupEntity = distributionStockupService.getById(stockupId);
//2、预约单存在备货任务还未指派
if (Func.equals(stockupEntity.getAssignStatus(),ServiceConstant.STOCkUP_ASSIGNSTATUS_ABSENCE)){
if (Func.equals(stockupEntity.getAssignStatus(), ServiceConstant.STOCkUP_ASSIGNSTATUS_ABSENCE)) {
//对原有的备货关系进行修改
distributionStockupInfoEntity.setStockupId(stockupEntityId);
distributionStockupInfoService.updateById(distributionStockupInfoEntity);
@ -464,8 +483,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
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->{
if (!Func.isEmpty(reservationStockarticleEntityList)) {
reservationStockarticleEntityList.forEach(r -> {
//查询订单信息,完成对订单的信息修改
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(r.getStockArticleId());
//拼接订单编号
@ -505,7 +524,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
// distributionLoadscanService.save(distributionLoadscanEntity);
// }
//存在数据来源,维护订单、包件和配送的关系
if (stockArticleEntity.getHandQuantity()> r.getReservationNum()){
if (stockArticleEntity.getHandQuantity() > r.getReservationNum()) {
//这里表示订单下的包件没有进行全部配送
//修改订单状态为部分配送
stockArticleEntity.setState(4);
@ -516,9 +535,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
}
});
}
if (!Func.isEmpty(reservationStocklistEntityList)){
if (!Func.isEmpty(reservationStocklistEntityList)) {
//对库存品进行操作
reservationStocklistEntityList.forEach(l->{
reservationStocklistEntityList.forEach(l -> {
DistributionStockListEntity stockListEntity = distributionStockListService.getById(l.getStocklistId());
stockListEntity.setQuantityStock(stockListEntity.getQuantityStock() - l.getReservationNum());
hashSet.add(stockListEntity.getOrderSelfNumbering());
@ -539,7 +558,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
Long deliveryListId = distributionDeliveryListEntity.getId();
//操作司机信息
DistributionDeliveryTripartiteDTO tripartite = allocationDTO.getTripartite();
if (Func.isEmpty(tripartite)){
if (Func.isEmpty(tripartite)) {
//这里就是三方配送
DistributionDeliveryTripartiteEntity tripartiteEntity = Func.copy(tripartite, DistributionDeliveryTripartiteEntity.class);
// tripartiteEntity.setReservationIds(reservationIds);
@ -553,10 +572,10 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionDeliveryListEntity.setDistributionCompany(tripartite.getDistributionCompany());
distributionDeliveryListEntity.setDistributionCompanyId(tripartite.getDistributionCompanyId());
//TODO 这里可以对三方配送的机构编号进行添加
}else {
} else {
//这里就是自主配送
List<DistributionDeliverySelfDTO> allocationInfo = allocationDTO.getAllocationInfo();
allocationInfo.forEach(a->{
allocationInfo.forEach(a -> {
DistributionDeliverySelfEntity distributionDeliverySelfEntity = Func.copy(a, DistributionDeliverySelfEntity.class);
//设置车辆编号
distributionDeliverySelfEntity.setDeliveryId(Long.parseLong(a.getDriverId()));
@ -568,9 +587,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionDeliverySelfEntity.setDriverPhone(a.getDriverPhone());
distributionDeliverySelfEntity.setVehicleNub(a.getVehicleNub());
//设置是否为主司机
if (Func.equals(allocationDTO.getMasterDriverName(),a.getDriver())){
if (Func.equals(allocationDTO.getMasterDriverName(), a.getDriver())) {
//设置主司机
distributionDeliverySelfEntity.setIsMaster(1);
distributionDeliverySelfEntity.setIsMaster(ServiceConstant.IS_MASTER_YES);
}
//完成对自主配送司机信息保存
distributionDeliverySelfEntity.setDeliveryId(deliveryListId);
@ -580,8 +599,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
driverNames.append(a.getDriver()).append(",");
});
distributionDeliveryListEntity.setKind(ServiceConstant.DELIVERLIST_KIND_SELF);
distributionDeliveryListEntity.setDriverName(driverNames.deleteCharAt(driverNames.length()-1).toString());
distributionDeliveryListEntity.setVehicleName(vehicleNubs.deleteCharAt(vehicleNubs.length()-1).toString());
distributionDeliveryListEntity.setDriverName(driverNames.deleteCharAt(driverNames.length() - 1).toString());
distributionDeliveryListEntity.setVehicleName(vehicleNubs.deleteCharAt(vehicleNubs.length() - 1).toString());
}
//对配送信息进行修改
distributionDeliveryListEntity.setState(ServiceConstant.DELIVERY_TYPE_CUSTOMER);
@ -592,9 +611,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionDeliveryListEntity.setCustomersNumber(reservationIds.split(",").length);
distributionDeliveryListEntity.setOrderNumber(orderNum.get());
distributionDeliveryListEntity.setType(ServiceConstant.DELIVERY_TYPE_CUSTOMER);
distributionDeliveryListEntity.setOrderSelfNumbering(String.join(",",hashSet));
if (orderIds.length()>1){
distributionDeliveryListEntity.setOrderId(orderIds.deleteCharAt(orderIds.length()-1).toString());
distributionDeliveryListEntity.setOrderSelfNumbering(String.join(",", hashSet));
if (orderIds.length() > 1) {
distributionDeliveryListEntity.setOrderId(orderIds.deleteCharAt(orderIds.length() - 1).toString());
}
distributionDeliveryListEntity.setReservationId(reservationIds);
distributionDeliveryListEntity.setDeliveryNumber(packageNum.get());
@ -604,6 +623,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionDeliveryListService.updateById(distributionDeliveryListEntity);
return R.status(true);
}
@Override
public R<DistributionReservationVO> getReservationInfo(String reservationId) {
//查询出预约信息
@ -624,8 +644,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
stockArticleEntity.setReservationNum(a1.getReservationNum());
stockArticleEntityList.add(stockArticleEntity);
});
List<DistributionStockArticleVO> stockArticleVOList = Func.copy(stockArticleEntityList, DistributionStockArticleVO.class);
//查询出 库存信息
reservationVO.setStockArticleList(stockArticleEntityList);
reservationVO.setStockArticleList(stockArticleVOList);
}
if (!Func.isEmpty(reservationStocklistEntityList)) {
List<DistributionStockListEntity> stockArticleEntityList = new ArrayList<>();
@ -634,8 +655,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
stockListEntity.setReservationNum(a2.getReservationNum());
stockArticleEntityList.add(stockListEntity);
});
List<DistributionStockListVO> stockListVOList = Func.copy(stockArticleEntityList, DistributionStockListVO.class);
//查询出 库存信息
reservationVO.setInventoryList(stockArticleEntityList);
reservationVO.setInventoryList(stockListVOList);
}
return R.data(reservationVO);
}
@ -677,7 +699,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationStocklistEntityList.forEach(r1 -> {
Long stocklistId = r1.getStocklistId();
DistributionStockListEntity stockListEntity = distributionStockListService.getById(stocklistId);
stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied()-r1.getReservationNum());
stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() - r1.getReservationNum());
stockListEntity.setQuantityOccupied(stockListEntity.getQuantityOccupied() + r1.getReservationNum());
//这里对原表进行物理删除
distributionStockListService.updateById(stockListEntity);
@ -703,13 +725,13 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
stockArticleList.forEach(s -> {
List<DistributionParcelListEntity> packageList = s.getPackageList();
AtomicInteger packageNum = new AtomicInteger();
if (packageList.size() == 0){
Map<String,Object> map = new HashMap<>();
map.put("stockArticleId",s.getId());
if (packageList.size() == 0) {
Map<String, Object> map = new HashMap<>();
map.put("stockArticleId", s.getId());
QueryWrapper<DistributionParcelListEntity> qw = Condition.getQueryWrapper(map, DistributionParcelListEntity.class);
//添加订单下的所有在库订单
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListService.getBaseMapper().selectList(qw);
distributionParcelListEntities.forEach(p->{
distributionParcelListEntities.forEach(p -> {
packageNum.getAndIncrement();
DistributionReservationPackageEntity distributionReservationPackageEntity = new DistributionReservationPackageEntity();
distributionReservationPackageEntity.setReservationId(distributionReservationDTO.getId());
@ -721,9 +743,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
});
//设置订单可用数为0
s.setAvailableQuantity(0);
}else {
} else {
//维护选中的包件信息
packageList.forEach(p->{
packageList.forEach(p -> {
packageNum.getAndIncrement();
DistributionReservationPackageEntity distributionReservationPackageEntity = new DistributionReservationPackageEntity();
distributionReservationPackageEntity.setReservationId(distributionReservationDTO.getId());
@ -781,8 +803,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
@Override
@Transactional
public R<?> deliveryBusinessTask(DistributionDeliveryAllocationDTO allocationDTO) {
if (Func.isEmpty(allocationDTO)){
log.error("参数异常allocationDTO+{"+allocationDTO+"}");
if (Func.isEmpty(allocationDTO)) {
log.error("参数异常allocationDTO+{" + allocationDTO + "}");
return R.fail("服务器正忙!!!");
}
//1、添加配送任务
@ -801,7 +823,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionStockupService.save(stockupEntity);
//4、维护配送表数据
DistributionDeliveryListEntity distributionDeliveryListEntity = new DistributionDeliveryListEntity();
distributionDeliveryListEntity.setTrainNumber(Func.random(7,RandomType.ALL)+DateUtil.today());
distributionDeliveryListEntity.setTrainNumber(Func.random(7, RandomType.ALL) + DateUtil.today());
distributionDeliveryListEntity.setType(ServiceConstant.DELIVERY_TYPE_BUSINESS);
distributionDeliveryListEntity.setState(ServiceConstant.DELIVERLIST_STATE_WAIT);
distributionDeliveryListService.save(distributionDeliveryListEntity);
@ -812,7 +834,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
List<DistributionStockArticleDTO> distributionStockArticleDTOS = storeClient.get("");
Map<String, List<DistributionStockArticleDTO>> mallClient = distributionStockArticleDTOS.stream().collect(Collectors.groupingBy(DistributionStockArticleDTO::getMallName));
//3、维护订单和客户
storeClient.forEach((k,v)->mallClient.merge(k,v,(v1,v2)->v2));
storeClient.forEach((k, v) -> mallClient.merge(k, v, (v1, v2) -> v2));
//统计客户数
AtomicInteger clientNum = new AtomicInteger();
@ -822,8 +844,8 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
AtomicInteger orderTotal = new AtomicInteger();
//订单拼接
StringBuilder orderSelfNumbering = new StringBuilder();
mallClient.forEach((k,v)->{
if (!Func.isBlank(k)){
mallClient.forEach((k, v) -> {
if (!Func.isBlank(k)) {
////统计客户数
//预约任务是在客户的维度上进行数据维护
DistributionReservationDTO reservation = allocationDTO.getReservation();
@ -849,7 +871,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
AtomicReference<BigDecimal> initTotal = new AtomicReference<>(BigDecimal.ZERO);
//统计包件数量
AtomicInteger packageNum = new AtomicInteger();
v.forEach(a->{
v.forEach(a -> {
orderTotal.getAndIncrement();
//TODO 这里还需要对库存品进行筛选
DistributionStockArticleEntity stockArticleEntity = Func.copy(a, DistributionStockArticleEntity.class);
@ -862,16 +884,16 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
//订单存在数据源,维护订单包件信息
//维护预约和订单关系
DistributionReservationStockarticleEntity reservationStockarticleEntity = new DistributionReservationStockarticleEntity();
if (stockArticleEntity.getIsHaveData().equals(ServiceConstant.ORDER_HAVE_DATA)){
if (stockArticleEntity.getIsHaveData().equals(ServiceConstant.ORDER_HAVE_DATA)) {
List<DistributionParcelListEntity> packageList = a.getPackageList();
if (a.getPackageList().size() == 0){
Map<String,Object> map = new HashMap<String, Object>();
if (a.getPackageList().size() == 0) {
Map<String, Object> map = new HashMap<String, Object>();
//这里就是默认添加订单下的所有包件
map.put("stockArticleId",stockArticleEntity.getId());
map.put("stockArticleId", stockArticleEntity.getId());
QueryWrapper<DistributionParcelListEntity> o = Condition.getQueryWrapper(map, DistributionParcelListEntity.class);
// o.lambda().eq(DistributionParcelListEntity::getStockArticleId, stockArticleEntity.getId());
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.getBaseMapper().selectList(o);
parcelListEntityList.forEach(p->{
parcelListEntityList.forEach(p -> {
packageCount.getAndIncrement();
DistributionReservationPackageEntity reservationPackageEntity = new DistributionReservationPackageEntity();
reservationPackageEntity.setReservationId(reservationEntity.getId());
@ -880,9 +902,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationPackageEntity.setParceListId(p.getId());
distributionReservationPackageService.save(reservationPackageEntity);
});
}else {
} else {
//订单选择了指定包件进行配送
packageList.forEach(p->{
packageList.forEach(p -> {
packageCount.getAndIncrement();
DistributionReservationPackageEntity reservationPackageEntity = new DistributionReservationPackageEntity();
reservationPackageEntity.setReservationId(reservationEntity.getId());
@ -895,7 +917,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
reservationStockarticleEntity.setReservationNum(packageCount.get());
reservationStockarticleEntity.setIsHaveData(ServiceConstant.ORDER_HAVE_DATA);
//对订单下的包件进行累加
}else {
} else {
reservationStockarticleEntity.setIsHaveData(ServiceConstant.ORDER_NOT_HAVE_DATA);
reservationStockarticleEntity.setReservationNum(stockArticleEntity.getTotalNumber());
}
@ -906,10 +928,10 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
packageTotal.getAndAdd(reservationStockarticleEntity.getReservationNum());
});
//这里将预约信息进行完善
reservationEntity.setStockArticleId(orderSelfNumbering.deleteCharAt(orderSelfNumbering.length()-1).toString());
reservationEntity.setStockArticleId(orderSelfNumbering.deleteCharAt(orderSelfNumbering.length() - 1).toString());
//预约添加订单数量
reservationEntity.setReservationNum(packageNum.get());
reservationEntity.setReservationCode(Func.random(7,RandomType.ALL)+DateUtil.today());
reservationEntity.setReservationCode(Func.random(7, RandomType.ALL) + DateUtil.today());
this.updateById(reservationEntity);
DistributionSignforEntity distributionSignforEntity = new DistributionSignforEntity();
distributionSignforEntity.setReservationId(reservationEntity.getId());
@ -925,7 +947,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
//司机名称拼接
StringBuilder driverNames = new StringBuilder();
DistributionDeliveryTripartiteDTO tripartite = allocationDTO.getTripartite();
if (Func.isEmpty(tripartite)){
if (Func.isEmpty(tripartite)) {
//三方配送
//这里就是三方配送
DistributionDeliveryTripartiteEntity tripartiteEntity = Func.copy(tripartite, DistributionDeliveryTripartiteEntity.class);
@ -937,10 +959,10 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionDeliveryListEntity.setVehicleName(tripartiteEntity.getVehicleNum());
distributionDeliveryListEntity.setDistributionCompany(tripartite.getDistributionCompany());
distributionDeliveryListEntity.setDistributionCompanyId(tripartite.getDistributionCompanyId());
}else {
} else {
//自主配送
List<DistributionDeliverySelfDTO> allocationInfo = allocationDTO.getAllocationInfo();
allocationInfo.forEach(a->{
allocationInfo.forEach(a -> {
DistributionDeliverySelfEntity distributionDeliverySelfEntity = Func.copy(a, DistributionDeliverySelfEntity.class);
//设置车辆编号
distributionDeliverySelfEntity.setDeliveryId(Long.parseLong(a.getDriverId()));
@ -952,7 +974,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
distributionDeliverySelfEntity.setDriverPhone(a.getDriverPhone());
distributionDeliverySelfEntity.setVehicleNub(a.getVehicleNub());
//设置是否为主司机
if (allocationDTO.getMasterDriverName().equals(a.getDriverName())){
if (allocationDTO.getMasterDriverName().equals(a.getDriverName())) {
//设置主司机
distributionDeliverySelfEntity.setIsMaster(ServiceConstant.IS_MASTER_YES);
}
@ -964,14 +986,14 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
driverNames.append(a.getDriverName()).append(",");
});
distributionDeliveryListEntity.setKind(ServiceConstant.DELIVERLIST_KIND_SELF);
distributionDeliveryListEntity.setDriverName(driverNames.deleteCharAt(driverNames.length()-1).toString());
distributionDeliveryListEntity.setVehicleName(vehicleNubs.deleteCharAt(vehicleNubs.length()-1).toString());
distributionDeliveryListEntity.setDriverName(driverNames.deleteCharAt(driverNames.length() - 1).toString());
distributionDeliveryListEntity.setVehicleName(vehicleNubs.deleteCharAt(vehicleNubs.length() - 1).toString());
}
//完善配送信息
distributionDeliveryListEntity.setLoadingTeamName(stockup.getLoaderName());
distributionDeliveryListEntity.setLoadingTeamId(stockup.getLoaderId());
distributionDeliveryListEntity.setLeadTime(stockup.getStockupDate());
distributionDeliveryListEntity.setOrderSelfNumbering(orderSelfNumbering.deleteCharAt(orderSelfNumbering.length()-1).toString());
distributionDeliveryListEntity.setOrderSelfNumbering(orderSelfNumbering.deleteCharAt(orderSelfNumbering.length() - 1).toString());
distributionDeliveryListEntity.setOrderNumber(orderTotal.get());
distributionDeliveryListEntity.setDeliveryNumber(packageTotal.get());
distributionDeliveryListEntity.setCustomersNumber(clientNum.get());
@ -984,13 +1006,13 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
@Override
@Transactional
public boolean cancelReservation(DistributionReservationDTO reservationDTO) {
if (Func.isEmpty(reservationDTO)){
log.error("参数异常allocationDTO+{"+reservationDTO+"}");
if (Func.isEmpty(reservationDTO)) {
log.error("参数异常allocationDTO+{" + reservationDTO + "}");
return false;
}
DistributionReservationEntity reservationEntity = this.getById(reservationDTO.getId());
if (Func.isEmpty(reservationEntity)){
log.error("参数异常reservationEntity+{"+reservationEntity+"}");
if (Func.isEmpty(reservationEntity)) {
log.error("参数异常reservationEntity+{" + reservationEntity + "}");
return false;
}
boolean result = false;
@ -999,4 +1021,23 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
result = this.updateById(reservationEntity);
return result;
}
@Override
public R<?> getReservationPackage(String reservationId, String id) {
DistributionReservationPackageDTO reservationPackageDTO = new DistributionReservationPackageDTO();
reservationPackageDTO.setReservationId(Long.parseLong(reservationId));
reservationPackageDTO.setStockArticleId(Long.parseLong(id));
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationPackageMapper.getReservationPackage(reservationPackageDTO);
return R.data(parcelListEntityList);
}
@Override
public R<?> getReservationPackageList(String reservationId) {
if (Func.isBlank(reservationId)) {
log.error("参数异常reservationId+{" + reservationId + "}");
return R.fail("服务器正忙!!");
}
List<DistributionParcelListEntity> distributionParcelListEntityList = distributionReservationPackageMapper.getReservationPackageList(reservationId);
return R.data(distributionParcelListEntityList);
}
}

Loading…
Cancel
Save