From b61c4537a78d58412ef7ccd6e2c30152d807c5b7 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期一, 29 七月 2024 11:04:54 +0800
Subject: [PATCH] 电磁锁密码查询去除上一组密码修改提交
---
ard-work/src/main/java/com/ruoyi/device/channel/service/impl/ArdChannelServiceImpl.java | 74 +++++++++++++++++++++---------------
1 files changed, 43 insertions(+), 31 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/device/channel/service/impl/ArdChannelServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/channel/service/impl/ArdChannelServiceImpl.java
index ce6565d..c715669 100644
--- a/ard-work/src/main/java/com/ruoyi/device/channel/service/impl/ArdChannelServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/channel/service/impl/ArdChannelServiceImpl.java
@@ -1,9 +1,16 @@
package com.ruoyi.device.channel.service.impl;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.device.camera.domain.ArdCameras;
+import com.ruoyi.device.camera.factory.CameraSDK;
+import com.ruoyi.device.camera.factory.CameraSDKFactory;
+import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
+import com.ruoyi.media.mapper.VtduMapper;
+import com.ruoyi.media.service.IVtduService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.device.channel.mapper.ArdChannelMapper;
@@ -22,7 +29,10 @@
public class ArdChannelServiceImpl implements IArdChannelService {
@Resource
private ArdChannelMapper ardChannelMapper;
-
+ @Resource
+ private CameraSDKFactory cameraSDKFactory;
+ @Resource
+ private IVtduService vtduService;
/**
* 鏌ヨ閫氶亾绠$悊
*
@@ -101,38 +111,40 @@
return ardChannelMapper.deleteArdChannelByDeviceId(deviceId);
}
- //姹備袱涓璞ist鐨勪氦闆�
@Override
- public List<ArdChannel> sameList(List<ArdChannel> oldArrayList, List<ArdChannel> newArrayList) {
- List<ArdChannel> resultList = newArrayList.stream()
- .filter(item -> oldArrayList.stream().map(e -> e.getChanNo())
- .collect(Collectors.toList()).contains(item.getChanNo()))
- .collect(Collectors.toList());
- return resultList;
- }
+ public void asyncChannel(ArdCameras ardCameras,List<ArdChannel> oldArrayList, List<ArdChannel> newArrayList) {
+ // 灏嗗垪琛ㄨ浆鎹负鏄犲皠浠ユ彁楂樻�ц兘
+ Map<Integer, ArdChannel> oldMap = oldArrayList.stream()
+ .collect(Collectors.toMap(ArdChannel::getChanNo, channel -> channel));
+ Map<Integer, ArdChannel> newMap = newArrayList.stream()
+ .collect(Collectors.toMap(ArdChannel::getChanNo, channel -> channel));
- //姹備袱涓璞ist鐨勫樊闆�
- @Override
- public List<ArdChannel> diffList(List<ArdChannel> firstArrayList, List<ArdChannel> secondArrayList) {
- List<ArdChannel> resultList = firstArrayList.stream()
- .filter(item -> !secondArrayList.stream().map(e -> e.getChanNo()).collect(Collectors.toList()).contains(item.getChanNo()))
- .collect(Collectors.toList());
- return resultList;
- }
+ // 闇�瑕佹洿鏂扮殑鏁版嵁
+ newArrayList.stream()
+ .filter(channel -> {
+ ArdChannel oldChannel = oldMap.get(channel.getChanNo());
+ return oldChannel != null && !oldChannel.getName().equals(channel.getName());
+ })
+ .forEach(channel -> {
+ ArdChannel oldChannel = oldMap.get(channel.getChanNo());
+ channel.setId(oldChannel.getId());
+ updateArdChannel(channel);
+ });
- @Override
- public void asyncChannel(List<ArdChannel> oldArrayList, List<ArdChannel> newArrayList) {
- //闇�瑕佹洿鏂扮殑鏁版嵁,鍙傛暟椤哄簭娉ㄦ剰
- sameList(oldArrayList, newArrayList).stream().forEach(ardChannel -> {
- updateArdChannel(ardChannel);
- });
- //闇�瑕佸垹闄ょ殑鏁版嵁
- diffList(oldArrayList, newArrayList).stream().forEach(ardChannel -> {
- deleteArdChannelById(ardChannel.getId());
- });
- //闇�瑕佹柊澧炵殑鏁版嵁
- diffList(newArrayList, oldArrayList).stream().forEach(ardChannel -> {
- insertArdChannel(ardChannel);
- });
+ // 闇�瑕佸垹闄ょ殑鏁版嵁
+ oldArrayList.stream()
+ .filter(channel -> !newMap.containsKey(channel.getChanNo()))
+ .forEach(channel -> {
+ deleteArdChannelById(channel.getId());
+ vtduService.deleteVtduByName(channel.getDeviceId() + "_" + channel.getChanNo());
+ });
+
+ // 闇�瑕佹柊澧炵殑鏁版嵁
+ newArrayList.stream()
+ .filter(channel -> !oldMap.containsKey(channel.getChanNo()))
+ .forEach(channel -> {
+ insertArdChannel(channel);
+ vtduService.addChanToVtdu(ardCameras, channel);
+ });
}
}
\ No newline at end of file
--
Gitblit v1.9.3