物联管理-新增同步功能

This commit is contained in:
yangjun 2025-07-30 11:18:12 +08:00
parent 7d2fff5a00
commit 849c7f8b6f
21 changed files with 425 additions and 11 deletions

View File

@ -316,4 +316,8 @@ public class CameraInfo implements Serializable {
private String syncType;//是否同步 0 未同步 1已同步
private String oldDepartId;//原机构id
private String oldDepartName;//原机构名称
@TableField(exist = false)
private String checkType;
}

View File

@ -33,7 +33,8 @@
a.ftp_port as ftpPort,
a.ftp_username as ftpUsername,
a.ftp_password as ftpPassword,
a.ftp_uploadpath as ftpUploadpath
a.ftp_uploadpath as ftpUploadpath,
a.old_server_url as oldServerUrl
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>
@ -64,6 +65,12 @@
<if test="params.nuId != null and params.nuId != ''">
AND a.nu_id = #{params.nuId}
</if>
<if test="params.checkType != null and params.checkType == 1">
AND a.nu_id is not null
</if>
<if test="params.checkType != null and params.checkType == 0">
AND a.nu_id is null
</if>
</where>
</select>

View File

@ -2683,6 +2683,11 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
return "2";//设备ID为空;
}
cameraInfo = baseMapper.selectById(iotId);
//判断如果新的机构和老的机构不相同则把老的机构删除
String oldDataSourceCode = (String) map.get("oldServerUrl");
if(!StringUtils.equals(oldDataSourceCode,dataSourceCode) && StringUtils.isNotBlank(oldDataSourceCode)){
syncImpl.syncCameraDel(cameraInfo.getOldServerUrl(),cameraInfo);
}
cameraInfo.setNuId(nuId);
cameraInfo.setNuName(nuName);
//将页面传入的数据赋值到最新的机构信息中
@ -2690,7 +2695,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
cameraInfo.setDepartName(departName);
cameraInfo.setDepartServerUrl(dataSourceCode);
//如果两个系统编码相同则执行新增或者修改
syncImpl.syncCameraSaveOrUpdate(cameraInfo.getOldServerUrl(),cameraInfo);
syncImpl.syncCameraSaveOrUpdate(dataSourceCode,cameraInfo);
SyncLog nuIotTqElectricitySyncLog = new SyncLog();
nuIotTqElectricitySyncLog.setId(null);

View File

@ -7,6 +7,7 @@ import com.nu.modules.tq.electricity.service.IElectricityMeterService;
import com.nu.modules.tq.water.entity.WaterMeter;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
@ -14,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
@Slf4j
@RestController
@ -95,4 +97,26 @@ public class ElectricityMeterController extends JeecgController<ElectricityMeter
service.syncElectricity(dataSourceCode,electricityMeter);
return Result.OK("同步成功!");
}
/**
* 电表-同步
* @return
*/
@AutoLog(value = "护理单元-物联管理-电表-同步")
@ApiOperation(value="护理单元-物联管理-电表-同步", notes="护理单元-物联管理-电表-同步")
@RequestMapping(value = "/syncElectricityList", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> syncElectricityList(@RequestBody Map<String,Object> electricityList) {
String result = service.syncElectricityList(electricityList);
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("其他错误,请联系管理员!");
}
}
}

View File

@ -77,4 +77,6 @@ public class ElectricityMeter implements Serializable {
private String oldDepartId;//原机构id
private String oldDepartName;//原机构名称
@TableField(exist = false)
private String checkType;
}

View File

@ -17,4 +17,6 @@ public interface ElectricityMeterMapper extends BaseMapper<ElectricityMeter> {
int insertElectricty(ElectricityMeter electricityMeter);
int updateElectricty(ElectricityMeter electricityMeter);
void updateDepartById(ElectricityMeter cameraInfo);
}

View File

@ -29,10 +29,10 @@
AND a.address = #{params.address}
</if>
<if test="params.nuId != null and params.nuId != ''">
AND a.nuId = #{params.nuId}
AND a.nu_id = #{params.nuId}
</if>
<if test="params.departId != null and params.departId != ''">
AND a.departId = #{params.departId}
AND a.depart_id = #{params.departId}
</if>
<if test="params.relayState != null and params.relayState != ''">
AND a.relay_state = #{params.relayState}
@ -49,6 +49,12 @@
<if test="params.csq != null and params.csq != '' and params.csq == 3">
AND b.csq &lt; 10
</if>
<if test="params.checkType != null and params.checkType == 1">
AND a.nu_id is not null
</if>
<if test="params.checkType != null and params.checkType == 0">
AND a.nu_id is null
</if>
</where>
</select>
@ -134,6 +140,9 @@
where cid = #{cid}
and address = #{address}
</update>
<update id="updateDepartById" parameterType="com.nu.modules.tq.electricity.entity.ElectricityMeter" >
update nu_iot_tq_electricity_meter set nu_id = null,nu_name = null,depart_id = null,depart_name = null,depart_server_url=null where id = #{id}
</update>
</mapper>

View File

@ -7,6 +7,7 @@ import com.nu.modules.tq.electricity.entity.ElectricityMeter;
import org.jeecg.common.api.vo.Result;
import java.util.List;
import java.util.Map;
public interface IElectricityMeterService extends IService<ElectricityMeter> {
IPage<ElectricityMeter> findPage(Page<ElectricityMeter> page, ElectricityMeter electricityMeter);
@ -22,4 +23,6 @@ public interface IElectricityMeterService extends IService<ElectricityMeter> {
void syncElectricity(String dataSourceCode, ElectricityMeter electricityMeter);
void editHldy(ElectricityMeter electricityMeter);
String syncElectricityList(Map<String, Object> electricityList);
}

View File

@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nu.modules.syncLog.entity.SyncLog;
import com.nu.modules.syncLog.service.ISyncLogService;
import com.nu.modules.tplink.camera.entity.CameraInfo;
import com.nu.modules.tq.common.entity.TqApiLog;
import com.nu.modules.tq.common.service.ITqApiLogService;
import com.nu.modules.tq.utils.HttpTool;
@ -554,6 +555,97 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
baseMapper.updateById(electricityMeter);
}
@Override
public String syncElectricityList(Map<String, Object> electricityList) {
String nuId = electricityList.get("nuId").toString();
String nuName = electricityList.get("nuName").toString();
String dataSourceCode = electricityList.get("dataSourceCode").toString();
String departId = electricityList.get("departId").toString();
String departName = electricityList.get("departName").toString();
if(StringUtils.isEmpty(nuId) || StringUtils.isEmpty(dataSourceCode)){
return "1";//参数为空
}
QueryWrapper<ElectricityMeter> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("nu_id",nuId);
List<ElectricityMeter> allList =baseMapper.selectList(queryWrapper);
//先清空掉原来的数据
for(ElectricityMeter electricityInfo : allList){
syncImpl.syncElectricityDel(electricityInfo.getOldServerUrl(),electricityInfo);
SyncLog nuIotTqElectricitySyncLogDel = new SyncLog();
nuIotTqElectricitySyncLogDel.setId(null);
nuIotTqElectricitySyncLogDel.setMainId(electricityInfo.getCid());
nuIotTqElectricitySyncLogDel.setMainName(electricityInfo.getCid());
nuIotTqElectricitySyncLogDel.setSyncType("删除");
nuIotTqElectricitySyncLogDel.setOrgId(electricityInfo.getOldDepartId());
nuIotTqElectricitySyncLogDel.setOrgCode(electricityInfo.getOldServerUrl());
nuIotTqElectricitySyncLogDel.setOrgName(electricityInfo.getOldDepartName());
nuIotTqElectricitySyncLogDel.setNewOrgId(electricityInfo.getDepartId());
nuIotTqElectricitySyncLogDel.setNewOrgCode(electricityInfo.getDepartServerUrl());
nuIotTqElectricitySyncLogDel.setNewOrgName(electricityInfo.getDepartName());
nuIotTqElectricitySyncLogDel.setStatus("成功");
nuIotTqElectricitySyncLogDel.setContent("删除原来业务机构摄像头数据");
nuIotTqElectricitySyncLogDel.setServerType("电表");
nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLogDel);
baseMapper.updateDepartById(electricityInfo);
}
List<Map<String,Object>> list = (List<Map<String,Object>>) electricityList.get("list");
for (Map<String, Object> map : list) {
ElectricityMeter electricityInfo = new ElectricityMeter();
String iotId = map.get("id").toString();
if(StringUtils.isEmpty(iotId)){
return "2";//设备ID为空;
}
electricityInfo = baseMapper.selectById(iotId);
//判断如果新的机构和老的机构不相同则把老的机构删除
String oldDataSourceCode = (String) map.get("oldServerUrl");
if(!StringUtils.equals(oldDataSourceCode,dataSourceCode) && StringUtils.isNotBlank(oldDataSourceCode)){
syncImpl.syncElectricityDel(electricityInfo.getOldServerUrl(),electricityInfo);
}
electricityInfo.setNuId(nuId);
electricityInfo.setNuName(nuName);
//将页面传入的数据赋值到最新的机构信息中
electricityInfo.setDepartId(departId);
electricityInfo.setDepartName(departName);
electricityInfo.setDepartServerUrl(dataSourceCode);
//如果两个系统编码相同则执行新增或者修改
syncImpl.syncElectricitySaveOrUpdate(dataSourceCode,electricityInfo);
SyncLog nuIotTqElectricitySyncLog = new SyncLog();
nuIotTqElectricitySyncLog.setId(null);
nuIotTqElectricitySyncLog.setMainId(electricityInfo.getCid());
nuIotTqElectricitySyncLog.setMainName(electricityInfo.getCid());
nuIotTqElectricitySyncLog.setSyncType("更新");
nuIotTqElectricitySyncLog.setOrgId(electricityInfo.getDepartId());
nuIotTqElectricitySyncLog.setOrgCode(electricityInfo.getDepartServerUrl());
nuIotTqElectricitySyncLog.setOrgName(electricityInfo.getDepartName());
nuIotTqElectricitySyncLog.setNewOrgId(electricityInfo.getDepartId());
nuIotTqElectricitySyncLog.setNewOrgCode(electricityInfo.getDepartServerUrl());
nuIotTqElectricitySyncLog.setNewOrgName(electricityInfo.getDepartName());
nuIotTqElectricitySyncLog.setStatus("成功");
nuIotTqElectricitySyncLog.setContent("同步成功");
nuIotTqElectricitySyncLog.setServerType("电表");
nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLog);
//更新同步状态及旧系统编码
electricityInfo.setSyncType("1");
electricityInfo.setOldServerUrl(dataSourceCode);
electricityInfo.setOldDepartName(electricityInfo.getDepartName());
electricityInfo.setOldDepartId(electricityInfo.getDepartId());
baseMapper.updateById(electricityInfo);
}
return "0";
}
//业务系统删除命令
@DS("#dataSourceCode")
public boolean syncElectricityDel(String dataSourceCode,ElectricityMeter electricityMeter) {

View File

@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nu.modules.tq.electricity.entity.ElectricityMeter;
import com.nu.modules.tq.water.entity.WaterMeter;
import com.nu.modules.tq.water.service.IWaterMeterService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
@ -13,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
@Slf4j
@RestController
@ -88,11 +91,32 @@ public class WaterMeterController extends JeecgController<WaterMeter, IWaterMete
}
@AutoLog(value = "同步表到业务系统")
@AutoLog(value = "同步表到业务系统")
@RequestMapping(value = "/syncElectricity", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> syncElectricity(@RequestBody WaterMeter waterMeter) {
String dataSourceCode = waterMeter.getDepartServerUrl();
service.syncElectricity(dataSourceCode,waterMeter);
return Result.OK("同步成功!");
}
/**
* 水表-同步
* @return
*/
@AutoLog(value = "护理单元-物联管理-水表-同步")
@ApiOperation(value="护理单元-物联管理-水表-同步", notes="护理单元-物联管理-水表-同步")
@RequestMapping(value = "/syncWaterList", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> syncWaterList(@RequestBody Map<String,Object> waterList) {
String result = service.syncWaterList(waterList);
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("其他错误,请联系管理员!");
}
}
}

View File

@ -79,4 +79,6 @@ public class WaterMeter implements Serializable {
private String syncType;//是否同步 0 未同步 1已同步
private String oldDepartId;//原机构id
private String oldDepartName;//原机构名称
@TableField(exist = false)
private String checkType;
}

View File

@ -18,4 +18,6 @@ public interface WaterMeterMapper extends BaseMapper<WaterMeter> {
int insertWater(WaterMeter waterMeter);
int updateWater(WaterMeter waterMeter);
void updateDepartById(WaterMeter waterInfo);
}

View File

@ -31,10 +31,10 @@
AND a.address = #{params.address}
</if>
<if test="params.nuId != null and params.nuId != ''">
AND a.nuId = #{params.nuId}
AND a.nu_id = #{params.nuId}
</if>
<if test="params.departId != null and params.departId != ''">
AND a.departId = #{params.departId}
AND a.depart_id = #{params.departId}
</if>
<if test="params.relayState != null and params.relayState != ''">
AND a.relay_state = #{params.relayState}
@ -51,6 +51,12 @@
<if test="params.csq != null and params.csq != '' and params.csq == 3">
AND b.csq &lt; 10
</if>
<if test="params.checkType != null and params.checkType == 1">
AND a.nu_id is not null
</if>
<if test="params.checkType != null and params.checkType == 0">
AND a.nu_id is null
</if>
</where>
</select>
@ -130,6 +136,9 @@
where cid = #{cid}
and address = #{address}
</update>
<update id="updateDepartById" parameterType="com.nu.modules.tq.water.entity.WaterMeter" >
update nu_iot_tq_water_meter set nu_id = null,nu_name = null,depart_id = null,depart_name = null,depart_server_url=null where id = #{id}
</update>
</mapper>

View File

@ -7,6 +7,7 @@ import com.nu.modules.tq.water.entity.WaterMeter;
import org.jeecg.common.api.vo.Result;
import java.util.List;
import java.util.Map;
public interface IWaterMeterService extends IService<WaterMeter> {
IPage<WaterMeter> findPage(Page<WaterMeter> page, WaterMeter waterMeter);
@ -22,4 +23,6 @@ public interface IWaterMeterService extends IService<WaterMeter> {
void syncElectricity(String dataSourceCode, WaterMeter waterMeter);
void editHldy(WaterMeter waterMeter);
String syncWaterList(Map<String, Object> waterList);
}

View File

@ -12,6 +12,7 @@ import com.nu.modules.syncLog.entity.SyncLog;
import com.nu.modules.syncLog.service.ISyncLogService;
import com.nu.modules.tq.common.entity.TqApiLog;
import com.nu.modules.tq.common.service.ITqApiLogService;
import com.nu.modules.tq.electricity.entity.ElectricityMeter;
import com.nu.modules.tq.utils.HttpTool;
import com.nu.modules.tq.utils.SignTool;
import com.nu.modules.tq.utils.TqApi;
@ -566,6 +567,97 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
baseMapper.updateById(waterMeter);
}
@Override
public String syncWaterList(Map<String, Object> waterList) {
String nuId = waterList.get("nuId").toString();
String nuName = waterList.get("nuName").toString();
String dataSourceCode = waterList.get("dataSourceCode").toString();
String departId = waterList.get("departId").toString();
String departName = waterList.get("departName").toString();
if(StringUtils.isEmpty(nuId) || StringUtils.isEmpty(dataSourceCode)){
return "1";//参数为空
}
QueryWrapper<WaterMeter> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("nu_id",nuId);
List<WaterMeter> allList =baseMapper.selectList(queryWrapper);
//先清空掉原来的数据
for(WaterMeter waterInfo : allList){
syncImpl.syncElectricityDel(waterInfo.getOldServerUrl(),waterInfo);
SyncLog nuIotTqElectricitySyncLogDel = new SyncLog();
nuIotTqElectricitySyncLogDel.setId(null);
nuIotTqElectricitySyncLogDel.setMainId(waterInfo.getCid());
nuIotTqElectricitySyncLogDel.setMainName(waterInfo.getCid());
nuIotTqElectricitySyncLogDel.setSyncType("删除");
nuIotTqElectricitySyncLogDel.setOrgId(waterInfo.getOldDepartId());
nuIotTqElectricitySyncLogDel.setOrgCode(waterInfo.getOldServerUrl());
nuIotTqElectricitySyncLogDel.setOrgName(waterInfo.getOldDepartName());
nuIotTqElectricitySyncLogDel.setNewOrgId(waterInfo.getDepartId());
nuIotTqElectricitySyncLogDel.setNewOrgCode(waterInfo.getDepartServerUrl());
nuIotTqElectricitySyncLogDel.setNewOrgName(waterInfo.getDepartName());
nuIotTqElectricitySyncLogDel.setStatus("成功");
nuIotTqElectricitySyncLogDel.setContent("删除原来业务机构摄像头数据");
nuIotTqElectricitySyncLogDel.setServerType("水表");
nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLogDel);
baseMapper.updateDepartById(waterInfo);
}
List<Map<String,Object>> list = (List<Map<String,Object>>) waterList.get("list");
for (Map<String, Object> map : list) {
WaterMeter waterInfo = new WaterMeter();
String iotId = map.get("id").toString();
if(StringUtils.isEmpty(iotId)){
return "2";//设备ID为空;
}
waterInfo = baseMapper.selectById(iotId);
//判断如果新的机构和老的机构不相同则把老的机构删除
String oldDataSourceCode = (String) map.get("oldServerUrl");
if(!StringUtils.equals(oldDataSourceCode,dataSourceCode) && StringUtils.isNotBlank(oldDataSourceCode)){
syncImpl.syncElectricityDel(waterInfo.getOldServerUrl(),waterInfo);
}
waterInfo.setNuId(nuId);
waterInfo.setNuName(nuName);
//将页面传入的数据赋值到最新的机构信息中
waterInfo.setDepartId(departId);
waterInfo.setDepartName(departName);
waterInfo.setDepartServerUrl(dataSourceCode);
//如果两个系统编码相同则执行新增或者修改
syncImpl.syncElectricitySaveOrUpdate(dataSourceCode,waterInfo);
SyncLog nuIotTqElectricitySyncLog = new SyncLog();
nuIotTqElectricitySyncLog.setId(null);
nuIotTqElectricitySyncLog.setMainId(waterInfo.getCid());
nuIotTqElectricitySyncLog.setMainName(waterInfo.getCid());
nuIotTqElectricitySyncLog.setSyncType("更新");
nuIotTqElectricitySyncLog.setOrgId(waterInfo.getDepartId());
nuIotTqElectricitySyncLog.setOrgCode(waterInfo.getDepartServerUrl());
nuIotTqElectricitySyncLog.setOrgName(waterInfo.getDepartName());
nuIotTqElectricitySyncLog.setNewOrgId(waterInfo.getDepartId());
nuIotTqElectricitySyncLog.setNewOrgCode(waterInfo.getDepartServerUrl());
nuIotTqElectricitySyncLog.setNewOrgName(waterInfo.getDepartName());
nuIotTqElectricitySyncLog.setStatus("成功");
nuIotTqElectricitySyncLog.setContent("同步成功");
nuIotTqElectricitySyncLog.setServerType("水表");
nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLog);
//更新同步状态及旧系统编码
waterInfo.setSyncType("1");
waterInfo.setOldServerUrl(dataSourceCode);
waterInfo.setOldDepartName(waterInfo.getDepartName());
waterInfo.setOldDepartId(waterInfo.getDepartId());
baseMapper.updateById(waterInfo);
}
return "0";
}
//业务系统删除命令
@DS("#dataSourceCode")
public boolean syncElectricityDel(String dataSourceCode,WaterMeter waterMeter) {

View File

@ -5,13 +5,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nu.modules.tq.water.entity.WaterMeter;
import com.nu.modules.yiweilian.humid.entity.HumidDevice;
import com.nu.modules.yiweilian.humid.service.IHumidDeviceService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
@Slf4j
@RestController
@ -151,4 +154,25 @@ public class HumidDeviceController extends JeecgController<HumidDevice, IHumidDe
service.syncHumidDevice(dataSourceCode,humidDevice);
return Result.OK("同步成功!");
}
/**
* 温湿度计-同步
* @return
*/
@AutoLog(value = "护理单元-物联管理-温湿度计-同步")
@ApiOperation(value="护理单元-物联管理-温湿度计-同步", notes="护理单元-物联管理-温湿度计-同步")
@RequestMapping(value = "/syncHumidList", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> syncHumidList(@RequestBody Map<String,Object> humidList) {
String result = service.syncHumidList(humidList);
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("其他错误,请联系管理员!");
}
}
}

View File

@ -117,4 +117,7 @@ public class HumidDevice implements Serializable {
private String delFlag;//停用标识 0正常 1停用
@TableField(exist = false)
private String checkType;
}

View File

@ -15,4 +15,6 @@ public interface HumidDeviceMapper extends BaseMapper<HumidDevice> {
int updateValue(HumidDevice humidDevice);
int insertLog(HumidDevice humidDevice);
IPage<HumidDevice> findLogPage(Page<HumidDevice> page, @Param("params") HumidDevice humidDevice);
void updateDepartById(HumidDevice humidInfo);
}

View File

@ -50,6 +50,12 @@
<if test="params.status != null and params.status != ''">
AND status = #{params.status}
</if>
<if test="params.checkType != null and params.checkType == 1">
AND a.nu_id is not null
</if>
<if test="params.checkType != null and params.checkType == 0">
AND a.nu_id is null
</if>
</where>
</select>
@ -342,4 +348,9 @@
order by id desc
</select>
<update id="updateDepartById" parameterType="com.nu.modules.yiweilian.humid.entity.HumidDevice">
update nu_iot_yiweilian_humid_device set nu_id = null,nu_name = null,depart_id = null,depart_name = null,depart_server_url=null where id = #{id}
</update>
</mapper>

View File

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.nu.modules.yiweilian.humid.entity.HumidDevice;
import org.jeecg.common.api.vo.Result;
import java.util.Map;
public interface IHumidDeviceService extends IService<HumidDevice> {
IPage<HumidDevice> findPage(Page<HumidDevice> page, HumidDevice humidDevice);
Result<String> insertDevice(HumidDevice humidDevice);
@ -19,4 +21,6 @@ public interface IHumidDeviceService extends IService<HumidDevice> {
void syncHumidDevice(String dataSourceCode, HumidDevice humidDevice);
void editHldy(HumidDevice humidDevice);
String syncHumidList(Map<String, Object> humidList);
}

View File

@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nu.modules.syncLog.entity.SyncLog;
import com.nu.modules.syncLog.service.ISyncLogService;
import com.nu.modules.tq.electricity.entity.ElectricityMeter;
import com.nu.modules.yiweilian.humid.entity.HumidDevice;
import com.nu.modules.yiweilian.humid.mapper.HumidDeviceMapper;
import com.nu.modules.yiweilian.humid.service.IHumidDeviceService;
@ -23,10 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
@Slf4j
@Service
@ -525,6 +523,98 @@ public class HumidDeviceServiceImpl extends ServiceImpl<HumidDeviceMapper, Humid
baseMapper.updateById(humidDevice);
}
@Override
public String syncHumidList(Map<String, Object> humidList) {
String nuId = humidList.get("nuId").toString();
String nuName = humidList.get("nuName").toString();
String dataSourceCode = humidList.get("dataSourceCode").toString();
String departId = humidList.get("departId").toString();
String departName = humidList.get("departName").toString();
if(StringUtils.isEmpty(nuId) || StringUtils.isEmpty(dataSourceCode)){
return "1";//参数为空
}
QueryWrapper<HumidDevice> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("nu_id",nuId);
List<HumidDevice> allList =baseMapper.selectList(queryWrapper);
//先清空掉原来的数据
for(HumidDevice humidInfo : allList){
syncImpl.syncElectricityDel(humidInfo.getOldServerUrl(),humidInfo);
SyncLog nuIotTqElectricitySyncLogDel = new SyncLog();
nuIotTqElectricitySyncLogDel.setId(null);
nuIotTqElectricitySyncLogDel.setMainId(humidInfo.getSn());
nuIotTqElectricitySyncLogDel.setMainName(humidInfo.getSn());
nuIotTqElectricitySyncLogDel.setSyncType("删除");
nuIotTqElectricitySyncLogDel.setOrgId(humidInfo.getOldDepartId());
nuIotTqElectricitySyncLogDel.setOrgCode(humidInfo.getOldServerUrl());
nuIotTqElectricitySyncLogDel.setOrgName(humidInfo.getOldDepartName());
nuIotTqElectricitySyncLogDel.setNewOrgId(humidInfo.getDepartId());
nuIotTqElectricitySyncLogDel.setNewOrgCode(humidInfo.getDepartServerUrl());
nuIotTqElectricitySyncLogDel.setNewOrgName(humidInfo.getDepartName());
nuIotTqElectricitySyncLogDel.setStatus("成功");
nuIotTqElectricitySyncLogDel.setContent("删除原来业务机构温湿度计数据");
nuIotTqElectricitySyncLogDel.setServerType("温湿度计");
nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLogDel);
baseMapper.updateDepartById(humidInfo);
}
List<Map<String,Object>> list = (List<Map<String,Object>>) humidList.get("list");
for (Map<String, Object> map : list) {
HumidDevice humidInfo = new HumidDevice();
String iotId = map.get("id").toString();
if(StringUtils.isEmpty(iotId)){
return "2";//设备ID为空;
}
humidInfo = baseMapper.selectById(iotId);
//判断如果新的机构和老的机构不相同则把老的机构删除
String oldDataSourceCode = (String) map.get("oldServerUrl");
if(!StringUtils.equals(oldDataSourceCode,dataSourceCode) && StringUtils.isNotBlank(oldDataSourceCode)){
syncImpl.syncElectricityDel(humidInfo.getOldServerUrl(),humidInfo);
}
humidInfo.setNuId(nuId);
humidInfo.setNuName(nuName);
//将页面传入的数据赋值到最新的机构信息中
humidInfo.setDepartId(departId);
humidInfo.setDepartName(departName);
humidInfo.setDepartServerUrl(dataSourceCode);
//如果两个系统编码相同则执行新增或者修改
syncImpl.syncElectricitySaveOrUpdate(dataSourceCode,humidInfo);
SyncLog nuIotTqElectricitySyncLog = new SyncLog();
nuIotTqElectricitySyncLog.setId(null);
nuIotTqElectricitySyncLog.setMainId(humidInfo.getSn());
nuIotTqElectricitySyncLog.setMainName(humidInfo.getSn());
nuIotTqElectricitySyncLog.setSyncType("更新");
nuIotTqElectricitySyncLog.setOrgId(humidInfo.getDepartId());
nuIotTqElectricitySyncLog.setOrgCode(humidInfo.getDepartServerUrl());
nuIotTqElectricitySyncLog.setOrgName(humidInfo.getDepartName());
nuIotTqElectricitySyncLog.setNewOrgId(humidInfo.getDepartId());
nuIotTqElectricitySyncLog.setNewOrgCode(humidInfo.getDepartServerUrl());
nuIotTqElectricitySyncLog.setNewOrgName(humidInfo.getDepartName());
nuIotTqElectricitySyncLog.setStatus("成功");
nuIotTqElectricitySyncLog.setContent("同步成功");
nuIotTqElectricitySyncLog.setServerType("温湿度计");
nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLog);
//更新同步状态及旧系统编码
humidInfo.setSyncType("1");
humidInfo.setOldServerUrl(dataSourceCode);
humidInfo.setOldDepartName(humidInfo.getDepartName());
humidInfo.setOldDepartId(humidInfo.getDepartId());
baseMapper.updateById(humidInfo);
}
return "0";
}
//业务系统删除命令
@DS("#dataSourceCode")
public boolean syncElectricityDel(String dataSourceCode, HumidDevice humidDevice) {