Browse Source

1.运单日志跟踪逻辑完善

dist.1.3.0
zhenghaoyu 6 months ago
parent
commit
ae0feecfac
  1. 3
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderAsyncServiceImpl.java
  2. 120
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

3
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderAsyncServiceImpl.java

@ -39,6 +39,7 @@ import java.util.stream.Collectors;
@Slf4j
public class OpenOrderAsyncServiceImpl implements IOpenOrderAsyncService {
@Lazy
@Autowired
private ITrunklineWaybillTrackService trunklineWaybillTrackService;
@ -62,8 +63,10 @@ public class OpenOrderAsyncServiceImpl implements IOpenOrderAsyncService {
private IBasicdataClientClient basicdataClientClient;
@Autowired
private IBasicdataStoreBusinessClient basicdataStoreBusinessClient;
@Lazy
@Autowired
private ITrunklineBillladingWaybillService trunklineBillladingWaybillService;
@Lazy
@Autowired
private ITrunklineBillladingService trunklineBillladingService;

120
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

@ -121,6 +121,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
private final ITrunklineWaybillPackageService waybillPackageService;
private final ITrunklinePackageTrackLogClient packageTrackLogClient;
private final IAftersalesWorkOrderClient aftersalesWorkOrderClient;
private final ITrunklineWaybillTrackService waybillTrackService;
@Override
public IPage<TrunklineCarsLoadVO> loadCarsPageList(LoadCarsDTO loadCarsDTO) {
@ -5606,10 +5607,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
List<String> orderPackageCodes = new ArrayList<>();
List<WaybillLogDTO> waybillLogDTOList = new ArrayList<>();
Set<Long> loadIds = new HashSet<>();
//把list通过signOrderId进行分组
Map<Long, List<TrunklineCarsLoadScanVO>> map = list.stream().filter(e -> !Objects.isNull(e.getSignOrderId())).collect(Collectors.groupingBy(TrunklineCarsLoadScanVO::getSignOrderId));
map.keySet().forEach(e -> {
// TrunklineLoadSignOrderEntity loadSignOrder = trunklineLoadSignOrderService.getById(e);
// Long loadId = loadSignOrder.getLoadId();
// TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId);
List<TrunklineCarsLoadScanVO> trunklineCarsLoadScanVOS = map.get(e);//该签收单对应的包件
trunklineCarsLoadScanVOS.forEach(t -> {
TrunklineCarsLoadScanEntity entity = new TrunklineCarsLoadScanEntity();
@ -5636,6 +5641,31 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
updateCarsLoadScanList.add(entity);
loadIds.add(entity.getLoadId());
});
//把trunklineCarsLoadScanVOS中所有元素通过waybillNo进行分组
// Map<String, List<TrunklineCarsLoadScanVO>> map1 = trunklineCarsLoadScanVOS.stream().filter(e -> !Objects.isNull(e.getWaybillNo())).collect(Collectors.groupingBy(TrunklineCarsLoadScanVO::getWaybillNo));
// map1.keySet().forEach(waybillNo -> {
// List<TrunklineCarsLoadScanVO> trunklineCarsLoadScanVOS1 = map1.get(waybillNo);
// //把trunklineCarsLoadScanVOS1中所有元素的unloadNum求和,为空的用0代替
// Integer unloadNum = trunklineCarsLoadScanVOS1.stream().map(TrunklineCarsLoadScanVO::getUnloadNum).reduce(0, Integer::sum);
// WaybillLogDTO waybillLogDTO = new WaybillLogDTO();
// waybillLogDTO.setWarehouseId(warehouseId);
// waybillLogDTO.setWarehouseName(warehouseName);
// waybillLogDTO.setWaybillNo(waybillNo);
// waybillLogDTO.setTrainNumber(carsLoadEntity.getCarsNo());
// waybillLogDTO.setCarNumber(carsLoadEntity.getCarNumber());
// waybillLogDTO.setSignUser(AuthUtil.getNickName());
// waybillLogDTO.setSignTime(date);
// waybillLogDTO.setDriverName(carsLoadEntity.getDriverName());
// waybillLogDTO.setNum(unloadNum);
// waybillLogDTO.setSignOrderCode(loadSignOrder.getLoadSignCode());
// waybillLogDTO.setType(2);
// waybillLogDTO.setUserId(AuthUtil.getUserId());
// waybillLogDTO.setNickName(AuthUtil.getNickName());
// waybillLogDTOList.add(waybillLogDTO);
// });
signOrderIds.add(e);
});
@ -5655,6 +5685,13 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
try {
String content = "包件在 " + warehouseName + "直发商家签收";
packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseName, WorkNodeEnums.SIGN_DIRECT_SHIPPER.getCode(), content);
if(CollUtil.isNotEmpty(waybillLogDTOList)){
waybillLogDTOList.forEach(waybillLogDTO -> {
waybillTrackService.addSignWaybillLog(waybillLogDTO);
});
}
} catch (Exception e) {
log.warn("###########存入日志信息失败");
}
@ -5679,7 +5716,6 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
factoryDataMessageSender.sendNodeDataByBrand(msg);
}
});
} catch (Exception e) {
log.error("推送签收数据给工厂失败 {}", e);
}
@ -5994,6 +6030,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R.fail(405, "仓库信息不存在");
}
Date date = new Date();
String warehouseName = warehouseEntity.getName();
trunklineCarsLoadScanService.updateScanStatusAndTime(loadScanIds, "3", new Date(),AuthUtil.getNickName(),warehouseId,warehouseEntity.getName());
@ -6019,6 +6056,33 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
try {
String content = "包件在" + warehouseEntity.getName() + "被三方中转签收";
packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.SIGN_TRIPARTITE_TRANSFER_DEPART.getCode(), content);
List<TrunklineCarsLoadScanEntity> trunklineCarsLoadScanEntities = trunklineCarsLoadScanService.listByIds(loadScanIds);
//把trunklineCarsLoadScanEntities中的所有元素按照waybillNo进行分组
Map<String, List<TrunklineCarsLoadScanEntity>> map = trunklineCarsLoadScanEntities.stream().filter(t -> Objects.nonNull(t.getWaybillNo())).collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getWaybillNo));
map.keySet().forEach(waybillNo -> {
List<TrunklineCarsLoadScanEntity> list = map.get(waybillNo);
//把list中所有元素的unloadNum求和,没有值就取0
Integer unloadNum = list.stream().mapToInt(t -> Objects.nonNull(t.getUnloadNum()) ? t.getUnloadNum() : 0).sum();
WaybillLogDTO waybillLogDTO = new WaybillLogDTO();
waybillLogDTO.setWarehouseId(warehouseId);
waybillLogDTO.setWarehouseName(warehouseName);
waybillLogDTO.setWaybillNo(waybillNo);
waybillLogDTO.setTrainNumber(carsLoadEntity.getCarsNo());
waybillLogDTO.setCarNumber(carsLoadEntity.getCarNumber());
waybillLogDTO.setSignUser(AuthUtil.getNickName());
waybillLogDTO.setSignTime(date);
waybillLogDTO.setDriverName(carsLoadEntity.getDriverName());
waybillLogDTO.setNum(unloadNum);
waybillLogDTO.setSignOrderCode(carsLoadEntity.getCarsNo());
waybillLogDTO.setType(1);
waybillLogDTO.setUserId(AuthUtil.getUserId());
waybillLogDTO.setNickName(AuthUtil.getNickName());
waybillTrackService.addSignWaybillLog(waybillLogDTO);
});
} catch (Exception e) {
log.warn("###########存入日志失败");
}
@ -6267,6 +6331,15 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
public R uploadSignPhoto(LoadCarsDTO loadCarsDTO) {
Long signOrderId = loadCarsDTO.getSignOrderId();
Long warehouseId = loadCarsDTO.getWarehouseId();
BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId);
if(Objects.isNull(warehouseEntity)){
log.warn("###############uploadSignPhoto: 仓库信息不存在 warehouseId={}",warehouseId);
return R.fail(405,"仓库信息不存在");
}
String warehouseName = warehouseEntity.getName();
List<TrunklineLoadSignPhotoEntity> signPhotoList = loadCarsDTO.getSignPhotoList();
List<TrunklineLoadSignPhotoEntity> oldSignPhotoList = loadSignPhotoService.findBySignPhotoList(signOrderId);
@ -6286,6 +6359,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
}else{
String signStatus = signOrderEntity.getSignStatus();
if(!"30".equals(signStatus)){
//直发商家签收单
signOrderEntity.setSignStatus("30");
//处理零担的数据
@ -6307,6 +6382,49 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
}
});
trunklineLoadSignOrderService.updateById(signOrderEntity);
//签收单
Long loadId = signOrderEntity.getLoadId();
TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId);
List<WaybillLogDTO> waybillLogDTOList = new ArrayList<>();
QueryWrapper<TrunklineCarsLoadScanEntity> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("load_id",warehouseId)
.eq("sign_order_id",signOrderId)
.eq("scan_status","3");
List<TrunklineCarsLoadScanEntity> signCarsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper1);
//把signCarsLoadScanEntityList中所有元素通过waybillNo进行分组
Map<String, List<TrunklineCarsLoadScanEntity>> groupByWaybillNo = signCarsLoadScanEntityList.stream().filter(t -> !StringUtils.isEmpty(t.getWaybillNo())).collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getWaybillNo));
groupByWaybillNo.keySet().forEach(waybillNo -> {
List<TrunklineCarsLoadScanEntity> ls = groupByWaybillNo.get(waybillNo);
//把ls中所有元素的unloadNum进行求和,为空用0代替
Integer unloadNum = ls.stream().map(t -> t.getUnloadNum() == null ? 0 : t.getUnloadNum()).reduce(0, Integer::sum);
WaybillLogDTO waybillLogDTO = new WaybillLogDTO();
waybillLogDTO.setWarehouseId(warehouseId);
waybillLogDTO.setWarehouseName(warehouseName);
waybillLogDTO.setWaybillNo(waybillNo);
waybillLogDTO.setTrainNumber(carsLoadEntity.getCarsNo());
waybillLogDTO.setCarNumber(carsLoadEntity.getCarNumber());
waybillLogDTO.setSignUser(AuthUtil.getNickName());
waybillLogDTO.setSignTime(new Date());
waybillLogDTO.setDriverName(carsLoadEntity.getDriverName());
waybillLogDTO.setNum(unloadNum);
waybillLogDTO.setSignOrderCode(signOrderEntity.getLoadSignCode());
waybillLogDTO.setType(2);
waybillLogDTO.setUserId(AuthUtil.getUserId());
waybillLogDTO.setNickName(AuthUtil.getNickName());
waybillLogDTOList.add(waybillLogDTO);
});
if(CollUtil.isNotEmpty(waybillLogDTOList)){
waybillLogDTOList.forEach(waybillLogDTO -> {
waybillTrackService.addSignWaybillLog(waybillLogDTO);
});
}
}
}
return R.success("添加成功");
}

Loading…
Cancel
Save