|  |  |  | 
|---|
|  |  |  | package com.ruoyi.alarmpoints.well.service.impl; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | import com.github.pagehelper.PageHelper; | 
|---|
|  |  |  | import com.github.pagehelper.PageInfo; | 
|---|
|  |  |  | import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; | 
|---|
|  |  |  | import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWellDeptVo; | 
|---|
|  |  |  | import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWellParam; | 
|---|
|  |  |  | import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper; | 
|---|
|  |  |  | import com.ruoyi.alarmpoints.well.service.IArdAlarmpointsWellService; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.ruoyi.common.utils.bean.BeanValidators; | 
|---|
|  |  |  | import com.ruoyi.common.utils.spring.SpringUtils; | 
|---|
|  |  |  | import com.ruoyi.common.utils.uuid.IdUtils; | 
|---|
|  |  |  | import com.ruoyi.utils.gis.GisUtil; | 
|---|
|  |  |  | import lombok.ToString; | 
|---|
|  |  |  | import org.slf4j.Logger; | 
|---|
|  |  |  | import org.slf4j.LoggerFactory; | 
|---|
|  |  |  | 
|---|
|  |  |  | private ArdAlarmpointsWellMapper ardAlarmpointsWellMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | protected Validator validator; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询井管理 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | 
|---|
|  |  |  | public ArdAlarmpointsWell selectArdAlarmpointsWellById(String id) { | 
|---|
|  |  |  | return ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询井管理 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | 
|---|
|  |  |  | * @return 井管理 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @DataScope(deptAlias = "d",userAlias = "u") | 
|---|
|  |  |  | @DataScope(deptAlias = "d", userAlias = "u") | 
|---|
|  |  |  | public List<ArdAlarmpointsWell> selectArdAlarmpointsWellList(ArdAlarmpointsWell ardAlarmpointsWell) { | 
|---|
|  |  |  | return ardAlarmpointsWellMapper.selectArdAlarmpointsWellList(ardAlarmpointsWell); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param ardAlarmpointsWell 按井编号查询 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @DataScope(deptAlias = "d",userAlias = "u") | 
|---|
|  |  |  | @DataScope(deptAlias = "d", userAlias = "u") | 
|---|
|  |  |  | public List<ArdAlarmpointsWell> selectArdAlarmpointsWellByWellIdLike(ArdAlarmpointsWell ardAlarmpointsWell) { | 
|---|
|  |  |  | return ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellIdLike(ardAlarmpointsWell); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public int insertArdAlarmpointsWell(ArdAlarmpointsWell ardAlarmpointsWell) { | 
|---|
|  |  |  | boolean wellIdExists = checkWellIdExists(ardAlarmpointsWell); | 
|---|
|  |  |  | if(wellIdExists) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (wellIdExists) { | 
|---|
|  |  |  | throw new RuntimeException("井号已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ardAlarmpointsWell.setId(IdUtils.simpleUUID()); | 
|---|
|  |  |  | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public int updateArdAlarmpointsWell(ArdAlarmpointsWell ardAlarmpointsWell) { | 
|---|
|  |  |  | boolean wellIdExists = checkWellIdExists(ardAlarmpointsWell); | 
|---|
|  |  |  | if(wellIdExists) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (wellIdExists) { | 
|---|
|  |  |  | throw new RuntimeException("井号已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ardAlarmpointsWell.setUpdateBy(SecurityUtils.getUsername()); | 
|---|
|  |  |  | 
|---|
|  |  |  | * @param well 井信息 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void checkWellAllowed(ArdAlarmpointsWell well) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (StringUtils.isNotNull(well.getId())) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public void checkWellAllowed(ArdAlarmpointsWell well) { | 
|---|
|  |  |  | if (StringUtils.isNotNull(well.getId())) { | 
|---|
|  |  |  | throw new ServiceException("不允许操作井"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | * @param userId 用户id | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void checkWellDataScope(String userId) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (!SysUser.isAdmin(SecurityUtils.getUserId())) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public void checkWellDataScope(String userId) { | 
|---|
|  |  |  | if (!SysUser.isAdmin(SecurityUtils.getUserId())) { | 
|---|
|  |  |  | ArdAlarmpointsWell well = new ArdAlarmpointsWell(); | 
|---|
|  |  |  | well.setUserId(userId); | 
|---|
|  |  |  | List<ArdAlarmpointsWell> wells = SpringUtils.getAopProxy(this).selectArdAlarmpointsWellList(well); | 
|---|
|  |  |  | if (StringUtils.isEmpty(wells)) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (StringUtils.isEmpty(wells)) { | 
|---|
|  |  |  | throw new ServiceException("没有权限访问井数据!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 核对井号是否唯一 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param wellId 需要核对的井号 | 
|---|
|  |  |  | * @param well 需要核对的井 | 
|---|
|  |  |  | * @return 结果 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<ArdAlarmpointsWell> wellByDeptList(List<Long> deptList) { | 
|---|
|  |  |  | QueryWrapper<ArdAlarmpointsWell> queryWrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | queryWrapper.in("dept_id",deptList); | 
|---|
|  |  |  | queryWrapper.in("dept_id", deptList); | 
|---|
|  |  |  | return ardAlarmpointsWellMapper.selectList(queryWrapper); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<ArdAlarmpointsWell> wellList(List<Long> deptList) { | 
|---|
|  |  |  | QueryWrapper<ArdAlarmpointsWell> queryWrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | queryWrapper.select("id","well_id","oil_production","longitude","latitude","altitude").in("dept_id",deptList); | 
|---|
|  |  |  | queryWrapper.select("id", "well_id", "oil_production", "longitude", "latitude", "altitude").in("dept_id", deptList); | 
|---|
|  |  |  | return ardAlarmpointsWellMapper.selectList(queryWrapper); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public PageInfo<ArdAlarmpointsWell> conditionList(ArdAlarmpointsWellParam ardAlarmpointsWellParam){ | 
|---|
|  |  |  | public PageInfo<ArdAlarmpointsWell> conditionList(ArdAlarmpointsWellParam ardAlarmpointsWellParam) { | 
|---|
|  |  |  | Integer pageNum = ardAlarmpointsWellParam.getPageNum(); | 
|---|
|  |  |  | Integer pageSize = ardAlarmpointsWellParam.getPageSize(); | 
|---|
|  |  |  | PageHelper.startPage(pageNum,pageSize); | 
|---|
|  |  |  | PageHelper.startPage(pageNum, pageSize); | 
|---|
|  |  |  | QueryWrapper<ArdAlarmpointsWell> queryWrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | queryWrapper.in("dept_id",ardAlarmpointsWellParam.getDeptList()) | 
|---|
|  |  |  | .like(!StringUtils.isBlank(ardAlarmpointsWellParam.getWellId()),"well_id",ardAlarmpointsWellParam.getWellId()); | 
|---|
|  |  |  | queryWrapper.in("dept_id", ardAlarmpointsWellParam.getDeptList()) | 
|---|
|  |  |  | .like(!StringUtils.isBlank(ardAlarmpointsWellParam.getWellId()), "well_id", ardAlarmpointsWellParam.getWellId()); | 
|---|
|  |  |  | //        .eq(!StringUtils.isBlank(ardAlarmpointsWellParam.getWellNumber()),"well_number",ardAlarmpointsWellParam.getWellNumber()) | 
|---|
|  |  |  | //        .eq(!StringUtils.isBlank(ardAlarmpointsWellParam.getOilProduction()),"oil_production",ardAlarmpointsWellParam.getOilProduction()) | 
|---|
|  |  |  | //        .eq(!StringUtils.isBlank(ardAlarmpointsWellParam.getWellBlock()),"well_block",ardAlarmpointsWellParam.getWellBlock()) | 
|---|
|  |  |  | 
|---|
|  |  |  | List<ArdAlarmpointsWell> list = ardAlarmpointsWellMapper.selectList(queryWrapper); | 
|---|
|  |  |  | return new PageInfo<>(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<ArdAlarmpointsWellDeptVo> wellListDept(List<Long> deptList) { | 
|---|
|  |  |  | return ardAlarmpointsWellMapper.wellListDept(deptList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<ArdAlarmpointsWell> getNearbyWellList(Double longitudeCenter,Double latitudeCenter, Long deptId, Integer range) { | 
|---|
|  |  |  | List<ArdAlarmpointsWell> nearbyWellList = new ArrayList<>(); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | if (longitudeCenter != null && latitudeCenter != null) { | 
|---|
|  |  |  | ArdAlarmpointsWell ardAlarmpointsWell=new ArdAlarmpointsWell(); | 
|---|
|  |  |  | ardAlarmpointsWell.setDeptId(deptId); | 
|---|
|  |  |  | List<ArdAlarmpointsWell> ardAlarmpointsWells = ardAlarmpointsWellMapper.selectArdAlarmpointsWellList(ardAlarmpointsWell); | 
|---|
|  |  |  | if (ardAlarmpointsWells.size() > 0) { | 
|---|
|  |  |  | for (ArdAlarmpointsWell well : ardAlarmpointsWells) { | 
|---|
|  |  |  | Double longitude = well.getLongitude(); | 
|---|
|  |  |  | Double latitude = well.getLatitude(); | 
|---|
|  |  |  | if (longitude != null && latitude != null) { | 
|---|
|  |  |  | double distance = GisUtil.getDistance(new Double[]{longitudeCenter, latitudeCenter}, new Double[]{longitude, latitude}); | 
|---|
|  |  |  | if (distance <= range) { | 
|---|
|  |  |  | nearbyWellList.add(well); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception ex) { | 
|---|
|  |  |  | log.error("获取附近井异常:" + ex.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return nearbyWellList; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|