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

运单预警

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