提交 6badbe78 authored 作者: 艾庆国's avatar 艾庆国

运单预警

上级 90992706
...@@ -13,8 +13,8 @@ public enum VehicleWarnRangEnum { ...@@ -13,8 +13,8 @@ public enum VehicleWarnRangEnum {
@AllArgsConstructor @AllArgsConstructor
public enum WarnRange { public enum WarnRange {
CHILD(1, "运单"), CHILD(1, "运单"),
ORDER(1, "货单"), ORDER_GOODS(2, "货单"),
ALL(1, "全部"), ALL(3, "全部"),
; ;
......
package com.clx.performance.vo.pc.vehiclewarn; package com.clx.performance.vo.pc.vehiclewarn;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.clx.performance.enums.OrderChildEnum; import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum; import com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum; import com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import org.apache.commons.lang3.StringUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Objects;
/** /**
* @Author: aiqinguo * @Author: aiqinguo
...@@ -79,12 +81,25 @@ public class VehicleWarnInfoVO { ...@@ -79,12 +81,25 @@ public class VehicleWarnInfoVO {
private String warnTime; private String warnTime;
@ApiModelProperty(value = "预警暂停时间", example = "") @ApiModelProperty(value = "预警暂停时间", example = "")
private String suspendTime; private String suspendTime;
@ApiModelProperty(value = "处理状态:1待处理 2已处理 3暂停预警", example = "1") @ApiModelProperty(value = "处理状态:1待处理 2已处理 3暂停预警", example = "1")
private Integer status; private Integer status;
public Integer getStatus() {
if (Objects.equals(status, VehicleWarnInfoEnum.Status.RESOLVE.getCode())) {return VehicleWarnInfoEnum.Status.RESOLVE.getCode();}
if (StringUtils.isNotBlank(suspendTime)){
if (LocalDateTimeUtil.parse(suspendTime).isBefore(LocalDateTime.now())) {
return VehicleWarnInfoEnum.Status.INIT.getCode();
} else {
return VehicleWarnInfoEnum.Status.SUSPEND.getCode();
}
}
return VehicleWarnInfoEnum.Status.INIT.getCode();
}
@ApiModelProperty(value = "处理状态:1待处理 2已处理 3暂停预警", example = "待处理") @ApiModelProperty(value = "处理状态:1待处理 2已处理 3暂停预警", example = "待处理")
private String statusMsg; private String statusMsg;
public String getStatusMsg() { public String getStatusMsg() {
return VehicleWarnInfoEnum.Status.getMsgByCode(status); return VehicleWarnInfoEnum.Status.getMsgByCode(getStatus());
} }
@ApiModelProperty(value = "创建人", example = "") @ApiModelProperty(value = "创建人", example = "")
private String createBy; private String createBy;
......
...@@ -27,7 +27,7 @@ public class VehicleWarnChildDaoImpl extends BaseDaoImpl<VehicleWarnChildMapper, ...@@ -27,7 +27,7 @@ public class VehicleWarnChildDaoImpl extends BaseDaoImpl<VehicleWarnChildMapper,
public boolean updateReceiveAddressDistance(VehicleWarnChild item) { public boolean updateReceiveAddressDistance(VehicleWarnChild item) {
return update(lUdWrapper() return update(lUdWrapper()
.eq(VehicleWarnChild::getId, item.getId()) .eq(VehicleWarnChild::getId, item.getId())
.set(VehicleWarnChild::getTraceTime, item.getTraceTime()) .set(VehicleWarnChild::getReceiveAddressDistance, item.getReceiveAddressDistance())
); );
} }
......
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao; import com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao;
import com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum; import com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnRangEnum;
import com.clx.performance.mapper.vehiclewarn.VehicleWarnInfoMapper; import com.clx.performance.mapper.vehiclewarn.VehicleWarnInfoMapper;
import com.clx.performance.model.vehiclewarn.VehicleWarnInfo; import com.clx.performance.model.vehiclewarn.VehicleWarnInfo;
import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam; import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam;
...@@ -11,6 +12,10 @@ import com.msl.common.base.Optional; ...@@ -11,6 +12,10 @@ import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
@Repository @Repository
public class VehicleWarnInfoDaoImpl extends BaseDaoImpl<VehicleWarnInfoMapper, VehicleWarnInfo, Integer> implements VehicleWarnInfoDao { public class VehicleWarnInfoDaoImpl extends BaseDaoImpl<VehicleWarnInfoMapper, VehicleWarnInfo, Integer> implements VehicleWarnInfoDao {
...@@ -23,7 +28,45 @@ public class VehicleWarnInfoDaoImpl extends BaseDaoImpl<VehicleWarnInfoMapper, V ...@@ -23,7 +28,45 @@ public class VehicleWarnInfoDaoImpl extends BaseDaoImpl<VehicleWarnInfoMapper, V
} }
@Override @Override
public boolean updateWarn(VehicleWarnInfo item) { public boolean batchUpdateStatus(List<Integer> idList, Integer status) {
return update(lUdWrapper()
.in(VehicleWarnInfo::getId, idList)
.set(VehicleWarnInfo::getStatus, status)
);
}
@Override
public boolean updateSuspendTime(VehicleWarnInfo item, Integer warnRang) {
if (Objects.equals(warnRang, VehicleWarnRangEnum.WarnRange.CHILD.getCode())) {
return update(lUdWrapper()
.eq(VehicleWarnInfo::getId, item.getId())
.ne(VehicleWarnInfo::getStatus, VehicleWarnInfoEnum.Status.RESOLVE)
.set(VehicleWarnInfo::getSuspendTime, item.getSuspendTime())
.set(VehicleWarnInfo::getStatus, item.getStatus())
);
}
else if (Objects.equals(warnRang, VehicleWarnRangEnum.WarnRange.ORDER_GOODS.getCode())) {
return update(lUdWrapper()
.eq(VehicleWarnInfo::getWarnConfigId, item.getWarnConfigId())
.eq(VehicleWarnInfo::getOrderGoodsNo, item.getOrderGoodsNo())
.ne(VehicleWarnInfo::getStatus, VehicleWarnInfoEnum.Status.RESOLVE)
.set(VehicleWarnInfo::getSuspendTime, item.getSuspendTime())
.set(VehicleWarnInfo::getStatus, item.getStatus())
);
}
else {
return update(lUdWrapper()
.eq(VehicleWarnInfo::getWarnConfigId, item.getWarnConfigId())
.ne(VehicleWarnInfo::getStatus, VehicleWarnInfoEnum.Status.RESOLVE)
.set(VehicleWarnInfo::getSuspendTime, item.getSuspendTime())
.set(VehicleWarnInfo::getStatus, item.getStatus())
);
}
}
@Override
public boolean updateWarnTime(VehicleWarnInfo item) {
return update(lUdWrapper() return update(lUdWrapper()
.eq(VehicleWarnInfo::getId, item.getId()) .eq(VehicleWarnInfo::getId, item.getId())
.set(VehicleWarnInfo::getWarnTime, item.getWarnTime()) .set(VehicleWarnInfo::getWarnTime, item.getWarnTime())
...@@ -41,37 +84,22 @@ public class VehicleWarnInfoDaoImpl extends BaseDaoImpl<VehicleWarnInfoMapper, V ...@@ -41,37 +84,22 @@ public class VehicleWarnInfoDaoImpl extends BaseDaoImpl<VehicleWarnInfoMapper, V
} }
@Override @Override
public Optional<VehicleWarnInfo> findByChildNoAndWarnConfigType(String childNo, Integer warnConfigType) { public Optional<VehicleWarnInfo> findByChildNoAndWarnConfigId(String childNo, Integer warnConfigId) {
return Optional.of(childNo)
.map(item -> lQrWrapper()
.eq(VehicleWarnInfo::getChildNo, childNo)
.eq(VehicleWarnInfo::getWarnConfigId, warnConfigType)
.last("limit 1")
)
.map(super::getOne);
}
@Override
public Optional<VehicleWarnInfo> findEnableByChildNoAndWarnConfigType(String childNo, Integer warnConfigType) {
return Optional.of(childNo) return Optional.of(childNo)
.map(item -> lQrWrapper() .map(item -> lQrWrapper()
.eq(VehicleWarnInfo::getChildNo, childNo) .eq(VehicleWarnInfo::getChildNo, childNo)
.eq(VehicleWarnInfo::getWarnConfigId, warnConfigType) .eq(VehicleWarnInfo::getWarnConfigId, warnConfigId)
.ne(VehicleWarnInfo::getStatus, VehicleWarnInfoEnum.Status.RESOLVE.getCode())
.last("limit 1") .last("limit 1")
) )
.map(super::getOne); .map(super::getOne);
} }
@Override @Override
public Optional<VehicleWarnInfo> findByWarnConfigType(Integer warnConfigType) { public List<VehicleWarnInfo> listSuspendTimeout() {
return Optional.of(warnConfigType) return list(lQrWrapper()
.map(item -> lQrWrapper() .eq(VehicleWarnInfo::getStatus, VehicleWarnInfoEnum.Status.SUSPEND.getCode())
.eq(VehicleWarnInfo::getWarnConfigId, warnConfigType) .lt(VehicleWarnInfo::getSuspendTime, LocalDateTime.now())
.orderByDesc(VehicleWarnInfo::getId) );
.last("limit 1")
)
.map(super::getOne);
} }
......
...@@ -7,17 +7,20 @@ import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam; ...@@ -7,17 +7,20 @@ import com.clx.performance.param.pc.vehiclewarn.PageVehicleWarnInfoParam;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
import java.util.List;
public interface VehicleWarnInfoDao extends BaseDao<VehicleWarnInfoMapper, VehicleWarnInfo, Integer> { public interface VehicleWarnInfoDao extends BaseDao<VehicleWarnInfoMapper, VehicleWarnInfo, Integer> {
boolean updateStatus(VehicleWarnInfo item); boolean updateStatus(VehicleWarnInfo item);
boolean updateWarn(VehicleWarnInfo item); boolean batchUpdateStatus(List<Integer> idList, Integer status);
boolean updateSuspendTime(VehicleWarnInfo item, Integer warnRang);
boolean updateWarnTime(VehicleWarnInfo item);
Optional<VehicleWarnInfo> findById(Integer id); Optional<VehicleWarnInfo> findById(Integer id);
Optional<VehicleWarnInfo> findByChildNoAndWarnConfigType(String childNo, Integer warnConfigType);
Optional<VehicleWarnInfo> findEnableByChildNoAndWarnConfigType(String childNo, Integer warnConfigType); Optional<VehicleWarnInfo> findByChildNoAndWarnConfigId(String childNo, Integer warnConfigId);
Optional<VehicleWarnInfo> findByWarnConfigType(Integer warnConfigType); List<VehicleWarnInfo> listSuspendTimeout();
IPage<VehicleWarnInfo> pageByParam(PageVehicleWarnInfoParam param); IPage<VehicleWarnInfo> pageByParam(PageVehicleWarnInfoParam param);
......
package com.clx.performance.job.vehiclewarn; package com.clx.performance.job.vehiclewarn;
import com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao; import com.clx.performance.dao.vehiclewarn.VehicleWarnChildDao;
import com.clx.performance.dao.vehiclewarn.VehicleWarnInfoDao;
import com.clx.performance.enums.vehiclewarn.VehicleWarnInfoEnum;
import com.clx.performance.model.vehiclewarn.VehicleWarnChild; import com.clx.performance.model.vehiclewarn.VehicleWarnChild;
import com.clx.performance.model.vehiclewarn.VehicleWarnInfo;
import com.clx.performance.service.vehiclewarn.VehicleWarnMqService; import com.clx.performance.service.vehiclewarn.VehicleWarnMqService;
import com.msl.common.job.JobLog; import com.msl.common.job.JobLog;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
...@@ -12,6 +15,7 @@ import org.springframework.stereotype.Component; ...@@ -12,6 +15,7 @@ import org.springframework.stereotype.Component;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@Component @Component
...@@ -21,17 +25,19 @@ public class VehicleWarnJob { ...@@ -21,17 +25,19 @@ public class VehicleWarnJob {
private VehicleWarnChildDao vehicleWarnChildDao; private VehicleWarnChildDao vehicleWarnChildDao;
@Autowired @Autowired
private VehicleWarnMqService vehicleWarnMqService; private VehicleWarnMqService vehicleWarnMqService;
@Autowired
private VehicleWarnInfoDao vehicleWarnInfoDao;
/** /**
* 车辆预警 * 车辆监控预警
*/ */
@XxlJob("truckWarn") @XxlJob("vehicleWarnTruckWarn")
public void truckWarn() { public void vehicleWarnTruckWarn() {
try { try {
List<VehicleWarnChild> list = vehicleWarnChildDao.ListTruckNoOfWarn(); List<VehicleWarnChild> list = vehicleWarnChildDao.ListTruckNoOfWarn();
log.info("车辆预警, size:{}", list.size()); log.info("车辆监控预警, size:{}", list.size());
for (VehicleWarnChild item : list) { for (VehicleWarnChild item : list) {
...@@ -43,9 +49,28 @@ public class VehicleWarnJob { ...@@ -43,9 +49,28 @@ public class VehicleWarnJob {
} }
} catch (Exception e) { } catch (Exception e) {
log.warn("车辆轨迹同步失败,异常原因:{}", ExceptionUtils.getStackTrace(e)); log.warn("车辆监控预警失败,异常原因:{}", ExceptionUtils.getStackTrace(e));
JobLog.error("车辆轨迹同步失败,异常原因=====================", e); JobLog.error("车辆监控预警失败,异常原因=====================", e);
} }
} }
// /**
// * 预警暂停取消
// */
// @XxlJob("vehicleWarnSuspendCancel")
// public void vehicleWarnSuspendCancel() {
//
// try {
//
// List<VehicleWarnInfo> list = vehicleWarnInfoDao.listSuspendTimeout();
// log.info("预警暂停取消, size:{}", list.size());
//
// vehicleWarnInfoDao.batchUpdateStatus(list.stream().map(item->item.getId()).collect(Collectors.toList()), VehicleWarnInfoEnum.Status.INIT.getCode());
//
// } catch (Exception e) {
// log.warn("预警暂停取消失败,异常原因:{}", ExceptionUtils.getStackTrace(e));
// JobLog.error("预警暂停取消失败,异常原因=====================", e);
// }
// }
} }
...@@ -28,7 +28,7 @@ public class VehicleWarnChild implements HasKey<Integer> { ...@@ -28,7 +28,7 @@ public class VehicleWarnChild implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Integer id; //id private Integer id; //id
private String childNo; //运单编号 private String childNo; //运单编号
private String orderNo; //货单编号 private String orderGoodsNo; //货单编号
private String truckNo; //车牌号 private String truckNo; //车牌号
private Long driverUserNo; //司机用户编号 private Long driverUserNo; //司机用户编号
private BigDecimal sendLongitude; //发货地址经度 private BigDecimal sendLongitude; //发货地址经度
......
...@@ -30,6 +30,7 @@ public class VehicleWarnInfo implements HasKey<Integer> { ...@@ -30,6 +30,7 @@ public class VehicleWarnInfo implements HasKey<Integer> {
private String warnName; //预警名称 private String warnName; //预警名称
private Integer warnType; //预警类型 private Integer warnType; //预警类型
private Integer warnLevel; //预警级别 private Integer warnLevel; //预警级别
private String orderGoodsNo; //货单编号
private String childNo; //运单编号 private String childNo; //运单编号
private Integer sendAddressId; //发货地址id private Integer sendAddressId; //发货地址id
private String sendAddress; //发货地址 private String sendAddress; //发货地址
......
...@@ -136,7 +136,7 @@ public class TruckTraceServiceImpl implements TruckTraceService { ...@@ -136,7 +136,7 @@ public class TruckTraceServiceImpl implements TruckTraceService {
@Override @Override
public BigDecimal[] getCurrentPosition(String truckNo, Long userNo) { public BigDecimal[] getCurrentPosition(String truckNo, Long userNo) {
String beginTime = LocalDateTimeUtils.formatTime(LocalDateTime.now().minusHours(1)); String beginTime = LocalDateTimeUtils.formatTime(LocalDateTime.now().minusMinutes(5));
String endTime = LocalDateTimeUtils.formatTime(); String endTime = LocalDateTimeUtils.formatTime();
// 车辆 // 车辆
......
...@@ -55,8 +55,16 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService { ...@@ -55,8 +55,16 @@ public class VehicleWarnInfoServiceImpl implements VehicleWarnInfoService {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); 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);
LocalDateTime endTime = LocalDateTimeUtils.parseTime(param.getWarnEndTime());
vehicleWarnInfo.setSuspendTime(endTime);
if (endTime.isBefore(LocalDateTime.now())){
vehicleWarnInfo.setStatus(VehicleWarnInfoEnum.Status.SUSPEND.getCode()); vehicleWarnInfo.setStatus(VehicleWarnInfoEnum.Status.SUSPEND.getCode());
vehicleWarnInfoDao.updateStatus(vehicleWarnInfo); }
else {
vehicleWarnInfo.setStatus(VehicleWarnInfoEnum.Status.INIT.getCode());
}
vehicleWarnInfoDao.updateSuspendTime(vehicleWarnInfo, param.getWarnRang());
VehicleWarnLog vehicleWarnLog = new VehicleWarnLog(); VehicleWarnLog vehicleWarnLog = new VehicleWarnLog();
vehicleWarnLog.setInfoId(vehicleWarnInfo.getId()); vehicleWarnLog.setInfoId(vehicleWarnInfo.getId());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论