From 4b5930cd95595d9ddecc83176f8b9732dda03a40 Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Mon, 28 Jul 2025 11:26:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=90=8C=E6=AD=A5=E6=B5=81?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CameraInfoController.java | 23 +++ .../tplink/camera/entity/CameraInfo.java | 9 ++ .../camera/mapper/CameraInfoMapper.java | 2 + .../camera/mapper/xml/CameraInfoMapper.xml | 4 + .../camera/service/ICameraInfoService.java | 2 + .../service/impl/CameraInfoServiceImpl.java | 131 ++++++++++++++++++ 6 files changed, 171 insertions(+) diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/controller/CameraInfoController.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/controller/CameraInfoController.java index 1d764f4..562b31a 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/controller/CameraInfoController.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/controller/CameraInfoController.java @@ -19,6 +19,7 @@ import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.nu.modules.tplink.camera.entity.NuBaseInfo; import com.nu.modules.tplink.camera.model.CameraTreeModel; +import org.apache.commons.lang.StringUtils; import org.jeecg.common.api.vo.Result; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -540,4 +541,26 @@ public class CameraInfoController extends JeecgController syncCameraList(@RequestBody Map cameraList) { + String result = service.syncCameraList(cameraList); + if(StringUtils.equals(result,"0")){ + return Result.OK("操作成功!"); + }else if (StringUtils.equals(result,"1")){ + return Result.error("参数为空!"); + }else if (StringUtils.equals(result,"2")){ + return Result.error("设备ID为空!"); + }else{ + return Result.error("其他错误,请联系管理员!"); + } + } + } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java index 77f0330..5bb08e9 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java @@ -307,4 +307,13 @@ public class CameraInfo implements Serializable { private String ftpUsername; //回放视频转FTP上传用户 private String ftpPassword; //回放视频转FTP上传密码 private String ftpUploadpath; //回放视频转FTP上传路径 + + + private String departId;//机构ID + private String departName;//机构名称 + private String departServerUrl;//机构服务地址 + private String oldServerUrl;//原机构服务地址 + private String syncType;//是否同步 0 未同步 1已同步 + private String oldDepartId;//原机构id + private String oldDepartName;//原机构名称 } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraInfoMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraInfoMapper.java index 79775f8..344a4cf 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraInfoMapper.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraInfoMapper.java @@ -31,4 +31,6 @@ public interface CameraInfoMapper extends BaseMapper { void updatePlanByDevId(CameraInfo cameraInfo); IPage getNuBaseList(Page page, @Param("params") NuBaseInfo nuBaseInfo); + + void updateDepartById(@Param("params") CameraInfo cameraInfo); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml index ca867d8..ba9140c 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml @@ -289,4 +289,8 @@ + + + update nu_iot_tplink_camera set nu_id = null,nu_name = null,depart_id = null,depart_name = null,depart_server_url=null where id = #{params.id} + \ No newline at end of file diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraInfoService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraInfoService.java index 2490212..c164bae 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraInfoService.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraInfoService.java @@ -64,4 +64,6 @@ public interface ICameraInfoService extends IService { Result getUploadToServerProcess(CameraInfo cameraInfo); Result motionCtrl(CameraInfo cameraInfo); IPage getNuBaseList(String dataSourceCode,Page page, NuBaseInfo nuBaseInfo); + + String syncCameraList(Map cameraList); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java index 7ee141f..2289d13 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java @@ -3,9 +3,12 @@ package com.nu.modules.tplink.camera.service.impl; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.databind.ObjectMapper; +import com.nu.modules.syncLog.entity.SyncLog; +import com.nu.modules.syncLog.service.ISyncLogService; import com.nu.modules.tplink.camera.entity.NuBaseInfo; import com.nu.modules.tplink.camera.model.CameraTreeModel; import com.nu.modules.tplink.common.entity.TumsConfig; @@ -14,7 +17,10 @@ import com.nu.modules.tplink.project.entity.ProjectInfo; import com.nu.modules.tplink.project.mapper.ProjectInfoMapper; import com.nu.modules.tplink.region.entity.RegionInfo; import com.nu.modules.tplink.region.mapper.RegionInfoMapper; +import com.nu.modules.tq.electricity.entity.ElectricityMeter; +import com.nu.modules.tq.electricity.service.impl.ElectricityMeterServiceImpl; import org.apache.commons.compress.utils.Lists; +import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.vo.LoginUser; @@ -26,6 +32,7 @@ import com.nu.modules.tplink.common.entity.ErrorCode; import com.nu.modules.tplink.common.service.IErrorCodeService; import com.nu.modules.tplink.utils.TumsApi; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; @@ -54,6 +61,12 @@ public class CameraInfoServiceImpl extends ServiceImpl cameraList) { + String nuId = cameraList.get("nuId").toString(); + String nuName = cameraList.get("nuName").toString(); + String dataSourceCode = cameraList.get("dataSourceCode").toString(); + String departId = cameraList.get("departId").toString(); + String departName = cameraList.get("departName").toString(); + if(StringUtils.isEmpty(nuId) || StringUtils.isEmpty(dataSourceCode)){ + return "1";//参数为空 + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("depart_server_url",dataSourceCode); + List allList =baseMapper.selectList(queryWrapper); + //先清空掉原来的数据 + for(CameraInfo cameraInfo : allList){ + syncImpl.syncCameraDel(cameraInfo.getOldServerUrl(),cameraInfo); + + + SyncLog nuIotTqElectricitySyncLogDel = new SyncLog(); + nuIotTqElectricitySyncLogDel.setId(null); + nuIotTqElectricitySyncLogDel.setMainId(cameraInfo.getDeviceIndex()); + nuIotTqElectricitySyncLogDel.setMainName(cameraInfo.getDeviceName()); + nuIotTqElectricitySyncLogDel.setSyncType("删除"); + nuIotTqElectricitySyncLogDel.setOrgId(cameraInfo.getOldDepartId()); + nuIotTqElectricitySyncLogDel.setOrgCode(cameraInfo.getOldServerUrl()); + nuIotTqElectricitySyncLogDel.setOrgName(cameraInfo.getOldDepartName()); + nuIotTqElectricitySyncLogDel.setNewOrgId(cameraInfo.getDepartId()); + nuIotTqElectricitySyncLogDel.setNewOrgCode(cameraInfo.getDepartServerUrl()); + nuIotTqElectricitySyncLogDel.setNewOrgName(cameraInfo.getDepartName()); + nuIotTqElectricitySyncLogDel.setStatus("成功"); + nuIotTqElectricitySyncLogDel.setContent("删除原来业务机构摄像头数据"); + nuIotTqElectricitySyncLogDel.setServerType("摄像头"); + nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLogDel); + + baseMapper.updateDepartById(cameraInfo); + } + + + + + List> list = (List>) cameraList.get("list"); + for (Map map : list) { + CameraInfo cameraInfo = new CameraInfo(); + String iotId = map.get("id").toString(); + if(StringUtils.isEmpty(iotId)){ + return "2";//设备ID为空; + } + cameraInfo = baseMapper.selectById(iotId); + cameraInfo.setNuId(nuId); + cameraInfo.setNuName(nuName); + //将页面传入的数据赋值到最新的机构信息中 + cameraInfo.setDepartId(departId); + cameraInfo.setDepartName(departName); + cameraInfo.setDepartServerUrl(dataSourceCode); + //如果两个系统编码相同则执行新增或者修改 + syncImpl.syncCameraSaveOrUpdate(cameraInfo.getOldServerUrl(),cameraInfo); + + SyncLog nuIotTqElectricitySyncLog = new SyncLog(); + nuIotTqElectricitySyncLog.setId(null); + nuIotTqElectricitySyncLog.setMainId(cameraInfo.getDeviceIndex()); + nuIotTqElectricitySyncLog.setMainName(cameraInfo.getDeviceName()); + nuIotTqElectricitySyncLog.setSyncType("更新"); + nuIotTqElectricitySyncLog.setOrgId(cameraInfo.getDepartId()); + nuIotTqElectricitySyncLog.setOrgCode(cameraInfo.getDepartServerUrl()); + nuIotTqElectricitySyncLog.setOrgName(cameraInfo.getDepartName()); + nuIotTqElectricitySyncLog.setNewOrgId(cameraInfo.getDepartId()); + nuIotTqElectricitySyncLog.setNewOrgCode(cameraInfo.getDepartServerUrl()); + nuIotTqElectricitySyncLog.setNewOrgName(cameraInfo.getDepartName()); + nuIotTqElectricitySyncLog.setStatus("成功"); + nuIotTqElectricitySyncLog.setContent("同步成功"); + nuIotTqElectricitySyncLog.setServerType("摄像头"); + nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLog); + + //更新同步状态及旧系统编码 + cameraInfo.setSyncType("1"); + cameraInfo.setOldServerUrl(dataSourceCode); + cameraInfo.setOldDepartName(cameraInfo.getDepartName()); + cameraInfo.setOldDepartId(cameraInfo.getDepartId()); + baseMapper.updateById(cameraInfo); + + } + + return "0"; + } + //删除原来系统的蛇形头数据 + @DS("#dataSourceCode") + public boolean syncCameraDel(String dataSourceCode,CameraInfo cameraInfo) { + try { + baseMapper.deleteById(cameraInfo.getId()); + } catch (Exception e) { + throw new RuntimeException(e); + } + return true; + } + //业务系统保存或者修改命令 + @DS("#dataSourceCode") + public boolean syncCameraSaveOrUpdate(String dataSourceCode, CameraInfo cameraInfo) { + try { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("device_index",cameraInfo.getDeviceIndex()); + CameraInfo oldParam = baseMapper.selectOne(queryWrapper);//查询数据库中该表号数据原始数据 + if(oldParam == null){ + baseMapper.insert(cameraInfo); + }else{ + baseMapper.updateById(cameraInfo); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + return true; + } + + + }