From 7f5fbf4ef6832a6ef27387d8ce973522feec2094 Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: 星期四, 28 十二月 2023 16:53:09 +0800
Subject: [PATCH] 车辆管理数量
---
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 106 insertions(+), 6 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java
index 99c36f5..a8265ea 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java
@@ -3,18 +3,22 @@
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.device.channel.mapper.ArdChannelMapper;
-import com.ruoyi.device.hiksdk.service.IHikClientService;
-import com.ruoyi.media.domain.Vtdu;
-import com.ruoyi.media.service.IMediaService;
import com.ruoyi.media.service.IVtduService;
import com.ruoyi.scheduling.domian.SchedulingParam;
import com.ruoyi.utils.gis.GisUtil;
@@ -26,10 +30,12 @@
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涓氬姟灞傚鐞�
@@ -51,9 +57,8 @@
private ArdChannelMapper ardChannelMapper;
@Resource
private IVtduService vtduService;
- @Resource
- private IMediaService mediaService;
-
+ @Autowired
+ protected Validator validator;
@PostConstruct
public void loadCameras() {
@@ -201,6 +206,84 @@
ardChannelMapper.deleteArdChannelByDeviceId(id);
}
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 + "銆佺浉鏈篒D " + camera.getId() + " 瀵煎叆鎴愬姛");
+ } else if (isUpdateSupport) {
+ BeanValidators.validateWithException(validator, camera);
+ checkCameraDataScope(camera.getUserId());
+ camera.setUpdateBy(operName);
+ this.updateArdCameras(camera);
+ successNum++;
+ successMsg.append("<br/>" + successNum + "銆佺浉鏈篒D " + camera.getId() + " 鏇存柊鎴愬姛");
+ } else {
+ failureNum++;
+ failureMsg.append("<br/>" + failureNum + "銆佺浉鏈篒D " + camera.getId() + " 宸插瓨鍦�");
+ }
+ } catch (Exception e) {
+ failureNum++;
+ String msg = "<br/>" + failureNum + "銆佺浉鏈篒D " + camera.getId() + " 瀵煎叆澶辫触锛�";
+ failureMsg.append(msg + e.getMessage());
+ log.error(msg, e);
+ }
+ }
+ if (failureNum > 0) {
+ failureMsg.insert(0, "寰堟姳姝夛紝瀵煎叆澶辫触锛佸叡 " + failureNum + " 鏉℃暟鎹牸寮忎笉姝g‘锛岄敊璇涓嬶細");
+ 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) {
@@ -425,4 +508,21 @@
return null;
}
+ /**
+ * 鏍¢獙鐩告満鏄惁鍞竴
+ *
+ * @param camera 鐩告満
+ * @return 缁撴灉
+ */
+ @Override
+ public String checkCameraIpAndPortUnique(ArdCameras camera) {
+ String id = camera.getId();
+ String ip = camera.getIp();
+ Integer port = camera.getPort();
+ ArdCameras info = ardCamerasMapper.checkCameraIpAndPortUnique(ip, port);
+ if (StringUtils.isNotNull(info) && !info.getId().equals(id)) {
+ return CameraConstants.NOT_UNIQUE;
+ }
+ return CameraConstants.UNIQUE;
+ }
}
--
Gitblit v1.9.3