Browse Source

订制品滞留状态维护

training
汤建军 1 year ago
parent
commit
add8ab5fec
  1. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java
  2. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  3. 9
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.java
  4. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml
  5. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java
  6. 478
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  7. 23
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  8. 2
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java

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

@ -274,4 +274,12 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe
* @return
*/
List<SignPushDataContactDTO> selectPushOldCustomer(@Param("reservationId") Long reservationId);
/**
* 取消预约包件
* @param reservationId
* @param orderPackageId
* @return
*/
int cancelReservationPackage(@Param("reservationId") Long reservationId, @Param("packageId") Long orderPackageId);
}

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

@ -66,6 +66,12 @@
</if>
</where>
</delete>
<delete id="cancelReservationPackage">
UPDATE logpm_distribution_reservation_package
SET packet_bar_status = 2
WHERE
reservation_id = #{reservationId} AND parce_list_id = #{packageId}
</delete>
<select id="selectDistrbutionReservationPage" resultMap="reservationResultMap">

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

@ -266,4 +266,13 @@ public interface DistributionSignforMapper extends BaseMapper<DistributionSignfo
* @return
*/
SignPushDataUnitDTO selectPushOldInventory(@Param("reservationId")Long reservationId, @Param("deliveryId")Long deliveryId);
/**
* 减少装车数
* @param reservationId
* @param deliveryId
* @param loadedNub
* @return
*/
int deductionLoadingPacjageNum(@Param("reservationId") Long reservationId,@Param("deliveryId") Long deliveryId,@Param("nub") Integer loadedNub);
}

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

@ -63,6 +63,9 @@
<update id="updatesignforByinvn">
UPDATE logpm_distribution_signfor lds set lds.receivedin_quantity = ( lds.receivedin_quantity + #{packageNub} ) WHERE lds.is_deleted =0 and lds.reservation_id = #{reservationId} and lds.delivery_id =#{deliveryId}
</update>
<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>
<delete id="deleteByReservationAndDeliveryId">
DELETE FROM logpm_distribution_signfor
<where>

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

@ -235,4 +235,11 @@ public interface IDistributionAsyncService {
* @param deliveryId
*/
void checkSignStatus(Long packageId, Long reservationId, Long deliveryId);
/**
* 维护滞留之后预约和包件的数量状态
* @param reservationId
* @param deliveryId
*/
void checkRetentionReservationAndDeliveryInfo(Long reservationId, Long deliveryId);
}

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

@ -14,6 +14,7 @@ import com.logpm.distribution.dto.app.StockupZeroDTO;
import com.logpm.distribution.entity.*;
import com.logpm.distribution.mapper.*;
import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.DistributionParcelNumberVO;
import com.logpm.distribution.vo.DistributionStockPackageVO;
import com.logpm.distribution.vo.DistributionStockupSelfVO;
import com.logpm.distribution.vo.DistrilbutionBillStockVO;
@ -83,8 +84,8 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
private final IDisStockListDetailService disStockListDetailService;
private final IWarehouseUpdownTypeClient warehouseUpdownTypeClient;
private final IBasicdataWarehouseClient warehouseClient;
private final IDistributionReservationZeroPackageService reservationZeroPackageService;
private final IDistributionParcelNumberService distributionParcelNumberService;
private final IDistributionReservationZeroPackageService reservationZeroPackageService;
private final IDistributionParcelNumberService distributionParcelNumberService;
@Override
@ -209,6 +210,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
/**
* 修改订单备货状态
*
* @param id 订单ID
*/
@Async
@ -216,38 +218,39 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
public void updateStockArticleStock(Long id) {
log.debug("###查询订单备货状态");
DistributionStockArticleEntity byId = distributionStockArticleService.getById(id);
if(byId.getStockupStatus().equals(OrderStockupStatusConstant.daibeihuo.getValue())){
if (byId.getStockupStatus().equals(OrderStockupStatusConstant.daibeihuo.getValue())) {
//
byId.setStockupStatus(OrderStockupStatusConstant.bufenbeihuo.getValue());
boolean b = distributionStockArticleService.updateById(byId);
log.debug("###执行结果={}",b);
}else if(byId.getStockupStatus().equals("1")){
log.debug("###执行结果={}", b);
} else if (byId.getStockupStatus().equals("1")) {
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListMapper.selectList(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getStockArticleId, id)
);
int sum = distributionParcelListEntities.stream().filter(i -> i.getOrderPackageStockupStatus().equals(OrderPackageStockupStatusConstant.daibeihuo.getValue())).collect(Collectors.toList()).stream().mapToInt(DistributionParcelListEntity::getQuantity).sum();
if(sum == 0 && byId.getStockupStatus().equals(OrderStockupStatusConstant.bufenbeihuo.getValue())){
if (sum == 0 && byId.getStockupStatus().equals(OrderStockupStatusConstant.bufenbeihuo.getValue())) {
byId.setStockupStatus(OrderStockupStatusConstant.yibeihu.getValue());
boolean b = distributionStockArticleService.updateById(byId);
log.debug("###执行结果={}",b);
log.debug("###执行结果={}", b);
}
}
}
/**
* 修改包件预约状态
*
* @param ids 订单ID
*/
@Async
@Override
public void updateParcelListReservation(List<Long> ids) {
log.debug("####修改包件预约状态");
ids.stream().forEach( i ->{
ids.stream().forEach(i -> {
DistributionParcelListEntity distributionParcelListEntity = new DistributionParcelListEntity();
distributionParcelListEntity.setId(i);
distributionParcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue());
int i1 = distributionParcelListMapper.updateById(distributionParcelListEntity);
log.debug("####修改包件预约数量===={}",i1);
log.debug("####修改包件预约数量===={}", i1);
});
}
@ -359,7 +362,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
@Async
@Override
@Transactional(isolation = Isolation.READ_UNCOMMITTED, rollbackFor = Exception.class)
public void changeMarketDeliveryListStatus(String barcode, Long deliveryId,Long reservationId) {
public void changeMarketDeliveryListStatus(String barcode, Long deliveryId, Long reservationId) {
//查询库存品
DisStockListDetailEntity loadingInventoryDetail = distributionDeliveryListMapper.getLoadingInventoryDetail(barcode, deliveryId);
@ -399,7 +402,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
log.error("####库存品记录错误+{" + reservationStockarticleEntityList + "}");
return;
}
checkReservationAndDeliveryLoadingStatus(deliveryId,reservationId);
checkReservationAndDeliveryLoadingStatus(deliveryId, reservationId);
}
@Async
@ -515,12 +518,12 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
if (inventorySigningFlag && reservationSigningFlag) {
r.setSigningStatus(ReservationSigningStatusConstant.yiqianshou.getValue());
} else {
inventorySigningFlag = distributionReservationStocklistEntities.stream().allMatch(i -> !i.getSigningStatus().equals(ReservationInventorySigningStatusConstant.yiqianshou.getValue()));
reservationSigningFlag = parcelListEntities.stream().allMatch(p -> !p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
if (inventorySigningFlag && reservationSigningFlag){
inventorySigningFlag = distributionReservationStocklistEntities.stream().allMatch(i -> !i.getSigningStatus().equals(ReservationInventorySigningStatusConstant.yiqianshou.getValue()));
reservationSigningFlag = parcelListEntities.stream().allMatch(p -> !p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()));
if (inventorySigningFlag && reservationSigningFlag) {
r.setSigningStatus(ReservationSigningStatusConstant.daiqianshou.getValue());
}else {
} else {
r.setSigningStatus(ReservationSigningStatusConstant.bufenqianshou.getValue());
}
}
@ -562,24 +565,24 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//查询一个配送任务下的所有客户
List<DistributionReservationEntity> reservationEntityList = distributionDeliveryListMapper.selectReservationByDeliveryListId(deliveryId);
boolean loadingStatusFlag = reservationEntityList.stream().allMatch(r -> r.getLoadingStatus().equals(ReservationLoadingStatusConstant.yizhuangche.getValue()));
if (loadingStatusFlag){
if (loadingStatusFlag) {
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.yizhuangche.getValue());
}else {
} else {
loadingStatusFlag = reservationEntityList.stream().allMatch(r -> r.getLoadingStatus().equals(ReservationLoadingStatusConstant.daizhuangche.getValue()));
if (loadingStatusFlag){
if (loadingStatusFlag) {
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.weizhuangche.getValue());
}else {
} else {
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.bunfenzhuangche.getValue());
}
}
boolean signingStatusFlag = reservationEntityList.stream().allMatch(r -> r.getSigningStatus().equals(ReservationSigningStatusConstant.yiqianshou.getValue()));
if (signingStatusFlag){
if (signingStatusFlag) {
deliveryListEntity.setDeliveryStatus(DeliveryStatusConstant.yiwancheng.getValue());
}else {
} else {
loadingStatusFlag = reservationEntityList.stream().allMatch(r -> r.getLoadingStatus().equals(ReservationSigningStatusConstant.daiqianshou.getValue()));
if (loadingStatusFlag){
if (loadingStatusFlag) {
deliveryListEntity.setDeliveryStatus(DeliveryStatusConstant.daipeisong.getValue());
}else {
} else {
deliveryListEntity.setDeliveryStatus(DeliveryStatusConstant.peisongzhong.getValue());
}
}
@ -589,14 +592,15 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
/**
* 判断包件是否该下架
*
* @param stockupDTO
*/
@Async
@Override
public void stockupSelfOffShelf(StockupDTO stockupDTO) throws InterruptedException {
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
throw new CustomerException(403,"仓库信息不能为空");
if (Objects.isNull(myCurrentWarehouse)) {
throw new CustomerException(403, "仓库信息不能为空");
}
//判断类型
@ -613,7 +617,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//有
List<DistributionStockupSelfVO> collectY = distributionStockupSelfVO.stream().filter(o -> ObjectUtils.isNotNull(o.getAllocationId())).collect(Collectors.toList());
collectY.stream().collect(Collectors.groupingBy(DistributionStockupSelfVO::getAllocationId))
.forEach( (k,v) -> {
.forEach((k, v) -> {
List<String> list = new ArrayList<>();
AtomicInteger a = new AtomicInteger();
AtomicInteger b = new AtomicInteger();
@ -629,11 +633,11 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
if (a.get() == b.get()) {
//下架
list.forEach(i -> {
warehouseUpdownTypeClient.downPackage(i,myCurrentWarehouse.getId());
warehouseUpdownTypeClient.downPackage(i, myCurrentWarehouse.getId());
});
}
} );
});
//没有
/*List<DistributionStockupSelfVO> collectW = distributionStockupSelfVO.stream().filter(o -> ObjectUtils.isNull(o.getAllocationId())).collect(Collectors.toList());
@ -660,21 +664,21 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
@Override
@Transactional
public void checkLoadingByPackage(DistributionParcelListEntity parcelListEntity, Long deliveryId,Long reservationId) {
if (Func.isEmpty(parcelListEntity)){
log.error("############包件信息异常:{}",parcelListEntity);
public void checkLoadingByPackage(DistributionParcelListEntity parcelListEntity, Long deliveryId, Long reservationId) {
if (Func.isEmpty(parcelListEntity)) {
log.error("############包件信息异常:{}", parcelListEntity);
throw new RuntimeException("包件信息异常");
}
//维护包件所属订单是否均已完成装车,如果均已完成装车则订单进行装车状态的修改
if (parcelListEntity.getConditions() != 2){
if (parcelListEntity.getConditions() != 2) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelListEntity.getStockArticleId());
//查询出该订单的装车件数
Integer orderLoadingNum = distributionLoadscanMapper.selectOrderLoadingNum(stockArticleEntity.getId());
if (Func.isNotEmpty(orderLoadingNum) && orderLoadingNum > 0){
if (Func.isNotEmpty(orderLoadingNum) && orderLoadingNum > 0) {
//存在装车数量,需要对装车数量进行判定
if (orderLoadingNum == stockArticleEntity.getTotalNumber()){
if (orderLoadingNum == stockArticleEntity.getTotalNumber()) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.chuku.getValue());
}else {
} else {
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenchuku.getValue());
}
distributionStockArticleService.updateById(stockArticleEntity);
@ -689,34 +693,34 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//判断客户是否完成装车
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(reservationId);
int reservationPackageTotal = distributionReservationEntity.getReservationNum() + distributionReservationEntity.getReservationStockListNum();
if (reservationPackageTotal!=0){
DistributionLoadingNumDTO reservationLoadingNum = distributionReservationMapper.selectReservationLoadingNum(distributionReservationEntity.getId());
if (Func.isNotEmpty(reservationLoadingNum)){
int reservationLoadingQuantity = reservationLoadingNum.getPackageLoadingQuantity()+reservationLoadingNum.getInventoryLoadingQuantity();
if (reservationLoadingQuantity == reservationPackageTotal){
if (reservationPackageTotal != 0) {
DistributionLoadingNumDTO reservationLoadingNum = distributionReservationMapper.selectReservationLoadingNum(distributionReservationEntity.getId());
if (Func.isNotEmpty(reservationLoadingNum)) {
int reservationLoadingQuantity = reservationLoadingNum.getPackageLoadingQuantity() + reservationLoadingNum.getInventoryLoadingQuantity();
if (reservationLoadingQuantity == reservationPackageTotal) {
distributionReservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue());
}else {
} else {
distributionReservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue());
}
distributionReservationMapper.updateById(distributionReservationEntity);
}
}else {
} else {
log.error("##########查询客户配送数量为0");
}
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(deliveryId);
int deliveryPackageTotal = distributionDeliveryListEntity.getDeliveryNumber();
if (deliveryPackageTotal!=0){
if (deliveryPackageTotal != 0) {
DistributionLoadingNumDTO deliveryLoadingNum = distributionDeliveryListMapper.selectDeliveryLoadingNum(distributionDeliveryListEntity.getId());
if (Func.isNotEmpty(deliveryLoadingNum)){
int deliveryLoadingQuantity = deliveryLoadingNum.getPackageLoadingQuantity()+deliveryLoadingNum.getInventoryLoadingQuantity();
if (deliveryPackageTotal == deliveryLoadingQuantity){
if (Func.isNotEmpty(deliveryLoadingNum)) {
int deliveryLoadingQuantity = deliveryLoadingNum.getPackageLoadingQuantity() + deliveryLoadingNum.getInventoryLoadingQuantity();
if (deliveryPackageTotal == deliveryLoadingQuantity) {
distributionDeliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.yizhuangche.getValue());
}else {
} else {
distributionDeliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.bunfenzhuangche.getValue());
}
distributionDeliveryListMapper.updateById(distributionDeliveryListEntity);
}
}else {
} else {
log.error("##########查询客户配送数量为0");
}
}
@ -798,62 +802,61 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
// }
// }
@Override
public void checkLoadingByDelivery(Long deliveryId) {
DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectById(deliveryId);
if (Func.isNotEmpty(deliveryListEntity)){
if (Func.isNotEmpty(deliveryListEntity)) {
List<DistributionParcelListEntity> deliveryParcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(deliveryId);
boolean deliveryLoadingFlag = deliveryParcelListEntities.stream().allMatch(p->p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (deliveryLoadingFlag){
boolean deliveryLoadingFlag = deliveryParcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (deliveryLoadingFlag) {
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.yizhuangche.getValue());
}else {
deliveryLoadingFlag = deliveryParcelListEntities.stream().allMatch(p->p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()));
if (deliveryLoadingFlag){
} else {
deliveryLoadingFlag = deliveryParcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()));
if (deliveryLoadingFlag) {
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.weizhuangche.getValue());
}else {
} else {
deliveryListEntity.setDeliveryListLoadingStatus(DeliveryLoadingStatusConstant.bunfenzhuangche.getValue());
}
}
distributionDeliveryListMapper.updateById(deliveryListEntity);
}
List<DistributionReservationEntity> reservationEntityList = distributionDeliveryListMapper.selectReservationByDeliveryListId(deliveryId);
if (Func.isNotEmpty(reservationEntityList) && reservationEntityList.size()>0){
if (Func.isNotEmpty(reservationEntityList) && reservationEntityList.size() > 0) {
for (DistributionReservationEntity reservationEntity : reservationEntityList) {
List<DistributionParcelListEntity> parcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationEntity.getId());
Map<Long, List<DistributionParcelListEntity>> order = parcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getStockArticleId));
order.forEach((k,v)->{
order.forEach((k, v) -> {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(k);
List<DistributionParcelListEntity> stockArticlePackageList = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda().eq(DistributionParcelListEntity::getStockArticleId, k));
if (stockArticlePackageList.size() == v.size()){
if (stockArticlePackageList.size() == v.size()) {
boolean orderLoadingFlag = v.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (orderLoadingFlag){
if (orderLoadingFlag) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.chuku.getValue());
}else {
} else {
orderLoadingFlag = v.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()));
if (!orderLoadingFlag){
if (!orderLoadingFlag) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenchuku.getValue());
}
}
}else {
} else {
boolean orderbufenLoadingFlag = v.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (orderbufenLoadingFlag){
if (orderbufenLoadingFlag) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenchuku.getValue());
}
}
distributionStockArticleService.updateById(stockArticleEntity);
});
boolean reservationLoadingFlag = parcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue()));
if (reservationLoadingFlag){
if (reservationLoadingFlag) {
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue());
}else {
reservationLoadingFlag = parcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()));
if (reservationLoadingFlag){
} else {
reservationLoadingFlag = parcelListEntities.stream().allMatch(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()));
if (reservationLoadingFlag) {
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue());
}else {
} else {
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getValue());
}
}
@ -868,13 +871,13 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(packageId);
parcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
distributionParcelListService.updateById(parcelListEntity);
if (Func.isNotEmpty(parcelListEntity)){
if (Func.isNotEmpty(parcelListEntity)) {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelListEntity.getStockArticleId());
Integer orderLoadingNum = distributionLoadscanMapper.selectOrderLoadingNum(stockArticleEntity.getId());
if (Func.isNotEmpty(orderLoadingNum) && orderLoadingNum > 0){
if (stockArticleEntity.getTotalNumber() ==orderLoadingNum ){
if (Func.isNotEmpty(orderLoadingNum) && orderLoadingNum > 0) {
if (stockArticleEntity.getTotalNumber() == orderLoadingNum) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.chuku.getValue());
}else {
} else {
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenchuku.getValue());
}
distributionStockArticleService.updateById(stockArticleEntity);
@ -888,13 +891,13 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
.eq(DistributionParcelListEntity::getStockArticleId, parcelListEntity.getStockArticleId()));
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelListEntity.getStockArticleId());
boolean flag = parcelListEntities.stream().allMatch(p -> p.getOrderPackageReservationStatus().equals(OrderPackageReservationStatusConstant.yiyueyue.getValue()));
if (flag){
if (flag) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
}else {
flag = parcelListEntities.stream().allMatch(p -> p.getOrderPackageReservationStatus().equals(OrderPackageReservationStatusConstant.daiyuyue.getValue()));
if (flag){
} else {
flag = parcelListEntities.stream().allMatch(p -> p.getOrderPackageReservationStatus().equals(OrderPackageReservationStatusConstant.daiyuyue.getValue()));
if (flag) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.daiyuyue.getValue());
}else {
} else {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
}
@ -912,40 +915,39 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
log.debug("修改备货数据》》》",stockupDTO);
log.debug("修改备货数据》》》", stockupDTO);
QueryWrapper<DistributionReservationZeroPackageEntity> queryWrapper = new QueryWrapper();
if(ObjectUtils.isNotNull(stockupDTO.getStockArticleId())){
queryWrapper.eq("stock_article_id",stockupDTO.getStockArticleId());
if (ObjectUtils.isNotNull(stockupDTO.getStockArticleId())) {
queryWrapper.eq("stock_article_id", stockupDTO.getStockArticleId());
}
if(stockupDTO.getStockArticleIdList() != null && !stockupDTO.getStockArticleIdList().equals(null)){
queryWrapper.in("stock_article_id",stockupDTO.getStockArticleIdList());
if (stockupDTO.getStockArticleIdList() != null && !stockupDTO.getStockArticleIdList().equals(null)) {
queryWrapper.in("stock_article_id", stockupDTO.getStockArticleIdList());
}
queryWrapper.eq("reservation_id",stockupDTO.getReservationId());
queryWrapper.eq("reservation_id", stockupDTO.getReservationId());
List<DistributionReservationZeroPackageEntity> list = reservationZeroPackageService.list(queryWrapper);
AtomicBoolean pian = new AtomicBoolean(true);
DistributionStockupEntity stockupEntity = new DistributionStockupEntity();
list.stream().forEach(i -> {
if(!i.getQuantity().equals(i.getRealityQuantity())){
if (!i.getQuantity().equals(i.getRealityQuantity())) {
//不同 不能修改为完成
pian.set(false);
}
});
if(pian.get()){
if (pian.get()) {
AtomicReference<Boolean> s = new AtomicReference<>(false);
if(stockupDTO.getTypeService().equals("3")){
if (stockupDTO.getTypeService().equals("3")) {
//自提
//查询有没有不是零担的订单
List<DistributionStockPackageVO> distributionStockPackageVOS = distrilbutionBillStockService.listPackageSelf(stockupDTO.getReservationId());
if(!distributionStockPackageVOS.isEmpty()){
if (!distributionStockPackageVOS.isEmpty()) {
distributionStockPackageVOS.forEach( i ->{
if(getDoneStockUp(i.getStockArticleId(), i.getParcelListId(), stockupDTO.getReservationId(), stockupDTO.getTypeService())){
distributionStockPackageVOS.forEach(i -> {
if (getDoneStockUp(i.getStockArticleId(), i.getParcelListId(), stockupDTO.getReservationId(), stockupDTO.getTypeService())) {
//没有扫
s.set(true);
}
});
}else{
} else {
//查询有没有库存品
@ -953,50 +955,50 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
.eq(DistributionDeliveryDetailsEntity::getBillLadingId, stockupDTO.getReservationId())
.in(DistributionDeliveryDetailsEntity::getInventoryStatus, "1", "3")
);
if(!distributionDeliveryDetailsEntities.isEmpty()){
if (!distributionDeliveryDetailsEntities.isEmpty()) {
int sum = distributionDeliveryDetailsEntities.stream().mapToInt(DistributionDeliveryDetailsEntity::getQuantity).sum(); //全部的库存数量
distributionDeliveryDetailsEntities.forEach(d ->{
if(!getDoneStockUpStock(d.getStockListId(),stockupDTO.getReservationId(),stockupDTO.getTypeService(),stockupDTO.getStockupId(),sum )){
distributionDeliveryDetailsEntities.forEach(d -> {
if (!getDoneStockUpStock(d.getStockListId(), stockupDTO.getReservationId(), stockupDTO.getTypeService(), stockupDTO.getStockupId(), sum)) {
s.set(true);
}
});
}
if(s.get()){
if (s.get()) {
stockupEntity.setStockupStatus(StockupStatusConstant.beihuozhong.getValue());
}else{
} else {
stockupEntity.setStockupStatus(StockupStatusConstant.yibeihuo.getValue());
stockupEntity.setFixTime(new Date());
}
}
}else{
} else {
//商,市
//查询数据
List<DistributionStockupInfoEntity> distributionStockupInfoEntities = distributionStockupInfoMapper.selectList(Wrappers.<DistributionStockupInfoEntity>query().lambda()
.eq(DistributionStockupInfoEntity::getStockupId, stockupDTO.getStockupId())
);
distributionStockupInfoEntities.forEach(v ->{
distributionStockupInfoEntities.forEach(v -> {
//查询包件数据
List<DistributionReservationPackageEntity> packageEntities = distributionReservationPackageMapper.selectList(Wrappers.<DistributionReservationPackageEntity>query().lambda()
.eq(DistributionReservationPackageEntity::getReservationId, v.getReservationId())
.eq(DistributionReservationPackageEntity::getPacketBarStatus, '1')
);
packageEntities.forEach( i ->{
if(getDoneStockUp(i.getStockArticleId(), i.getParceListId(), v.getReservationId(), stockupDTO.getTypeService())){
packageEntities.forEach(i -> {
if (getDoneStockUp(i.getStockArticleId(), i.getParceListId(), v.getReservationId(), stockupDTO.getTypeService())) {
//没有扫
s.set(true);
}
});
});
if(!s.get()){
if (!s.get()) {
//查询有没有库存品
List<DistributionReservationStocklistEntity> distributionReservationStocklistEntities = distributionReservationStocklistMapper.selectList(Wrappers.<DistributionReservationStocklistEntity>query().lambda()
.eq(DistributionReservationStocklistEntity::getReservationId, stockupDTO.getReservationId())
.in(DistributionReservationStocklistEntity::getStockListStatus, "1", "3")
);
if(!distributionReservationStocklistEntities.isEmpty()){
if (!distributionReservationStocklistEntities.isEmpty()) {
int sum = distributionReservationStocklistEntities.stream().mapToInt(DistributionReservationStocklistEntity::getRealityNum).sum(); //全部的库存数量
distributionReservationStocklistEntities.forEach(d ->{
if(!getDoneStockUpStock(d.getStocklistId(),stockupDTO.getReservationId(),stockupDTO.getTypeService(),stockupDTO.getStockupId(),sum )){
distributionReservationStocklistEntities.forEach(d -> {
if (!getDoneStockUpStock(d.getStocklistId(), stockupDTO.getReservationId(), stockupDTO.getTypeService(), stockupDTO.getStockupId(), sum)) {
s.set(true);
}
});
@ -1005,14 +1007,14 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
stockupEntity.setFixTime(new Date());
}
}
if(s.get()){
if (s.get()) {
stockupEntity.setStockupStatus(StockupStatusConstant.beihuozhong.getValue());
}else{
} else {
stockupEntity.setStockupStatus(StockupStatusConstant.yibeihuo.getValue());
stockupEntity.setFixTime(new Date());
}
}else{
} else {
stockupEntity.setStockupStatus(StockupStatusConstant.beihuozhong.getValue());
}
stockupEntity.setId(stockupDTO.getStockupId());
@ -1025,10 +1027,10 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(parcelNumberEntity.getParcelListId());
//计算该品类的使用数量,这里数量被使用就一定会进行预约
int a = parcelNumber.getDeliveryQuantity() + parcelNumber.getOutboundQuantity();
if (a == 0){
if (a == 0) {
parcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.daiyuyue.getValue());
}else {
if (a == parcelNumberEntity.getHandQuantity()){
} else {
if (a == parcelNumberEntity.getHandQuantity()) {
parcelListEntity.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue());
}
}
@ -1036,17 +1038,17 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelListEntity.getStockArticleId());
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda().eq(DistributionParcelListEntity::getStockArticleId, stockArticleEntity.getId()));
boolean flag = parcelListEntityList.stream().allMatch(p -> Func.equals(p.getOrderPackageReservationStatus(), OrderPackageReservationStatusConstant.yiyueyue.getValue()));
if (flag){
if (flag) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
}else {
} else {
List<DistributionParcelNumberEntity> parcelNumberEntityList = distributionParcelNumberService.list(Wrappers.<DistributionParcelNumberEntity>query().lambda().eq(DistributionParcelNumberEntity::getStockArticleId, stockArticleEntity.getId()));
AtomicInteger atomicInteger = new AtomicInteger();
parcelNumberEntityList.forEach(p->{
parcelNumberEntityList.forEach(p -> {
atomicInteger.getAndAdd(p.getDeliveryQuantity() + p.getOutboundQuantity());
});
if (stockArticleEntity.getHandQuantity()> atomicInteger.get()){
if (stockArticleEntity.getHandQuantity() > atomicInteger.get()) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
}else if (stockArticleEntity.getHandQuantity() == atomicInteger.get()){
} else if (stockArticleEntity.getHandQuantity() == atomicInteger.get()) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
}
}
@ -1055,67 +1057,67 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
@Override
@Transactional
public void checkZeroStockArticleLoadingStatus(DistributionParcelNumberEntity parcelNumberEntity,Long deliveryId,Long reservationId) {
if (Func.isEmpty(parcelNumberEntity)){
log.error("#################parcelNumberEntity参数错误:{}",parcelNumberEntity);
public void checkZeroStockArticleLoadingStatus(DistributionParcelNumberEntity parcelNumberEntity, Long deliveryId, Long reservationId) {
if (Func.isEmpty(parcelNumberEntity)) {
log.error("#################parcelNumberEntity参数错误:{}", parcelNumberEntity);
return;
}
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelNumberEntity.getStockArticleId());
if (Func.equals(stockArticleEntity.getIsZero(),IsOrNoConstant.no.getValue())){
log.error("#################查询订单异常,订单ID为:{}",parcelNumberEntity.getStockArticleId());
if (Func.equals(stockArticleEntity.getIsZero(), IsOrNoConstant.no.getValue())) {
log.error("#################查询订单异常,订单ID为:{}", parcelNumberEntity.getStockArticleId());
return;
}
List<DistributionParcelNumberEntity> parcelNumberEntities = distributionParcelNumberService.list(Wrappers.<DistributionParcelNumberEntity>query().lambda()
.eq(DistributionParcelNumberEntity::getStockArticleId, stockArticleEntity.getId()));
if (Func.isEmpty(parcelNumberEntities)){
log.error("#################查询零担订单包件品类异常,订单ID为:{}",stockArticleEntity.getId());
if (Func.isEmpty(parcelNumberEntities)) {
log.error("#################查询零担订单包件品类异常,订单ID为:{}", stockArticleEntity.getId());
return;
}
parcelNumberEntities.forEach(p->{
parcelNumberEntities.forEach(p -> {
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(p.getParcelListId());
if (p.getOutboundQuantity() == p.getQuantity()){
if (p.getOutboundQuantity() == p.getQuantity()) {
parcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
}else {
} else {
parcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.weizhuancghe.getValue());
}
distributionParcelListService.updateById(parcelListEntity);
});
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getStockArticleId, stockArticleEntity.getId()));
if (Func.isEmpty(parcelListEntityList)){
log.error("#################查询零担订单包件异常,订单ID为:{}",stockArticleEntity.getId());
if (Func.isEmpty(parcelListEntityList)) {
log.error("#################查询零担订单包件异常,订单ID为:{}", stockArticleEntity.getId());
return;
}
int outboundQuantity = parcelNumberEntities.stream().mapToInt(DistributionParcelNumberEntity::getOutboundQuantity).sum();
if (outboundQuantity > 0 && outboundQuantity < stockArticleEntity.getTotalNumber()){
if (outboundQuantity > 0 && outboundQuantity < stockArticleEntity.getTotalNumber()) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenchuku.getValue());
stockArticleEntity.setDeliveryQuantity(stockArticleEntity.getDeliveryQuantity() + outboundQuantity);
}
if (stockArticleEntity.getTotalNumber() == outboundQuantity){
if (stockArticleEntity.getTotalNumber() == outboundQuantity) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.chuku.getValue());
stockArticleEntity.setDeliveryQuantity(stockArticleEntity.getDeliveryQuantity() + outboundQuantity);
}
distributionStockArticleService.updateById(stockArticleEntity);
//维护预约客户和配送任务装车状态
checkReservationAndDeliveryLoadingStatus(deliveryId,reservationId);
checkReservationAndDeliveryLoadingStatus(deliveryId, reservationId);
}
@Override
public void checkSignStatus(Long packageId, Long reservationId, Long deliveryId) {
if (Func.isNotEmpty(packageId)){
if (Func.isNotEmpty(packageId)) {
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(packageId);
//维护包件所属订单签收状态
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(parcelListEntity.getStockArticleId());
//维护该订单的签收状态
if (Func.isNotEmpty(stockArticleEntity)){
if (Func.isNotEmpty(stockArticleEntity)) {
Integer totalNumber = stockArticleEntity.getTotalNumber();
Integer orderSignNum = distributionLoadscanMapper.selectOrderSignNum(stockArticleEntity.getId());
Integer orderLoadingNum = distributionLoadscanMapper.selectOrderLoadingNum(stockArticleEntity.getId());
if (Func.isNotEmpty(orderSignNum) && orderSignNum>0){
if (totalNumber ==orderSignNum){
if (Func.isNotEmpty(orderSignNum) && orderSignNum > 0) {
if (totalNumber == orderSignNum) {
stockArticleEntity.setOrderStatus(OrderStatusConstant.qianshou.getValue());
}else {
} else {
stockArticleEntity.setOrderStatus(OrderStatusConstant.bufenqianshou.getValue());
}
}
@ -1124,27 +1126,121 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
}
checkReservationAndDeliveryLoadingStatus(deliveryId,reservationId);
checkReservationAndDeliveryLoadingStatus(deliveryId, reservationId);
checkReservationAndDeliverySigningStatus(reservationId, deliveryId);
//注意:这里对于异常装车的包件也需要进行统计
}
@Override
public void checkRetentionReservationAndDeliveryInfo(Long reservationId, Long deliveryId) {
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(reservationId);
if (Func.isNotEmpty(distributionReservationEntity)) {
//重新统计预约单包件数量
List<DistributionReservationStockarticleEntity> distributionReservationStockarticleEntities = distributionReservationMapper.selectStockArticleByReservationId(reservationId);
if (Func.isNotEmpty(distributionReservationStockarticleEntities)) {
for (DistributionReservationStockarticleEntity distributionReservationStockarticleEntity : distributionReservationStockarticleEntities) {
if (distributionReservationStockarticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) {
List<DistributionParcelListEntity> distributionParcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationId, distributionReservationStockarticleEntity.getStockArticleId());
if (Func.isNotEmpty(distributionParcelListEntities)) {
if (distributionParcelListEntities.size() != distributionReservationStockarticleEntity.getReservationNum()) {
distributionReservationStockarticleEntity.setReservationNum(distributionParcelListEntities.size());
distributionReservationStockarticleMapper.updateById(distributionReservationStockarticleEntity);
}
} else {
distributionReservationStockarticleEntity.setReservationNum(0);
distributionReservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue());
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();
if (distributionReservationStockarticleEntity.getReservationNum() != sum) {
distributionReservationStockarticleEntity.setReservationNum(sum);
if (sum == 0) {
distributionReservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue());
}
distributionReservationStockarticleMapper.updateById(distributionReservationStockarticleEntity);
}
}
}
}
}
//维护预约的预约数量
maintenanceReservationPackageNum(reservationId);
maintenanceDeliveryPackageNum(deliveryId);
}
}
/**
* 维护配送数量和状态
* @param deliveryId
*/
@Transactional
private void maintenanceDeliveryPackageNum(Long deliveryId) {
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(deliveryId);
if (Func.isNotEmpty(distributionDeliveryListEntity)){
List<DistributionReservationEntity> distributionReservationEntities = distributionDeliveryListMapper.selectReservationByDeliveryListId(distributionDeliveryListEntity.getId());
if (Func.isNotEmpty(distributionReservationEntities)){
int sum = distributionReservationEntities.stream().mapToInt(DistributionReservationEntity::getReservationNum).sum() + distributionReservationEntities.stream().mapToInt(DistributionReservationEntity::getReservationStockListNum).sum();
distributionDeliveryListEntity.setDeliveryNumber(sum);
}else {
distributionDeliveryListEntity.setDeliveryNumber(0);
}
distributionDeliveryListMapper.updateById(distributionDeliveryListEntity);
if (distributionDeliveryListEntity.getDeliveryNumber() == 0){
distributionDeliveryListMapper.deleteById(distributionDeliveryListEntity);
}
}
}
/**
* 维护预约数量和状态
* @param reservationId
*/
@Transactional
private void maintenanceReservationPackageNum(Long reservationId) {
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(reservationId);
if (Func.isNotEmpty(distributionReservationEntity)){
List<DistributionReservationStockarticleEntity> distributionReservationStockarticleEntities = distributionReservationMapper.selectStockArticleByReservationId(distributionReservationEntity.getId());
if (Func.isNotEmpty(distributionReservationStockarticleEntities)){
int sum = distributionReservationStockarticleEntities.stream().mapToInt(DistributionReservationStockarticleEntity::getReservationNum).sum();
distributionReservationEntity.setReservationNum(sum);
}else {
distributionReservationEntity.setReservationNum(0);
}
List<DistributionReservationStocklistEntity> distributionReservationStocklistEntities = distributionReservationMapper.selectStockListByReservationId(distributionReservationEntity.getId());
if (Func.isNotEmpty(distributionReservationStocklistEntities)){
//统计库存品数
int sum = distributionReservationStocklistEntities.stream().mapToInt(DistributionReservationStocklistEntity::getReservationNum).sum();
distributionReservationEntity.setReservationStockListNum(sum);
}else {
distributionReservationEntity.setReservationStockListNum(0);
}
distributionReservationMapper.updateById(distributionReservationEntity);
if (distributionReservationEntity.getReservationNum() ==0 && distributionReservationEntity.getReservationStockListNum() == 0){
distributionReservationMapper.deleteById(distributionReservationEntity);
}
}
}
@Transactional
private void checkReservationAndDeliverySigningStatus(Long reservationId, Long deliveryId) {
//维护客户签收状态
DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(reservationId);
if (Func.isNotEmpty(distributionReservationEntity)){
if (Func.isNotEmpty(distributionReservationEntity)) {
int reservationTotal = distributionReservationEntity.getReservationNum() + distributionReservationEntity.getReservationStockListNum();
//查询该客户的签收数量
DistributionLoadingNumDTO reservationSigningNum= distributionReservationMapper.selectReservationSigningNum(distributionReservationEntity.getId());
if (Func.isNotEmpty(reservationSigningNum)){
DistributionLoadingNumDTO reservationSigningNum = distributionReservationMapper.selectReservationSigningNum(distributionReservationEntity.getId());
if (Func.isNotEmpty(reservationSigningNum)) {
int reservationSigningQuantity = reservationSigningNum.getPackageSigningQuantity() + reservationSigningNum.getInventorySigningQuantity();
if (reservationSigningQuantity>0){
if (reservationTotal ==reservationSigningQuantity){
if (reservationSigningQuantity > 0) {
if (reservationTotal == reservationSigningQuantity) {
distributionReservationEntity.setSigningStatus(ReservationSigningStatusConstant.yiqianshou.getValue());
}else {
} else {
distributionReservationEntity.setSigningStatus(ReservationSigningStatusConstant.bufenqianshou.getValue());
}
distributionReservationMapper.updateById(distributionReservationEntity);
@ -1155,15 +1251,15 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//维护配送任务签收状态
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(deliveryId);
if (Func.isNotEmpty(distributionDeliveryListEntity)){
if (Func.isNotEmpty(distributionDeliveryListEntity)) {
Integer deliverySigningTotal = distributionDeliveryListEntity.getDeliveryNumber();
DistributionLoadingNumDTO deliverySigningNum= distributionDeliveryListMapper.selectDeliverySigningNum(distributionReservationEntity.getId());
if (Func.isNotEmpty(deliverySigningNum)){
DistributionLoadingNumDTO deliverySigningNum = distributionDeliveryListMapper.selectDeliverySigningNum(distributionReservationEntity.getId());
if (Func.isNotEmpty(deliverySigningNum)) {
int deliverySigningQuantity = deliverySigningNum.getPackageSigningQuantity() + deliverySigningNum.getInventorySigningQuantity();
if (deliverySigningQuantity>0){
if (deliverySigningTotal ==deliverySigningQuantity){
if (deliverySigningQuantity > 0) {
if (deliverySigningTotal == deliverySigningQuantity) {
distributionDeliveryListEntity.setDeliveryStatus(DeliveryStatusConstant.yiwancheng.getValue());
}else {
} else {
distributionDeliveryListEntity.setDeliveryStatus(DeliveryStatusConstant.peisongzhong.getValue());
}
distributionDeliveryListMapper.updateById(distributionDeliveryListEntity);
@ -1198,10 +1294,10 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
.eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0)
.in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3")
);
if(!list3.isEmpty()){
if (!list3.isEmpty()) {
//零担数据
int sum = list3.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum();
pack.set(pack.get()+sum);
pack.set(pack.get() + sum);
}
boolean apj = false;
@ -1225,7 +1321,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//查询包件数量
List<DistributionStockPackageVO> distributionStockPackageVOS = distrilbutionBillStockService.listPackageSelf(billLadingId);
int size = distributionStockPackageVOS.size(); //包件数量
pack.set(pack.get()+size);
pack.set(pack.get() + size);
//查询签收数量
List<DistributionBillLadingScanEntity> list2 = distributionBillLadingScanMapper.selectList(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId)
@ -1417,10 +1513,10 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
public void changeOrderReservationStatus(DistributionStockArticleDTO stockArticleDTO) {
Long id = stockArticleDTO.getId();
DistributionStockArticleEntity stockArticleEntity = Func.copy(stockArticleDTO, DistributionStockArticleEntity.class);
if (stockArticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())){
if (stockArticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) {
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.getBaseMapper().selectList(Wrappers.<DistributionParcelListEntity>query().lambda().eq(DistributionParcelListEntity::getStockArticleId, id));
boolean flag = parcelListEntityList.stream().allMatch(p -> p.getOrderPackageReservationStatus().equals(OrderPackageReservationStatusConstant.yiyueyue.getValue()));
if (flag && stockArticleEntity.getTotalNumber()==parcelListEntityList.size()) {
if (flag && stockArticleEntity.getTotalNumber() == parcelListEntityList.size()) {
assert stockArticleEntity != null;
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
} else {
@ -1433,19 +1529,19 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
}
}
}else {
} else {
//检测零担订单是否完成预约
List<DistributionParcelNumberEntity> parcelNumberEntities = distributionParcelNumberService.list(Wrappers.<DistributionParcelNumberEntity>query().lambda()
.eq(DistributionParcelNumberEntity::getStockArticleId, stockArticleDTO.getId()));
AtomicInteger unavailableNum = new AtomicInteger();
parcelNumberEntities.forEach(p->{
parcelNumberEntities.forEach(p -> {
unavailableNum.getAndAdd(p.getOutboundQuantity() + p.getDeliveryQuantity());
});
if (unavailableNum.get() == stockArticleDTO.getHandQuantity()){
if (unavailableNum.get() == stockArticleDTO.getHandQuantity()) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
}else if (unavailableNum.get() < stockArticleDTO.getHandQuantity()){
} else if (unavailableNum.get() < stockArticleDTO.getHandQuantity()) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
}else if (unavailableNum.get() == 0){
} else if (unavailableNum.get() == 0) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.daiyuyue.getValue());
}
}
@ -1505,18 +1601,18 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void stockupUpdateState(StockupDTO stockupDTO,int num) {
public void stockupUpdateState(StockupDTO stockupDTO, int num) {
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(stockupDTO.getScanType().equals(1)){
if (stockupDTO.getScanType().equals(1)) {
//包件
//查询包件备货状态
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListMapper.selectList(Wrappers.<DistributionParcelListEntity>query().lambda()
.eq(DistributionParcelListEntity::getOrderPackageCode, stockupDTO.getPacketBarCode())
.eq(ObjectUtils.isNotNull(myCurrentWarehouse),DistributionParcelListEntity::getWarehouseId,myCurrentWarehouse.getId() )
.eq(ObjectUtils.isNotNull(myCurrentWarehouse), DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId())
);
//修改
if(!distributionParcelListEntities.isEmpty()){
if (!distributionParcelListEntities.isEmpty()) {
DistributionParcelListEntity distributionParcelListEntity = new DistributionParcelListEntity();
distributionParcelListEntity.setId(distributionParcelListEntities.get(0).getId());
distributionParcelListEntity.setOrderPackageStockupStatus(OrderPackageStockupStatusConstant.yibeihu.getValue());
@ -1545,7 +1641,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
.eq(DistributionStockEntity::getReservationId, i.getReservationId())
.eq(DistributionStockEntity::getStockupId, stockupDTO.getStockupId())
);
if(!list.isEmpty()){
if (!list.isEmpty()) {
int size = list.stream().mapToInt(DistributionStockEntity::getStockQuantity).sum();
nuy.set(nuy.get() + size);
}
@ -1559,7 +1655,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
nu.set(nu.get() + sum);
}
//修改预约备货状态
if(nuy.get() >= nu.get()){
if (nuy.get() >= nu.get()) {
DistributionReservationEntity reservationEntity = new DistributionReservationEntity();
reservationEntity.setId(i.getReservationId());
reservationEntity.setStockupStatus(ReservationStockupStatusConstant.yibeihuo.getValue());
@ -1631,7 +1727,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
* @param stockupDTO
*/
@Override
public void stockupSelfUpdateState(StockupDTO stockupDTO,int num) {
public void stockupSelfUpdateState(StockupDTO stockupDTO, int num) {
//查询全部订单数据
List<DistrilbutionBillStockEntity> distrilbutionBillStockEntities = distrilbutionBillStockMapper.selectList(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
@ -1647,7 +1743,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
// AtomicReference<Boolean> z = new AtomicReference<>(false);
// AtomicReference<Integer> zeroNum = new AtomicReference<>(0); //零担已备货的数量
AtomicReference<Integer> zeroYuNum = new AtomicReference<>(0); //零担预约的数量
if(!listZero.isEmpty()){
if (!listZero.isEmpty()) {
int sum = listZero.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum();
zeroYuNum.set(sum);
//有
@ -1672,9 +1768,9 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//查询订单的非零担数据
List<DistributionStockPackageVO> distributionStockPackageVOS = distrilbutionBillStockService.listPackageSelf(stockupDTO.getReservationId());
//计算全部预约件数
if(!distributionStockPackageVOS.isEmpty()){
if (!distributionStockPackageVOS.isEmpty()) {
nu.set(distributionStockPackageVOS.size() + zeroYuNum.get());
}else{
} else {
nu.set(zeroYuNum.get());
}
// distrilbutionBillStockEntities.forEach(i -> {
@ -1727,11 +1823,11 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//修改
}
} else {
if(i == 0){
if (i == 0) {
//修改备货状态
distributionStockup.setId(stockupDTO.getStockupId());
distributionStockup.setStockupStatus(StockupStatusConstant.yibeihuo.getValue());
}else{
} else {
//修改备货状态
distributionStockup.setId(stockupDTO.getStockupId());
distributionStockup.setStockupStatus(StockupStatusConstant.beihuozhong.getValue());
@ -1748,27 +1844,28 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
/**
* 查询是否有没有备货的数据
*
* @param stockArticleId
* @param parcelListId
* @param reservationId
* @param typeService
* @return
*/
public Boolean getDoneStockUp(Long stockArticleId,Long parcelListId,Long reservationId,String typeService){
public Boolean getDoneStockUp(Long stockArticleId, Long parcelListId, Long reservationId, String typeService) {
QueryWrapper<DistributionStockEntity> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("stock_article",stockArticleId);
queryWrapper1.eq("parcel_list_id",parcelListId);
queryWrapper1.eq("stock_article", stockArticleId);
queryWrapper1.eq("parcel_list_id", parcelListId);
if(typeService.equals("3")){
queryWrapper1.eq("bill_lading_id",reservationId);
}else{
queryWrapper1.eq("reservation_id",reservationId);
if (typeService.equals("3")) {
queryWrapper1.eq("bill_lading_id", reservationId);
} else {
queryWrapper1.eq("reservation_id", reservationId);
}
DistributionStockEntity stockEntity = distributionStockService.selectOne(queryWrapper1);
if(ObjectUtils.isNull(stockEntity)){
if (ObjectUtils.isNull(stockEntity)) {
//没有扫
return true;
}else{
} else {
return false;
}
@ -1776,26 +1873,27 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
/**
* 查询是否有没有备货的库存品数据
*
* @param stockListId
* @param reservationId
* @param typeService
* @return
*/
public Boolean getDoneStockUpStock(Long stockListId,Long reservationId,String typeService,Long stockupId,Integer num ){
public Boolean getDoneStockUpStock(Long stockListId, Long reservationId, String typeService, Long stockupId, Integer num) {
QueryWrapper<DistributionStockEntity> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("stock_list_id",stockListId);
queryWrapper1.eq("stockup_id",stockupId);
queryWrapper1.eq("type","2");
queryWrapper1.eq("stock_list_id", stockListId);
queryWrapper1.eq("stockup_id", stockupId);
queryWrapper1.eq("type", "2");
if(typeService.equals("3")){
queryWrapper1.eq("bill_lading_id",reservationId);
}else{
queryWrapper1.eq("reservation_id",reservationId);
if (typeService.equals("3")) {
queryWrapper1.eq("bill_lading_id", reservationId);
} else {
queryWrapper1.eq("reservation_id", reservationId);
}
List<DistributionStockEntity> stockEntityList = distributionStockService.selectList(queryWrapper1);
if(!stockEntityList.isEmpty() && stockEntityList.size() >= num){
if (!stockEntityList.isEmpty() && stockEntityList.size() >= num) {
return true; //已完成
} else{
} else {
return false; //未完成
}

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

@ -5555,11 +5555,32 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
switch (conditions){
case 1:
//订制品
//需要对该配送任务下的该包件进行取消状态标识
int row = distributionReservationMapper.cancelReservationPackage(reservationId,orderPackageId);
// 查询该包件是否进行装车
if (row == 1){
DistributionLoadscanEntity loadscanEntity = distributionLoadscanService.getOne(Wrappers.<DistributionLoadscanEntity>query().lambda()
.eq(DistributionLoadscanEntity::getDeliveryId, deliveryId)
.eq(DistributionLoadscanEntity::getReservationId, reservationId)
.eq(DistributionLoadscanEntity::getPackageId, orderPackageId)
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
);
if (Func.isNotEmpty(loadscanEntity)){
//已经进行装车
loadscanEntity.setScanStatus( LoadingStatusConstant.quxiao.getValue());
distributionLoadscanService.updateById(loadscanEntity);
// 对应签收信息的装车数量要进行扣减
int a = distributionSignforMapper.deductionLoadingPacjageNum(loadscanEntity.getReservationId(),loadscanEntity.getDeliveryId(),loadscanEntity.getLoadedNub());
}
//进行了一条包件任务的取消,此时就应该对预约、配送任务进行数量的维护
distributionAsyncService.checkRetentionReservationAndDeliveryInfo(reservationId,deliveryId);
}
break;
case 2:
//库存品
break;
default:
throw new IllegalStateException("Unexpected value: " + conditions);
}
return false;
}

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

@ -214,7 +214,6 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
}else {
//包件滞留
distributionDeliveryListClient.retentionDeliveryReservationPackage(r.getDeliveryId(),r.getReservationId(),r.getOrderPackageId(),r.getConditions());
}
}
//进行滞留操作的包件需要和原来订单 预约进行绑定解除
@ -293,6 +292,7 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
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());
}
});
}

Loading…
Cancel
Save