添加物联设备同步功能v3版本流程

This commit is contained in:
yangjun 2025-08-13 09:50:01 +08:00
parent d02c4d8dac
commit 282146d10b
28 changed files with 277 additions and 5 deletions

View File

@ -234,4 +234,19 @@ public class NuBaseInfoController extends JeecgController<NuBaseInfo, INuBaseInf
List<NuBaseInfo> pageList = nuBaseInfoService.getBaseWlsbList(nuBaseInfo);
return Result.OK(pageList);
}
@AutoLog(value = "护理单元-添加摄像头及护理单元")
@ApiOperation(value = "护理单元-添加摄像头及护理单元", notes = "护理单元-添加摄像头及护理单元")
@PostMapping(value = "/addNuIot")
public Result<String> addNuIot(@RequestBody NuBaseInfo nuBaseInfo) {
int result = nuBaseInfoService.addNuIot(nuBaseInfo);
if (result == 1){
return Result.ok("添加成功!");
}else if (result == 2){
return Result.error("添加失败!");
}
return Result.OK("添加成功!");
}
}

View File

@ -98,4 +98,10 @@ public class NuBaseInfo implements Serializable {
private Integer wsdjNum;
@TableField(exist = false)
private String areaFlagText;
@TableField(exist = false)
private String iotSn;
@TableField(exist = false)
private String departId;
@TableField(exist = false)
private String departName;
}

View File

@ -21,4 +21,8 @@ public interface NuBaseInfoMapper extends BaseMapper<NuBaseInfo> {
int batchDel(@Param("ids") List<String> ids);
List<NuBaseInfo> getBaseWlsbList(NuBaseInfo nuBaseInfo);
NuBaseInfo getDepartInfoByOrgCode(@Param("orgCode") String orgCode);
int updateIot(NuBaseInfo departInfo);
}

View File

@ -37,4 +37,13 @@
</if>
</where>
</select>
<select id="getDepartInfoByOrgCode" >
select id as departId,org_code as orgCode, depart_name as departName from sys_depart where org_code = #{orgCode}
</select>
<update id="updateIot" parameterType="com.nu.modules.nuBaseInfo.entity.NuBaseInfo">
update nu_iot_tplink_camera set depart_id = #{departId}, depart_name = #{departName},depart_server_url = #{orgCode},nu_id = #{nuId},nu_name = #{nuId} where sn = #{iotSn}
</update>
</mapper>

View File

@ -25,4 +25,6 @@ public interface INuBaseInfoService extends IService<NuBaseInfo> {
void upIzSyncByIds(String ids);
List<NuBaseInfo> getBaseWlsbList(NuBaseInfo nuBaseInfo);
int addNuIot(NuBaseInfo nuBaseInfo);
}

View File

@ -7,9 +7,11 @@ import com.nu.modules.nuBaseInfo.entity.NuBaseInfo;
import com.nu.modules.nuBaseInfo.mapper.NuBaseInfoMapper;
import com.nu.modules.nuBaseInfo.service.INuBaseInfoService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
@ -24,6 +26,8 @@ import java.util.List;
@Service
public class NuBaseInfoServiceImpl extends ServiceImpl<NuBaseInfoMapper, NuBaseInfo> implements INuBaseInfoService {
@Override
public void setNuId(NuBaseInfo nuBaseInfo) {
String orgCode = nuBaseInfo.getOrgCode();
@ -102,4 +106,26 @@ public class NuBaseInfoServiceImpl extends ServiceImpl<NuBaseInfoMapper, NuBaseI
public List<NuBaseInfo> getBaseWlsbList(NuBaseInfo nuBaseInfo) {
return baseMapper.getBaseWlsbList(nuBaseInfo);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int addNuIot(NuBaseInfo nuBaseInfo) {
setNuId(nuBaseInfo);
nuBaseInfo.setNuName(nuBaseInfo.getNuId());
nuBaseInfo.setSysOrgCode(nuBaseInfo.getOrgCode());
int num = baseMapper.insert(nuBaseInfo);
if(num == 0){
throw new RuntimeException("添加失败!");
}
//查询机构信息
NuBaseInfo departInfo = baseMapper.getDepartInfoByOrgCode(nuBaseInfo.getOrgCode());
//修改摄像头信息
departInfo.setIotSn(nuBaseInfo.getIotSn());
departInfo.setNuId(nuBaseInfo.getNuId());
int iotNum = baseMapper.updateIot(departInfo);
if(iotNum == 0){
throw new RuntimeException("添加失败!");
}
return 1;
}
}

View File

@ -0,0 +1,40 @@
package com.nu.modules.devicesIot.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nu.modules.devicesIot.entity.DevicesIot;
import com.nu.modules.devicesIot.service.IDevicesIotService;
import com.nu.modules.syncLog.entity.SyncLog;
import com.nu.modules.syncLog.service.ISyncLogService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
@Api(tags="设备信息")
@RestController
@RequestMapping("/iot/ddvicesIot")
@Slf4j
public class DevicesIotController extends JeecgController<DevicesIot, IDevicesIotService> {
@Autowired
private IDevicesIotService devicesIotService;
@ApiOperation(value="查询区域设备信息", notes="查询区域设备信息")
@GetMapping(value = "/list")
public Result<Map<String,Object>> queryList(DevicesIot devicesIot) {
Map<String,Object> pageList = devicesIotService.queryList(devicesIot);
return Result.OK(pageList);
}
}

View File

@ -0,0 +1,9 @@
package com.nu.modules.devicesIot.entity;
import lombok.Data;
@Data
public class DevicesIot {
private String nuId;
}

View File

@ -0,0 +1,15 @@
package com.nu.modules.devicesIot.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nu.modules.devicesIot.entity.DevicesIot;
import com.nu.modules.syncLog.entity.SyncLog;
/**
* @Description: 同步日志
* @Author: jeecg-boot
* @Date: 2025-06-12
* @Version: V1.0
*/
public interface DevicesIotMapper extends BaseMapper<DevicesIot> {
}

View File

@ -0,0 +1,17 @@
package com.nu.modules.devicesIot.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nu.modules.devicesIot.entity.DevicesIot;
import java.util.Map;
/**
* @Description: 同步日志
* @Author: jeecg-boot
* @Date: 2025-06-12
* @Version: V1.0
*/
public interface IDevicesIotService extends IService<DevicesIot> {
Map<String, Object> queryList(DevicesIot devicesIot);
}

View File

@ -0,0 +1,68 @@
package com.nu.modules.devicesIot.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nu.modules.devicesIot.entity.DevicesIot;
import com.nu.modules.devicesIot.mapper.DevicesIotMapper;
import com.nu.modules.devicesIot.service.IDevicesIotService;
import com.nu.modules.tplink.camera.entity.CameraInfo;
import com.nu.modules.tplink.camera.mapper.CameraInfoMapper;
import com.nu.modules.tq.electricity.entity.ElectricityMeter;
import com.nu.modules.tq.electricity.mapper.ElectricityMeterMapper;
import com.nu.modules.tq.water.entity.WaterMeter;
import com.nu.modules.tq.water.mapper.WaterMeterMapper;
import com.nu.modules.yiweilian.humid.entity.HumidDevice;
import com.nu.modules.yiweilian.humid.mapper.HumidDeviceMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @Description: 同步日志
* @Author: jeecg-boot
* @Date: 2025-06-12
* @Version: V1.0
*/
@Service
public class DeviceIotServiceImpl extends ServiceImpl<DevicesIotMapper, DevicesIot> implements IDevicesIotService {
@Autowired
private CameraInfoMapper cameraInfoMapper;
@Autowired
private WaterMeterMapper waterMeterMapper;
@Autowired
private ElectricityMeterMapper electricityMeterMapper;
@Autowired
private HumidDeviceMapper humidDeviceMapper;
@Override
public Map<String, Object> queryList(DevicesIot devicesIot) {
QueryWrapper<CameraInfo> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("nu_id", devicesIot.getNuId());
List<CameraInfo> cameraInfoList =cameraInfoMapper.selectList(queryWrapper1);
QueryWrapper<WaterMeter> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("nu_id", devicesIot.getNuId());
List<WaterMeter> waterMeterList =waterMeterMapper.selectList(queryWrapper2);
QueryWrapper<ElectricityMeter> queryWrapper3 = new QueryWrapper<>();
queryWrapper3.eq("nu_id", devicesIot.getNuId());
List<ElectricityMeter> electricityMeterList =electricityMeterMapper.selectList(queryWrapper3);
QueryWrapper<HumidDevice> queryWrapper4 = new QueryWrapper<>();
queryWrapper4.eq("nu_id", devicesIot.getNuId());
List<HumidDevice> humidDeviceList =humidDeviceMapper.selectList(queryWrapper4);
Map<String, Object> map = Map.of(
"cameraInfoList", cameraInfoList,
"waterMeterList", waterMeterList,
"electricityMeterList", electricityMeterList,
"humidDeviceList", humidDeviceList
);
return map;
}
}

View File

@ -103,9 +103,18 @@ public class CameraInfoController extends JeecgController<CameraInfo, ICameraInf
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody CameraInfo cameraInfo) {
service.edit(cameraInfo);
return Result.OK("编辑成功!");
return Result.OK("操作成功!");
}
@AutoLog(value = "摄像头-移除设备")
@ApiOperation(value="摄像头-移除设备", notes="摄像头-移除设备")
@RequestMapping(value = "/updateDepartById", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> updateDepartById(@RequestBody CameraInfo cameraInfo) {
service.updateDepartById(cameraInfo);
return Result.OK("操作成功!");
}
/**
* 修改摄像头信息
*

View File

@ -316,6 +316,8 @@ public class CameraInfo implements Serializable {
private String oldDepartId;//原机构id
private String oldDepartName;//原机构名称
private String sn;//设备号
private String maintainStatus;//维修状态 0正常 1报修 2报废
@TableField(exist = false)
private String checkType;
@ -338,12 +340,11 @@ public class CameraInfo implements Serializable {
@TableField(exist = false)
private String status;//状态
@TableField(exist = false)
private String sn;//设备号
@TableField(exist = false)
private String serverType;//服务类型
@TableField(exist = false)
private String oldNuId;//原护理单元ID
@TableField(exist = false)
private String createTime;//时间
@TableField(exist = false)
private List<CameraInfo> seedList;//子列表
}

View File

@ -36,7 +36,9 @@
a.ftp_username as ftpUsername,
a.ftp_password as ftpPassword,
a.ftp_uploadpath as ftpUploadpath,
a.old_server_url as oldServerUrl
a.old_server_url as oldServerUrl,
a.sn,
a.maintain_status
from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.nu_id
left join nu_iot_tplink_camera_capability c on a.device_index = c.device_index
<where>

View File

@ -74,4 +74,6 @@ public interface ICameraInfoService extends IService<CameraInfo> {
String syncDevices(List<CameraInfo> list);
IPage<CameraInfo> findSyncLogPage(Page<CameraInfo> page,CameraInfo cameraInfo);
IPage<CameraInfo> findNuSyncPage(Page<CameraInfo> page,CameraInfo cameraInfo);
void updateDepartById(CameraInfo cameraInfo);
}

View File

@ -3054,4 +3054,9 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
return baseMapper.findNuSyncPage(page,cameraInfo);
}
@Override
public void updateDepartById(CameraInfo cameraInfo) {
baseMapper.updateDepartById(cameraInfo);
}
}

View File

@ -82,6 +82,12 @@ public class ElectricityMeterController extends JeecgController<ElectricityMeter
service.updateById(electricityMeter);
return Result.OK("编辑成功!");
}
@AutoLog(value = "移除电表")
@RequestMapping(value = "/updateDepartById", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> updateDepartById(@RequestBody ElectricityMeter electricityMeter) {
service.updateDepartById(electricityMeter);
return Result.OK("编辑成功!");
}
@AutoLog(value = "修改电表的机构及护理单元信息")
@RequestMapping(value = "/editHldy", method = {RequestMethod.PUT,RequestMethod.POST})

View File

@ -85,6 +85,7 @@ public class ElectricityMeter implements Serializable {
private String syncType;//是否同步 0 未同步 1已同步
private String oldDepartId;//原机构id
private String oldDepartName;//原机构名称
private String maintainStatus;//维修状态 0正常 1报修 2报废
@TableField(exist = false)
private String oldOrgCode;//原机构编码
@TableField(exist = false)

View File

@ -33,4 +33,6 @@ public interface IElectricityMeterService extends IService<ElectricityMeter> {
String syncDevices(List<ElectricityMeter> list);
IPage<ElectricityMeter> findSyncLogPage(Page<ElectricityMeter> page,ElectricityMeter electricityMeter);
IPage<ElectricityMeter> findNuSyncPage(Page<ElectricityMeter> page,ElectricityMeter electricityMeter);
void updateDepartById(ElectricityMeter electricityMeter);
}

View File

@ -979,5 +979,10 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
public IPage<ElectricityMeter> findNuSyncPage(Page<ElectricityMeter> page, ElectricityMeter electricityMeter){
return baseMapper.findNuSyncPage(page,electricityMeter);
}
@Override
public void updateDepartById(ElectricityMeter electricityMeter) {
baseMapper.updateDepartById(electricityMeter);
}
}

View File

@ -81,6 +81,12 @@ public class WaterMeterController extends JeecgController<WaterMeter, IWaterMete
service.updateById(waterMeter);
return Result.OK("编辑成功!");
}
@AutoLog(value = "修改水表信息")
@RequestMapping(value = "/updateDepartById", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> updateDepartById(@RequestBody WaterMeter waterMeter) {
service.updateDepartById(waterMeter);
return Result.OK("操作成功!");
}
@AutoLog(value = "修改机构及护理单元信息")

View File

@ -88,6 +88,7 @@ public class WaterMeter implements Serializable {
private String syncType;//是否同步 0 未同步 1已同步
private String oldDepartId;//原机构id
private String oldDepartName;//原机构名称
private String maintainStatus;//维修状态 0正常 1报修 2报废
@TableField(exist = false)
private String checkType;
@TableField(exist = false)

View File

@ -33,4 +33,6 @@ public interface IWaterMeterService extends IService<WaterMeter> {
String syncDevices(List<WaterMeter> list);
IPage<WaterMeter> findSyncLogPage(Page<WaterMeter> page,WaterMeter waterMeter);
IPage<WaterMeter> findNuSyncPage(Page<WaterMeter> page,WaterMeter waterMeter);
void updateDepartById(WaterMeter waterMeter);
}

View File

@ -993,4 +993,9 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
return baseMapper.findNuSyncPage(page,waterMeter);
}
@Override
public void updateDepartById(WaterMeter waterMeter) {
baseMapper.updateDepartById(waterMeter);
}
}

View File

@ -137,6 +137,12 @@ public class HumidDeviceController extends JeecgController<HumidDevice, IHumidDe
service.updateById(humidDevice);
return Result.OK("编辑成功!");
}
@AutoLog(value = "移除温湿度计机构树形")
@RequestMapping(value = "/updateDepartById", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> updateDepartById(@RequestBody HumidDevice humidDevice) {
service.updateDepartById(humidDevice);
return Result.OK("编辑成功!");
}
@AutoLog(value = "修改温湿度表的机构及护理单元信息")

View File

@ -109,6 +109,7 @@ public class HumidDevice implements Serializable {
private String nuId;//护理单元ID
private String nuName;//护理单元
private String maintainStatus;//维修状态 0正常 1报修 2报废
@Dict(dicCode = "nu_type")
@TableField(exist = false)
private String areaFlag;//区域标签

View File

@ -32,4 +32,6 @@ public interface IHumidDeviceService extends IService<HumidDevice> {
String syncDevices(List<HumidDevice> list);
IPage<HumidDevice> findSyncLogPage(Page<HumidDevice> page,HumidDevice humidDevice);
IPage<HumidDevice> findNuSyncPage(Page<HumidDevice> page,HumidDevice humidDevice);
void updateDepartById(HumidDevice humidDevice);
}

View File

@ -922,6 +922,11 @@ public class HumidDeviceServiceImpl extends ServiceImpl<HumidDeviceMapper, Humid
public IPage<HumidDevice> findNuSyncPage(Page<HumidDevice> page, HumidDevice humidDevice){
return baseMapper.findNuSyncPage(page,humidDevice);
}
@Override
public void updateDepartById(HumidDevice humidDevice) {
baseMapper.updateDepartById(humidDevice);
}
}