package com.javaweb.geo.service.impl;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
import com.javaweb.common.exception.BusinessException;
|
import com.javaweb.common.utils.NumberUtils;
|
import com.javaweb.geo.domain.*;
|
import com.javaweb.geo.mapper.*;
|
import com.javaweb.geo.service.IHandleOpinionService;
|
import com.javaweb.geo.utils.ExceptionDistanceUtils;
|
import com.javaweb.geo.utils.ExceptionTimeUtils;
|
import com.javaweb.geo.vo.ExceptionDistanceVo;
|
import com.javaweb.geo.vo.ExceptionTimeVo;
|
import com.javaweb.geotdp.domain.ResponseResult;
|
import com.javaweb.geotdp.enums.RecordType;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import com.javaweb.geo.service.IHandleExceptionService;
|
import com.javaweb.common.core.text.Convert;
|
|
/**
|
* 异常处理Service业务层处理
|
*
|
* @author cxy
|
* @date 2022-11-14
|
*/
|
@Service
|
public class HandleExceptionServiceImpl implements IHandleExceptionService {
|
@Autowired
|
private HandleExceptionMapper handleExceptionMapper;
|
|
@Autowired
|
private HoleMapper holeMapper;
|
|
@Autowired
|
private HoleYantuMapper holeYantuMapper;
|
|
@Autowired
|
private HoleHuiciMapper holeHuiciMapper;
|
|
|
@Autowired
|
private HoleQutuMapper holeQutuMapper;
|
|
@Autowired
|
private HoleBiaoguanMapper holeBiaoguanMapper;
|
|
@Autowired
|
private HoleShuiweiMapper holeShuiweiMapper;
|
|
@Autowired
|
private IHandleOpinionService handleOpinionService;
|
|
/**
|
* 查询异常处理
|
*
|
* @param ids 异常处理ID
|
* @return 异常处理
|
*/
|
@Override
|
public HandleException selectHandleExceptionById(String ids) {
|
return handleExceptionMapper.selectHandleExceptionById(ids);
|
}
|
|
/**
|
* 查询异常处理列表
|
*
|
* @param handleException 异常处理
|
* @return 异常处理
|
*/
|
@Override
|
public List<HandleException> selectHandleExceptionList(HandleException handleException) {
|
return handleExceptionMapper.selectHandleExceptionList(handleException);
|
}
|
|
/**
|
* 新增异常处理
|
*
|
* @param handleException 异常处理
|
* @return 结果
|
*/
|
@Override
|
public int insertHandleException(HandleException handleException) {
|
return handleExceptionMapper.insertHandleException(handleException);
|
}
|
|
/**
|
* 修改异常处理
|
*
|
* @param handleException 异常处理
|
* @return 结果
|
*/
|
@Override
|
public int updateHandleException(HandleException handleException) {
|
return handleExceptionMapper.updateHandleException(handleException);
|
}
|
|
/**
|
* 删除异常处理对象
|
*
|
* @param ids 需要删除的数据ID
|
* @return 结果
|
*/
|
@Override
|
public int deleteHandleExceptionByIds(String ids) {
|
return handleExceptionMapper.deleteHandleExceptionByIds(Convert.toStrArray(ids));
|
}
|
|
/**
|
* 删除异常处理信息
|
*
|
* @param ids 异常处理ID
|
* @return 结果
|
*/
|
@Override
|
public int deleteHandleExceptionById(String ids) {
|
return handleExceptionMapper.deleteHandleExceptionById(ids);
|
}
|
|
/**
|
* 查看勘探点编号下的详情(时间异常)
|
*/
|
@Override
|
public List<ExceptionTimeVo> holeTimeDetails(String holeId) {
|
|
List<ExceptionTimeVo> resultList = new ArrayList<>();
|
ExceptionTimeVo exceptionTimeVo;
|
|
List<HoleYantu> yantuList = holeYantuMapper.selectHoleYantuListByHoleId(holeId);
|
if (ObjectUtil.isNotEmpty(yantuList)) {
|
for (int i = 0; i < yantuList.size() ; i++) {
|
exceptionTimeVo = new ExceptionTimeVo();
|
BeanUtil.copyProperties(yantuList.get(i), exceptionTimeVo);
|
exceptionTimeVo.setCode(yantuList.get(i).getCode());
|
exceptionTimeVo.setRecordType(RecordType.yt.getName());
|
exceptionTimeVo.setGpsTime(yantuList.get(i).getGpsTime());
|
if(i==0){
|
exceptionTimeVo.setSpead(0d);
|
resultList.add(exceptionTimeVo);
|
continue;
|
}
|
HoleYantu holeYantu1 = yantuList.get(i-1);
|
HoleYantu holeYantu2 = yantuList.get(i);
|
// 计算速度
|
Double spead = ExceptionTimeUtils.spead(holeYantu1.getGpsTime(), holeYantu1.getEndDepth(), holeYantu2.getGpsTime(), holeYantu2.getEndDepth());
|
exceptionTimeVo.setSpead(spead);
|
|
|
|
resultList.add(exceptionTimeVo);
|
}
|
}
|
|
return resultList;
|
}
|
|
|
/**
|
* 查看勘探点编号下的详情(距离异常)
|
*/
|
@Override
|
public List<ExceptionDistanceVo> holeDistanceDetails(String holeId) {
|
|
Hole hole = holeMapper.selectHoleById(holeId);
|
if (ObjectUtil.isEmpty(hole)) {
|
throw new BusinessException("未查询到数据");
|
}
|
|
List<ExceptionDistanceVo> resultList = new ArrayList<>();
|
ExceptionDistanceVo distanceVo;
|
double holeLon = hole.getLongitude(), holeLat = hole.getLatitude();
|
|
List<HoleBiaoguan> biaoguans = holeBiaoguanMapper.selectHoleBiaoguanByHoleId(holeId);
|
List<HoleHuici> holeHuicis = holeHuiciMapper.selectHoleHuiciByHoleId(holeId);
|
List<HoleQutu> qutus = holeQutuMapper.selectHoleQutuByHoleId(holeId);
|
List<HoleShuiwei> shuiweis = holeShuiweiMapper.selectHoleShuiWeiByHoleId(holeId);
|
List<HoleYantu> yantus = holeYantuMapper.selectHoleYantuListByHoleId(holeId);
|
|
// 标惯、动探
|
if (ObjectUtil.isNotEmpty(biaoguans)) {
|
for (HoleBiaoguan item : biaoguans) {
|
distanceVo = new ExceptionDistanceVo();
|
distanceVo.setIds(item.getIds());
|
distanceVo.setBeginDepth(item.getBegin1());
|
distanceVo.setEndDepth(item.getEnd1());
|
distanceVo.setCode(item.getCode());
|
distanceVo.setLat(item.getLongitude());
|
distanceVo.setLng(item.getLatitude());
|
distanceVo.setRecordType(item.getType());
|
distanceVo.setGpsTime(item.getGpsTime());
|
distanceVo.setDistance(ExceptionDistanceUtils.distance(holeLon, holeLat, item.getLongitude(), item.getLatitude()));
|
resultList.add(distanceVo);
|
}
|
}
|
// 回次
|
if (ObjectUtil.isNotEmpty(holeHuicis)) {
|
for (HoleHuici item : holeHuicis) {
|
distanceVo = new ExceptionDistanceVo();
|
distanceVo.setIds(item.getIds());
|
distanceVo.setBeginDepth(item.getBeginDepth());
|
distanceVo.setEndDepth(item.getEndDepth());
|
distanceVo.setCode(item.getCode());
|
distanceVo.setLat(item.getLongitude());
|
distanceVo.setLng(item.getLatitude());
|
distanceVo.setRecordType(RecordType.hc.getName());
|
distanceVo.setGpsTime(item.getGpsTime());
|
distanceVo.setDistance(ExceptionDistanceUtils.distance(holeLon, holeLat, item.getLongitude(), item.getLatitude()));
|
resultList.add(distanceVo);
|
}
|
}
|
// 取土
|
if (ObjectUtil.isNotEmpty(qutus)) {
|
for (HoleQutu item : qutus) {
|
distanceVo = new ExceptionDistanceVo();
|
distanceVo.setIds(item.getIds());
|
distanceVo.setBeginDepth(item.getBeginDepth());
|
distanceVo.setEndDepth(item.getEndDepth());
|
distanceVo.setCode(item.getCode());
|
distanceVo.setLat(item.getLongitude());
|
distanceVo.setLng(item.getLatitude());
|
distanceVo.setRecordType(RecordType.qt.getName());
|
distanceVo.setGpsTime(item.getGpsTime());
|
distanceVo.setDistance(ExceptionDistanceUtils.distance(holeLon, holeLat, item.getLongitude(), item.getLatitude()));
|
resultList.add(distanceVo);
|
}
|
}
|
// 水位
|
if (ObjectUtil.isNotEmpty(shuiweis)) {
|
for (HoleShuiwei item : shuiweis) {
|
distanceVo = new ExceptionDistanceVo();
|
distanceVo.setIds(item.getIds());
|
distanceVo.setBeginDepth(item.getShownWaterLevel());
|
distanceVo.setEndDepth(item.getWaterDepth());
|
distanceVo.setCode(item.getCode());
|
distanceVo.setLat(item.getLongitude());
|
distanceVo.setLng(item.getLatitude());
|
distanceVo.setRecordType(RecordType.sw.getName());
|
distanceVo.setGpsTime(item.getGpsTime());
|
distanceVo.setDistance(ExceptionDistanceUtils.distance(holeLon, holeLat, item.getLongitude(), item.getLatitude()));
|
resultList.add(distanceVo);
|
}
|
}
|
// 岩土
|
if (ObjectUtil.isNotEmpty(yantus)) {
|
for (HoleYantu item : yantus) {
|
distanceVo = new ExceptionDistanceVo();
|
distanceVo.setIds(item.getIds());
|
distanceVo.setBeginDepth(item.getBeginDepth());
|
distanceVo.setEndDepth(item.getEndDepth());
|
distanceVo.setCode(item.getCode());
|
distanceVo.setLat(item.getLongitude());
|
distanceVo.setLng(item.getLatitude());
|
distanceVo.setRecordType(RecordType.yt.getName());
|
distanceVo.setGpsTime(item.getGpsTime());
|
distanceVo.setDistance(ExceptionDistanceUtils.distance(holeLon, holeLat, item.getLongitude(), item.getLatitude()));
|
resultList.add(distanceVo);
|
}
|
}
|
return resultList;
|
}
|
|
|
/**
|
* 异常处理意见详情
|
* @param exceptionId
|
* @return
|
*/
|
@Override
|
public List<HandleOpinion> handleOpinionDetails(String exceptionId) {
|
HandleOpinion handleOpinion = new HandleOpinion();
|
handleOpinion.setExceptionId(exceptionId);
|
return handleOpinionService.selectHandleOpinionList(handleOpinion);
|
}
|
|
|
}
|