Browse Source

fix(service): 修改复核节点同步数据过滤BLOB URL

pull/4/head
zhaoqiaobo 1 year ago
parent
commit
1a0a9e2927
  1. 220
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java

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

@ -1,6 +1,7 @@
package com.logpm.distribution.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -12,10 +13,59 @@ import com.logpm.distribution.dto.DistributionStockArticleDTO;
import com.logpm.distribution.dto.app.DistrilbutionloadingscanDTO;
import com.logpm.distribution.dto.app.StockupDTO;
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.*;
import com.logpm.distribution.entity.DisStockListDetailEntity;
import com.logpm.distribution.entity.DistributionBillLadingScanEntity;
import com.logpm.distribution.entity.DistributionDeliveryDetailsEntity;
import com.logpm.distribution.entity.DistributionDeliveryListEntity;
import com.logpm.distribution.entity.DistributionLoadscanEntity;
import com.logpm.distribution.entity.DistributionLoadscaninvnEntity;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import com.logpm.distribution.entity.DistributionReservationEntity;
import com.logpm.distribution.entity.DistributionReservationPackageEntity;
import com.logpm.distribution.entity.DistributionReservationStockarticleEntity;
import com.logpm.distribution.entity.DistributionReservationStocklistEntity;
import com.logpm.distribution.entity.DistributionReservationZeroPackageEntity;
import com.logpm.distribution.entity.DistributionSignforEntity;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.entity.DistributionStockEntity;
import com.logpm.distribution.entity.DistributionStockListEntity;
import com.logpm.distribution.entity.DistributionStockupEntity;
import com.logpm.distribution.entity.DistributionStockupInfoEntity;
import com.logpm.distribution.entity.DistrilbutionBillLadingEntity;
import com.logpm.distribution.entity.DistrilbutionBillPackageEntity;
import com.logpm.distribution.entity.DistrilbutionBillStockEntity;
import com.logpm.distribution.mapper.DistributionBillLadingScanMapper;
import com.logpm.distribution.mapper.DistributionDeliveryDetailsMapper;
import com.logpm.distribution.mapper.DistributionDeliveryListMapper;
import com.logpm.distribution.mapper.DistributionLoadscanMapper;
import com.logpm.distribution.mapper.DistributionLoadscaninvnMapper;
import com.logpm.distribution.mapper.DistributionParcelListMapper;
import com.logpm.distribution.mapper.DistributionReservationMapper;
import com.logpm.distribution.mapper.DistributionReservationPackageMapper;
import com.logpm.distribution.mapper.DistributionReservationStockarticleMapper;
import com.logpm.distribution.mapper.DistributionReservationStocklistMapper;
import com.logpm.distribution.mapper.DistributionSignforMapper;
import com.logpm.distribution.mapper.DistributionStockListMapper;
import com.logpm.distribution.mapper.DistributionStockMapper;
import com.logpm.distribution.mapper.DistributionStockupInfoMapper;
import com.logpm.distribution.mapper.DistributionStockupMapper;
import com.logpm.distribution.mapper.DistrilbutionBillLadingMapper;
import com.logpm.distribution.service.IDisStockListDetailService;
import com.logpm.distribution.service.IDistributionAsyncService;
import com.logpm.distribution.service.IDistributionDeliveryDetailsService;
import com.logpm.distribution.service.IDistributionParcelNumberService;
import com.logpm.distribution.service.IDistributionReservationStockarticleService;
import com.logpm.distribution.service.IDistributionReservationStocklistService;
import com.logpm.distribution.service.IDistributionReservationZeroPackageService;
import com.logpm.distribution.service.IDistributionStockArticleService;
import com.logpm.distribution.service.IDistrilbutionBillPackageService;
import com.logpm.distribution.service.IDistrilbutionBillStockService;
import com.logpm.distribution.vo.DistributionParcelNumberVO;
import com.logpm.distribution.vo.DistributionSignPrintVO;
import com.logpm.distribution.vo.DistributionStockPackageVO;
import com.logpm.distribution.vo.DistributionStockupSelfVO;
import com.logpm.distribution.vo.DistrilbutionBillStockVO;
import com.logpm.factory.comfac.dto.OrderStatusDTO;
import com.logpm.factory.mt.dto.MtReceiveContentDTO;
import com.logpm.factory.mt.dto.MtReceiveDTO;
@ -23,9 +73,7 @@ import com.logpm.factory.mt.dto.MtReceiveImagesDTO;
import com.logpm.factory.mt.feign.IMtOrderMainClinet;
import com.logpm.factory.oupai.feign.IOuPaiFactoryClinet;
import com.logpm.trunkline.dto.AddWaybillTrackDTO;
import com.logpm.trunkline.feign.ITrunklineWaybillOrderClient;
import com.logpm.trunkline.feign.ITrunklineWaybillTrackClient;
import com.logpm.warehouse.entity.WarehouseWarehouseEntity;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
@ -46,11 +94,17 @@ import org.springblade.common.constant.orderpackage.OrderPackageLoadingStatusCon
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStockupStatusConstant;
import org.springblade.common.constant.reservation.*;
import org.springblade.common.constant.reservation.ReservationInventoryLoadingStatusConstant;
import org.springblade.common.constant.reservation.ReservationInventorySigningStatusConstant;
import org.springblade.common.constant.reservation.ReservationInventoryStatusConstant;
import org.springblade.common.constant.reservation.ReservationLoadingStatusConstant;
import org.springblade.common.constant.reservation.ReservationOrderStatusConstant;
import org.springblade.common.constant.reservation.ReservationPackageStatusConstant;
import org.springblade.common.constant.reservation.ReservationSigningStatusConstant;
import org.springblade.common.constant.reservation.ReservationStockupStatusConstant;
import org.springblade.common.constant.signing.SignforStatusConstant;
import org.springblade.common.constant.stockup.StockupStatusConstant;
import org.springblade.common.constant.stockup.StockupTypeConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.utils.Func;
@ -60,7 +114,12 @@ import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
@ -666,7 +725,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
distributionStockupSelfVO = distributionStockupMapper.stockupSelfOffShelf(stockupDTO);
} else {
//商 市
log.info(">>>> find bug stockupDTO {}",stockupDTO);
log.info(">>>> find bug stockupDTO {}", stockupDTO);
distributionStockupSelfVO = distributionStockupMapper.stockupOffShelf(stockupDTO);
}
//有
@ -962,7 +1021,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
if (Func.isNotEmpty(parcelNumberEntityList)) {
parcelNumberEntityList.forEach(p -> {
DistributionParcelListEntity zeroParcelListEntity = distributionParcelListService.getById(p.getParcelListId());
if (p.getOutboundQuantity() .equals(p.getQuantity()) && p.getOutboundQuantity() > 0) {
if (p.getOutboundQuantity().equals(p.getQuantity()) && p.getOutboundQuantity() > 0) {
//出库数量和总数量一致,此时包件处于装车状态
zeroParcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
}
@ -1448,8 +1507,8 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
// }
break;
default:
log.info("开单其它品牌stockArticleEntity.getBrand() ={}",stockArticleEntity.getBrand());
//其他.....
log.info("开单其它品牌stockArticleEntity.getBrand() ={}", stockArticleEntity.getBrand());
//其他.....
}
}
@ -1506,6 +1565,11 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
List<DistributionSignPrintVO> distributionSignPrintVOS = distributionSignforMapper.selectSignImgsUrl(distributionSignforEntity.getReservationId());
if (Func.isNotEmpty(distributionSignPrintVOS)) {
for (DistributionSignPrintVO distributionSignPrintVO : distributionSignPrintVOS) {
if (StrUtil.isNotBlank(distributionSignPrintVO.getUrlRoute())) {
if (distributionSignPrintVO.getUrlRoute().startsWith("blob:")) {
continue;
}
}
MtReceiveImagesDTO mtReceiveImagesDTO = new MtReceiveImagesDTO();
mtReceiveImagesDTO.setImage(distributionSignPrintVO.getUrlRoute());
mtReceiveImagesDTOS.add(mtReceiveImagesDTO);
@ -1525,8 +1589,8 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
log.info(">>>>>>>>>>>>>>> 文员复核推送 品牌 {} ", brand);
assert brand != null;
if (Func.isNotEmpty(brand.get("梦天"))) {
assert brand != null;
if (Func.isNotEmpty(brand.get("梦天"))) {
mtReceiveDTO.setReceiveContentList(brand.get("梦天"));
orderMainClinet.sendReceiveInfoByNewSystem(mtReceiveDTO);
}
@ -1618,7 +1682,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
.filter(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()) && !p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()))
.map(DistributionParcelListEntity::getOrderCode)
.distinct().collect(Collectors.joining(","));
log.info(method+"维护订制品订单:{}",orderCodes);
log.info(method + "维护订制品订单:{}", orderCodes);
builder.append(orderCodes);
log.info(">>>>>> updatePackageDeliveryStatus,{}, {}", reservationId, packageIds);
@ -1627,7 +1691,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//维护预约订单状态
}
List<DistributionParcelNumberDTO> distributionParcelNumberDTOS = distributionReservationMapper.selectZeroPackageListByReservationId(reservationId);
if (Func.isNotEmpty(distributionParcelNumberDTOS)){
if (Func.isNotEmpty(distributionParcelNumberDTOS)) {
//查询此预约单下未进行装车且签收的零担包件
List<Long> packageIds = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getParcelListId).collect(Collectors.toList());
List<DistributionLoadscanEntity> loadscanEntityList = distributionLoadscanMapper.selectList(Wrappers.<DistributionLoadscanEntity>query().lambda()
@ -1635,22 +1699,22 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
.in(DistributionLoadscanEntity::getPackageId, packageIds)
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
);
if (Func.isNotEmpty(loadscanEntityList)){
if (Func.isNotEmpty(loadscanEntityList)) {
//查看是否存在需要进行回库的零担
List<Long> collect = loadscanEntityList.stream().filter(f -> !packageIds.contains(f.getPackageId())).map(DistributionLoadscanEntity::getPackageId).collect(Collectors.toList());
if (Func.isNotEmpty(collect)){
if (Func.isNotEmpty(collect)) {
String orderCode = distributionParcelNumberDTOS.stream().filter(f -> collect.contains(f.getParcelListId())).map(DistributionParcelNumberDTO::getOrderCode).collect(Collectors.joining(","));
log.info(method+"维护零担订单:{}",orderCode);
log.info(method + "维护零担订单:{}", orderCode);
builder.append(orderCode);
//这些单子就是需要进行状态回退的零担包件
reservationZeroPackageService.recoverZeroPackage(reservationId,collect);
reservationZeroPackageService.recoverZeroPackage(reservationId, collect);
}
}else {
} else {
//计划数量全部回退
String orderCode = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getOrderCode).distinct().collect(Collectors.joining(","));
log.info(method+"维护零担订单:{}",orderCode);
log.info(method + "维护零担订单:{}", orderCode);
builder.append(orderCode);
reservationZeroPackageService.recoverZeroPackage(reservationId,packageIds);
reservationZeroPackageService.recoverZeroPackage(reservationId, packageIds);
}
}
distributionStockArticleService.maintenanceOrderInfo(builder.toString(), warehouseId);
@ -1690,54 +1754,52 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
* @param deliveryId
*/
@Override
public void sendTrunkineLog(Long deliveryId,Long reservationId, BladeUser user, BasicdataWarehouseEntity warehouse,Integer a) {
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(deliveryId);
public void sendTrunkineLog(Long deliveryId, Long reservationId, BladeUser user, BasicdataWarehouseEntity warehouse, Integer a) {
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(deliveryId);
List<DistributionParcelListEntity> distributionParcelListEntities = null;
if (1 ==a ){
if (1 == a) {
distributionParcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(deliveryId);
}else {
} else {
distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId);
}
//查询配送司机信息
Map<String,Object> driverInfo = distributionDeliveryListMapper.selectDeliveryDriverInfo(distributionDeliveryListEntity.getId());
if (Func.isNotEmpty(distributionParcelListEntities)){
Map<String, List<DistributionParcelListEntity>> listMap = distributionParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getWaybillNumber));
listMap.forEach((k, v) ->{
StringBuilder builder = new StringBuilder();
//统计已装车数量
WarehouseWaybillEntity byWaybillNo = waybillClient.findByWaybillNo(k);
AddWaybillTrackDTO addWaybillTrackDTO = new AddWaybillTrackDTO();
addWaybillTrackDTO.setWaybillId(byWaybillNo.getId());
addWaybillTrackDTO.setWaybillNo(byWaybillNo.getWaybillNo());
if (1 ==a){
int sum = v.stream().filter(p -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(p.getOrderPackageLoadingStatus())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
addWaybillTrackDTO.setTrackType("90");
addWaybillTrackDTO.setRefer("运单配送");
String msg = "运单配送:"+sum+"/"+v.size()+"件";
builder.append(msg);
//拼接配送信息
String deliveryMsg = "车牌号:"+ driverInfo.get("vehicleNub")+","+"司机姓名:"+driverInfo.get("driverName")+",司机电话:"+driverInfo.get("driverPhone")+",配送时间:"+distributionDeliveryListEntity.getTaskTime();
builder.append(deliveryMsg);
}else {
int sum = v.stream().filter(p -> OrderPackageStatusConstant.yiqianshou.getValue().equals(p.getOrderPackageStatus())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
addWaybillTrackDTO.setTrackType("100");
addWaybillTrackDTO.setRefer("运单签收");
String msg = "运单签收:"+sum+"/"+v.size()+"件";
builder.append(msg);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss");
String deliveryMsg = "最近操作人:"+user.getNickName()+simpleDateFormat.format(new Date());
builder.append(deliveryMsg);
}
addWaybillTrackDTO.setNickName(user.getNickName());
addWaybillTrackDTO.setUserId(user.getUserId());
addWaybillTrackDTO.setWarehouseId(warehouse.getId());
addWaybillTrackDTO.setWarehouseName(warehouse.getName());
addWaybillTrackDTO.setOperationRemark(builder.toString());
trunklineWaybillTrackClient.addWaybillLog(addWaybillTrackDTO);
});
}
//查询配送司机信息
Map<String, Object> driverInfo = distributionDeliveryListMapper.selectDeliveryDriverInfo(distributionDeliveryListEntity.getId());
if (Func.isNotEmpty(distributionParcelListEntities)) {
Map<String, List<DistributionParcelListEntity>> listMap = distributionParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getWaybillNumber));
listMap.forEach((k, v) -> {
StringBuilder builder = new StringBuilder();
//统计已装车数量
WarehouseWaybillEntity byWaybillNo = waybillClient.findByWaybillNo(k);
AddWaybillTrackDTO addWaybillTrackDTO = new AddWaybillTrackDTO();
addWaybillTrackDTO.setWaybillId(byWaybillNo.getId());
addWaybillTrackDTO.setWaybillNo(byWaybillNo.getWaybillNo());
if (1 == a) {
int sum = v.stream().filter(p -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(p.getOrderPackageLoadingStatus())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
addWaybillTrackDTO.setTrackType("90");
addWaybillTrackDTO.setRefer("运单配送");
String msg = "运单配送:" + sum + "/" + v.size() + "件";
builder.append(msg);
//拼接配送信息
String deliveryMsg = "车牌号:" + driverInfo.get("vehicleNub") + "," + "司机姓名:" + driverInfo.get("driverName") + ",司机电话:" + driverInfo.get("driverPhone") + ",配送时间:" + distributionDeliveryListEntity.getTaskTime();
builder.append(deliveryMsg);
} else {
int sum = v.stream().filter(p -> OrderPackageStatusConstant.yiqianshou.getValue().equals(p.getOrderPackageStatus())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
addWaybillTrackDTO.setTrackType("100");
addWaybillTrackDTO.setRefer("运单签收");
String msg = "运单签收:" + sum + "/" + v.size() + "件";
builder.append(msg);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss");
String deliveryMsg = "最近操作人:" + user.getNickName() + simpleDateFormat.format(new Date());
builder.append(deliveryMsg);
}
addWaybillTrackDTO.setNickName(user.getNickName());
addWaybillTrackDTO.setUserId(user.getUserId());
addWaybillTrackDTO.setWarehouseId(warehouse.getId());
addWaybillTrackDTO.setWarehouseName(warehouse.getName());
addWaybillTrackDTO.setOperationRemark(builder.toString());
trunklineWaybillTrackClient.addWaybillLog(addWaybillTrackDTO);
});
}
}
@ -2343,18 +2405,18 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
public void changeOrderReservationStatus(DistributionStockArticleDTO stockArticleDTO) {
Long id = stockArticleDTO.getId();
DistributionStockArticleEntity stockArticleEntity = Func.copy(stockArticleDTO, DistributionStockArticleEntity.class);
assert stockArticleEntity != null;
if (stockArticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) {
assert stockArticleEntity != null;
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()) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
} else {
flag = parcelListEntityList.stream().allMatch(p -> p.getOrderPackageReservationStatus().equals(OrderPackageReservationStatusConstant.daiyuyue.getValue()));
if (flag) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.daiyuyue.getValue());
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.daiyuyue.getValue());
} else {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
}
}
} else {
@ -2365,10 +2427,10 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
// parcelNumberEntities.forEach(p -> {
// unavailableNum.getAndAdd(p.getOutboundQuantity() + p.getDeliveryQuantity());
// });
if (Func.isNotEmpty(parcelNumberEntities)){
if (Func.isNotEmpty(parcelNumberEntities)) {
int sum = parcelNumberEntities.stream().mapToInt(p -> p.getOutboundQuantity() + p.getDeliveryQuantity()).sum();
unavailableNum.getAndAdd(sum);
log.info("################零担包件当前不可用数量:{}",sum);
log.info("################零担包件当前不可用数量:{}", sum);
}
if (unavailableNum.get() == stockArticleDTO.getHandQuantity()) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
@ -2656,13 +2718,13 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//修改
}
} else {
distributionStockup.setId(stockupDTO.getStockupId());
if (i == 0) {
distributionStockup.setId(stockupDTO.getStockupId());
if (i == 0) {
//修改备货状态
distributionStockup.setStockupStatus(StockupStatusConstant.yibeihuo.getValue());
distributionStockup.setStockupStatus(StockupStatusConstant.yibeihuo.getValue());
} else {
//修改备货状态
distributionStockup.setStockupStatus(StockupStatusConstant.beihuozhong.getValue());
distributionStockup.setStockupStatus(StockupStatusConstant.beihuozhong.getValue());
}
}

Loading…
Cancel
Save