提交 24537d3d authored 作者: 艾庆国's avatar 艾庆国

运单预警

上级 21785611
......@@ -43,13 +43,15 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
@Override
public void vehicleWarnInfoUpdate(OrderChild orderChild, VehicleWarnInfo vehicleWarnInfo, VehicleWarnConfig vehicleWarnConfig){
public void vehicleWarnInfoUpdate(OrderChild orderChild, VehicleWarnInfo vehicleWarnInfo,
VehicleWarnConfig vehicleWarnConfig){
// 更新
if (vehicleWarnInfo != null){
// 计算下次生效时间
LocalDateTime nextTime = vehicleWarnInfo.getWarnTime().plusMinutes(vehicleWarnConfig.getInterval().multiply(new BigDecimal(MIN_FER_HOUR)).intValue());
LocalDateTime nextTime = vehicleWarnInfo.getWarnTime()
.plusMinutes(vehicleWarnConfig.getInterval().multiply(new BigDecimal(MIN_FER_HOUR)).intValue());
if (nextTime.isAfter(LocalDateTime.now())) {return;}
vehicleWarnInfo.setWarnTime(LocalDateTime.now());
......@@ -65,7 +67,6 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
vehicleWarnInfo.setWarnConfigId(vehicleWarnConfig.getId());
vehicleWarnInfo.setWarnType(vehicleWarnConfig.getWarnType());
vehicleWarnInfo.setWarnName(vehicleWarnConfig.getWarnName());
vehicleWarnInfo.setWarnName(vehicleWarnConfig.getWarnName());
vehicleWarnInfo.setWarnLevel(vehicleWarnConfig.getWarnLevel());
vehicleWarnInfo.setOrderGoodsNo(orderChild.getOrderGoodsNo());
......@@ -135,7 +136,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
public int getNeedTime(BigDecimal originLongitude, BigDecimal originLatitude,
BigDecimal destinationLongitude, BigDecimal destinationLatitude){
try {
List<GdRouteDTO> gdRouteDTOS = gdService.getRoute(originLongitude, originLatitude, destinationLongitude, destinationLatitude);
List<GdRouteDTO> gdRouteDTOS = gdService.getRoute(originLongitude, originLatitude,
destinationLongitude, destinationLatitude);
if (!gdRouteDTOS.isEmpty()){
return gdRouteDTOS.get(0).getDuration() /SEC_FER_MIN;
......@@ -152,7 +154,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
* 获取需要时间(min)
*/
@Override
public int getNeedTime(BigDecimal[] currentPosition, BigDecimal destinationLongitude, BigDecimal destinationLatitude) {
public int getNeedTime(BigDecimal[] currentPosition,
BigDecimal destinationLongitude, BigDecimal destinationLatitude) {
if (currentPosition == null) {return 0;}
return getNeedTime(currentPosition[0], currentPosition[1], destinationLongitude, destinationLatitude);
}
......@@ -167,7 +170,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
if (currentPosition == null) {return 0;}
try {
List<GdRouteDTO> gdRouteDTOS = gdService.getRoute(currentPosition[0], currentPosition[1], destinationLongitude, destinationLatitude);
List<GdRouteDTO> gdRouteDTOS = gdService.getRoute(currentPosition[0], currentPosition[1],
destinationLongitude, destinationLatitude);
if (!gdRouteDTOS.isEmpty()){
needDistance = gdRouteDTOS.get(0).getDistance();
......@@ -181,7 +185,8 @@ public class VehicleWarnCommonServiceImpl implements VehicleWarnCommonService {
}
@Override
public Integer getDistance(BigDecimal[] currentPosition, BigDecimal destinationLongitude, BigDecimal destinationLatitude) {
public Integer getDistance(BigDecimal[] currentPosition,
BigDecimal destinationLongitude, BigDecimal destinationLatitude) {
if (currentPosition == null) {return null;}
return GpsUtil.distanceM(currentPosition[0], currentPosition[1], destinationLongitude, destinationLatitude);
}
......
......@@ -67,7 +67,8 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
@Transactional(rollbackFor = Exception.class)
@Override
public void updateConfig(VehicleWarnConfigUpdateParam param) {
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
if (!Objects.equals(vehicleWarnConfig.getWarnName(), param.getWarnName())){
Optional<VehicleWarnConfig> optional = vehicleWarnConfigDao.findByName(param.getWarnName());
if (optional.isPresent()){
......@@ -89,13 +90,15 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
vehicleWarnConfigDao.updateConfig(vehicleWarnConfig);
// 同步历史数据
VehicleWarnInfo vehicleWarnInfo = new VehicleWarnInfo();
vehicleWarnInfoDao.updateByConfig(vehicleWarnConfig.getId(), vehicleWarnConfig.getWarnName(), vehicleWarnConfig.getWarnLevel());
vehicleWarnInfoDao.updateByConfig(vehicleWarnConfig.getId()
, vehicleWarnConfig.getWarnName(), vehicleWarnConfig.getWarnLevel());
}
@Transactional(rollbackFor = Exception.class)
@Override
public void updateStatus(VehicleWarnConfigStatusUpdateParam param) {
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnConfig.setStatus(param.getStatus());
vehicleWarnConfigDao.updateStatus(vehicleWarnConfig);
......@@ -104,7 +107,8 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
@Override
public void deleteConfig(VehicleWarnConfigDeleteUpdateParam param) {
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnConfig vehicleWarnConfig = vehicleWarnConfigDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnConfig.setDeleteStatus(VehicleWarnConfigEnum.DeleteStatus.YES.getCode());
vehicleWarnConfigDao.updateDelete(vehicleWarnConfig);
......
......@@ -27,6 +27,8 @@ import java.util.Objects;
public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnService {
// 装卸车默认时间(min)
private static final Integer LOAD_UNLOAD_TIME_DEFAULT = 60;
// 最近30天装卸车时间
private static final int LOAD_UNLOAD_DAY = 30;
@Autowired
private OrderChildDao orderChildDao;
......@@ -42,7 +44,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void delayTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){
public void delayTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild,
VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveReceiveExpectTime() == null) {return;}
// 拉运结束时间
......@@ -67,7 +70,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
// 超时
if (transportEndTime.isAfter(LocalDateTime.now().plusMinutes(needTime))){return;}
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.DELAY.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.
listByWarnType(VehicleWarnConfigEnum.WarnType.DELAY.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -76,9 +80,12 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
}
private void doDelayTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doDelayTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild,
VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(),
VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......@@ -97,7 +104,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
private Integer getLoadTime(Integer sendAddressId, Integer receiveAddressId,
Integer sendSystemAddressId, Integer receiveSystemAddressId,
LocalDateTime now){
Integer time = orderChildDao.loadTimeAvg(sendAddressId, receiveAddressId, sendSystemAddressId, receiveSystemAddressId, LocalDateTimeUtils.formatTime(now.minusDays(30)));
Integer time = orderChildDao.loadTimeAvg(sendAddressId, receiveAddressId, sendSystemAddressId,
receiveSystemAddressId, LocalDateTimeUtils.formatTime(now.minusDays(LOAD_UNLOAD_DAY)));
if (time == null) {return LOAD_UNLOAD_TIME_DEFAULT;}
return time/60;
}
......@@ -108,7 +116,8 @@ public class VehicleWarnDelayWarnServiceImpl implements VehicleWarnDelayWarnServ
private Integer getUnloadTime(Integer sendAddressId, Integer receiveAddressId,
Integer sendSystemAddressId, Integer receiveSystemAddressId,
LocalDateTime now){
Integer time = orderChildDao.unloadTimeAvg(sendAddressId, receiveAddressId, sendSystemAddressId, receiveSystemAddressId, LocalDateTimeUtils.formatTime(now.minusDays(30)));
Integer time = orderChildDao.unloadTimeAvg(sendAddressId, receiveAddressId, sendSystemAddressId,
receiveSystemAddressId, LocalDateTimeUtils.formatTime(now.minusDays(LOAD_UNLOAD_DAY)));
if (time == null) {return LOAD_UNLOAD_TIME_DEFAULT;}
return time/60;
}
......
......@@ -42,6 +42,7 @@ import java.util.stream.Collectors;
@Slf4j
@Service
public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
// 最多查询3天轨迹
private final Integer TRUCK_TRACE_DAY_MAX = 3;
@Autowired
......@@ -65,7 +66,8 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
LocalDateTime endTime = LocalDateTimeUtils.parseTime(param.getWarnEndTime());
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnInfo.setSuspendTime(endTime);
vehicleWarnInfoDao.updateSuspendTime(vehicleWarnInfo, param.getWarnRang());
......@@ -107,7 +109,8 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
public void updateResolve(VehicleWarnInfoResolveUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnInfo.setStatus(VehicleWarnInfoEnum.Status.RESOLVE.getCode());
vehicleWarnInfoDao.updateStatus(vehicleWarnInfo);
......@@ -126,7 +129,8 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
@Override
public VehicleTraceVO getTrace(Integer id) {
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(id).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderChild orderChild = orderChildDao.getByChildNo(vehicleWarnInfo.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderChild orderChild = orderChildDao
.getByChildNo(vehicleWarnInfo.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
LocalDateTime beginTime = vehicleWarnInfo.getTakeTime();
LocalDateTime endTime = LocalDateTime.now();
......@@ -137,7 +141,9 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
if (orderChild.getConfirmTime() != null) {endTime = orderChild.getConfirmTime();}
if (orderChild.getSettleTime() != null) {endTime = orderChild.getSettleTime();}
if (orderChild.getFinishTime() != null) {endTime = orderChild.getFinishTime();}
if (endTime.isAfter(beginTime.plusDays(TRUCK_TRACE_DAY_MAX))) {endTime = beginTime.plusDays(TRUCK_TRACE_DAY_MAX);} //最多查询3天
if (endTime.isAfter(beginTime.plusDays(TRUCK_TRACE_DAY_MAX))){
endTime = beginTime.plusDays(TRUCK_TRACE_DAY_MAX);
}
List<DriverTruckTraceVO> truckTraceList = truckTraceService.listTruckTraceByTime(vehicleWarnInfo.getTruckNo(),
LocalDateTimeUtils.formatTime(beginTime), LocalDateTimeUtils.formatTime(endTime));
......@@ -173,10 +179,12 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
public IPage<VehicleWarnInfoVO> pageInfo(PageVehicleWarnInfoParam param) {
Page<VehicleWarnInfoVO> page = vehicleWarnInfoStruct.convertPage(vehicleWarnInfoDao.pageByParam(param));
List<String> childNoList = page.getRecords().stream().map(item -> item.getChildNo()).collect(Collectors.toList());
List<String> childNoList = page.getRecords().stream()
.map(item -> item.getChildNo()).collect(Collectors.toList());
if (!childNoList.isEmpty()) {
List<OrderChild> list = orderChildDao.listByChildNoList(childNoList);
Map<String, OrderChild> map = list.stream().collect(Collectors.toMap(item -> item.getChildNo(), item -> item));
Map<String, OrderChild> map = list.stream()
.collect(Collectors.toMap(item -> item.getChildNo(), item -> item));
for (VehicleWarnInfoVO record : page.getRecords()) {
record.setChildStatus(map.get(record.getChildNo()).getStatus());
}
......
......@@ -39,7 +39,8 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA
@Override
public void loadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild){
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.LOAD_TIMEOUT.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.LOAD_TIMEOUT.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -48,9 +49,12 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA
}
private void doLoadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doLoadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......@@ -74,7 +78,8 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA
@Override
public void unloadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild){
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.UNLOAD_TIMEOUT.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.UNLOAD_TIMEOUT.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -83,9 +88,12 @@ public class VehicleWarnLoadAndUnloadWarnServiceImpl implements VehicleWarnLoadA
}
private void doUnloadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doUnloadTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild,
VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......
......@@ -44,7 +44,10 @@ import java.util.Objects;
@Slf4j
@Service
public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerService {
// 前往目的地距离
private static final Integer DISTANCE_DEFAULT = 2000;
// 车辆轨迹同步时间
private static final int TRUCK_TRACE_SYNC_TIME = 5;
@Autowired
private OrderChildDao orderChildDao;
......@@ -80,13 +83,15 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
@Override
public void orderChildAdd(VehicleWarnChildAddMqParam mq) {
OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao
.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
// 同步车辆轨迹
TruckTraceSyncMqParam truckTraceSyncMqParam = new TruckTraceSyncMqParam();
truckTraceSyncMqParam.setChildNo(orderChild.getChildNo());
truckTraceSyncMqParam.setTruckNo(orderChild.getTruckNo());
truckTraceSyncMqParam.setBeginTime(LocalDateTimeUtils.formatTime(LocalDateTime.now().minusMinutes(5)));
truckTraceSyncMqParam.setBeginTime(
LocalDateTimeUtils.formatTime(LocalDateTime.now().minusMinutes(TRUCK_TRACE_SYNC_TIME)));
truckTraceSyncMqParam.setEndTime(LocalDateTimeUtils.formatTime());
try {
truckTraceMqHandlerService.truckTracSync(truckTraceSyncMqParam);
......@@ -99,7 +104,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
orderChild.getDriverUserNo());
int arriveSendExpectTime = vehicleWarnCommonService.getNeedTime(currentPosition,
orderGoods.getSendLongitude(), orderGoods.getSendLatitude());
int arriveReceiveExpectTime = vehicleWarnCommonService.getNeedTime(new BigDecimal[]{orderGoods.getSendLongitude(),
int arriveReceiveExpectTime = vehicleWarnCommonService
.getNeedTime(new BigDecimal[]{orderGoods.getSendLongitude(),
orderGoods.getSendLatitude()}, orderGoods.getReceiveLongitude(), orderGoods.getReceiveLatitude());
int needDistance = vehicleWarnCommonService.getNeedDistance(new BigDecimal[]{orderGoods.getSendLongitude(),
......@@ -128,9 +134,11 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
@Override
public void truckWarn(VehicleWarnTruckWarnMqParam mq) {
OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao
.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnChild vehicleWarnChild = vehicleWarnChildDao.findByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnChild vehicleWarnChild = vehicleWarnChildDao
.findByChildNo(mq.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnCommonInfoDTO commonInfo = new VehicleWarnCommonInfoDTO();
commonInfo.setChildNo(orderChild.getChildNo());
......@@ -138,18 +146,22 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
commonInfo.setLastArriveReceiveTime(orderGoods.getLastArriveReceiveTime());
commonInfo.setCurrentTime(LocalDateTime.now());
FeignOrderInfoVO orderInfo = orderService.getOrderInfo(orderGoods.getOrderNo()).orElseThrow(PerformanceResultEnum.ORDER_INVALID);
FeignOrderInfoVO orderInfo = orderService
.getOrderInfo(orderGoods.getOrderNo()).orElseThrow(PerformanceResultEnum.ORDER_INVALID);
commonInfo.setTransportEndTime(LocalDateTimeUtils.parseTime(orderInfo.getTransportEndTime()));
// 获取当前位置
commonInfo.setCurrentPosition(vehicleWarnCommonService.getCurrentPosition(orderChild.getTruckNo(), orderChild.getDriverUserNo()));
commonInfo.setCurrentPosition(vehicleWarnCommonService
.getCurrentPosition(orderChild.getTruckNo(), orderChild.getDriverUserNo()));
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.CREATED.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PAY.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_SEND.getCode())
) {
// 距货源地时间
commonInfo.setSendAddressTime(vehicleWarnCommonService.getNeedTime(commonInfo.getCurrentPosition(), vehicleWarnChild.getSendLongitude(), vehicleWarnChild.getSendLatitude()));
commonInfo.setSendAddressTime(vehicleWarnCommonService
.getNeedTime(commonInfo.getCurrentPosition(), vehicleWarnChild.getSendLongitude()
, vehicleWarnChild.getSendLatitude()));
}
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_SEND.getCode())
......@@ -157,9 +169,13 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode())
) {
// 距目的地时间
commonInfo.setReceiveAddressTime(vehicleWarnCommonService.getNeedTime(commonInfo.getCurrentPosition(), vehicleWarnChild.getReceiveLongitude(), vehicleWarnChild.getReceiveLatitude()));
commonInfo.setReceiveAddressTime(vehicleWarnCommonService
.getNeedTime(commonInfo.getCurrentPosition()
, vehicleWarnChild.getReceiveLongitude(), vehicleWarnChild.getReceiveLatitude()));
// 距目的地距离
commonInfo.setReceiveAddressDistance(vehicleWarnCommonService.getNeedDistance(commonInfo.getCurrentPosition(), vehicleWarnChild.getReceiveLongitude(), vehicleWarnChild.getReceiveLatitude()));
commonInfo.setReceiveAddressDistance(vehicleWarnCommonService
.getNeedDistance(commonInfo.getCurrentPosition()
, vehicleWarnChild.getReceiveLongitude(), vehicleWarnChild.getReceiveLatitude()));
}
// 未装车前往目的地判断
......@@ -242,7 +258,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode())
){
try {
vehicleWarnReceiveAddressWarnService.gotoReceiveAddressTimeout(orderChild, vehicleWarnChild, commonInfo);
vehicleWarnReceiveAddressWarnService
.gotoReceiveAddressTimeout(orderChild, vehicleWarnChild, commonInfo);
}catch (Exception e){
log.info("前往目的地超时错误, msg:{}", ExceptionUtils.getStackTrace(e));
}
......@@ -254,7 +271,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode())
){
try {
vehicleWarnReceiveAddressWarnService.arriveReceiveAddressTimeout(orderChild, vehicleWarnChild, commonInfo);
vehicleWarnReceiveAddressWarnService
.arriveReceiveAddressTimeout(orderChild, vehicleWarnChild, commonInfo);
}catch (Exception e){
log.info("到达目的地超时错误, msg:{}", ExceptionUtils.getStackTrace(e));
}
......@@ -311,7 +329,8 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
@Override
public void truckWarnNotice(VehicleWarnTruckWarnNoticeMqParam mq) {
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findById(mq.getInfoId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findById(mq.getInfoId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
List<String> mobileList = new ArrayList<>();
......@@ -328,11 +347,14 @@ public class VehicleWarnMqHandlerServiceImpl implements VehicleWarnMqHandlerServ
log.info("车辆预警通知, id:{}, mobileList:{}", vehicleWarnInfo.getId(), JSON.toJSONString(mobileList));
if (vehicleWarnInfo.getWarnLevel() == 2){ //2级短信
sendSms(mobileList, vehicleWarnInfo.getWarnName(), vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
sendSms(mobileList, vehicleWarnInfo.getWarnName()
, vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
}
else if (vehicleWarnInfo.getWarnLevel() == 3) { //3级外呼+短信
sendSms(mobileList, vehicleWarnInfo.getWarnName(), vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
sendClink(mobileList, vehicleWarnInfo.getWarnName(), vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
sendSms(mobileList, vehicleWarnInfo.getWarnName()
, vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
sendClink(mobileList, vehicleWarnInfo.getWarnName()
, vehicleWarnInfo.getTruckNo(), vehicleWarnInfo.getChildNo());
}
}
......
......@@ -27,10 +27,12 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService {
VehicleWarnChildAddMqParam mq = new VehicleWarnChildAddMqParam();
mq.setChildNo(childNo);
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.ORDER_CHILD_ADD_ROUTING_KEY, new MqWrapper<>(mq));
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE,
RabbitKeyVehicleWarnConstants.ORDER_CHILD_ADD_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE,
RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
......@@ -38,10 +40,12 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService {
VehicleWarnTruckWarnMqParam mq = new VehicleWarnTruckWarnMqParam();
mq.setChildNo(childNo);
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.TRUCK_WARN_ROUTING_KEY, new MqWrapper<>(mq));
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE,
RabbitKeyVehicleWarnConstants.TRUCK_WARN_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE,
RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
......@@ -49,10 +53,12 @@ public class VehicleWarnMqServiceImpl implements VehicleWarnMqService {
VehicleWarnTruckWarnNoticeMqParam mq = new VehicleWarnTruckWarnNoticeMqParam();
mq.setInfoId(infoId);
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.TRUCK_WARN_NOTICE_ROUTING_KEY, new MqWrapper<>(mq));
MqDelay delay = new MqDelay<>(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE,
RabbitKeyVehicleWarnConstants.TRUCK_WARN_NOTICE_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE, RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
rabbitTemplate.send(RabbitKeyVehicleWarnConstants.DEFAULT_EXCHANGE,
RabbitKeyVehicleWarnConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
}
......@@ -44,17 +44,20 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void packTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){
public void packTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
// 未装车前往目的地判断
if (!commonInfo.isGotoReceive()) {return;}
orderChild.setLoadTime(commonInfo.getGotoReceiveTime());
// 停留时间
int parkTime = truckTraceService.getParkTime(vehicleWarnChild.getTruckNo(), vehicleWarnChild.getDriverUserNo(), orderChild.getLoadTime());
int parkTime = truckTraceService.getParkTime(vehicleWarnChild.getTruckNo()
, vehicleWarnChild.getDriverUserNo(), orderChild.getLoadTime());
if (parkTime == 0) {return;}
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.PARK_TIMEOUT.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.PARK_TIMEOUT.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -64,9 +67,12 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
}
private void doParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, int parkTime){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig, int parkTime){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......@@ -84,17 +90,20 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
}
@Override
public void sensitiveAreaParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo) {
public void sensitiveAreaParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo) {
// 未装车前往目的地判断
if (!commonInfo.isGotoReceive()) {return;}
orderChild.setLoadTime(commonInfo.getGotoReceiveTime());
// 停留时间
int parkTime = truckTraceService.getParkTime(vehicleWarnChild.getTruckNo(), vehicleWarnChild.getDriverUserNo(), vehicleWarnChild.getTakeTime());
int parkTime = truckTraceService.getParkTime(vehicleWarnChild.getTruckNo(),
vehicleWarnChild.getDriverUserNo(), vehicleWarnChild.getTakeTime());
if (parkTime < PARK_TIMEOUT_DEFAULT) {return;}
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.SENSITIVE_AREA_PARK_TIMEOUT.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.SENSITIVE_AREA_PARK_TIMEOUT.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -103,14 +112,18 @@ public class VehicleWarnParkWarnServiceImpl implements VehicleWarnParkWarnServic
}
private void doSensitiveParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, VehicleWarnCommonInfoDTO commonInfo){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doSensitiveParkTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig, VehicleWarnCommonInfoDTO commonInfo){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
// 敏感区距离
Integer sensitiveDistance = vehicleWarnCommonService.getDistance(commonInfo.getCurrentPosition(), vehicleWarnConfig.getLongitude(), vehicleWarnConfig.getLatitude());
Integer sensitiveDistance = vehicleWarnCommonService.getDistance(commonInfo.getCurrentPosition()
, vehicleWarnConfig.getLongitude(), vehicleWarnConfig.getLatitude());
if (sensitiveDistance==null || sensitiveDistance > vehicleWarnConfig.getRadius()) {return;}
// 暂停检测
......
......@@ -40,7 +40,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void gotoReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){
public void gotoReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveReceiveExpectTime() == null) {return;}
// 未装车前往目的地判断
......@@ -54,7 +55,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
// 计算需要的时间
Integer needTime = commonInfo.getReceiveAddressTime();
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.GOTO_RECEIVE_TIMEOUT.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.GOTO_RECEIVE_TIMEOUT.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -63,9 +65,12 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
}
private void doGotoReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, Integer expectTime, Integer needTime){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doGotoReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig, Integer expectTime, Integer needTime){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus()
, VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......@@ -76,8 +81,11 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
LocalDateTime loadTime = orderChild.getLoadTime();
// 超时判断
int time = vehicleWarnConfig.getTimeoutRatio().multiply(new BigDecimal(expectTime)).divide(new BigDecimal("100"), 0, RoundingMode.HALF_UP).intValue();
if (loadTime.plusMinutes(expectTime).plusMinutes(time).isAfter(LocalDateTime.now().plusMinutes(needTime))){return;}
int time = vehicleWarnConfig.getTimeoutRatio()
.multiply(new BigDecimal(expectTime))
.divide(new BigDecimal("100"), 0, RoundingMode.HALF_UP).intValue();
if (loadTime.plusMinutes(expectTime).plusMinutes(time)
.isAfter(LocalDateTime.now().plusMinutes(needTime))){return;}
// 更新
vehicleWarnCommonService.vehicleWarnInfoUpdate(orderChild, vehicleWarnInfo, vehicleWarnConfig);
......@@ -88,7 +96,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void arriveReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){
public void arriveReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveReceiveExpectTime() == null) {return;}
// 未装车前往目的地判断
......@@ -103,7 +112,8 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
LocalDateTime now = commonInfo.getCurrentTime();
if (lastArriveReceiveTime.isAfter(now.plusMinutes(needTime))) {return;}
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.ARRIVE_RECEIVE_DELAY.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.ARRIVE_RECEIVE_DELAY.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -112,9 +122,12 @@ public class VehicleWarnReceiveAddressWarnServiceImpl implements VehicleWarnRece
}
private void doArriveReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doArriveReceiveAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus()
, VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......
......@@ -38,7 +38,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void gotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){
public void gotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveSendExpectTime() == null) {return;}
long expectTime = vehicleWarnChild.getArriveSendExpectTime();
......@@ -46,7 +47,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
// 计算需要的时间
Integer needTime = commonInfo.getSendAddressTime();
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.GOTO_SEND_TIMEOUT.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.GOTO_SEND_TIMEOUT.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -55,9 +57,12 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
}
private void doGotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig, long expectTime, Integer needTime){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doGotoSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig, long expectTime, Integer needTime){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......@@ -66,8 +71,11 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
if (suspend) {return;}
// 超时判断
int time = vehicleWarnConfig.getTimeoutRatio().multiply(new BigDecimal(expectTime)).divide(new BigDecimal("100"), 0, RoundingMode.HALF_UP).intValue();
if (orderChild.getPayTime().plusMinutes(expectTime).plusMinutes(time).isAfter(LocalDateTime.now().plusMinutes(needTime))){return;}
int time = vehicleWarnConfig.getTimeoutRatio()
.multiply(new BigDecimal(expectTime))
.divide(new BigDecimal("100"), 0, RoundingMode.HALF_UP).intValue();
if (orderChild.getPayTime().plusMinutes(expectTime)
.plusMinutes(time).isAfter(LocalDateTime.now().plusMinutes(needTime))){return;}
// 更新
vehicleWarnCommonService.vehicleWarnInfoUpdate(orderChild, vehicleWarnInfo, vehicleWarnConfig);
......@@ -79,7 +87,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void arriveSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnCommonInfoDTO commonInfo){
public void arriveSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnCommonInfoDTO commonInfo){
if (vehicleWarnChild.getArriveSendExpectTime() == null) {return;}
// 计算需要的时间
......@@ -90,7 +99,8 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
LocalDateTime now = LocalDateTime.now();
if (lastArriveSendTime.isAfter(now.plusMinutes(needTime))) {return;}
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao.listByWarnType(VehicleWarnConfigEnum.WarnType.ARRIVE_SEND_DELAY.getCode());
List<VehicleWarnConfig> vehicleWarnConfigList = vehicleWarnConfigDao
.listByWarnType(VehicleWarnConfigEnum.WarnType.ARRIVE_SEND_DELAY.getCode());
if (vehicleWarnConfigList.isEmpty()) {return;}
for (VehicleWarnConfig item : vehicleWarnConfigList) {
......@@ -99,9 +109,12 @@ public class VehicleWarnSendAddressWarnServiceImpl implements VehicleWarnSendAdd
}
private void doArriveSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null && Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
private void doArriveSendAddressTimeout(OrderChild orderChild, VehicleWarnChild vehicleWarnChild
, VehicleWarnConfig vehicleWarnConfig){
VehicleWarnInfo vehicleWarnInfo = vehicleWarnInfoDao
.findByChildNoAndWarnConfigId(vehicleWarnChild.getChildNo(), vehicleWarnConfig.getId()).orNull();
if (vehicleWarnInfo != null
&& Objects.equals(vehicleWarnInfo.getStatus(), VehicleWarnInfoEnum.Status.RESOLVE.getCode())){
return;
}
......
......@@ -61,7 +61,8 @@ public class VehicleWarnUserServiceImpl implements VehicleWarnUserService {
@Transactional(rollbackFor = Exception.class)
@Override
public void updateUser(VehicleWarnUserUpdateParam param) {
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
if (!Objects.equals(vehicleWarnUser.getMobile(), param.getMobile())){
Optional<VehicleWarnUser> optional = vehicleWarnUserDao.findByMobile(param.getMobile());
if (optional.isPresent()){
......@@ -75,9 +76,12 @@ public class VehicleWarnUserServiceImpl implements VehicleWarnUserService {
@Transactional(rollbackFor = Exception.class)
@Override
public void updateConfig(VehicleWarnUserConfigUpdateParam param) {
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
List<Integer> warnTypeList = param.getWarnTypeList().stream().filter(item -> Objects.equals(item.getEnable(), 1)).map(item->item.getWarnType()).collect(Collectors.toList());
List<Integer> warnTypeList = param.getWarnTypeList().stream()
.filter(item -> Objects.equals(item.getEnable(), 1))
.map(item->item.getWarnType()).collect(Collectors.toList());
vehicleWarnUser.setWarnTypeJson(JSON.toJSONString(warnTypeList));
vehicleWarnUserDao.updateWarnType(vehicleWarnUser);
......@@ -86,7 +90,8 @@ public class VehicleWarnUserServiceImpl implements VehicleWarnUserService {
@Transactional(rollbackFor = Exception.class)
@Override
public void deleteUser(VehicleWarnUserDeleteParam param) {
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
VehicleWarnUser vehicleWarnUser = vehicleWarnUserDao
.findById(param.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
vehicleWarnUser.setDeleteStatus(VehicleWarnUserEnum.DeleteStatus.YES.getCode());
vehicleWarnUserDao.deleteUser(vehicleWarnUser);
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论