Browse Source

订制品、库存品滞留数量、状态维护

training
汤建军 1 year ago
parent
commit
419c51821a
  1. 24
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionDeliveryListClient.java
  2. 15
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionDeliveryListClient.java
  3. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java
  4. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml
  5. 25
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java
  6. 40
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  7. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSigndetailMapper.xml
  8. 9
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.java
  9. 9
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml
  10. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java
  11. 19
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java
  12. 31
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  13. 1039
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  14. 122
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java

24
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionDeliveryListClient.java

@ -69,13 +69,35 @@ public interface IDistributionDeliveryListClient {
* @param deliveryId
* @param reservationId
* @param orderPackageId
* @param conditions 1-订制品 2-库存
* @param conditions
* @return
*/
@GetMapping(TOP+"/retentionDeliveryReservationPackage")
boolean retentionDeliveryReservationPackage(@RequestParam("deliveryId")Long deliveryId,@RequestParam("reservationId") Long reservationId,@RequestParam("orderPackageId") Long orderPackageId,@RequestParam("conditions") Integer conditions);
/**
* 配送任务滞留库存品
* @param deliveryId
* @param reservationId
* @param orderPackageId
*
*/
@GetMapping(TOP+"/retentionDeliveryReservationInventory")
boolean retentionDeliveryReservationInventory(@RequestParam("deliveryId")Long deliveryId,@RequestParam("reservationId") Long reservationId,@RequestParam("orderPackageId") Long orderPackageId);
/**
* 滞留取消零担包件
* @param deliveryId
* @param reservationId
* @param orderPackageId
* @param retentionQuantity
* @return
*/
@GetMapping(TOP+"/retentionDeliveryReservationZeroPackage")
boolean retentionDeliveryReservationZeroPackage(@RequestParam("deliveryId")Long deliveryId,@RequestParam("reservationId") Long reservationId,@RequestParam("orderPackageId") Long orderPackageId, @RequestParam("retentionQuantity")Integer retentionQuantity, @RequestParam("orderId")Long orderId);
// /**
// * 根据配送任务ID查询配送司机信息
// * @param distributionRetentionScanVo

15
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionDeliveryListClient.java

@ -65,9 +65,16 @@ public class DistributionDeliveryListClient implements IDistributionDeliveryList
return distributionDeliveryListService.retentionDeliveryReservationPackage(deliveryId,reservationId,orderPackageId,conditions);
}
// @Override
// public void retentionCancelDeliveryPack(DistributionRetentionScanVo distributionRetentionScanVo) {
// distributionDeliveryListService.retentionCancelDeliveryPack(distributionRetentionScanVo);
// }
@Override
public boolean retentionDeliveryReservationInventory(Long deliveryId, Long reservationId, Long orderPackageId) {
return distributionDeliveryListService.retentionDeliveryReservationInventory(deliveryId,reservationId,orderPackageId);
}
@Override
public boolean retentionDeliveryReservationZeroPackage(Long deliveryId, Long reservationId, Long orderPackageId, Integer retentionQuantity,Long orderId) {
return distributionDeliveryListService.retentionDeliveryReservationZeroPackage(deliveryId,reservationId,orderPackageId,retentionQuantity,orderId);
}
}

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java

@ -429,6 +429,12 @@ public interface DistributionDeliveryListMapper extends BaseMapper<DistributionD
*/
DistributionRetentionScanVo selectRetentionPackage(@Param("orderPackageCode")String orderPackageCode,@Param("deliveryId") Long deliveryId);
/**
* 查询滞留零担包件信息
* @param deliveryId
* @param barcode
* @return
*/
List<DistributionRetentionScanVo> selectRetentionZeroPackage(@Param("deliveryId")Long deliveryId, @Param("orderCode")String barcode);
/**

10
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml

@ -1607,6 +1607,8 @@
WHERE
ldrs.stock_article_id = #{orderId} AND lddl.id=#{deliveryListId} and ldrs.stock_article_status in ('1','3') AND ldrzp.zero_package_status IN ( '1', '3' )
</select>
<!-- ldsl.incoming_batch AS 入库批次,-->
<select id="selectRetentionInventoryPackage"
resultType="com.logpm.distribution.vo.DistributionRetentionScanVo">
SELECT
@ -1617,11 +1619,10 @@
ldsld.id AS orderPackageId,
ldsld.stock_package_code AS orderPackageCode,
ldsld.stock_list_id AS inventoryId,
ldsld.num AS reservationQuantity,
ldsld.num AS retentionQuantity,
ldsl.cargo_number AS materialNumber,
ldsl.description_goods AS materialName,
2 AS conditions,
ldsl.incoming_batch AS 入库批次,
1 AS scanType
FROM
logpm_distribution_delivery_list AS lddl
@ -1630,7 +1631,8 @@
LEFT JOIN logpm_distribution_reservation_stocklist AS ldrs ON ldrs.reservation_id = ldr.id
LEFT JOIN logpm_distribution_stock_list AS ldsl ON ldsl.id = ldrs.stocklist_id
INNER JOIN logpm_dis_stock_list_detail AS ldsld ON ldsld.stock_list_id = ldrs.stocklist_id and ldsld.reservation_id = ldr.id
WHERE lddl.id=#{deliveryId} and ldrs.stock_list_status in ('1','2') and ldsld.stock_package_code =#{stockPackageCode}
WHERE
lddl.id=#{deliveryId} and ldrs.stock_list_status in ('1','3') and ldsld.stock_package_code =#{stockPackageCode}
</select>
<select id="selectRetentionPackage" resultType="com.logpm.distribution.vo.DistributionRetentionScanVo">
SELECT
@ -1645,7 +1647,7 @@
ldpl.quantity AS retentionQuantity,
1 AS conditions,
1 AS scanType
FROM
FROM
logpm_distribution_delivery_list AS lddl
LEFT JOIN logpm_distribution_signfor AS lds ON lds.delivery_id = lddl.id
LEFT JOIN logpm_distribution_reservation AS ldr ON lds.reservation_id = ldr.id

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

@ -282,4 +282,29 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe
* @return
*/
int cancelReservationPackage(@Param("reservationId") Long reservationId, @Param("packageId") Long orderPackageId);
/**
* 取消库存品包件信息
* @param reservationId
* @param orderPackageId
* @return
*/
int cancelReservationInventory(@Param("reservationId")Long reservationId,@Param("orderPackageId") Long orderPackageId);
/**
* 查询对应的库存品包件上级信息
* @param reservationId
* @param stockListId
* @return
*/
DistributionReservationStocklistEntity selectInventoryInfoByReservationIdAndInventoryId(@Param("reservationId")Long reservationId,@Param("stockListId") Long stockListId);
/**
* 滞留零担包件数量
* @param reservationId
* @param orderPackageId
* @param retentionQuantity
* @return
*/
int cancelReservationZeroPackage(Long reservationId, Long orderPackageId, Integer retentionQuantity);
}

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

@ -72,6 +72,12 @@
WHERE
reservation_id = #{reservationId} AND parce_list_id = #{packageId}
</delete>
<update id="cancelReservationZeroPackage">
</update>
<update id="cancelReservationInventory">
update logpm_dis_stock_list_detail SET stock_package_status = 2 WHERE reservation_id = #{reservationId} AND id=#{orderPackageId} and is_deleted = 0
</update>
<select id="selectDistrbutionReservationPage" resultMap="reservationResultMap">
@ -1145,5 +1151,39 @@
LEFT JOIN logpm_distribution_delivery_list AS lddl ON lds.delivery_id = lddl.id AND lddl.is_deleted = 0
WHERE lds.reservation_id =#{reservationId} AND lds.is_deleted = 0
</select>
<select id="selectInventoryInfoByReservationIdAndInventoryId"
resultType="com.logpm.distribution.entity.DistributionReservationStocklistEntity">
SELECT
ldrs.id,
ldrs.tenant_id,
ldrs.create_user,
ldrs.create_time,
ldrs.update_user,
ldrs.update_time,
ldrs.status,
ldrs.is_deleted,
ldrs.create_dept,
ldrs.reservation_id,
ldrs.stocklist_id,
ldrs.reservation_num,
ldrs.reserve1,
ldrs.reserve2,
ldrs.reserve3,
ldrs.reserve4,
ldrs.reserve5,
ldrs.stock_article_code,
ldrs.is_have_data,
ldrs.unit,
ldrs.is_unpack_product,
ldrs.stock_list_status,
ldrs.reality_num,
ldrs.loading_status,
ldrs.signing_status
FROM
logpm_distribution_reservation AS ldr
LEFT JOIN logpm_distribution_reservation_stocklist AS ldrs ON ldrs.reservation_id = ldr.id
WHERE
ldr.id = #{reservationId} AND ldrs.stocklist_id = #{stockListId}
</select>
</mapper>

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSigndetailMapper.xml

@ -142,7 +142,7 @@
JOIN logpm_distribution_stock_article ldsa ON ldrs.stock_article_id = ldsa.id
join logpm_distribution_reservation_package ldrp on ldr.id = ldrp.reservation_id
<where>
lds.is_deleted = 0
lds.is_deleted = 0 and ldr.is_deleted = 0
<if test="param.serviceNumber!=null and param.serviceNumber!=''">
and ldr.service_number like concat('%',#{param.serviceNumber},'%')
</if>

9
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.java

@ -275,4 +275,13 @@ public interface DistributionSignforMapper extends BaseMapper<DistributionSignfo
* @return
*/
int deductionLoadingPacjageNum(@Param("reservationId") Long reservationId,@Param("deliveryId") Long deliveryId,@Param("nub") Integer loadedNub);
/**
* 扣减装车的库存品包件数量
* @param reservationId
* @param deliveryId
* @param loadedNub
* @return
*/
int deductionLoadingInventoryNum(@Param("reservationId")Long reservationId,@Param("deliveryId") Long deliveryId,@Param("nub") Integer loadedNub);
}

9
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml

@ -66,6 +66,9 @@
<update id="deductionLoadingPacjageNum">
UPDATE logpm_distribution_signfor lds set lds.loaded_number = ( lds.loaded_number - #{nub} ) WHERE lds.is_deleted =0 and lds.reservation_id = #{reservationId} and loaded_number !=0 and lds.delivery_id = #{deliveryId}
</update>
<update id="deductionLoadingInventoryNum">
UPDATE logpm_distribution_signfor lds set lds.loadedin_number = ( lds.loadedin_number - #{nub} ) WHERE lds.is_deleted =0 and lds.reservation_id = #{reservationId} and loadedin_number !=0 and lds.delivery_id = #{deliveryId}
</update>
<delete id="deleteByReservationAndDeliveryId">
DELETE FROM logpm_distribution_signfor
<where>
@ -329,7 +332,7 @@
JOIN logpm_distribution_delivery_list lddl ON lddl.id = lds.delivery_id
JOIN logpm_distribution_reservation ldr ON ldr.id = lds.reservation_id
<where>
lds.is_deleted = 0
lds.is_deleted = 0 and ldr.is_deleted = 0
<if test="param.mallName != null and param.mallName!=''">
and ldr.mall_name like concat('%',#{param.mallName},'%')
</if>
@ -448,7 +451,7 @@
JOIN logpm_distribution_delivery_list lddl ON lddl.id = lds.delivery_id
JOIN logpm_distribution_reservation ldr ON ldr.id = lds.reservation_id
<where>
lds.is_deleted = 0 and lds.driver_signing ='1'
lds.is_deleted = 0 and lds.driver_signing ='1' and ldr.is_deleted = 0
<if test="param.mallName != null and param.mallName!=''">
and ldr.mall_name like concat('%',#{param.mallName},'%')
</if>
@ -494,7 +497,7 @@
JOIN logpm_distribution_delivery_list lddl ON lddl.id = lds.delivery_id
JOIN logpm_distribution_reservation ldr ON ldr.id = lds.reservation_id
<where>
lds.is_deleted = 0 and lds.signing_status ='1'
lds.is_deleted = 0 and lds.signing_status ='1' and ldr.is_deleted = 0
<if test="param.mallName != null and param.mallName!=''">
and ldr.mall_name like concat('%',#{param.mallName},'%')
</if>

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

@ -242,4 +242,12 @@ public interface IDistributionAsyncService {
* @param deliveryId
*/
void checkRetentionReservationAndDeliveryInfo(Long reservationId, Long deliveryId);
/**
* 取消滞留库存品包件信息并维护预约单数量信息
* @param reservationId
* @param deliveryId
* @param orderPackageId
*/
void checkRetentionInventoryReservationAndDeliveryInfo(Long reservationId, Long deliveryId, Long orderPackageId);
}

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

@ -334,6 +334,25 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi
*/
boolean retentionDeliveryReservationPackage(Long deliveryId, Long reservationId, Long orderPackageId, Integer conditions);
/**
* 滞留取消库存品包件
* @param deliveryId
* @param reservationId
* @param orderPackageId
* @return
*/
boolean retentionDeliveryReservationInventory(Long deliveryId, Long reservationId, Long orderPackageId);
/**
* 滞留取消零担包件维护预约
* @param deliveryId
* @param reservationId
* @param orderPackageId
* @param retentionQuantity
* @return
*/
boolean retentionDeliveryReservationZeroPackage(Long deliveryId, Long reservationId, Long orderPackageId, Integer retentionQuantity,Long orderId);
// /**
// * 滞留取消配送
// * @param distributionRetentionScanVo

31
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java

@ -1154,7 +1154,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
distributionReservationStockarticleMapper.updateById(distributionReservationStockarticleEntity);
}
} else if (distributionReservationStockarticleEntity.getIsZero().equals(IsOrNoConstant.yes.getValue())) {
//零担需要判断
//零担需要判断是否已经进行了全部的滞留操作
List<DistributionParcelNumberVO> distributionParcelNumberVOS = distributionReservationMapper.selectReservationZeroOrderDetail(distributionReservationStockarticleEntity.getStockArticleId(), distributionReservationStockarticleEntity.getReservationId());
if (Func.isNotEmpty(distributionParcelNumberVOS)) {
int sum = distributionParcelNumberVOS.stream().mapToInt(DistributionParcelNumberVO::getReservationNum).sum();
@ -1175,6 +1175,35 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
}
}
@Override
public void checkRetentionInventoryReservationAndDeliveryInfo(Long reservationId, Long deliveryId, Long orderPackageId) {
DisStockListDetailEntity disStockListDetail = disStockListDetailService.getById(orderPackageId);
if (Func.isNotEmpty(disStockListDetail)){
DistributionReservationStocklistEntity reservationStocklistEntity = distributionReservationMapper.selectInventoryInfoByReservationIdAndInventoryId(reservationId,disStockListDetail.getStockListId());
if (Func.isNotEmpty(reservationStocklistEntity)){
//查询该类型的库存品是否进行了全部滞留
List<DisStockListDetailEntity> list = disStockListDetailService.list(Wrappers.<DisStockListDetailEntity>query().lambda()
.eq(DisStockListDetailEntity::getReservationId, reservationStocklistEntity.getReservationId())
.eq(DisStockListDetailEntity::getStockListId, reservationStocklistEntity.getStocklistId())
.ne(DisStockListDetailEntity::getStockPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())
);
reservationStocklistEntity.setReservationNum(0);
if (Func.isNotEmpty(list)){
int sum = list.stream().mapToInt(DisStockListDetailEntity::getNum).sum();
reservationStocklistEntity.setReservationNum(sum);
}
if (reservationStocklistEntity.getReservationNum()==0){
reservationStocklistEntity.setStockListStatus(ReservationOrderStatusConstant.quxiao.getValue());
}
distributionReservationStocklistMapper.updateById(reservationStocklistEntity);
}
}
//维护预约的预约数量
maintenanceReservationPackageNum(reservationId);
maintenanceDeliveryPackageNum(deliveryId);
}
/**
* 维护配送数量和状态
* @param deliveryId

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

File diff suppressed because it is too large Load Diff

122
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java

@ -16,24 +16,17 @@
*/
package com.logpm.warehouse.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.entity.DisStockListDetailEntity;
import com.logpm.distribution.entity.DistributionLoadscanEntity;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import com.logpm.distribution.feign.IDistributionDeliveryListClient;
import com.logpm.distribution.feign.IDistributionLoadscanClient;
import com.logpm.distribution.feign.IDistributionParcelListClient;
import com.logpm.distribution.feign.IDistributionReservationClient;
import com.logpm.distribution.vo.DistributionDeliveryListVO;
import com.logpm.distribution.vo.DistributionDeliverySelfVO;
import com.logpm.oldproject.feign.IWarehouseClient;
import com.logpm.warehouse.bean.Resp;
import com.logpm.warehouse.dto.*;
import com.logpm.warehouse.entity.WarehouseRetentionRecordEntity;
@ -43,7 +36,6 @@ import com.logpm.warehouse.mapper.WarehouseRetentionRecordMapper;
import com.logpm.warehouse.service.IWarehouseRetentionRecordService;
import com.logpm.warehouse.service.IWarehouseRetentionScanService;
import com.logpm.warehouse.vo.WarehouseRetentionRecordVO;
import com.logpm.warehouse.vo.WarehouseRetentionScanVO;
import com.logpm.warehouse.vo.WarehouseWaybillDetentionVO;
import com.logpm.warehouse.wrapper.WarehouseRetentionRecordWrapper;
import com.logpm.warehouse.wrapper.WarehouseRetentionScanWrapper;
@ -52,7 +44,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.common.IsOrNoConstant;
import org.springblade.common.constant.retention.RetentionTypeConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser;
@ -64,6 +55,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -84,7 +76,7 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
private final IWarehouseRetentionScanService warehouseRetentionScanService;
private final IDistributionDeliveryListClient deliveryListClient;
private final IBasicdataWarehouseClient warehouseClient;
// private final IDistributionReservationClient distributionReservationClient;
// private final IDistributionReservationClient distributionReservationClient;
private final IDistributionDeliveryListClient distributionDeliveryListClient;
@Override
@ -94,7 +86,7 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
@Override
public IPage<WarehouseWaybillDetentionVO> selectWarehouseRetentionWaybillPage(IPage<WarehouseWaybillDetentionVO> page, WarehouseWaybillDetentionVO warehouseWaybillDetentionVO) {
List<WarehouseWaybillDetentionVO> warehouseRetentionRecordVOS = baseMapper.selectWarehouseWaybillRecordPage(page,warehouseWaybillDetentionVO);
List<WarehouseWaybillDetentionVO> warehouseRetentionRecordVOS = baseMapper.selectWarehouseWaybillRecordPage(page, warehouseWaybillDetentionVO);
return page.setRecords(warehouseRetentionRecordVOS);
}
@ -105,7 +97,7 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
page.setCurrent(retentionDTO.getPageNum());
page.setSize(retentionDTO.getPageSize());
IPage<WarehouseRetentionRecordEntity> pageList = baseMapper.retentionPackageList(page,retentionDTO);
IPage<WarehouseRetentionRecordEntity> pageList = baseMapper.retentionPackageList(page, retentionDTO);
return WarehouseRetentionRecordWrapper.build().pageVO(pageList);
}
@ -116,14 +108,14 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
//查询装车记录表,存入滞留包件记录
//查询配送装车记录表是否有包件记录
DistributionLoadscanEntity loadscanEntity = distributionLoadscanClient.getByOrderPackageCode(orderPackageCode);
if(Objects.isNull(loadscanEntity)){
log.warn("#################retentionScanPackage: 未找到配送装车记录 orderPackageCode="+orderPackageCode);
return R.fail(403,"未找到配送装车记录");
if (Objects.isNull(loadscanEntity)) {
log.warn("#################retentionScanPackage: 未找到配送装车记录 orderPackageCode=" + orderPackageCode);
return R.fail(403, "未找到配送装车记录");
}
DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCode(orderPackageCode);
if(Objects.isNull(parcelListEntity)){
log.warn("#################retentionScanPackage: 未找到包件数据 orderPackageCode="+orderPackageCode);
return R.fail(403,"未找到包件数据");
if (Objects.isNull(parcelListEntity)) {
log.warn("#################retentionScanPackage: 未找到包件数据 orderPackageCode=" + orderPackageCode);
return R.fail(403, "未找到包件数据");
}
WarehouseRetentionRecordEntity retentionRecordEntity = new WarehouseRetentionRecordEntity();
@ -147,7 +139,7 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
WarehouseRetentionRecordEntity retentionRecordEntity = this.getOne(Wrappers.<WarehouseRetentionRecordEntity>query().lambda()
.eq(WarehouseRetentionRecordEntity::getRetentionType, RetentionTypeConstant.peisongzhiliu.getValue())
.eq(WarehouseRetentionRecordEntity::getTaskId, deliveryId));
if (Func.isEmpty(retentionRecordEntity)){
if (Func.isEmpty(retentionRecordEntity)) {
return null;
}
WarehouseRetentionRecordVO warehouseRetentionRecordVO = WarehouseRetentionRecordWrapper.build().entityVO(retentionRecordEntity);
@ -155,7 +147,7 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
List<WarehouseRetentionScanEntity> retentionScanEntityList = warehouseRetentionScanService.list(Wrappers.<WarehouseRetentionScanEntity>query().lambda()
.eq(WarehouseRetentionScanEntity::getDeliveryId, retentionRecordEntity.getTaskId())
.eq(WarehouseRetentionScanEntity::getRefId, retentionRecordEntity.getId()));
if (Func.isNotEmpty(retentionScanEntityList)){
if (Func.isNotEmpty(retentionScanEntityList)) {
warehouseRetentionRecordVO.setRetentionScanVOList(WarehouseRetentionScanWrapper.build().listVO(retentionScanEntityList));
}
return warehouseRetentionRecordVO;
@ -165,13 +157,13 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
@Transactional
public R saveRetentionList(WarehouseRetentionRecordDTO warehouseRetentionRecordDTO) {
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if (Func.isEmpty(myCurrentWarehouse)){
if (Func.isEmpty(myCurrentWarehouse)) {
return null;
}
List<WarehouseRetentionScanDTO> warehouseRetentionScanDTOS = warehouseRetentionRecordDTO.getWarehouseRetentionScanDTOS();
if (Func.isEmpty(warehouseRetentionScanDTOS)){
if (Func.isEmpty(warehouseRetentionScanDTOS)) {
log.error("############用户提交空滞留列表");
return Resp.scanFail("操作失败","无滞留包件信息");
return Resp.scanFail("操作失败", "无滞留包件信息");
}
BladeUser user = AuthUtil.getUser();
//TODO 保存车次数据还需要处理
@ -187,7 +179,8 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
warehouseRetentionRecordEntity.setRetentionCreateUserName(user.getUserName());
this.save(warehouseRetentionRecordEntity);
AtomicInteger retentionTotal = new AtomicInteger();
warehouseRetentionScanDTOS.forEach(r->{
AtomicBoolean saveFlah = new AtomicBoolean(false);
warehouseRetentionScanDTOS.forEach(r -> {
//查询是否进行多次滞留
WarehouseRetentionScanEntity retentionScanServiceOne = warehouseRetentionScanService.getOne(Wrappers.<WarehouseRetentionScanEntity>query().lambda()
.eq(WarehouseRetentionScanEntity::getConditions, r.getConditions())
@ -199,30 +192,44 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
.ne(WarehouseRetentionScanEntity::getCancelRetentionStatus, IsOrNoConstant.no.getValue())
);
//避免重复添加相同的滞留包件数据
if (Func.isEmpty(retentionScanServiceOne)){
if (Func.isEmpty(retentionScanServiceOne)) {
r.setRetentionScanTime(new Date());
r.setRetentionScanUserId(user.getUserId());
r.setRetentionScanUsername(user.getNickName());
r.setRetentionQuantity(r.getRetentionQuantity());
retentionTotal.getAndAdd(r.getRetentionQuantity());
r.setDeliveryId(warehouseRetentionRecordDTO.getDeliveryId());
r.setRefId(warehouseRetentionRecordEntity.getId());
warehouseRetentionScanService.save(Func.copy(r,WarehouseRetentionScanEntity.class));
warehouseRetentionScanService.save(Func.copy(r, WarehouseRetentionScanEntity.class));
//进行滞留之后需要对包件进行取消配送的操作
if (r.getConditions().equals(3)){
//零担滞留
}else {
//包件滞留
distributionDeliveryListClient.retentionDeliveryReservationPackage(r.getDeliveryId(),r.getReservationId(),r.getOrderPackageId(),r.getConditions());
Integer conditions = r.getConditions();
switch (conditions) {
case 1:
//订制品
saveFlah.set(distributionDeliveryListClient.retentionDeliveryReservationPackage(r.getDeliveryId(), r.getReservationId(), r.getOrderPackageId(), r.getConditions()));
break;
case 2:
//库存品
saveFlah.set(distributionDeliveryListClient.retentionDeliveryReservationInventory(r.getDeliveryId(), r.getReservationId(), r.getOrderPackageId()));
break;
case 3:
//零担
saveFlah.set(distributionDeliveryListClient.retentionDeliveryReservationZeroPackage(r.getDeliveryId(), r.getReservationId(), r.getOrderPackageId(),r.getRetentionQuantity(),r.getOrderId()));
break;
}
}
//进行滞留操作的包件需要和原来订单 预约进行绑定解除
//TODO 需要一个取消配送包件的方法
// reservationClient.retentionCancelReservationPack();
});
warehouseRetentionRecordEntity.setRetentionQuantity(retentionTotal.get());
this.updateById(warehouseRetentionRecordEntity);
return Resp.scanSuccess("操作成功","操作成功");
if (saveFlah.get()){
warehouseRetentionRecordEntity.setRetentionQuantity(retentionTotal.get());
this.updateById(warehouseRetentionRecordEntity);
return Resp.scanSuccess("操作成功", "操作成功");
}else {
throw new RuntimeException("服务器正忙...");
}
}
@Override
@ -230,13 +237,13 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
// 获取当前登录的仓库信息
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(ObjectUtils.isNull(myCurrentWarehouse)){
if (ObjectUtils.isNull(myCurrentWarehouse)) {
throw new ServiceException("没有仓库信息!");
}
// 用户勾选数据的ids
Object ids = paramMap.get("ids");
List<String> idArr = null;
if (null != ids && !ids.toString().equals("")){
if (null != ids && !ids.toString().equals("")) {
idArr = Arrays.asList(paramMap.get("ids").toString().split(","));
}
@ -254,13 +261,13 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
public R updateRetentionList(WarehouseRetentionRecordDTO warehouseRetentionScanDTOS) {
// 获取当前登录的仓库信息
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(ObjectUtils.isNull(myCurrentWarehouse)){
return R.fail(403,"无仓库信息");
if (ObjectUtils.isNull(myCurrentWarehouse)) {
return R.fail(403, "无仓库信息");
}
List<WarehouseRetentionScanDTO> warehouseRetentionScanDTOList = warehouseRetentionScanDTOS.getWarehouseRetentionScanDTOS();
if (Func.isEmpty(warehouseRetentionScanDTOList)){
log.error("##########缺少滞留包件列表:{}",warehouseRetentionScanDTOList);
return Resp.scanFail("无滞留包件信息","无滞留包件信息");
if (Func.isEmpty(warehouseRetentionScanDTOList)) {
log.error("##########缺少滞留包件列表:{}", warehouseRetentionScanDTOList);
return Resp.scanFail("无滞留包件信息", "无滞留包件信息");
}
//如果滞留全部为空,这里执行删除操作
//查询出该滞留任务是否存在
@ -268,21 +275,21 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
.eq(WarehouseRetentionScanEntity::getDeliveryId, warehouseRetentionScanDTOS.getDeliveryId())
.eq(WarehouseRetentionScanEntity::getRefId, warehouseRetentionScanDTOS.getId()));
WarehouseRetentionRecordEntity retentionRecordEntity = this.getById(warehouseRetentionScanDTOS.getId());
if(Func.isNotEmpty(retentionScanEntityList)){
if (Func.isNotEmpty(retentionScanEntityList)) {
BladeUser user = AuthUtil.getUser();
Map<Long, WarehouseRetentionScanEntity> retentionPackageMap = retentionScanEntityList.stream().collect(Collectors.toMap(WarehouseRetentionScanEntity::getOrderPackageId, Function.identity(), (k1, k2) -> k2));
warehouseRetentionScanDTOList.forEach(rs->{
if (Func.isNotEmpty(retentionPackageMap.get(rs.getOrderPackageId()))){
warehouseRetentionScanDTOList.forEach(rs -> {
if (Func.isNotEmpty(retentionPackageMap.get(rs.getOrderPackageId()))) {
//查看是否是零担,如果是零担需要查看是否发生数量修改
WarehouseRetentionScanEntity warehouseRetentionScanEntity = retentionPackageMap.get(rs.getOrderPackageId());
if (retentionPackageMap.get(rs.getOrderPackageId()).getConditions()==3){
if (retentionPackageMap.get(rs.getOrderPackageId()).getConditions() == 3) {
//零担查看是否发生数据修改
if (warehouseRetentionScanEntity.getRetentionQuantity() != rs.getRetentionQuantity() && rs.getRetentionQuantity()>0){
if (warehouseRetentionScanEntity.getRetentionQuantity() != rs.getRetentionQuantity() && rs.getRetentionQuantity() > 0) {
warehouseRetentionScanEntity.setRetentionQuantity(rs.getRetentionQuantity());
warehouseRetentionScanService.updateById(warehouseRetentionScanEntity);
}
}
}else {
} else {
//在原列表中查询不到,这里视为新增滞留包件
rs.setRetentionScanTime(new Date());
rs.setRetentionScanUserId(user.getUserId());
@ -291,8 +298,21 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
// retentionTotal.getAndAdd(r.getRetentionQuantity());
rs.setDeliveryId(warehouseRetentionScanDTOS.getDeliveryId());
rs.setRefId(retentionRecordEntity.getId());
warehouseRetentionScanService.save(Func.copy(rs,WarehouseRetentionScanEntity.class));
distributionDeliveryListClient.retentionDeliveryReservationPackage(rs.getDeliveryId(),rs.getReservationId(),rs.getOrderPackageId(),rs.getConditions());
warehouseRetentionScanService.save(Func.copy(rs, WarehouseRetentionScanEntity.class));
switch (rs.getConditions()){
case 1:
//订制品
distributionDeliveryListClient.retentionDeliveryReservationPackage(rs.getDeliveryId(), rs.getReservationId(), rs.getOrderPackageId(), rs.getConditions());
break;
case 2:
//库存品
distributionDeliveryListClient.retentionDeliveryReservationInventory(rs.getDeliveryId(), rs.getReservationId(), rs.getOrderPackageId());
break;
case 3:
//零担
// distributionDeliveryListClient.retentionDeliveryReservationZeroPackage(rs.getDeliveryId(), rs.getReservationId(), rs.getOrderPackageId(),rs.getRetentionQuantity());
break;
}
}
});
}
@ -302,7 +322,7 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
.eq(WarehouseRetentionScanEntity::getRefId, warehouseRetentionScanDTOS.getId())).stream().mapToInt(WarehouseRetentionScanEntity::getRetentionQuantity).sum();
retentionRecordEntity.setRetentionQuantity(retentionTotal);
this.updateById(retentionRecordEntity);
return Resp.scanSuccess("操作成功","操作成功");
return Resp.scanSuccess("操作成功", "操作成功");
}
@Override

Loading…
Cancel
Save