| | |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; |
| | | import com.ruoyi.common.constant.CacheConstants; |
| | | import com.ruoyi.common.constant.CameraConstants; |
| | | import com.ruoyi.common.core.domain.entity.SysDept; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.core.redis.RedisCache; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.bean.BeanValidators; |
| | | import com.ruoyi.common.utils.spring.SpringUtils; |
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | | import com.ruoyi.device.camera.domain.CameraCmd; |
| | | import com.ruoyi.device.channel.domain.ArdChannel; |
| | |
| | | import com.ruoyi.system.mapper.SysDeptMapper; |
| | | import com.ruoyi.utils.gis.Point; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.PostConstruct; |
| | | import javax.annotation.Resource; |
| | | import javax.validation.Validator; |
| | | |
| | | /** |
| | | * 相机设备Service业务层处理 |
| | |
| | | private ArdChannelMapper ardChannelMapper; |
| | | @Resource |
| | | private IVtduService vtduService; |
| | | |
| | | @Autowired |
| | | protected Validator validator; |
| | | |
| | | @PostConstruct |
| | | public void loadCameras() { |
| | |
| | | return i; |
| | | } |
| | | |
| | | @Override |
| | | public String importCameras(List<ArdCameras> ardCamerasList, Boolean isUpdateSupport, String operName) { |
| | | if (StringUtils.isNull(ardCamerasList) || ardCamerasList.size() == 0) { |
| | | throw new ServiceException("导入井数据不能为空!"); |
| | | } |
| | | int successNum = 0; |
| | | int failureNum = 0; |
| | | StringBuilder successMsg = new StringBuilder(); |
| | | StringBuilder failureMsg = new StringBuilder(); |
| | | for (ArdCameras camera : ardCamerasList) { |
| | | try { |
| | | //获取当前登录用户id |
| | | String userId = SecurityUtils.getUserId(); |
| | | camera.setUserId(userId); |
| | | // 验证是否存在这个用户 |
| | | ArdCameras u = ardCamerasMapper.selectArdCamerasById(camera.getId()); |
| | | if (StringUtils.isNull(u)) { |
| | | BeanValidators.validateWithException(validator, camera); |
| | | camera.setCreateBy(operName); |
| | | this.insertArdCameras(camera); |
| | | successNum++; |
| | | successMsg.append("<br/>" + successNum + "、相机ID " + camera.getId() + " 导入成功"); |
| | | } else if (isUpdateSupport) { |
| | | BeanValidators.validateWithException(validator, camera); |
| | | checkCameraDataScope(camera.getUserId()); |
| | | camera.setUpdateBy(operName); |
| | | this.updateArdCameras(camera); |
| | | successNum++; |
| | | successMsg.append("<br/>" + successNum + "、相机ID " + camera.getId() + " 更新成功"); |
| | | } else { |
| | | failureNum++; |
| | | failureMsg.append("<br/>" + failureNum + "、相机ID " + camera.getId() + " 已存在"); |
| | | } |
| | | } catch (Exception e) { |
| | | failureNum++; |
| | | String msg = "<br/>" + failureNum + "、相机ID " + camera.getId() + " 导入失败:"; |
| | | failureMsg.append(msg + e.getMessage()); |
| | | log.error(msg, e); |
| | | } |
| | | } |
| | | if (failureNum > 0) { |
| | | failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); |
| | | throw new ServiceException(failureMsg.toString()); |
| | | } else { |
| | | successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); |
| | | } |
| | | return successMsg.toString(); |
| | | } |
| | | |
| | | /** |
| | | * 校验相机是否允许操作 |
| | | * |
| | | * @param ardCameras 相机信息 |
| | | */ |
| | | @Override |
| | | public void checkCameraAllowed(ArdCameras ardCameras) { |
| | | if (StringUtils.isNotNull(ardCameras.getId())) { |
| | | throw new ServiceException("不允许操作井"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 校验用户是否有数据权限 |
| | | * |
| | | * @param userId 用户id |
| | | */ |
| | | @Override |
| | | public void checkCameraDataScope(String userId) { |
| | | if (!SysUser.isAdmin(SecurityUtils.getUserId())) { |
| | | ArdCameras camera = new ArdCameras(); |
| | | camera.setUserId(userId); |
| | | List<ArdCameras> cameras = SpringUtils.getAopProxy(this).selectArdCamerasList(camera); |
| | | if (StringUtils.isEmpty(cameras)) { |
| | | throw new ServiceException("没有权限访问井数据!"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public List findOptions(ArdCameras ardCameras) { |
| | | List<ArdCameras> options = ardCamerasMapper.findOptions(ardCameras); |
| | | for (ArdCameras camera : |