添加水表,温湿度硬件配置及同步功能

This commit is contained in:
yangjun 2025-06-19 14:31:30 +08:00
parent fa14ecc34c
commit c25e4e9c76
12 changed files with 348 additions and 13 deletions

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nu.modules.tq.electricity.entity.ElectricityMeter; import com.nu.modules.tq.electricity.entity.ElectricityMeter;
import com.nu.modules.tq.electricity.service.IElectricityMeterService; import com.nu.modules.tq.electricity.service.IElectricityMeterService;
import com.nu.modules.tq.water.entity.WaterMeter;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
@ -73,13 +74,19 @@ public class ElectricityMeterController extends JeecgController<ElectricityMeter
@AutoLog(value = "修改机构及护理单元信息") @AutoLog(value = "修改电表信息")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody ElectricityMeter electricityMeter) { public Result<String> edit(@RequestBody ElectricityMeter electricityMeter) {
service.updateById(electricityMeter); service.updateById(electricityMeter);
return Result.OK("编辑成功!"); return Result.OK("编辑成功!");
} }
@AutoLog(value = "修改电表的机构及护理单元信息")
@RequestMapping(value = "/editHldy", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> editHldy(@RequestBody ElectricityMeter electricityMeter) {
service.editHldy(electricityMeter);
return Result.OK("编辑成功!");
}
@AutoLog(value = "同步电表到业务系统") @AutoLog(value = "同步电表到业务系统")
@RequestMapping(value = "/syncElectricity", method = {RequestMethod.PUT,RequestMethod.POST}) @RequestMapping(value = "/syncElectricity", method = {RequestMethod.PUT,RequestMethod.POST})

View File

@ -20,4 +20,6 @@ public interface IElectricityMeterService extends IService<ElectricityMeter> {
String eleReadNotify(String response_content, String timestamp, String sign); String eleReadNotify(String response_content, String timestamp, String sign);
void syncElectricity(String dataSourceCode, ElectricityMeter electricityMeter); void syncElectricity(String dataSourceCode, ElectricityMeter electricityMeter);
void editHldy(ElectricityMeter electricityMeter);
} }

View File

@ -15,6 +15,7 @@ import com.nu.modules.tq.common.service.ITqApiLogService;
import com.nu.modules.tq.utils.HttpTool; import com.nu.modules.tq.utils.HttpTool;
import com.nu.modules.tq.utils.SignTool; import com.nu.modules.tq.utils.SignTool;
import com.nu.modules.tq.utils.TqApi; import com.nu.modules.tq.utils.TqApi;
import com.nu.modules.tq.water.entity.WaterMeter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import com.nu.modules.tq.electricity.entity.ElectricityMeter; import com.nu.modules.tq.electricity.entity.ElectricityMeter;
import com.nu.modules.tq.electricity.mapper.ElectricityMeterMapper; import com.nu.modules.tq.electricity.mapper.ElectricityMeterMapper;
@ -452,7 +453,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
NuIotTqElectricitySyncLog nuIotTqElectricitySyncLog = new NuIotTqElectricitySyncLog(); NuIotTqElectricitySyncLog nuIotTqElectricitySyncLog = new NuIotTqElectricitySyncLog();
nuIotTqElectricitySyncLog.setId(null); nuIotTqElectricitySyncLog.setId(null);
nuIotTqElectricitySyncLog.setMainId(electricityMeter.getId()+""); nuIotTqElectricitySyncLog.setMainId(electricityMeter.getCid()+"");
nuIotTqElectricitySyncLog.setMainName(electricityMeter.getCid()); nuIotTqElectricitySyncLog.setMainName(electricityMeter.getCid());
nuIotTqElectricitySyncLog.setSyncType("更新"); nuIotTqElectricitySyncLog.setSyncType("更新");
nuIotTqElectricitySyncLog.setOrgId(electricityMeter.getDepartId()); nuIotTqElectricitySyncLog.setOrgId(electricityMeter.getDepartId());
@ -474,7 +475,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
NuIotTqElectricitySyncLog nuIotTqElectricitySyncLog = new NuIotTqElectricitySyncLog(); NuIotTqElectricitySyncLog nuIotTqElectricitySyncLog = new NuIotTqElectricitySyncLog();
nuIotTqElectricitySyncLog.setId(null); nuIotTqElectricitySyncLog.setId(null);
nuIotTqElectricitySyncLog.setMainId(electricityMeter.getId()+""); nuIotTqElectricitySyncLog.setMainId(electricityMeter.getCid()+"");
nuIotTqElectricitySyncLog.setMainName(electricityMeter.getCid()); nuIotTqElectricitySyncLog.setMainName(electricityMeter.getCid());
nuIotTqElectricitySyncLog.setSyncType("更新"); nuIotTqElectricitySyncLog.setSyncType("更新");
nuIotTqElectricitySyncLog.setOrgId(electricityMeter.getOldDepartId()); nuIotTqElectricitySyncLog.setOrgId(electricityMeter.getOldDepartId());
@ -491,7 +492,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
NuIotTqElectricitySyncLog nuIotTqElectricitySyncLogDel = new NuIotTqElectricitySyncLog(); NuIotTqElectricitySyncLog nuIotTqElectricitySyncLogDel = new NuIotTqElectricitySyncLog();
nuIotTqElectricitySyncLogDel.setId(null); nuIotTqElectricitySyncLogDel.setId(null);
nuIotTqElectricitySyncLogDel.setMainId(electricityMeter.getId()+""); nuIotTqElectricitySyncLogDel.setMainId(electricityMeter.getCid()+"");
nuIotTqElectricitySyncLogDel.setMainName(electricityMeter.getCid()); nuIotTqElectricitySyncLogDel.setMainName(electricityMeter.getCid());
nuIotTqElectricitySyncLogDel.setSyncType("删除"); nuIotTqElectricitySyncLogDel.setSyncType("删除");
nuIotTqElectricitySyncLogDel.setOrgId(electricityMeter.getOldDepartId()); nuIotTqElectricitySyncLogDel.setOrgId(electricityMeter.getOldDepartId());
@ -513,6 +514,16 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
baseMapper.updateById(electricityMeter); baseMapper.updateById(electricityMeter);
} }
@Override
public void editHldy(ElectricityMeter electricityMeter) {
ElectricityMeter oldParam = baseMapper.selectById(electricityMeter.getId());
electricityMeter.setOldDepartId(oldParam.getDepartId());
electricityMeter.setOldDepartName(oldParam.getDepartName());
electricityMeter.setOldServerUrl(oldParam.getDepartServerUrl());
baseMapper.updateById(electricityMeter);
}
//业务系统删除命令 //业务系统删除命令
@DS("#dataSourceCode") @DS("#dataSourceCode")
public boolean syncElectricityDel(String dataSourceCode,ElectricityMeter electricityMeter) { public boolean syncElectricityDel(String dataSourceCode,ElectricityMeter electricityMeter) {

View File

@ -2,16 +2,16 @@ package com.nu.modules.tq.water.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.entity.WaterMeter;
import com.nu.modules.tq.water.service.IWaterMeterService; import com.nu.modules.tq.water.service.IWaterMeterService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@Slf4j @Slf4j
@ -71,4 +71,28 @@ public class WaterMeterController extends JeecgController<WaterMeter, IWaterMete
return service.waterRead(waterMeter); return service.waterRead(waterMeter);
} }
@AutoLog(value = "修改水表信息")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody WaterMeter waterMeter) {
service.updateById(waterMeter);
return Result.OK("编辑成功!");
}
@AutoLog(value = "修改机构及护理单元信息")
@RequestMapping(value = "/editHldy", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> editHldy(@RequestBody WaterMeter waterMeter) {
service.editHldy(waterMeter);
return Result.OK("编辑成功!");
}
@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("同步成功!");
}
} }

View File

@ -70,12 +70,13 @@ public class WaterMeter implements Serializable {
@ApiModelProperty(value = "描述") @ApiModelProperty(value = "描述")
private String remark; private String remark;
@TableField(exist = false)
private String nuId;//护理单元ID private String nuId;//护理单元ID
@TableField(exist = false)
private String nuName;//护理单元 private String nuName;//护理单元
@TableField(exist = false)
private String departId;//机构ID private String departId;//机构ID
@TableField(exist = false)
private String departName;//机构名称 private String departName;//机构名称
private String departServerUrl;//机构服务地址
private String oldServerUrl;//原机构服务地址
private String syncType;//是否同步 0 未同步 1已同步
private String oldDepartId;//原机构id
private String oldDepartName;//原机构名称
} }

View File

@ -19,7 +19,11 @@
a.nu_id as nuId, a.nu_id as nuId,
a.nu_name as nuName, a.nu_name as nuName,
a.depart_id as departId, a.depart_id as departId,
a.depart_name as departName a.depart_name as departName,
a.depart_server_url as departServerUrl,
a.old_server_url as oldServerUrl,
a.old_depart_id as oldDepartId,
a.old_depart_name as oldDepartName
from nu_iot_tq_water_meter a from nu_iot_tq_water_meter a
left join nu_iot_tq_collector b on a.cid = b.cid left join nu_iot_tq_collector b on a.cid = b.cid
<where> <where>

View File

@ -18,4 +18,8 @@ public interface IWaterMeterService extends IService<WaterMeter> {
String waterResetNotify(String response_content, String timestamp, String sign); String waterResetNotify(String response_content, String timestamp, String sign);
String waterControlNotify(String response_content, String timestamp, String sign); String waterControlNotify(String response_content, String timestamp, String sign);
String waterReadNotify(String response_content, String timestamp, String sign); String waterReadNotify(String response_content, String timestamp, String sign);
void syncElectricity(String dataSourceCode, WaterMeter waterMeter);
void editHldy(WaterMeter waterMeter);
} }

View File

@ -3,11 +3,17 @@ package com.nu.modules.tq.water.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONArray; import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject; 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.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nu.modules.nuIotTqElectricitySyncLog.entity.NuIotTqElectricitySyncLog;
import com.nu.modules.nuIotTqElectricitySyncLog.service.INuIotTqElectricitySyncLogService;
import com.nu.modules.tq.common.entity.TqApiLog; import com.nu.modules.tq.common.entity.TqApiLog;
import com.nu.modules.tq.common.service.ITqApiLogService; import com.nu.modules.tq.common.service.ITqApiLogService;
import com.nu.modules.tq.electricity.entity.ElectricityMeter;
import com.nu.modules.tq.electricity.service.impl.ElectricityMeterServiceImpl;
import com.nu.modules.tq.utils.HttpTool; import com.nu.modules.tq.utils.HttpTool;
import com.nu.modules.tq.utils.SignTool; import com.nu.modules.tq.utils.SignTool;
import com.nu.modules.tq.utils.TqApi; import com.nu.modules.tq.utils.TqApi;
@ -15,8 +21,10 @@ import com.nu.modules.tq.water.entity.WaterMeter;
import com.nu.modules.tq.water.mapper.WaterMeterMapper; import com.nu.modules.tq.water.mapper.WaterMeterMapper;
import com.nu.modules.tq.water.service.IWaterMeterService; import com.nu.modules.tq.water.service.IWaterMeterService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
@ -31,6 +39,14 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
@Autowired @Autowired
ITqApiLogService logService; ITqApiLogService logService;
@Autowired
public INuIotTqElectricitySyncLogService nuIotTqElectricitySyncLogService;
@Lazy
@Autowired
private WaterMeterServiceImpl syncImpl;
@Override @Override
public IPage<WaterMeter> findPage(Page<WaterMeter> page, WaterMeter waterMeter){ public IPage<WaterMeter> findPage(Page<WaterMeter> page, WaterMeter waterMeter){
return baseMapper.findPage(page,waterMeter); return baseMapper.findPage(page,waterMeter);
@ -438,4 +454,114 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
return "SUCCESS"; return "SUCCESS";
} }
@Override
public void syncElectricity(String dataSourceCode, WaterMeter waterMeter) {
waterMeter = baseMapper.selectById(waterMeter.getId());
//如果两个系统编码相同则执行新增或者修改
if(StringUtils.equals(waterMeter.getOldServerUrl(),waterMeter.getDepartServerUrl()) || StringUtils.isEmpty(waterMeter.getOldServerUrl())){
syncImpl.syncElectricitySaveOrUpdate(waterMeter.getOldServerUrl(),waterMeter);
NuIotTqElectricitySyncLog nuIotTqElectricitySyncLog = new NuIotTqElectricitySyncLog();
nuIotTqElectricitySyncLog.setId(null);
nuIotTqElectricitySyncLog.setMainId(waterMeter.getCid());
nuIotTqElectricitySyncLog.setMainName(waterMeter.getCid());
nuIotTqElectricitySyncLog.setSyncType("更新");
nuIotTqElectricitySyncLog.setOrgId(waterMeter.getDepartId());
nuIotTqElectricitySyncLog.setOrgCode(waterMeter.getDepartServerUrl());
nuIotTqElectricitySyncLog.setOrgName(waterMeter.getDepartName());
nuIotTqElectricitySyncLog.setNewOrgId(waterMeter.getDepartId());
nuIotTqElectricitySyncLog.setNewOrgCode(waterMeter.getDepartServerUrl());
nuIotTqElectricitySyncLog.setNewOrgName(waterMeter.getDepartName());
nuIotTqElectricitySyncLog.setStatus("成功");
nuIotTqElectricitySyncLog.setContent("同步成功");
nuIotTqElectricitySyncLog.setServerType("水表");
nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLog);
//如果两个系统编码不同则需要执行删除数据后再执行同步
}else{
syncImpl.syncElectricityDel(waterMeter.getOldServerUrl(),waterMeter);
syncImpl.syncElectricitySaveOrUpdate(dataSourceCode,waterMeter);
NuIotTqElectricitySyncLog nuIotTqElectricitySyncLog = new NuIotTqElectricitySyncLog();
nuIotTqElectricitySyncLog.setId(null);
nuIotTqElectricitySyncLog.setMainId(waterMeter.getCid());
nuIotTqElectricitySyncLog.setMainName(waterMeter.getCid());
nuIotTqElectricitySyncLog.setSyncType("更新");
nuIotTqElectricitySyncLog.setOrgId(waterMeter.getOldDepartId());
nuIotTqElectricitySyncLog.setOrgCode(waterMeter.getOldServerUrl());
nuIotTqElectricitySyncLog.setOrgName(waterMeter.getOldDepartName());
nuIotTqElectricitySyncLog.setNewOrgId(waterMeter.getDepartId());
nuIotTqElectricitySyncLog.setNewOrgCode(waterMeter.getDepartServerUrl());
nuIotTqElectricitySyncLog.setNewOrgName(waterMeter.getDepartName());
nuIotTqElectricitySyncLog.setStatus("成功");
nuIotTqElectricitySyncLog.setContent("同步成功");
nuIotTqElectricitySyncLog.setServerType("水表");
nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLog);
NuIotTqElectricitySyncLog nuIotTqElectricitySyncLogDel = new NuIotTqElectricitySyncLog();
nuIotTqElectricitySyncLogDel.setId(null);
nuIotTqElectricitySyncLogDel.setMainId(waterMeter.getCid()+"");
nuIotTqElectricitySyncLogDel.setMainName(waterMeter.getCid());
nuIotTqElectricitySyncLogDel.setSyncType("删除");
nuIotTqElectricitySyncLogDel.setOrgId(waterMeter.getOldDepartId());
nuIotTqElectricitySyncLogDel.setOrgCode(waterMeter.getOldServerUrl());
nuIotTqElectricitySyncLogDel.setOrgName(waterMeter.getOldDepartName());
nuIotTqElectricitySyncLogDel.setNewOrgId(waterMeter.getDepartId());
nuIotTqElectricitySyncLogDel.setNewOrgCode(waterMeter.getDepartServerUrl());
nuIotTqElectricitySyncLogDel.setNewOrgName(waterMeter.getDepartName());
nuIotTqElectricitySyncLogDel.setStatus("成功");
nuIotTqElectricitySyncLogDel.setContent("删除原来业务机构水表数据");
nuIotTqElectricitySyncLogDel.setServerType("水表");
nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLogDel);
}
//更新同步状态及旧系统编码
waterMeter.setSyncType("1");
waterMeter.setOldServerUrl(dataSourceCode);
waterMeter.setOldDepartName(waterMeter.getDepartName());
waterMeter.setOldDepartId(waterMeter.getDepartId());
baseMapper.updateById(waterMeter);
}
@Override
public void editHldy(WaterMeter waterMeter) {
WaterMeter oldParam = baseMapper.selectById(waterMeter.getId());
waterMeter.setOldDepartId(oldParam.getDepartId());
waterMeter.setOldDepartName(oldParam.getDepartName());
waterMeter.setOldServerUrl(oldParam.getDepartServerUrl());
baseMapper.updateById(waterMeter);
}
//业务系统删除命令
@DS("#dataSourceCode")
public boolean syncElectricityDel(String dataSourceCode,WaterMeter waterMeter) {
try {
baseMapper.deleteById(waterMeter.getId());
} catch (Exception e) {
throw new RuntimeException(e);
}
return true;
}
//业务系统保存或者修改命令
@DS("#dataSourceCode")
public boolean syncElectricitySaveOrUpdate(String dataSourceCode,WaterMeter waterMeter) {
try {
QueryWrapper<WaterMeter> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("cid",waterMeter.getCid());
WaterMeter oldParam = baseMapper.selectOne(queryWrapper);//查询数据库中该表号数据原始数据
if(oldParam == null){
baseMapper.insert(waterMeter);
}else{
baseMapper.updateById(waterMeter);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
return true;
}
} }

View File

@ -2,10 +2,12 @@ package com.nu.modules.yiweilian.humid.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.entity.HumidDevice;
import com.nu.modules.yiweilian.humid.service.IHumidDeviceService; import com.nu.modules.yiweilian.humid.service.IHumidDeviceService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -115,4 +117,27 @@ public class HumidDeviceController extends JeecgController<HumidDevice, IHumidDe
IPage<HumidDevice> pageList = service.findLogPage(page, humidDevice); IPage<HumidDevice> pageList = service.findLogPage(page, humidDevice);
return Result.OK(pageList); return Result.OK(pageList);
} }
@AutoLog(value = "修改温湿度表信息")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody HumidDevice humidDevice) {
service.updateById(humidDevice);
return Result.OK("编辑成功!");
}
@AutoLog(value = "修改温湿度表的机构及护理单元信息")
@RequestMapping(value = "/editHldy", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> editHldy(@RequestBody HumidDevice humidDevice) {
service.editHldy(humidDevice);
return Result.OK("编辑成功!");
}
@AutoLog(value = "同步电表到业务系统")
@RequestMapping(value = "/syncHumidDevice", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> syncHumidDevice(@RequestBody HumidDevice humidDevice) {
String dataSourceCode = humidDevice.getDepartServerUrl();
service.syncHumidDevice(dataSourceCode,humidDevice);
return Result.OK("同步成功!");
}
} }

View File

@ -95,10 +95,14 @@ public class HumidDevice implements Serializable {
@ApiModelProperty(value = "电量") @ApiModelProperty(value = "电量")
private String electricity; //电量 0~4 private String electricity; //电量 0~4
@TableField(exist = false)
private String optType; //操作类型 private String optType; //操作类型
@TableField(exist = false)
private String optTime; //操作时间 private String optTime; //操作时间
@TableField(exist = false)
private String optBy; //操作人 private String optBy; //操作人
@TableField(exist = false)
private Integer alarmCn; //告警数量 private Integer alarmCn; //告警数量
private String nuId;//护理单元ID private String nuId;//护理单元ID

View File

@ -16,4 +16,7 @@ public interface IHumidDeviceService extends IService<HumidDevice> {
Result getDeviceParameters(HumidDevice humidDevice); Result getDeviceParameters(HumidDevice humidDevice);
IPage<HumidDevice> findLogPage(Page<HumidDevice> page, HumidDevice humidDevice); IPage<HumidDevice> findLogPage(Page<HumidDevice> page, HumidDevice humidDevice);
void syncHumidDevice(String dataSourceCode, HumidDevice humidDevice);
void editHldy(HumidDevice humidDevice);
} }

View File

@ -2,19 +2,27 @@ package com.nu.modules.yiweilian.humid.service.impl;
import cn.hutool.json.JSONArray; import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject; 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.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nu.modules.nuIotTqElectricitySyncLog.entity.NuIotTqElectricitySyncLog;
import com.nu.modules.nuIotTqElectricitySyncLog.service.INuIotTqElectricitySyncLogService;
import com.nu.modules.tq.utils.HttpTool; import com.nu.modules.tq.utils.HttpTool;
import com.nu.modules.tq.water.entity.WaterMeter;
import com.nu.modules.tq.water.service.impl.WaterMeterServiceImpl;
import com.nu.modules.yiweilian.humid.entity.HumidDevice; import com.nu.modules.yiweilian.humid.entity.HumidDevice;
import com.nu.modules.yiweilian.humid.mapper.HumidDeviceMapper; import com.nu.modules.yiweilian.humid.mapper.HumidDeviceMapper;
import com.nu.modules.yiweilian.humid.service.IHumidDeviceService; import com.nu.modules.yiweilian.humid.service.IHumidDeviceService;
import com.nu.modules.yiweilian.utils.YiweilianApi; import com.nu.modules.yiweilian.utils.YiweilianApi;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.system.vo.LoginUser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap; import java.util.HashMap;
@ -28,6 +36,13 @@ public class HumidDeviceServiceImpl extends ServiceImpl<HumidDeviceMapper, Humid
@Autowired @Autowired
YiweilianApi yiweilianApi; YiweilianApi yiweilianApi;
@Autowired
public INuIotTqElectricitySyncLogService nuIotTqElectricitySyncLogService;
@Lazy
@Autowired
private HumidDeviceServiceImpl syncImpl;
public IPage<HumidDevice> findPage(Page<HumidDevice> page, HumidDevice humidDevice){ public IPage<HumidDevice> findPage(Page<HumidDevice> page, HumidDevice humidDevice){
return baseMapper.findPage(page,humidDevice); return baseMapper.findPage(page,humidDevice);
} }
@ -395,5 +410,114 @@ public class HumidDeviceServiceImpl extends ServiceImpl<HumidDeviceMapper, Humid
return baseMapper.findLogPage(page,humidDevice); return baseMapper.findLogPage(page,humidDevice);
} }
@Override
public void syncHumidDevice(String dataSourceCode, HumidDevice humidDevice) {
humidDevice = baseMapper.selectById(humidDevice.getId());
//如果两个系统编码相同则执行新增或者修改
if(StringUtils.equals(humidDevice.getOldServerUrl(),humidDevice.getDepartServerUrl()) || StringUtils.isEmpty(humidDevice.getOldServerUrl())){
syncImpl.syncElectricitySaveOrUpdate(humidDevice.getOldServerUrl(),humidDevice);
NuIotTqElectricitySyncLog nuIotTqElectricitySyncLog = new NuIotTqElectricitySyncLog();
nuIotTqElectricitySyncLog.setId(null);
nuIotTqElectricitySyncLog.setMainId(humidDevice.getSn()+"");
nuIotTqElectricitySyncLog.setMainName(humidDevice.getSn());
nuIotTqElectricitySyncLog.setSyncType("更新");
nuIotTqElectricitySyncLog.setOrgId(humidDevice.getDepartId());
nuIotTqElectricitySyncLog.setOrgCode(humidDevice.getDepartServerUrl());
nuIotTqElectricitySyncLog.setOrgName(humidDevice.getDepartName());
nuIotTqElectricitySyncLog.setNewOrgId(humidDevice.getDepartId());
nuIotTqElectricitySyncLog.setNewOrgCode(humidDevice.getDepartServerUrl());
nuIotTqElectricitySyncLog.setNewOrgName(humidDevice.getDepartName());
nuIotTqElectricitySyncLog.setStatus("成功");
nuIotTqElectricitySyncLog.setContent("同步成功");
nuIotTqElectricitySyncLog.setServerType("温湿度");
nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLog);
//如果两个系统编码不同则需要执行删除数据后再执行同步
}else{
syncImpl.syncElectricityDel(humidDevice.getOldServerUrl(),humidDevice);
syncImpl.syncElectricitySaveOrUpdate(dataSourceCode,humidDevice);
NuIotTqElectricitySyncLog nuIotTqElectricitySyncLog = new NuIotTqElectricitySyncLog();
nuIotTqElectricitySyncLog.setId(null);
nuIotTqElectricitySyncLog.setMainId(humidDevice.getSn()+"");
nuIotTqElectricitySyncLog.setMainName(humidDevice.getSn());
nuIotTqElectricitySyncLog.setSyncType("更新");
nuIotTqElectricitySyncLog.setOrgId(humidDevice.getOldDepartId());
nuIotTqElectricitySyncLog.setOrgCode(humidDevice.getOldServerUrl());
nuIotTqElectricitySyncLog.setOrgName(humidDevice.getOldDepartName());
nuIotTqElectricitySyncLog.setNewOrgId(humidDevice.getDepartId());
nuIotTqElectricitySyncLog.setNewOrgCode(humidDevice.getDepartServerUrl());
nuIotTqElectricitySyncLog.setNewOrgName(humidDevice.getDepartName());
nuIotTqElectricitySyncLog.setStatus("成功");
nuIotTqElectricitySyncLog.setContent("同步成功");
nuIotTqElectricitySyncLog.setServerType("温湿度");
nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLog);
NuIotTqElectricitySyncLog nuIotTqElectricitySyncLogDel = new NuIotTqElectricitySyncLog();
nuIotTqElectricitySyncLogDel.setId(null);
nuIotTqElectricitySyncLogDel.setMainId(humidDevice.getSn()+"");
nuIotTqElectricitySyncLogDel.setMainName(humidDevice.getSn());
nuIotTqElectricitySyncLogDel.setSyncType("删除");
nuIotTqElectricitySyncLogDel.setOrgId(humidDevice.getOldDepartId());
nuIotTqElectricitySyncLogDel.setOrgCode(humidDevice.getOldServerUrl());
nuIotTqElectricitySyncLogDel.setOrgName(humidDevice.getOldDepartName());
nuIotTqElectricitySyncLogDel.setNewOrgId(humidDevice.getDepartId());
nuIotTqElectricitySyncLogDel.setNewOrgCode(humidDevice.getDepartServerUrl());
nuIotTqElectricitySyncLogDel.setNewOrgName(humidDevice.getDepartName());
nuIotTqElectricitySyncLogDel.setStatus("成功");
nuIotTqElectricitySyncLogDel.setContent("删除原来业务机构温湿度数据");
nuIotTqElectricitySyncLogDel.setServerType("温湿度");
nuIotTqElectricitySyncLogService.save(nuIotTqElectricitySyncLogDel);
}
//更新同步状态及旧系统编码
humidDevice.setSyncType("1");
humidDevice.setOldServerUrl(dataSourceCode);
humidDevice.setOldDepartName(humidDevice.getDepartName());
humidDevice.setOldDepartId(humidDevice.getDepartId());
baseMapper.updateById(humidDevice);
}
@Override
public void editHldy(HumidDevice humidDevice) {
HumidDevice oldParam = baseMapper.selectById(humidDevice.getId());
humidDevice.setOldDepartId(oldParam.getDepartId());
humidDevice.setOldDepartName(oldParam.getDepartName());
humidDevice.setOldServerUrl(oldParam.getDepartServerUrl());
baseMapper.updateById(humidDevice);
}
//业务系统删除命令
@DS("#dataSourceCode")
public boolean syncElectricityDel(String dataSourceCode, HumidDevice humidDevice) {
try {
baseMapper.deleteById(humidDevice.getId());
} catch (Exception e) {
throw new RuntimeException(e);
}
return true;
}
//业务系统保存或者修改命令
@DS("#dataSourceCode")
public boolean syncElectricitySaveOrUpdate(String dataSourceCode,HumidDevice humidDevice) {
try {
QueryWrapper<HumidDevice> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("sn",humidDevice.getSn());
HumidDevice oldParam = baseMapper.selectOne(queryWrapper);//查询数据库中该表号数据原始数据
if(oldParam == null){
baseMapper.insert(humidDevice);
}else{
baseMapper.updateById(humidDevice);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
return true;
}
} }