Merge branch 'master' of http://47.115.223.229:8888/yangjun/hldy_java_monomer
This commit is contained in:
commit
4efbfd461f
|
@ -118,13 +118,13 @@ public class WeixinController {
|
|||
@GetMapping("/wechat/callback")
|
||||
public Map<String,Object> callback(@RequestParam("code") String code, Model model) {
|
||||
String tokenUrl = String.format(
|
||||
"https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code",
|
||||
"https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code",
|
||||
wechatpayConfig.getAppid(), wechatpayConfig.getAppsecret(), code
|
||||
);
|
||||
System.out.println(tokenUrl);
|
||||
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
System.out.println("-------------------11111111111111111----------");
|
||||
System.out.println("-------------------11111111111111111----------"+tokenUrl);
|
||||
String tokenResponse = restTemplate.getForObject(tokenUrl, String.class);
|
||||
System.out.println("-------------------22222222222222222----------"+tokenResponse);
|
||||
|
||||
|
@ -135,28 +135,28 @@ public class WeixinController {
|
|||
System.out.println("-------------------33333333333333----------");
|
||||
JsonNode tokenNode = objectMapper.readTree(tokenResponse);
|
||||
System.out.println("-------------------444444444444444----------"+tokenNode);
|
||||
accessToken = tokenNode.get("access_token").asText();
|
||||
System.out.println("-------------------55555555555555----------"+accessToken);
|
||||
String openId = tokenNode.get("openid").asText();
|
||||
System.out.println("-------------------666666666666666----------"+openId);
|
||||
|
||||
String userInfoUrl = String.format(
|
||||
"https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=zh_CN",
|
||||
accessToken, openId
|
||||
);
|
||||
System.out.println("-------------------777777777777777----------"+userInfoUrl);
|
||||
|
||||
String userInfoResponse = restTemplate.getForObject(userInfoUrl, String.class);
|
||||
System.out.println("-------------------888888888888888----------"+userInfoResponse);
|
||||
JsonNode userInfoNode = objectMapper.readTree(userInfoResponse);
|
||||
System.out.println("-------------------999999999999999----------"+userInfoNode);
|
||||
|
||||
model.addAttribute("openid", openId);
|
||||
System.out.println("-------------------999999999999999----------"+openId);
|
||||
model.addAttribute("nickname", userInfoNode.get("nickname").asText());
|
||||
model.addAttribute("headimgurl", userInfoNode.get("headimgurl").asText());
|
||||
model.addAttribute("code", code);
|
||||
retJson = userInfoNode;
|
||||
// accessToken = tokenNode.get("session_key").asText();
|
||||
// System.out.println("-------------------55555555555555----------"+accessToken);
|
||||
// String openId = tokenNode.get("openid").asText();
|
||||
// System.out.println("-------------------666666666666666----------"+openId);
|
||||
//
|
||||
// String userInfoUrl = String.format(
|
||||
// "https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=zh_CN",
|
||||
// accessToken, openId
|
||||
// );
|
||||
// System.out.println("-------------------777777777777777----------"+userInfoUrl);
|
||||
//
|
||||
// String userInfoResponse = restTemplate.getForObject(userInfoUrl, String.class);
|
||||
// System.out.println("-------------------888888888888888----------"+userInfoResponse);
|
||||
// JsonNode userInfoNode = objectMapper.readTree(userInfoResponse);
|
||||
// System.out.println("-------------------999999999999999----------"+userInfoNode);
|
||||
//
|
||||
// model.addAttribute("openid", openId);
|
||||
// System.out.println("-------------------999999999999999----------"+openId);
|
||||
// model.addAttribute("nickname", userInfoNode.get("nickname").asText());
|
||||
// model.addAttribute("headimgurl", userInfoNode.get("headimgurl").asText());
|
||||
// model.addAttribute("code", code);
|
||||
retJson = tokenNode;
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
model.addAttribute("openid", "Error parsing JSON response");
|
||||
|
|
|
@ -42,7 +42,7 @@ public class NuBaseInfo implements Serializable {
|
|||
/**护理单元编码*/
|
||||
@Excel(name = "护理单元编码", width = 15)
|
||||
@ApiModelProperty(value = "护理单元编码")
|
||||
private String code;
|
||||
private String nuId;
|
||||
/**区域标签ID*/
|
||||
@Excel(name = "区域标签ID", width = 15, dicCode = "nu_type")
|
||||
@Dict(dicCode = "nu_type")
|
||||
|
|
|
@ -24,7 +24,7 @@ public class DeviceInfoController extends JeecgController<TqDeviceInfo, ITqDevic
|
|||
*/
|
||||
@GetMapping(value = "/getAllMeter")
|
||||
public Result<String> getAllMeter() {
|
||||
service.getAllMeter();
|
||||
service.getAllMeter(false);
|
||||
return Result.OK("获取设备信息成功!");
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ public class DeviceInfoController extends JeecgController<TqDeviceInfo, ITqDevic
|
|||
*/
|
||||
@GetMapping(value = "/getAllCollector")
|
||||
public Result<String> getAllCollector() {
|
||||
service.getAllCollector();
|
||||
service.getAllCollector(false);
|
||||
return Result.OK("获取采集器信息成功!");
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
package com.nu.modules.tq.common.job;
|
||||
|
||||
import com.nu.modules.tq.common.service.ITqDeviceInfoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
/**
|
||||
* 采集器状态信息同步
|
||||
*/
|
||||
@Slf4j
|
||||
public class CollectorDataJob implements Job {
|
||||
|
||||
@Autowired
|
||||
ITqDeviceInfoService service;
|
||||
|
||||
/**
|
||||
* 5分钟一次
|
||||
* @param jobExecutionContext
|
||||
* @throws JobExecutionException
|
||||
*/
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
service.getAllCollector(true);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package com.nu.modules.tq.common.job;
|
||||
|
||||
import com.nu.modules.tq.common.service.ITqDeviceInfoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
/**
|
||||
* 表设备状态信息同步
|
||||
*/
|
||||
@Slf4j
|
||||
public class MeterStatusJob implements Job {
|
||||
|
||||
@Autowired
|
||||
ITqDeviceInfoService service;
|
||||
|
||||
/**
|
||||
* 5分钟一次
|
||||
* @param jobExecutionContext
|
||||
* @throws JobExecutionException
|
||||
*/
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
service.getAllMeter(true);
|
||||
}
|
||||
}
|
|
@ -10,6 +10,6 @@ import com.nu.modules.tq.common.entity.TqDeviceInfo;
|
|||
* @Version: V1.0
|
||||
*/
|
||||
public interface ITqDeviceInfoService extends IService<TqDeviceInfo> {
|
||||
void getAllMeter();
|
||||
void getAllCollector();
|
||||
void getAllMeter(boolean isJob);
|
||||
void getAllCollector(boolean isJob);
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ public class TqDeviceInfoServiceImpl extends ServiceImpl<TqDeviceInfoMapper, TqD
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void getAllMeter(){
|
||||
public void getAllMeter(boolean isJob){
|
||||
String responseStr = tqApi.getMeters();
|
||||
JSONObject jsonObject = new JSONObject(responseStr);
|
||||
String status = jsonObject.getStr("status");
|
||||
|
@ -65,9 +65,11 @@ public class TqDeviceInfoServiceImpl extends ServiceImpl<TqDeviceInfoMapper, TqD
|
|||
waterMeter.setRemark(remark);
|
||||
WaterMeter entity = waterMeterMapper.getWaterMeter(waterMeter);
|
||||
if(entity == null){
|
||||
waterMeterMapper.insert(waterMeter);
|
||||
if(!isJob){
|
||||
waterMeterMapper.insertWater(waterMeter);
|
||||
}
|
||||
}else{
|
||||
waterMeterMapper.update(waterMeter);
|
||||
waterMeterMapper.updateWater(waterMeter);
|
||||
}
|
||||
}else{
|
||||
ElectricityMeter electricityMeter = new ElectricityMeter();
|
||||
|
@ -77,9 +79,9 @@ public class TqDeviceInfoServiceImpl extends ServiceImpl<TqDeviceInfoMapper, TqD
|
|||
electricityMeter.setRemark(remark);
|
||||
ElectricityMeter entity = electricityMeterMapper.getElectricityMeter(electricityMeter);
|
||||
if(entity == null){
|
||||
electricityMeterMapper.insert(electricityMeter);
|
||||
electricityMeterMapper.insertElectricty(electricityMeter);
|
||||
}else{
|
||||
electricityMeterMapper.update(electricityMeter);
|
||||
electricityMeterMapper.updateElectricty(electricityMeter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -91,7 +93,7 @@ public class TqDeviceInfoServiceImpl extends ServiceImpl<TqDeviceInfoMapper, TqD
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public void getAllCollector(){
|
||||
public void getAllCollector(boolean isJob){
|
||||
String responseStr = tqApi.getCollectors();
|
||||
JSONObject jsonObject = new JSONObject(responseStr);
|
||||
String status = jsonObject.getStr("status");
|
||||
|
@ -119,7 +121,9 @@ public class TqDeviceInfoServiceImpl extends ServiceImpl<TqDeviceInfoMapper, TqD
|
|||
tdi.setRemark(remark);
|
||||
TqDeviceInfo entity = baseMapper.getDeviceInfo(tdi);
|
||||
if(entity == null){
|
||||
if(!isJob) {
|
||||
baseMapper.insert(tdi);
|
||||
}
|
||||
}else{
|
||||
baseMapper.update(tdi);
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.nu.modules.tq.electricity.entity.ElectricityMeter;
|
||||
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.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})
|
||||
public Result<String> edit(@RequestBody ElectricityMeter electricityMeter) {
|
||||
service.updateById(electricityMeter);
|
||||
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 = "同步电表到业务系统")
|
||||
@RequestMapping(value = "/syncElectricity", method = {RequestMethod.PUT,RequestMethod.POST})
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
package com.nu.modules.tq.electricity.job;
|
||||
|
||||
import com.nu.modules.tq.electricity.entity.ElectricityMeter;
|
||||
import com.nu.modules.tq.electricity.service.IElectricityMeterService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.util.DateUtils;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 电表设备抄表信息同步
|
||||
*/
|
||||
@Slf4j
|
||||
public class ElectricityReadJob implements Job {
|
||||
|
||||
@Autowired
|
||||
IElectricityMeterService service;
|
||||
|
||||
/**
|
||||
* 1小时一次
|
||||
* @param jobExecutionContext
|
||||
* @throws JobExecutionException
|
||||
*/
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
List<ElectricityMeter> electricityList = service.findAllList();
|
||||
if(electricityList!=null&&electricityList.size()>0){
|
||||
for(int i=0;i< electricityList.size();i++){
|
||||
ElectricityMeter electricityMeter = electricityList.get(i);
|
||||
Result<String> result = service.eleRead(electricityMeter);
|
||||
log.error("ElectricityReadJob:{}-{}", DateUtils.now(),result.getResult());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -5,12 +5,16 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.nu.modules.tq.electricity.entity.ElectricityMeter;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import java.util.List;
|
||||
|
||||
public interface ElectricityMeterMapper extends BaseMapper<ElectricityMeter> {
|
||||
IPage<ElectricityMeter> findPage(Page<ElectricityMeter> page, @Param("params") ElectricityMeter electricityMeter);
|
||||
List<ElectricityMeter> findAllList();
|
||||
ElectricityMeter getElectricityMeter(ElectricityMeter electricityMeter);
|
||||
int insert(ElectricityMeter electricityMeter);
|
||||
int update(ElectricityMeter electricityMeter);
|
||||
int updateValue(ElectricityMeter electricityMeter);
|
||||
int updateRelayState(ElectricityMeter electricityMeter);
|
||||
|
||||
int insertElectricty(ElectricityMeter electricityMeter);
|
||||
|
||||
int updateElectricty(ElectricityMeter electricityMeter);
|
||||
}
|
||||
|
|
|
@ -52,6 +52,29 @@
|
|||
</where>
|
||||
</select>
|
||||
|
||||
<select id="findAllList" parameterType="com.nu.modules.tq.electricity.entity.ElectricityMeter" resultType="com.nu.modules.tq.electricity.entity.ElectricityMeter">
|
||||
select
|
||||
a.id,
|
||||
a.cid,
|
||||
a.address,
|
||||
a.ele_value as eleValue,
|
||||
a.relay_state as relayState,
|
||||
a.read_time as readTime,
|
||||
a.remark,
|
||||
b.online,
|
||||
b.csq,
|
||||
b.disconnect_time as disconnectTime,
|
||||
b.connect_time as connectTime,
|
||||
a.nu_id as nuId,
|
||||
a.nu_name as nuName,
|
||||
a.depart_id as departId,
|
||||
a.depart_name as departName,
|
||||
a.depart_server_url as departServerUrl,
|
||||
a.old_server_url ,
|
||||
a.sync_type
|
||||
from nu_iot_tq_electricity_meter a
|
||||
</select>
|
||||
|
||||
<select id="getElectricityMeter" parameterType="com.nu.modules.tq.electricity.entity.ElectricityMeter" resultType="com.nu.modules.tq.electricity.entity.ElectricityMeter">
|
||||
select
|
||||
id,
|
||||
|
@ -66,8 +89,24 @@
|
|||
and address = #{address}
|
||||
</select>
|
||||
|
||||
<insert id="insertElectricty" parameterType="com.nu.modules.tq.electricity.entity.ElectricityMeter">
|
||||
insert into nu_iot_tq_electricity_meter(
|
||||
cid,
|
||||
address,
|
||||
relay_state,
|
||||
remark,
|
||||
create_time
|
||||
)
|
||||
values(
|
||||
#{cid},
|
||||
#{address},
|
||||
#{relayState},
|
||||
#{remark},
|
||||
now()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="update" parameterType="com.nu.modules.tq.electricity.entity.ElectricityMeter">
|
||||
<update id="updateElectricty" parameterType="com.nu.modules.tq.electricity.entity.ElectricityMeter">
|
||||
update nu_iot_tq_electricity_meter
|
||||
set
|
||||
relay_state = #{relayState},
|
||||
|
|
|
@ -6,8 +6,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||
import com.nu.modules.tq.electricity.entity.ElectricityMeter;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IElectricityMeterService extends IService<ElectricityMeter> {
|
||||
IPage<ElectricityMeter> findPage(Page<ElectricityMeter> page, ElectricityMeter electricityMeter);
|
||||
List<ElectricityMeter> findAllList();
|
||||
Result<String> eleReset(ElectricityMeter electricityMeter);
|
||||
Result<String> eleControl(ElectricityMeter electricityMeter);
|
||||
Result<String> eleRead(ElectricityMeter electricityMeter);
|
||||
|
@ -17,4 +20,6 @@ public interface IElectricityMeterService extends IService<ElectricityMeter> {
|
|||
String eleReadNotify(String response_content, String timestamp, String sign);
|
||||
|
||||
void syncElectricity(String dataSourceCode, ElectricityMeter electricityMeter);
|
||||
|
||||
void editHldy(ElectricityMeter electricityMeter);
|
||||
}
|
||||
|
|
|
@ -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.SignTool;
|
||||
import com.nu.modules.tq.utils.TqApi;
|
||||
import com.nu.modules.tq.water.entity.WaterMeter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.nu.modules.tq.electricity.entity.ElectricityMeter;
|
||||
import com.nu.modules.tq.electricity.mapper.ElectricityMeterMapper;
|
||||
|
@ -44,10 +45,16 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
|
|||
@Autowired
|
||||
private ElectricityMeterServiceImpl syncImpl;
|
||||
|
||||
@Override
|
||||
public IPage<ElectricityMeter> findPage(Page<ElectricityMeter> page, ElectricityMeter electricityMeter){
|
||||
return baseMapper.findPage(page,electricityMeter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ElectricityMeter> findAllList(){
|
||||
return baseMapper.findAllList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 清零
|
||||
*/
|
||||
|
@ -446,7 +453,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
|
|||
|
||||
NuIotTqElectricitySyncLog nuIotTqElectricitySyncLog = new NuIotTqElectricitySyncLog();
|
||||
nuIotTqElectricitySyncLog.setId(null);
|
||||
nuIotTqElectricitySyncLog.setMainId(electricityMeter.getId()+"");
|
||||
nuIotTqElectricitySyncLog.setMainId(electricityMeter.getCid()+"");
|
||||
nuIotTqElectricitySyncLog.setMainName(electricityMeter.getCid());
|
||||
nuIotTqElectricitySyncLog.setSyncType("更新");
|
||||
nuIotTqElectricitySyncLog.setOrgId(electricityMeter.getDepartId());
|
||||
|
@ -468,7 +475,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
|
|||
|
||||
NuIotTqElectricitySyncLog nuIotTqElectricitySyncLog = new NuIotTqElectricitySyncLog();
|
||||
nuIotTqElectricitySyncLog.setId(null);
|
||||
nuIotTqElectricitySyncLog.setMainId(electricityMeter.getId()+"");
|
||||
nuIotTqElectricitySyncLog.setMainId(electricityMeter.getCid()+"");
|
||||
nuIotTqElectricitySyncLog.setMainName(electricityMeter.getCid());
|
||||
nuIotTqElectricitySyncLog.setSyncType("更新");
|
||||
nuIotTqElectricitySyncLog.setOrgId(electricityMeter.getOldDepartId());
|
||||
|
@ -485,7 +492,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
|
|||
|
||||
NuIotTqElectricitySyncLog nuIotTqElectricitySyncLogDel = new NuIotTqElectricitySyncLog();
|
||||
nuIotTqElectricitySyncLogDel.setId(null);
|
||||
nuIotTqElectricitySyncLogDel.setMainId(electricityMeter.getId()+"");
|
||||
nuIotTqElectricitySyncLogDel.setMainId(electricityMeter.getCid()+"");
|
||||
nuIotTqElectricitySyncLogDel.setMainName(electricityMeter.getCid());
|
||||
nuIotTqElectricitySyncLogDel.setSyncType("删除");
|
||||
nuIotTqElectricitySyncLogDel.setOrgId(electricityMeter.getOldDepartId());
|
||||
|
@ -507,6 +514,16 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
|
|||
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")
|
||||
public boolean syncElectricityDel(String dataSourceCode,ElectricityMeter electricityMeter) {
|
||||
|
|
|
@ -2,16 +2,16 @@ package com.nu.modules.tq.water.controller;
|
|||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
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.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
@Slf4j
|
||||
|
@ -71,4 +71,28 @@ public class WaterMeterController extends JeecgController<WaterMeter, IWaterMete
|
|||
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("同步成功!");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,12 +70,13 @@ public class WaterMeter implements Serializable {
|
|||
@ApiModelProperty(value = "描述")
|
||||
private String remark;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String nuId;//护理单元ID
|
||||
@TableField(exist = false)
|
||||
private String nuName;//护理单元
|
||||
@TableField(exist = false)
|
||||
private String departId;//机构ID
|
||||
@TableField(exist = false)
|
||||
private String departName;//机构名称
|
||||
private String departServerUrl;//机构服务地址
|
||||
private String oldServerUrl;//原机构服务地址
|
||||
private String syncType;//是否同步 0 未同步 1已同步
|
||||
private String oldDepartId;//原机构id
|
||||
private String oldDepartName;//原机构名称
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
package com.nu.modules.tq.water.job;
|
||||
|
||||
import com.nu.modules.tq.water.entity.WaterMeter;
|
||||
import com.nu.modules.tq.water.service.IWaterMeterService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.util.DateUtils;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 水表设备抄表信息同步
|
||||
*/
|
||||
@Slf4j
|
||||
public class WaterReadJob implements Job {
|
||||
|
||||
@Autowired
|
||||
IWaterMeterService service;
|
||||
|
||||
/**
|
||||
* 1小时一次
|
||||
* @param jobExecutionContext
|
||||
* @throws JobExecutionException
|
||||
*/
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
List<WaterMeter> waterList = service.findAllList();
|
||||
if(waterList!=null&&waterList.size()>0){
|
||||
for(int i=0;i< waterList.size();i++){
|
||||
WaterMeter waterMeter = waterList.get(i);
|
||||
Result<String> result = service.waterRead(waterMeter);
|
||||
log.error("WaterReadJob:{}-{}", DateUtils.now(),result.getResult());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -6,11 +6,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||
import com.nu.modules.tq.water.entity.WaterMeter;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface WaterMeterMapper extends BaseMapper<WaterMeter> {
|
||||
IPage<WaterMeter> findPage(Page<WaterMeter> page, @Param("params") WaterMeter waterMeter);
|
||||
List<WaterMeter> findAllList();
|
||||
WaterMeter getWaterMeter(WaterMeter waterMeter);
|
||||
int insert(WaterMeter waterMeter);
|
||||
int update(WaterMeter waterMeter);
|
||||
int updateValue(WaterMeter waterMeter);
|
||||
int updateRelayState(WaterMeter waterMeter);
|
||||
|
||||
int insertWater(WaterMeter waterMeter);
|
||||
|
||||
int updateWater(WaterMeter waterMeter);
|
||||
}
|
||||
|
|
|
@ -19,7 +19,11 @@
|
|||
a.nu_id as nuId,
|
||||
a.nu_name as nuName,
|
||||
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
|
||||
left join nu_iot_tq_collector b on a.cid = b.cid
|
||||
<where>
|
||||
|
@ -50,6 +54,19 @@
|
|||
</where>
|
||||
</select>
|
||||
|
||||
<select id="findAllList" parameterType="com.nu.modules.tq.water.entity.WaterMeter" resultType="com.nu.modules.tq.water.entity.WaterMeter">
|
||||
select
|
||||
id,
|
||||
cid,
|
||||
address,
|
||||
water_value as waterValue,
|
||||
relay_state as relayState,
|
||||
battery_state as batteryState,
|
||||
read_time as readTime,
|
||||
remark
|
||||
from nu_iot_tq_water_meter
|
||||
</select>
|
||||
|
||||
<select id="getWaterMeter" parameterType="com.nu.modules.tq.water.entity.WaterMeter" resultType="com.nu.modules.tq.water.entity.WaterMeter">
|
||||
select
|
||||
id,
|
||||
|
@ -65,9 +82,26 @@
|
|||
and address = #{address}
|
||||
</select>
|
||||
|
||||
<insert id="insertWater" parameterType="com.nu.modules.tq.water.entity.WaterMeter">
|
||||
insert into nu_iot_tq_water_meter(
|
||||
cid,
|
||||
address,
|
||||
relay_state,
|
||||
battery_state,
|
||||
remark,
|
||||
create_time
|
||||
)
|
||||
values(
|
||||
#{cid},
|
||||
#{address},
|
||||
#{relayState},
|
||||
#{batteryState},
|
||||
#{remark},
|
||||
now()
|
||||
)
|
||||
</insert>
|
||||
|
||||
|
||||
<update id="update" parameterType="com.nu.modules.tq.water.entity.WaterMeter">
|
||||
<update id="updateWater" parameterType="com.nu.modules.tq.water.entity.WaterMeter">
|
||||
update nu_iot_tq_water_meter
|
||||
set
|
||||
relay_state = #{relayState},
|
||||
|
|
|
@ -6,8 +6,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||
import com.nu.modules.tq.water.entity.WaterMeter;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IWaterMeterService extends IService<WaterMeter> {
|
||||
IPage<WaterMeter> findPage(Page<WaterMeter> page, WaterMeter waterMeter);
|
||||
List<WaterMeter> findAllList();
|
||||
Result<String> waterReset(WaterMeter waterMeter);
|
||||
Result<String> waterControl(WaterMeter waterMeter);
|
||||
Result<String> waterRead(WaterMeter waterMeter);
|
||||
|
@ -15,4 +18,8 @@ public interface IWaterMeterService extends IService<WaterMeter> {
|
|||
String waterResetNotify(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);
|
||||
|
||||
void syncElectricity(String dataSourceCode, WaterMeter waterMeter);
|
||||
|
||||
void editHldy(WaterMeter waterMeter);
|
||||
}
|
||||
|
|
|
@ -3,11 +3,17 @@ package com.nu.modules.tq.water.service.impl;
|
|||
import cn.hutool.core.date.DateUtil;
|
||||
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.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.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.SignTool;
|
||||
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.service.IWaterMeterService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
|
@ -31,10 +39,24 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
|
|||
@Autowired
|
||||
ITqApiLogService logService;
|
||||
|
||||
|
||||
@Autowired
|
||||
public INuIotTqElectricitySyncLogService nuIotTqElectricitySyncLogService;
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private WaterMeterServiceImpl syncImpl;
|
||||
|
||||
@Override
|
||||
public IPage<WaterMeter> findPage(Page<WaterMeter> page, WaterMeter waterMeter){
|
||||
return baseMapper.findPage(page,waterMeter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WaterMeter> findAllList(){
|
||||
return baseMapper.findAllList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 清零
|
||||
*/
|
||||
|
@ -432,4 +454,114 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
package com.nu.modules.yiweilian.common.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description: 护理单元-物联管理-易维联-配置信息
|
||||
* @Author: caolei
|
||||
* @Date: 2025-06-13
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
@TableName("nu_iot_yiweilian_config")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="nu_iot_yiweilian_config", description="护理单元-物联管理-易维联-配置信息")
|
||||
public class YiweilianConfig implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**ID*/
|
||||
@TableId(type = IdType.AUTO)
|
||||
@ApiModelProperty(value = "ID")
|
||||
private Integer id;
|
||||
private String requestUrl; //云平台系统地址
|
||||
private String clientId; //识别用户的唯一标识
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package com.nu.modules.yiweilian.common.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.nu.modules.yiweilian.common.entity.YiweilianConfig;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* @Description: 护理单元-物联管理-易维联-配置信息
|
||||
* @Author: caolei
|
||||
* @Date: 2025-06-13
|
||||
* @Version: V1.0
|
||||
*/
|
||||
|
||||
@Mapper
|
||||
public interface YiweilianConfigMapper extends BaseMapper<YiweilianConfig> {
|
||||
YiweilianConfig getConfig();
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nu.modules.yiweilian.common.mapper.YiweilianConfigMapper">
|
||||
|
||||
<select id="getConfig" parameterType="String" resultType="com.nu.modules.yiweilian.common.entity.YiweilianConfig">
|
||||
select
|
||||
id,
|
||||
request_url as requestUrl,
|
||||
client_id as clientId
|
||||
from nu_iot_yiweilian_config
|
||||
order by id desc
|
||||
limit 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -0,0 +1,14 @@
|
|||
package com.nu.modules.yiweilian.common.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nu.modules.yiweilian.common.entity.YiweilianConfig;
|
||||
|
||||
/**
|
||||
* @Description: 护理单元-物联管理-易维联-配置信息
|
||||
* @Author: caolei
|
||||
* @Date: 2025-06-13
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface IYiweilianConfigService extends IService<YiweilianConfig> {
|
||||
YiweilianConfig getConfig();
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.nu.modules.yiweilian.common.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nu.modules.yiweilian.common.entity.YiweilianConfig;
|
||||
import com.nu.modules.yiweilian.common.mapper.YiweilianConfigMapper;
|
||||
import com.nu.modules.yiweilian.common.service.IYiweilianConfigService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @Description: 护理单元-物联管理-易维联-配置信息
|
||||
* @Author: caolei
|
||||
* @Date: 2025-06-13
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Service
|
||||
public class YiweilianConfigServiceImpl extends ServiceImpl<YiweilianConfigMapper, YiweilianConfig> implements IYiweilianConfigService {
|
||||
|
||||
@Override
|
||||
public YiweilianConfig getConfig(){
|
||||
return baseMapper.getConfig();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.nu.modules.yiweilian.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
/**
|
||||
* 接口枚举类
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum YiweilianApiEnum {
|
||||
|
||||
ADD_DEVICE("/mtInterface/device/addDevice","添加设备"),
|
||||
UPDATE_DEVICE_CONFIG("/mtInterface/device/updateDeviceConfig","修改设备配置"),
|
||||
DELETE_DEVICE("/mtInterface/device/deleteDevice","删除设备"),
|
||||
// GET_DEVICES("/mtInterface/device/getDevices","查询设备列表(分页)"),
|
||||
GET_DEVICE_CONFIGS("/mtInterface/device/getDeciveConfigs","查询设备列表含配置信息(分页)"),
|
||||
GET_REAL_TIME("/mtInterface/realTime/getRealTime","查询设备实时数据(分页)"),
|
||||
GET_WARNING_DATA("/mtInterface/warning/getWarningData","查询告警记录(分页)");
|
||||
|
||||
private final String value;//自定义属性,枚举值,获取:如ApiEnum.GET_ENCRYPT_KEY_FOR_LOGIN.getValue();
|
||||
private final String remark;//自定义属性,枚举描述,获取:如ApiEnum.GET_ENCRYPT_KEY_FOR_LOGIN.getRemark();
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
package com.nu.modules.yiweilian.humid.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.nu.modules.yiweilian.humid.entity.HumidAlarm;
|
||||
import com.nu.modules.yiweilian.humid.service.IHumidAlarmService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.system.base.controller.JeecgController;
|
||||
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.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/iot/yiweilian/humidAlarm")
|
||||
public class HumidAlarmController extends JeecgController<HumidAlarm, IHumidAlarmService> {
|
||||
|
||||
@Autowired
|
||||
private IHumidAlarmService service;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @param humidAlarm
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/list")
|
||||
public Result<IPage<HumidAlarm>> queryPageList(HumidAlarm humidAlarm,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
Page<HumidAlarm> page = new Page<HumidAlarm>(pageNo, pageSize);
|
||||
IPage<HumidAlarm> pageList = service.findPage(page, humidAlarm);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取告警
|
||||
*
|
||||
* @param humidAlarm
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/getAlarm")
|
||||
public Result<String> getAlarm(HumidAlarm humidAlarm) {
|
||||
service.getAlarm(humidAlarm);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
package com.nu.modules.yiweilian.humid.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
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;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/iot/yiweilian/humidDevice")
|
||||
public class HumidDeviceController extends JeecgController<HumidDevice, IHumidDeviceService> {
|
||||
|
||||
@Autowired
|
||||
private IHumidDeviceService service;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @param humidDevice
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/list")
|
||||
public Result<IPage<HumidDevice>> queryPageList(HumidDevice humidDevice,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
Page<HumidDevice> page = new Page<HumidDevice>(pageNo, pageSize);
|
||||
IPage<HumidDevice> pageList = service.findPage(page, humidDevice);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加设备
|
||||
*
|
||||
* @param humidDevice
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/insertDevice")
|
||||
public Result<String> insertDevice(HumidDevice humidDevice) {
|
||||
return service.insertDevice(humidDevice);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设备
|
||||
*
|
||||
* @param humidDevice
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/updateDevice")
|
||||
public Result<String> updateDevice(HumidDevice humidDevice) {
|
||||
return service.updateDevice(humidDevice);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除设备
|
||||
*
|
||||
* @param humidDevice
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/deleteDevice")
|
||||
public Result<String> deleteDevice(HumidDevice humidDevice) {
|
||||
return service.deleteDevice(humidDevice);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设备配置参数
|
||||
*
|
||||
* @param humidDevice
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/getDeviceParameters")
|
||||
public Result<String> getDeviceParameters(HumidDevice humidDevice) {
|
||||
return service.getDeviceParameters(humidDevice);
|
||||
}
|
||||
|
||||
/**
|
||||
* 抄表
|
||||
*
|
||||
* @param humidDevice
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/updateDeviceRealTime")
|
||||
public Result<String> updateDeviceRealTime(HumidDevice humidDevice) {
|
||||
String result = service.updateDeviceRealTime(humidDevice);
|
||||
if(!result.equals("")){
|
||||
return Result.error("抄表失败:"+result);
|
||||
}
|
||||
return Result.OK("抄表成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 操作日志分页列表查询
|
||||
*
|
||||
* @param humidDevice
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/logList")
|
||||
public Result<IPage<HumidDevice>> queryLogPageList(HumidDevice humidDevice,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
Page<HumidDevice> page = new Page<HumidDevice>(pageNo, pageSize);
|
||||
IPage<HumidDevice> pageList = service.findLogPage(page, humidDevice);
|
||||
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("同步成功!");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
package com.nu.modules.yiweilian.humid.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* <p>Class:易维联-温湿度计告警Entity
|
||||
* <p>功能描述:功能描述
|
||||
*/
|
||||
@Data
|
||||
@TableName("nu_iot_yiweilian_humid_alarm")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="nu_iot_yiweilian_humid_alarm对象", description="易维联-温湿设备告警")
|
||||
public class HumidAlarm implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
@ApiModelProperty(value = "主键")
|
||||
private Integer id;
|
||||
@Excel(name = "设备SN号", width = 15)
|
||||
@ApiModelProperty(value = "设备SN号")
|
||||
private String sn;
|
||||
@Excel(name = "告警ID", width = 15)
|
||||
@ApiModelProperty(value = "告警ID")
|
||||
private String alarmId;
|
||||
@Excel(name = "告警状态ID", width = 15)
|
||||
@ApiModelProperty(value = "告警状态ID")
|
||||
private String wrId;
|
||||
@Excel(name = "告警数据", width = 15)
|
||||
@ApiModelProperty(value = "告警数据")
|
||||
private String wrData;
|
||||
@Excel(name = "告警内容", width = 15)
|
||||
@ApiModelProperty(value = "告警内容")
|
||||
private String wrContent;
|
||||
@Excel(name = "告警记录时间", width = 15)
|
||||
@ApiModelProperty(value = "告警记录时间")
|
||||
private String wrDate;
|
||||
@Excel(name = "清除告警ID", width = 15)
|
||||
@ApiModelProperty(value = "清除告警ID")
|
||||
private String clearAlarmId;
|
||||
@Excel(name = "清除告警状态ID", width = 15)
|
||||
@ApiModelProperty(value = "清除告警状态ID")
|
||||
private String clearId;
|
||||
@Excel(name = "清除告警数据", width = 15)
|
||||
@ApiModelProperty(value = "清除告警数据")
|
||||
private String clearData;
|
||||
@Excel(name = "清除告警内容", width = 15)
|
||||
@ApiModelProperty(value = "清除告警内容")
|
||||
private String clearContent;
|
||||
@Excel(name = "清除告警记录时间", width = 15)
|
||||
@ApiModelProperty(value = "清除告警记录时间")
|
||||
private String clearDate;
|
||||
@Excel(name = "状态", width = 15)
|
||||
@ApiModelProperty(value = "状态")
|
||||
private String status; //状态 0告警 1清除
|
||||
|
||||
@TableField(exist = false)
|
||||
private Date alarmStartTime;
|
||||
@TableField(exist = false)
|
||||
private Date alarmEndTime;
|
||||
@TableField(exist = false)
|
||||
private Date clearStartTime;
|
||||
@TableField(exist = false)
|
||||
private Date clearEndTime;
|
||||
|
||||
}
|
|
@ -0,0 +1,118 @@
|
|||
package com.nu.modules.yiweilian.humid.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* <p>Class:易维联-温湿度计Entity
|
||||
* <p>功能描述:功能描述
|
||||
*/
|
||||
@Data
|
||||
@TableName("nu_iot_yiweilian_humid_device")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="nu_iot_yiweilian_humid_device对象", description="易维联-温湿设备")
|
||||
public class HumidDevice implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
@ApiModelProperty(value = "主键")
|
||||
private Integer id;
|
||||
@Excel(name = "设备SN号", width = 15)
|
||||
@ApiModelProperty(value = "设备SN号")
|
||||
private String sn;
|
||||
@Excel(name = "设备名称", width = 15)
|
||||
@ApiModelProperty(value = "设备名称")
|
||||
private String deviceName;
|
||||
@Excel(name = "设备类型", width = 15)
|
||||
@ApiModelProperty(value = "设备类型")
|
||||
private String deviceTypes;//一共16位,第几位为1代表设备有该功能. 1位温度 2位湿度 15位电量
|
||||
@Excel(name = "上报间隔", width = 15)
|
||||
@ApiModelProperty(value = "上报间隔")
|
||||
private String reportingInterval; //实时数据上报时间间隔 单位分钟
|
||||
@Excel(name = "记录间隔", width = 15)
|
||||
@ApiModelProperty(value = "记录间隔")
|
||||
private String recordInterval; //记录时间间隔 单位分钟
|
||||
@Excel(name = "历史数据上报时刻", width = 15)
|
||||
@ApiModelProperty(value = "历史数据上报时刻")
|
||||
private String historyReportTime; //历史数据上报时刻 00:00
|
||||
@Excel(name = "历史数据上报间隔", width = 15)
|
||||
@ApiModelProperty(value = "历史数据上报间隔")
|
||||
private String historyInterval; //历史数据上报间隔 单位小时
|
||||
@Excel(name = "温度预警范围 上限值", width = 15)
|
||||
@ApiModelProperty(value = "温度预警范围 上限值")
|
||||
private String temperatureHigh ; //温度预警范围-上限值
|
||||
@Excel(name = "温度预警范围 下限值", width = 15)
|
||||
@ApiModelProperty(value = "温度预警范围 下限值")
|
||||
private String temperatureLow; //温度预警范围-下限值
|
||||
@Excel(name = "温度缓冲值", width = 15)
|
||||
@ApiModelProperty(value = "温度缓冲值")
|
||||
private String temperatureBuffer; //温度缓冲值
|
||||
@Excel(name = "湿度预警范围 上限值", width = 15)
|
||||
@ApiModelProperty(value = "湿度预警范围 上限值")
|
||||
private String humidityHigh; //湿度预警范围-上限值
|
||||
@Excel(name = "湿度预警范围 下限值", width = 15)
|
||||
@ApiModelProperty(value = "湿度预警范围 下限值")
|
||||
private String humidityLow; //湿度预警范围-下限值
|
||||
@Excel(name = "湿度缓冲值", width = 15)
|
||||
@ApiModelProperty(value = "湿度缓冲值")
|
||||
private String humidityBuffer; //湿度缓冲值
|
||||
@Excel(name = "设备所在时区", width = 15)
|
||||
@ApiModelProperty(value = "设备所在时区")
|
||||
private String timeCode; //设备所在时区 01北京时间 02纽约时间
|
||||
@Excel(name = "断电报警", width = 15)
|
||||
@ApiModelProperty(value = "断电报警")
|
||||
private String izOutages; //断电报警 0开启 1关闭
|
||||
@Excel(name = "低电报警", width = 15)
|
||||
@ApiModelProperty(value = "低电报警")
|
||||
private String izLowBattery; //低电报警 0开启 1关闭
|
||||
@Excel(name = "上下线通知", width = 15)
|
||||
@ApiModelProperty(value = "上下线通知")
|
||||
private String izOnline; //上下线通知 0开启 1关闭
|
||||
@Excel(name = "温度", width = 15)
|
||||
@ApiModelProperty(value = "温度")
|
||||
private String temperature; //温度
|
||||
@Excel(name = "湿度", width = 15)
|
||||
@ApiModelProperty(value = "湿度")
|
||||
private String humidity; //湿度
|
||||
@Excel(name = "在线状态", width = 15)
|
||||
@ApiModelProperty(value = "在线状态")
|
||||
private String status; //在线状态,0在线 1离线
|
||||
@Excel(name = "最新上报时间", width = 15)
|
||||
@ApiModelProperty(value = "最新上报时间")
|
||||
private String reportingTime; //最新上报时间
|
||||
@Excel(name = "电量", width = 15)
|
||||
@ApiModelProperty(value = "电量")
|
||||
private String electricity; //电量 0~4
|
||||
|
||||
@TableField(exist = false)
|
||||
private String optType; //操作类型
|
||||
@TableField(exist = false)
|
||||
private String optTime; //操作时间
|
||||
@TableField(exist = false)
|
||||
private String optBy; //操作人
|
||||
|
||||
@TableField(exist = false)
|
||||
private Integer alarmCn; //告警数量
|
||||
|
||||
private String nuId;//护理单元ID
|
||||
private String nuName;//护理单元
|
||||
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;//原机构名称
|
||||
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
package com.nu.modules.yiweilian.humid.job;
|
||||
|
||||
import com.nu.modules.yiweilian.humid.entity.HumidAlarm;
|
||||
import com.nu.modules.yiweilian.humid.service.IHumidAlarmService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.util.DateUtils;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 温湿度告警采集
|
||||
*/
|
||||
@Slf4j
|
||||
public class HumidAlarmJob implements Job {
|
||||
|
||||
@Autowired
|
||||
IHumidAlarmService service;
|
||||
|
||||
/**
|
||||
* 5分钟一次
|
||||
* @param jobExecutionContext
|
||||
* @throws JobExecutionException
|
||||
*/
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
Calendar ca = Calendar.getInstance();
|
||||
HumidAlarm humidAlarm = new HumidAlarm();
|
||||
humidAlarm.setAlarmEndTime(ca.getTime());
|
||||
ca.add(Calendar.MINUTE,-6);
|
||||
humidAlarm.setAlarmStartTime(ca.getTime());
|
||||
String result = service.getAlarm(humidAlarm);
|
||||
log.error("HumidAlarmJob:{}-{}", DateUtils.now(),result);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.nu.modules.yiweilian.humid.job;
|
||||
|
||||
import com.nu.modules.yiweilian.humid.entity.HumidDevice;
|
||||
import com.nu.modules.yiweilian.humid.service.IHumidDeviceService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecg.common.util.DateUtils;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
/**
|
||||
* 温湿度采集
|
||||
*/
|
||||
@Slf4j
|
||||
public class HumidReadJob implements Job {
|
||||
|
||||
@Autowired
|
||||
IHumidDeviceService service;
|
||||
|
||||
/**
|
||||
* 5分钟一次
|
||||
* @param jobExecutionContext
|
||||
* @throws JobExecutionException
|
||||
*/
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
String result = service.updateDeviceRealTime(new HumidDevice());
|
||||
log.error("HumidReadJob:{}-{}", DateUtils.now(),result);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package com.nu.modules.yiweilian.humid.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.nu.modules.yiweilian.humid.entity.HumidAlarm;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
public interface HumidAlarmMapper extends BaseMapper<HumidAlarm> {
|
||||
IPage<HumidAlarm> findPage(Page<HumidAlarm> page, @Param("params") HumidAlarm HumidAlarm);
|
||||
HumidAlarm getHumidAlarm(HumidAlarm HumidAlarm);
|
||||
int insertAlarm(HumidAlarm HumidAlarm);
|
||||
int updateAlarm(HumidAlarm HumidAlarm);
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package com.nu.modules.yiweilian.humid.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.nu.modules.yiweilian.humid.entity.HumidDevice;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
public interface HumidDeviceMapper extends BaseMapper<HumidDevice> {
|
||||
IPage<HumidDevice> findPage(Page<HumidDevice> page, @Param("params") HumidDevice humidDevice);
|
||||
HumidDevice getHumidDevice(HumidDevice humidDevice);
|
||||
int insertDevice(HumidDevice humidDevice);
|
||||
int updateDevice(HumidDevice humidDevice);
|
||||
int deleteDevice(HumidDevice humidDevice);
|
||||
int updateValue(HumidDevice humidDevice);
|
||||
int insertLog(HumidDevice humidDevice);
|
||||
IPage<HumidDevice> findLogPage(Page<HumidDevice> page, @Param("params") HumidDevice humidDevice);
|
||||
}
|
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nu.modules.yiweilian.humid.mapper.HumidAlarmMapper">
|
||||
|
||||
<select id="findPage" parameterType="com.nu.modules.yiweilian.humid.entity.HumidAlarm" resultType="com.nu.modules.yiweilian.humid.entity.HumidAlarm">
|
||||
select
|
||||
id,
|
||||
sn,
|
||||
alarm_id as alarmId,
|
||||
wr_id as wrId,
|
||||
wr_data as wrData,
|
||||
wr_content as wrContent,
|
||||
wr_date as wrDate,
|
||||
clear_alarm_id as clearAlarmId,
|
||||
clear_id as clearId,
|
||||
clear_data as clearData,
|
||||
clear_content as clearContent,
|
||||
clear_date as clearDate,
|
||||
status
|
||||
from nu_iot_yiweilian_humid_alarm
|
||||
<where>
|
||||
<if test="params.sn != null and params.sn != ''">
|
||||
AND sn = #{params.sn}
|
||||
</if>
|
||||
<if test="params.alarmStartTime != null">
|
||||
AND wr_date >= #{params.alarmStartTime}
|
||||
</if>
|
||||
<if test="params.alarmEndTime != null">
|
||||
AND wr_date <= #{params.alarmEndTime}
|
||||
</if>
|
||||
<if test="params.clearStartTime != null">
|
||||
AND clear_date >= #{params.clearStartTime}
|
||||
</if>
|
||||
<if test="params.clearEndTime != null">
|
||||
AND clear_date <= #{params.clearEndTime}
|
||||
</if>
|
||||
<if test="params.status != null and params.status != ''">
|
||||
AND status = #{params.status}
|
||||
</if>
|
||||
</where>
|
||||
order by id desc
|
||||
</select>
|
||||
|
||||
<select id="getHumidAlarm" parameterType="com.nu.modules.yiweilian.humid.entity.HumidAlarm" resultType="com.nu.modules.yiweilian.humid.entity.HumidAlarm">
|
||||
select
|
||||
id,
|
||||
sn,
|
||||
alarm_id as alarmId,
|
||||
wr_id as wrId,
|
||||
wr_data as wrData,
|
||||
wr_content as wrContent,
|
||||
wr_date as wrDate,
|
||||
clear_alarm_id as clearAlarmId,
|
||||
clear_id as clearId,
|
||||
clear_data as clearData,
|
||||
clear_content as clearContent,
|
||||
clear_date as clearDate,
|
||||
status
|
||||
from nu_iot_yiweilian_humid_alarm
|
||||
where alarm_id = #{alarmId}
|
||||
</select>
|
||||
|
||||
<insert id="insertAlarm" parameterType="com.nu.modules.yiweilian.humid.entity.HumidAlarm">
|
||||
insert into nu_iot_yiweilian_humid_alarm(
|
||||
sn,
|
||||
alarm_id,
|
||||
wr_id,
|
||||
wr_data,
|
||||
wr_content,
|
||||
wr_date,
|
||||
status,
|
||||
create_time
|
||||
)
|
||||
values(
|
||||
#{sn},
|
||||
#{alarmId},
|
||||
#{wrId},
|
||||
#{wrData},
|
||||
#{wrContent},
|
||||
#{wrDate},
|
||||
'0',
|
||||
now()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateAlarm" parameterType="com.nu.modules.yiweilian.humid.entity.HumidAlarm">
|
||||
update nu_iot_yiweilian_humid_alarm
|
||||
set
|
||||
clear_alarm_id = #{clearAlarmId},
|
||||
clear_id = #{clearId},
|
||||
clear_data = #{clearData},
|
||||
clear_content = #{clearContent},
|
||||
clear_date = #{clearDate},
|
||||
status = '1',
|
||||
update_time = now()
|
||||
where status = '0'
|
||||
and sn = #{sn}
|
||||
and wr_id = #{wrId}
|
||||
and wr_date <= #{clearDate}
|
||||
</update>
|
||||
|
||||
</mapper>
|
|
@ -0,0 +1,340 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nu.modules.yiweilian.humid.mapper.HumidDeviceMapper">
|
||||
|
||||
<select id="findPage" parameterType="com.nu.modules.yiweilian.humid.entity.HumidDevice" resultType="com.nu.modules.yiweilian.humid.entity.HumidDevice">
|
||||
select
|
||||
id,
|
||||
sn,
|
||||
device_name as deviceName,
|
||||
device_types as deviceTypes,
|
||||
reporting_interval as reportingInterval,
|
||||
record_interval as recordInterval,
|
||||
history_report_time as historyReportTime,
|
||||
history_interval as historyInterval,
|
||||
temperature_high as temperatureHigh,
|
||||
temperature_low as temperatureLow,
|
||||
temperature_buffer as temperatureBuffer,
|
||||
humidity_high as humidityHigh,
|
||||
humidity_low as humidityLow,
|
||||
humidity_buffer as humidityBuffer,
|
||||
iz_outages as izOutages,
|
||||
iz_low_battery as izLowBattery,
|
||||
iz_online as izOnline,
|
||||
time_code as timeCode,
|
||||
temperature,
|
||||
humidity,
|
||||
status,
|
||||
reporting_time as reportingTime,
|
||||
electricity,
|
||||
nu_id as nuId,
|
||||
nu_name as nuName,
|
||||
depart_id as departId,
|
||||
depart_name as departName,
|
||||
depart_server_url as departServerUrl,
|
||||
old_server_url ,
|
||||
sync_type,
|
||||
(select count(*) from nu_iot_yiweilian_humid_alarm b where a.sn = b.sn and b.status = '0') as alarmCn
|
||||
from nu_iot_yiweilian_humid_device a
|
||||
<where>
|
||||
<if test="params.sn != null and params.sn != ''">
|
||||
AND sn = #{params.sn}
|
||||
</if>
|
||||
<if test="params.nuId != null and params.nuId != ''">
|
||||
AND nu_id = #{params.nuId}
|
||||
</if>
|
||||
<if test="params.departId != null and params.departId != ''">
|
||||
AND depart_id = #{params.departId}
|
||||
</if>
|
||||
<if test="params.status != null and params.status != ''">
|
||||
AND status = #{params.status}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getHumidDevice" parameterType="com.nu.modules.yiweilian.humid.entity.HumidDevice" resultType="com.nu.modules.yiweilian.humid.entity.HumidDevice">
|
||||
select
|
||||
id,
|
||||
sn,
|
||||
device_name as deviceName,
|
||||
device_types as deviceTypes,
|
||||
reporting_interval as reportingInterval,
|
||||
record_interval as recordInterval,
|
||||
history_report_time as historyReportTime,
|
||||
history_interval as historyInterval,
|
||||
temperature_high as temperatureHigh,
|
||||
temperature_low as temperatureLow,
|
||||
temperature_buffer as temperatureBuffer,
|
||||
humidity_high as humidityHigh,
|
||||
humidity_low as humidityLow,
|
||||
humidity_buffer as humidityBuffer,
|
||||
iz_outages as izOutages,
|
||||
iz_low_battery as izLowBattery,
|
||||
iz_online as izOnline,
|
||||
time_code as timeCode,
|
||||
temperature,
|
||||
humidity,
|
||||
status,
|
||||
reporting_time as reportingTime,
|
||||
electricity,
|
||||
nu_id as nuId,
|
||||
nu_name as nuName,
|
||||
depart_id as departId,
|
||||
depart_name as departName,
|
||||
depart_server_url as departServerUrl,
|
||||
old_server_url ,
|
||||
sync_type,
|
||||
(select count(*) from nu_iot_yiweilian_humid_alarm b where a.sn = b.sn and b.status = '0') as alarmCn
|
||||
from nu_iot_yiweilian_humid_device
|
||||
<where>
|
||||
<if test="sn != null and sn != ''">
|
||||
AND sn = #{sn}
|
||||
</if>
|
||||
<if test="nuId != null and nuId != ''">
|
||||
AND nu_id = #{nuId}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<insert id="insertDevice" parameterType="com.nu.modules.yiweilian.humid.entity.HumidDevice">
|
||||
insert into nu_iot_yiweilian_humid_device(
|
||||
sn,
|
||||
time_code,
|
||||
device_name,
|
||||
create_time
|
||||
)
|
||||
values(
|
||||
#{sn},
|
||||
#{timeCode},
|
||||
#{deviceName},
|
||||
now()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateDevice" parameterType="com.nu.modules.yiweilian.humid.entity.HumidDevice">
|
||||
update nu_iot_yiweilian_humid_device
|
||||
set
|
||||
device_name = #{deviceName},
|
||||
device_types = #{deviceTypes},
|
||||
reporting_interval = #{reportingInterval},
|
||||
record_interval = #{recordInterval},
|
||||
history_report_time = #{historyReportTime},
|
||||
history_interval = #{historyInterval},
|
||||
temperature_high = #{temperatureHigh},
|
||||
temperature_low = #{temperatureLow},
|
||||
temperature_buffer = #{temperatureBuffer},
|
||||
humidity_high = #{humidityHigh},
|
||||
humidity_low = #{humidityLow},
|
||||
humidity_buffer = #{humidityBuffer},
|
||||
iz_outages = #{izOutages},
|
||||
iz_low_battery = #{izLowBattery},
|
||||
iz_online = #{izOnline},
|
||||
time_code = #{timeCode},
|
||||
update_time = now()
|
||||
where sn = #{sn}
|
||||
</update>
|
||||
|
||||
<delete id="deleteDevice" parameterType="com.nu.modules.yiweilian.humid.entity.HumidDevice">
|
||||
delete from nu_iot_yiweilian_humid_device where sn = #{sn}
|
||||
</delete>
|
||||
|
||||
<update id="updateValue" parameterType="com.nu.modules.yiweilian.humid.entity.HumidDevice">
|
||||
update nu_iot_yiweilian_humid_device
|
||||
set
|
||||
temperature = #{temperature},
|
||||
humidity = #{humidity},
|
||||
status = #{status},
|
||||
reporting_time = #{reportingTime},
|
||||
electricity = #{electricity}
|
||||
where sn = #{sn}
|
||||
</update>
|
||||
|
||||
<insert id="insertLog" parameterType="com.nu.modules.yiweilian.humid.entity.HumidDevice">
|
||||
insert into nu_iot_yiweilian_humid_device_log(
|
||||
sn,
|
||||
<if test="timeCode != null and timeCode != ''">
|
||||
time_code,
|
||||
</if>
|
||||
<if test="deviceName != null and deviceName != ''">
|
||||
device_name,
|
||||
</if>
|
||||
<if test="deviceTypes != null and deviceTypes != ''">
|
||||
device_types,
|
||||
</if>
|
||||
<if test="reportingInterval != null and reportingInterval != ''">
|
||||
reporting_interval,
|
||||
</if>
|
||||
<if test="recordInterval != null and recordInterval != ''">
|
||||
record_interval,
|
||||
</if>
|
||||
<if test="historyReportTime != null and historyReportTime != ''">
|
||||
history_report_time,
|
||||
</if>
|
||||
<if test="historyInterval != null and historyInterval != ''">
|
||||
history_interval,
|
||||
</if>
|
||||
<if test="temperatureHigh != null and temperatureHigh != ''">
|
||||
temperature_high,
|
||||
</if>
|
||||
<if test="temperatureLow != null and temperatureLow != ''">
|
||||
temperature_low,
|
||||
</if>
|
||||
<if test="temperatureBuffer != null and temperatureBuffer != ''">
|
||||
temperature_buffer,
|
||||
</if>
|
||||
<if test="humidityHigh != null and humidityHigh != ''">
|
||||
humidity_high,
|
||||
</if>
|
||||
<if test="humidityLow != null and humidityLow != ''">
|
||||
humidity_low,
|
||||
</if>
|
||||
<if test="humidityBuffer != null and humidityBuffer != ''">
|
||||
humidity_buffer,
|
||||
</if>
|
||||
<if test="izOutages != null and izOutages != ''">
|
||||
iz_outages,
|
||||
</if>
|
||||
<if test="izLowBattery != null and izLowBattery != ''">
|
||||
iz_low_battery,
|
||||
</if>
|
||||
<if test="izOnline != null and izOnline != ''">
|
||||
iz_online,
|
||||
</if>
|
||||
<if test="temperature != null and temperature != ''">
|
||||
temperature,
|
||||
</if>
|
||||
<if test="humidity != null and humidity != ''">
|
||||
humidity,
|
||||
</if>
|
||||
<if test="status != null and status != ''">
|
||||
status,
|
||||
</if>
|
||||
<if test="reportingTime != null and reportingTime != ''">
|
||||
reporting_time,
|
||||
</if>
|
||||
<if test="electricity != null and electricity != ''">
|
||||
electricity,
|
||||
</if>
|
||||
opt_time,
|
||||
<if test="optBy != null and optBy != ''">
|
||||
opt_by,
|
||||
</if>
|
||||
opt_type
|
||||
)values(
|
||||
#{sn},
|
||||
<if test="timeCode != null and timeCode != ''">
|
||||
#{timeCode},
|
||||
</if>
|
||||
<if test="deviceName != null and deviceName != ''">
|
||||
#{deviceName},
|
||||
</if>
|
||||
<if test="deviceTypes != null and deviceTypes != ''">
|
||||
#{deviceTypes},
|
||||
</if>
|
||||
<if test="reportingInterval != null and reportingInterval != ''">
|
||||
#{reportingInterval},
|
||||
</if>
|
||||
<if test="recordInterval != null and recordInterval != ''">
|
||||
#{recordInterval},
|
||||
</if>
|
||||
<if test="historyReportTime != null and historyReportTime != ''">
|
||||
#{historyReportTime},
|
||||
</if>
|
||||
<if test="historyInterval != null and historyInterval != ''">
|
||||
#{historyInterval},
|
||||
</if>
|
||||
<if test="temperatureHigh != null and temperatureHigh != ''">
|
||||
#{temperatureHigh},
|
||||
</if>
|
||||
<if test="temperatureLow != null and temperatureLow != ''">
|
||||
#{temperatureLow},
|
||||
</if>
|
||||
<if test="temperatureBuffer != null and temperatureBuffer != ''">
|
||||
#{temperatureBuffer},
|
||||
</if>
|
||||
<if test="humidityHigh != null and humidityHigh != ''">
|
||||
#{humidityHigh},
|
||||
</if>
|
||||
<if test="humidityLow != null and humidityLow != ''">
|
||||
#{humidityLow},
|
||||
</if>
|
||||
<if test="humidityBuffer != null and humidityBuffer != ''">
|
||||
#{humidityBuffer},
|
||||
</if>
|
||||
<if test="izOutages != null and izOutages != ''">
|
||||
#{izOutages},
|
||||
</if>
|
||||
<if test="izLowBattery != null and izLowBattery != ''">
|
||||
#{izLowBattery},
|
||||
</if>
|
||||
<if test="izOnline != null and izOnline != ''">
|
||||
#{izOnline},
|
||||
</if>
|
||||
<if test="temperature != null and temperature != ''">
|
||||
#{temperature},
|
||||
</if>
|
||||
<if test="humidity != null and humidity != ''">
|
||||
#{humidity},
|
||||
</if>
|
||||
<if test="status != null and status != ''">
|
||||
#{status},
|
||||
</if>
|
||||
<if test="reportingTime != null and reportingTime != ''">
|
||||
#{reportingTime},
|
||||
</if>
|
||||
<if test="electricity != null and electricity != ''">
|
||||
#{electricity},
|
||||
</if>
|
||||
now(),
|
||||
<if test="optBy != null and optBy != ''">
|
||||
#{optBy},
|
||||
</if>
|
||||
#{optType}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<select id="findLogPage" parameterType="com.nu.modules.yiweilian.humid.entity.HumidDevice" resultType="com.nu.modules.yiweilian.humid.entity.HumidDevice">
|
||||
select
|
||||
id,
|
||||
sn,
|
||||
device_name as deviceName,
|
||||
time_code as timeCode,
|
||||
device_types as deviceTypes,
|
||||
reporting_interval as reportingInterval,
|
||||
record_interval as recordInterval,
|
||||
history_report_time as historyReportTime,
|
||||
history_interval as historyInterval,
|
||||
temperature_high as temperatureHigh,
|
||||
temperature_low as temperatureLow,
|
||||
temperature_buffer as temperatureBuffer,
|
||||
humidity_high as humidityHigh,
|
||||
humidity_low as humidityLow,
|
||||
humidity_buffer as humidityBuffer,
|
||||
iz_outages as izOutages,
|
||||
iz_low_battery as izLowBattery,
|
||||
iz_online as izOnline,
|
||||
temperature,
|
||||
humidity,
|
||||
status,
|
||||
reporting_time as reportingTime,
|
||||
electricity,
|
||||
opt_time as optTime,
|
||||
opt_by as optBy,
|
||||
opt_type as optType
|
||||
from nu_iot_yiweilian_humid_device_log
|
||||
<where>
|
||||
<if test="params.sn != null and params.sn != ''">
|
||||
AND sn = #{params.sn}
|
||||
</if>
|
||||
<if test="params.optType != null and params.optType != '' and params.optType == 'read' ">
|
||||
AND opt_type = 'read'
|
||||
</if>
|
||||
<if test="params.optType != null and params.optType != '' and params.optType != 'read' ">
|
||||
AND opt_type != 'read'
|
||||
AND opt_type = #{params.optType}
|
||||
</if>
|
||||
</where>
|
||||
order by id desc
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -0,0 +1,14 @@
|
|||
package com.nu.modules.yiweilian.humid.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nu.modules.yiweilian.humid.entity.HumidAlarm;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IHumidAlarmService extends IService<HumidAlarm> {
|
||||
IPage<HumidAlarm> findPage(Page<HumidAlarm> page, HumidAlarm humidAlarm);
|
||||
String getAlarm(HumidAlarm humidAlarm);
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package com.nu.modules.yiweilian.humid.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nu.modules.yiweilian.humid.entity.HumidDevice;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
|
||||
public interface IHumidDeviceService extends IService<HumidDevice> {
|
||||
IPage<HumidDevice> findPage(Page<HumidDevice> page, HumidDevice humidDevice);
|
||||
Result<String> insertDevice(HumidDevice humidDevice);
|
||||
String updateDeviceParameters(HumidDevice humidDevice,String type);
|
||||
String updateDeviceRealTime(HumidDevice humidDevice);
|
||||
Result<String> updateDevice(HumidDevice humidDevice);
|
||||
Result<String> deleteDevice(HumidDevice humidDevice);
|
||||
Result getDeviceParameters(HumidDevice humidDevice);
|
||||
IPage<HumidDevice> findLogPage(Page<HumidDevice> page, HumidDevice humidDevice);
|
||||
|
||||
void syncHumidDevice(String dataSourceCode, HumidDevice humidDevice);
|
||||
|
||||
void editHldy(HumidDevice humidDevice);
|
||||
}
|
|
@ -0,0 +1,138 @@
|
|||
package com.nu.modules.yiweilian.humid.service.impl;
|
||||
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nu.modules.yiweilian.humid.entity.HumidAlarm;
|
||||
import com.nu.modules.yiweilian.humid.mapper.HumidAlarmMapper;
|
||||
import com.nu.modules.yiweilian.humid.service.IHumidAlarmService;
|
||||
import com.nu.modules.yiweilian.utils.YiweilianApi;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecg.common.util.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class HumidAlarmServiceImpl extends ServiceImpl<HumidAlarmMapper, HumidAlarm> implements IHumidAlarmService {
|
||||
|
||||
@Autowired
|
||||
YiweilianApi yiweilianApi;
|
||||
|
||||
public IPage<HumidAlarm> findPage(Page<HumidAlarm> page, HumidAlarm HumidAlarm){
|
||||
return baseMapper.findPage(page,HumidAlarm);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取告警数据
|
||||
* @param HumidAlarm
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String getAlarm(HumidAlarm HumidAlarm){
|
||||
Map<String, Object> params = getParmas(0,1000,HumidAlarm);
|
||||
return updateAlarm(params,HumidAlarm);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取接口请求参数
|
||||
* @param page
|
||||
* @param limit
|
||||
* @param HumidAlarm
|
||||
* @return
|
||||
*/
|
||||
private Map<String, Object> getParmas(int page,int limit,HumidAlarm HumidAlarm){
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("rows", limit);
|
||||
params.put("page", page);
|
||||
params.put("type", 2);//根据时间排序 1降序 2升序 ,此字段貌似不好使
|
||||
if(HumidAlarm.getSn()!=null&&!HumidAlarm.getSn().equals("")){
|
||||
params.put("sn", HumidAlarm.getSn());
|
||||
}
|
||||
if(HumidAlarm.getAlarmStartTime()!=null){
|
||||
params.put("startTime", DateUtils.formatDate(HumidAlarm.getAlarmStartTime(),"yyyy-MM-dd HH:mm:ss"));
|
||||
}
|
||||
if(HumidAlarm.getAlarmEndTime()!=null){
|
||||
params.put("endTime", DateUtils.formatDate(HumidAlarm.getAlarmEndTime(),"yyyy-MM-dd HH:mm:ss"));
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新告警数据
|
||||
* @param map
|
||||
* @param HumidAlarm
|
||||
* @return
|
||||
*/
|
||||
private String updateAlarm(Map<String,Object> map,HumidAlarm HumidAlarm){
|
||||
String errorMsg = "";
|
||||
String responseStr = yiweilianApi.getWarningData(map);
|
||||
JSONObject jsonObject = new JSONObject(responseStr);
|
||||
Integer responseCode = jsonObject.getInt("code");
|
||||
if(responseCode.equals(0)){
|
||||
JSONObject dataObj = jsonObject.getJSONObject("data");
|
||||
Integer count = dataObj.getInt("count");
|
||||
Integer limit = dataObj.getInt("rows");
|
||||
Integer page = dataObj.getInt("page");
|
||||
JSONArray dataArr = dataObj.getJSONArray("dataList");
|
||||
if(dataArr.size()>0){
|
||||
List<JSONObject> list = new ArrayList<>();
|
||||
for (int i = 0; i < dataArr.size(); i++) {
|
||||
list.add(dataArr.getJSONObject(i));
|
||||
}
|
||||
Collections.sort(list, (o1, o2) -> {
|
||||
String name1 = o1.getStr("id");
|
||||
String name2 = o2.getStr("id");
|
||||
return name1.compareTo(name2);
|
||||
});
|
||||
dataArr = new JSONArray(list);
|
||||
}
|
||||
log.info("排序后:{}",dataArr.toString());
|
||||
for(int i=0;i<dataArr.size();i++){
|
||||
HumidAlarm ha = new HumidAlarm();
|
||||
JSONObject json = (JSONObject)dataArr.get(i);
|
||||
String alarmId = json.getStr("id");
|
||||
String sn = json.getStr("sn");
|
||||
String wrId = json.getStr("wrId");
|
||||
String wrData = json.getStr("wrData");
|
||||
String wrContent = json.getStr("content");
|
||||
String wrDate = json.getStr("date");
|
||||
|
||||
ha.setAlarmId(alarmId);
|
||||
ha.setSn(sn);
|
||||
Integer wrIdint = Integer.parseInt(wrId);
|
||||
if(wrIdint>100){
|
||||
wrIdint = wrIdint -100;
|
||||
ha.setWrId(""+wrIdint);
|
||||
ha.setClearAlarmId(alarmId);
|
||||
ha.setClearId(wrId);
|
||||
ha.setClearData(wrData);
|
||||
ha.setClearContent(wrContent);
|
||||
ha.setClearDate(wrDate);
|
||||
baseMapper.updateAlarm(ha);
|
||||
}else{
|
||||
HumidAlarm entity = baseMapper.getHumidAlarm(ha);
|
||||
if(entity == null){
|
||||
ha.setWrId(wrId);
|
||||
ha.setWrData(wrData);
|
||||
ha.setWrContent(wrContent);
|
||||
ha.setWrDate(wrDate);
|
||||
baseMapper.insertAlarm(ha);
|
||||
}
|
||||
}
|
||||
}
|
||||
if((page+1)*limit<count){
|
||||
Map<String, Object> params = getParmas(page+1,limit,HumidAlarm);
|
||||
errorMsg += updateAlarm(params,HumidAlarm);
|
||||
}
|
||||
}else{
|
||||
errorMsg = jsonObject.getStr("msg");
|
||||
}
|
||||
return errorMsg;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,523 @@
|
|||
package com.nu.modules.yiweilian.humid.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.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.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.mapper.HumidDeviceMapper;
|
||||
import com.nu.modules.yiweilian.humid.service.IHumidDeviceService;
|
||||
import com.nu.modules.yiweilian.utils.YiweilianApi;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class HumidDeviceServiceImpl extends ServiceImpl<HumidDeviceMapper, HumidDevice> implements IHumidDeviceService {
|
||||
|
||||
@Autowired
|
||||
YiweilianApi yiweilianApi;
|
||||
|
||||
|
||||
@Autowired
|
||||
public INuIotTqElectricitySyncLogService nuIotTqElectricitySyncLogService;
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private HumidDeviceServiceImpl syncImpl;
|
||||
public IPage<HumidDevice> findPage(Page<HumidDevice> page, HumidDevice humidDevice){
|
||||
return baseMapper.findPage(page,humidDevice);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*/
|
||||
@Override
|
||||
public Result<String> insertDevice(HumidDevice humidDevice){
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("sn", humidDevice.getSn());
|
||||
params.put("timeCode", humidDevice.getTimeCode());
|
||||
params.put("deviceName", humidDevice.getDeviceName());
|
||||
String responseStr = yiweilianApi.addDevice(params);
|
||||
JSONObject jsonObject = new JSONObject(responseStr);
|
||||
Integer responseCode = jsonObject.getInt("code");
|
||||
if(responseCode.equals(10003)){
|
||||
baseMapper.insertDevice(humidDevice);
|
||||
humidDevice.setOptType("insert");
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if(sysUser!=null){
|
||||
humidDevice.setOptBy(sysUser.getUsername());
|
||||
}
|
||||
baseMapper.insertLog(humidDevice);
|
||||
String error = updateDeviceParameters(humidDevice,"insert");
|
||||
if(!error.equals("")){
|
||||
String result = "设备添加成功,但是获取配置参数错误:"+ error;
|
||||
return Result.error(result);
|
||||
}
|
||||
String error2 = updateDeviceRealTime(humidDevice);
|
||||
if(!error2.equals("")){
|
||||
String result = "设备添加成功,但是获取实时数据错误:"+ error2;
|
||||
return Result.error(result);
|
||||
}
|
||||
return Result.OK("添加成功");
|
||||
}else{
|
||||
String result = "添加失败:"+jsonObject.getStr("msg");
|
||||
return Result.error(result);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新设备配置参数
|
||||
* @param humidDevice
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String updateDeviceParameters(HumidDevice humidDevice,String type){
|
||||
Map<String, Object> params = getParmas(0,100,humidDevice);
|
||||
return updateDeviceConfigs(params,humidDevice,type);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取接口请求参数
|
||||
* @param page
|
||||
* @param limit
|
||||
* @param humidDevice
|
||||
* @return
|
||||
*/
|
||||
private Map<String, Object> getParmas(int page,int limit,HumidDevice humidDevice){
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("rows", limit);
|
||||
params.put("page", page);
|
||||
if(humidDevice.getSn()!=null&&!humidDevice.getSn().equals("")){
|
||||
params.put("sn", humidDevice.getSn());
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
/**
|
||||
* 调用接口更新设备配置参数
|
||||
* @param map
|
||||
* @param humidDevice
|
||||
* @return
|
||||
*/
|
||||
private String updateDeviceConfigs(Map<String,Object> map,HumidDevice humidDevice,String type){
|
||||
String errorMsg = "";
|
||||
String responseStr = yiweilianApi.getDeviceConfigs(map);
|
||||
JSONObject jsonObject = new JSONObject(responseStr);
|
||||
Integer responseCode = jsonObject.getInt("code");
|
||||
if(responseCode.equals(0)){
|
||||
JSONObject dataObj = jsonObject.getJSONObject("data");
|
||||
Integer count = dataObj.getInt("count");
|
||||
Integer limit = dataObj.getInt("rows");
|
||||
Integer page = dataObj.getInt("page");
|
||||
JSONArray dataArr = dataObj.getJSONArray("dataList");
|
||||
for(int i=0;i<dataArr.size();i++){
|
||||
HumidDevice dh = new HumidDevice();
|
||||
JSONObject json = (JSONObject)dataArr.get(i);
|
||||
String sn = json.getStr("sn");
|
||||
String deviceName = json.getStr("deviceName");
|
||||
String deviceTypes = json.getStr("deviceTypes");
|
||||
String reportingInterval = json.getStr("reportingInterval");
|
||||
String recordInterval = json.getStr("recordInterval");
|
||||
String historyReportTime = json.getStr("historyReportTime");
|
||||
String historyInterval = json.getStr("historyInterval");
|
||||
String temperatureHigh = json.getStr("temperatureHigh");
|
||||
String temperatureLow = json.getStr("temperatureLow");
|
||||
String temperatureBuffer = json.getStr("temperatureBuffer");
|
||||
String humidityHigh = json.getStr("humidityHigh");
|
||||
String humidityLow = json.getStr("humidityLow");
|
||||
String humidityBuffer = json.getStr("humidityBuffer");
|
||||
String timeCode = json.getStr("timeCode");
|
||||
String isOutages = json.getStr("isOutages");
|
||||
String isLowBattery = json.getStr("isLowBattery");
|
||||
String isOnline = json.getStr("isOnline");
|
||||
|
||||
dh.setSn(sn);
|
||||
dh.setDeviceName(deviceName);
|
||||
dh.setDeviceTypes(deviceTypes);
|
||||
dh.setReportingInterval(reportingInterval);
|
||||
dh.setRecordInterval(recordInterval);
|
||||
dh.setHistoryReportTime(historyReportTime);
|
||||
dh.setHistoryInterval(historyInterval);
|
||||
dh.setTemperatureHigh(temperatureHigh);
|
||||
dh.setTemperatureLow(temperatureLow);
|
||||
dh.setTemperatureBuffer(temperatureBuffer);
|
||||
dh.setHumidityHigh(humidityHigh);
|
||||
dh.setHumidityLow(humidityLow);
|
||||
dh.setHumidityBuffer(humidityBuffer);
|
||||
dh.setTimeCode(timeCode);
|
||||
dh.setIzOutages(isOutages);
|
||||
dh.setIzLowBattery(isLowBattery);
|
||||
dh.setIzOnline(isOnline);
|
||||
baseMapper.updateDevice(dh);
|
||||
dh.setOptType(type);
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if(sysUser!=null){
|
||||
dh.setOptBy(sysUser.getUsername());
|
||||
}
|
||||
baseMapper.insertLog(dh);
|
||||
}
|
||||
if((page+1)*limit<count){
|
||||
Map<String, Object> params = getParmas(page+1,limit,humidDevice);
|
||||
errorMsg += updateDeviceConfigs(params,humidDevice,type);
|
||||
}
|
||||
}else{
|
||||
errorMsg = jsonObject.getStr("msg");
|
||||
}
|
||||
return errorMsg;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新设备实时数据(抄表)
|
||||
* @param humidDevice
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String updateDeviceRealTime(HumidDevice humidDevice){
|
||||
Map<String, Object> params = getRealTimeParmas(0,50,humidDevice);
|
||||
return updateDeviceRealTimeData(params,humidDevice);
|
||||
}
|
||||
/**
|
||||
* 获取实时数据接口请求参数
|
||||
* @param page
|
||||
* @param limit
|
||||
* @param humidDevice
|
||||
* @return
|
||||
*/
|
||||
private Map<String, Object> getRealTimeParmas(int page,int limit,HumidDevice humidDevice){
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("rows", limit);
|
||||
params.put("page", page);
|
||||
if(humidDevice.getSn()!=null&&!humidDevice.getSn().equals("")){
|
||||
String[] str = new String[1];
|
||||
str[0] = humidDevice.getSn();
|
||||
params.put("snList", str);
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
/**
|
||||
* 调用接口更新设备实时数据(抄表)
|
||||
* @param map
|
||||
* @param humidDevice
|
||||
* @return
|
||||
*/
|
||||
private String updateDeviceRealTimeData(Map<String,Object> map,HumidDevice humidDevice){
|
||||
String errorMsg = "";
|
||||
String responseStr = yiweilianApi.getRealTime(map);
|
||||
JSONObject jsonObject = new JSONObject(responseStr);
|
||||
Integer responseCode = jsonObject.getInt("code");
|
||||
if(responseCode.equals(0)){
|
||||
JSONObject dataObj = jsonObject.getJSONObject("data");
|
||||
Integer count = dataObj.getInt("count");
|
||||
Integer limit = dataObj.getInt("rows");
|
||||
Integer page = dataObj.getInt("page");
|
||||
JSONArray dataArr = dataObj.getJSONArray("dataList");
|
||||
for(int i=0;i<dataArr.size();i++){
|
||||
HumidDevice dh = new HumidDevice();
|
||||
JSONObject json = (JSONObject)dataArr.get(i);
|
||||
String sn = json.getStr("sn");
|
||||
String status = json.getStr("status");
|
||||
String electricity = json.getStr("electricity");
|
||||
String temperature = json.getStr("temperature");
|
||||
String humidity = json.getStr("humidity");
|
||||
String reportingTime = json.getStr("date");
|
||||
|
||||
dh.setSn(sn);
|
||||
dh.setStatus(status);
|
||||
dh.setElectricity(electricity);
|
||||
dh.setTemperature(temperature);
|
||||
dh.setHumidity(humidity);
|
||||
dh.setReportingTime(reportingTime);
|
||||
baseMapper.updateValue(dh);
|
||||
humidDevice.setOptType("read");
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if(sysUser!=null){
|
||||
humidDevice.setOptBy(sysUser.getUsername());
|
||||
}
|
||||
baseMapper.insertLog(humidDevice);
|
||||
}
|
||||
if((page+1)*limit<count){
|
||||
Map<String, Object> params = getParmas(page+1,limit,humidDevice);
|
||||
errorMsg += updateDeviceRealTimeData(params,humidDevice);
|
||||
}
|
||||
}else{
|
||||
errorMsg = jsonObject.getStr("msg");
|
||||
}
|
||||
return errorMsg;
|
||||
}
|
||||
|
||||
private Map<String, Object> getUpdateParmas(HumidDevice humidDevice){
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("sn", humidDevice.getSn());
|
||||
params.put("timeCode", humidDevice.getTimeCode());
|
||||
params.put("deviceName", humidDevice.getDeviceName());
|
||||
params.put("reportingInterval", humidDevice.getReportingInterval());
|
||||
params.put("recordInterval", humidDevice.getRecordInterval());
|
||||
params.put("historyReportTime", humidDevice.getHistoryReportTime());
|
||||
params.put("historyInterval", humidDevice.getHistoryInterval());
|
||||
params.put("temperatureHigh", humidDevice.getTemperatureHigh());
|
||||
params.put("temperatureLow", humidDevice.getTemperatureLow());
|
||||
params.put("temperatureBuffer", humidDevice.getTemperatureBuffer());
|
||||
params.put("humidityHigh", humidDevice.getHumidityHigh());
|
||||
params.put("humidityLow", humidDevice.getHumidityLow());
|
||||
params.put("humidityBuffer", humidDevice.getHumidityBuffer());
|
||||
params.put("isOutages", humidDevice.getIzOutages());
|
||||
params.put("isLowBattery", humidDevice.getIzLowBattery());
|
||||
params.put("isOnline", humidDevice.getIzOnline());
|
||||
return params;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*/
|
||||
@Override
|
||||
public Result<String> updateDevice(HumidDevice humidDevice){
|
||||
Map<String, Object> params = getUpdateParmas(humidDevice);
|
||||
String responseStr = yiweilianApi.updateDeviceConfig(params);
|
||||
JSONObject jsonObject = new JSONObject(responseStr);
|
||||
Integer responseCode = jsonObject.getInt("code");
|
||||
if(responseCode.equals(0)){
|
||||
baseMapper.updateDevice(humidDevice);
|
||||
humidDevice.setOptType("update");
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
humidDevice.setOptBy(sysUser.getUsername());
|
||||
baseMapper.insertLog(humidDevice);
|
||||
return Result.OK("修改成功");
|
||||
}else{
|
||||
String error = "修改失败:"+jsonObject.getStr("msg");
|
||||
return Result.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@Override
|
||||
public Result<String> deleteDevice(HumidDevice humidDevice){
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("sn", humidDevice.getSn());
|
||||
String responseStr = yiweilianApi.deleteDevice(params);
|
||||
JSONObject jsonObject = new JSONObject(responseStr);
|
||||
Integer responseCode = jsonObject.getInt("code");
|
||||
if(responseCode.equals(0)){
|
||||
baseMapper.deleteDevice(humidDevice);
|
||||
humidDevice.setOptType("delete");
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
humidDevice.setOptBy(sysUser.getUsername());
|
||||
baseMapper.insertLog(humidDevice);
|
||||
return Result.OK("删除成功");
|
||||
}else{
|
||||
String error = "删除失败:"+jsonObject.getStr("msg");
|
||||
return Result.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设备配置参数
|
||||
*/
|
||||
@Override
|
||||
public Result getDeviceParameters(HumidDevice humidDevice){
|
||||
if(humidDevice.getSn()==null||humidDevice.getSn().equals("")){
|
||||
return Result.error("请指定设备SN号");
|
||||
}
|
||||
Map<String, Object> params = getParmas(0,1,humidDevice);
|
||||
HumidDevice deviceParameters = getDeviceConfigs(params);
|
||||
if(deviceParameters!=null){
|
||||
return Result.OK(deviceParameters);
|
||||
}else{
|
||||
return Result.error("获取设备配置参数错误");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 调用接口获取设备配置参数
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
private HumidDevice getDeviceConfigs(Map<String,Object> map){
|
||||
HumidDevice dh = new HumidDevice();
|
||||
String responseStr = yiweilianApi.getDeviceConfigs(map);
|
||||
JSONObject jsonObject = new JSONObject(responseStr);
|
||||
Integer responseCode = jsonObject.getInt("code");
|
||||
if(responseCode.equals(0)){
|
||||
JSONObject dataObj = jsonObject.getJSONObject("data");
|
||||
JSONArray dataArr = dataObj.getJSONArray("dataList");
|
||||
for(int i=0;i<dataArr.size();i++){
|
||||
JSONObject json = (JSONObject)dataArr.get(i);
|
||||
String sn = json.getStr("sn");
|
||||
String deviceName = json.getStr("deviceName");
|
||||
String deviceTypes = json.getStr("deviceTypes");
|
||||
String reportingInterval = json.getStr("reportingInterval");
|
||||
String recordInterval = json.getStr("recordInterval");
|
||||
String historyReportTime = json.getStr("historyReportTime");
|
||||
String historyInterval = json.getStr("historyInterval");
|
||||
String temperatureHigh = json.getStr("temperatureHigh");
|
||||
String temperatureLow = json.getStr("temperatureLow");
|
||||
String temperatureBuffer = json.getStr("temperatureBuffer");
|
||||
String humidityHigh = json.getStr("humidityHigh");
|
||||
String humidityLow = json.getStr("humidityLow");
|
||||
String humidityBuffer = json.getStr("humidityBuffer");
|
||||
String timeCode = json.getStr("timeCode");
|
||||
String isOutages = json.getStr("isOutages");
|
||||
String isLowBattery = json.getStr("isLowBattery");
|
||||
String isOnline = json.getStr("isOnline");
|
||||
|
||||
dh.setSn(sn);
|
||||
dh.setDeviceName(deviceName);
|
||||
dh.setDeviceTypes(deviceTypes);
|
||||
dh.setReportingInterval(reportingInterval);
|
||||
dh.setRecordInterval(recordInterval);
|
||||
dh.setHistoryReportTime(historyReportTime);
|
||||
dh.setHistoryInterval(historyInterval);
|
||||
dh.setTemperatureHigh(temperatureHigh);
|
||||
dh.setTemperatureLow(temperatureLow);
|
||||
dh.setTemperatureBuffer(temperatureBuffer);
|
||||
dh.setHumidityHigh(humidityHigh);
|
||||
dh.setHumidityLow(humidityLow);
|
||||
dh.setHumidityBuffer(humidityBuffer);
|
||||
dh.setTimeCode(timeCode);
|
||||
dh.setIzOutages(isOutages);
|
||||
dh.setIzLowBattery(isLowBattery);
|
||||
dh.setIzOnline(isOnline);
|
||||
break;
|
||||
}
|
||||
}else{
|
||||
return null;
|
||||
}
|
||||
return dh;
|
||||
}
|
||||
|
||||
public IPage<HumidDevice> findLogPage(Page<HumidDevice> page, HumidDevice 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
package com.nu.modules.yiweilian.utils;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.google.gson.Gson;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.NameValuePair;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.impl.client.HttpClientBuilder;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class HttpTool {
|
||||
|
||||
/**
|
||||
* 发送http POST请求
|
||||
* @param url
|
||||
* @param map
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String httpClientPost(String url, Map<String,Object> map){
|
||||
String errorMsg = "";
|
||||
Gson gson = new Gson();
|
||||
String map2 = gson.toJson(map);
|
||||
System.out.println(map2);
|
||||
try {
|
||||
URL obj = new URL(url);
|
||||
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
|
||||
// 设置请求方法为 POST
|
||||
con.setRequestMethod("POST");
|
||||
// 设置请求头
|
||||
con.setRequestProperty("Content-Type", "application/json"); // 声明发送 JSON
|
||||
con.setRequestProperty("Accept", "application/json"); // 声明期望接收 JSON
|
||||
con.setDoOutput(true); // 允许写入请求体
|
||||
// 写入 JSON 请求体
|
||||
try (OutputStream os = con.getOutputStream()) {
|
||||
byte[] input = map2.getBytes("utf-8");
|
||||
os.write(input, 0, input.length);
|
||||
}
|
||||
// 获取响应码
|
||||
int responseCode = con.getResponseCode();
|
||||
System.out.println("Response Code: " + responseCode);
|
||||
// 读取响应(成功时)
|
||||
if (responseCode == HttpURLConnection.HTTP_OK) { // 200
|
||||
try (BufferedReader br = new BufferedReader(
|
||||
new InputStreamReader(con.getInputStream(), "UTF-8"))) {
|
||||
StringBuilder response = new StringBuilder();
|
||||
String responseLine;
|
||||
while ((responseLine = br.readLine()) != null) {
|
||||
response.append(responseLine.trim());
|
||||
}
|
||||
System.out.println("Response: " + response.toString());
|
||||
errorMsg = response.toString();
|
||||
}
|
||||
} else { // 错误时读取错误流
|
||||
try (BufferedReader br = new BufferedReader(
|
||||
new InputStreamReader(con.getErrorStream(), "UTF-8"))) {
|
||||
StringBuilder errorResponse = new StringBuilder();
|
||||
String errorLine;
|
||||
while ((errorLine = br.readLine()) != null) {
|
||||
errorResponse.append(errorLine.trim());
|
||||
}
|
||||
System.out.println("Error Response: " + errorResponse.toString());
|
||||
errorMsg = "{\"code\":"+responseCode+",\"msg\":\""+errorResponse.toString()+"\" }";
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return errorMsg;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,124 @@
|
|||
package com.nu.modules.yiweilian.utils;
|
||||
|
||||
import com.nu.modules.yiweilian.common.entity.YiweilianConfig;
|
||||
import com.nu.modules.yiweilian.common.mapper.YiweilianConfigMapper;
|
||||
import com.nu.modules.yiweilian.enums.YiweilianApiEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class YiweilianApi {
|
||||
|
||||
YiweilianConfig yiweilianConfig;
|
||||
|
||||
@Autowired
|
||||
YiweilianConfigMapper yiweilianConfigMapper;
|
||||
|
||||
private void initYiweilianConfig(){
|
||||
if(yiweilianConfig==null){
|
||||
yiweilianConfig = yiweilianConfigMapper.getConfig();
|
||||
}
|
||||
}
|
||||
|
||||
public YiweilianConfig getYiweilianConfig(){
|
||||
this.initYiweilianConfig();
|
||||
return yiweilianConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加设备
|
||||
*/
|
||||
public String addDevice(Map<String, Object> params){
|
||||
this.initYiweilianConfig();
|
||||
params.put("clientId", yiweilianConfig.getClientId());
|
||||
log.info("addDevice:request:{}",params);
|
||||
String url = yiweilianConfig.getRequestUrl()+ YiweilianApiEnum.ADD_DEVICE.getValue();
|
||||
String responseStr = HttpTool.httpClientPost(url, params);
|
||||
log.info("addDevice:response:{}",responseStr);
|
||||
return responseStr;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改设备配置
|
||||
*/
|
||||
public String updateDeviceConfig(Map<String, Object> params){
|
||||
this.initYiweilianConfig();
|
||||
params.put("clientId", yiweilianConfig.getClientId());
|
||||
log.info("updateDeviceConfig:request:{}",params);
|
||||
String url = yiweilianConfig.getRequestUrl()+YiweilianApiEnum.UPDATE_DEVICE_CONFIG.getValue();
|
||||
String responseStr = HttpTool.httpClientPost(url, params);
|
||||
log.info("updateDeviceConfig:response:{}",responseStr);
|
||||
return responseStr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除设备
|
||||
*/
|
||||
public String deleteDevice(Map<String, Object> params){
|
||||
this.initYiweilianConfig();
|
||||
params.put("clientId", yiweilianConfig.getClientId());
|
||||
log.info("deleteDevice:request:{}",params);
|
||||
String url = yiweilianConfig.getRequestUrl()+YiweilianApiEnum.DELETE_DEVICE.getValue();
|
||||
String responseStr = HttpTool.httpClientPost(url, params);
|
||||
log.info("deleteDevice:response:{}",responseStr);
|
||||
return responseStr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询设备列表(分页)
|
||||
*/
|
||||
// public String getDevices(Map<String, Object> params){
|
||||
// this.initYiweilianConfig();
|
||||
// params.put("clientId", yiweilianConfig.getClientId());
|
||||
// log.info("getDevices:request:{}",params);
|
||||
// String url = yiweilianConfig.getRequestUrl()+YiweilianApiEnum.GET_DEVICES.getValue();
|
||||
// String responseStr = HttpTool.httpClientPost(url, params);
|
||||
// log.info("getDevices:response:{}",responseStr);
|
||||
// return responseStr;
|
||||
// }
|
||||
|
||||
/**
|
||||
* 查询设备列表含配置信息(分页)
|
||||
*/
|
||||
public String getDeviceConfigs(Map<String, Object> params){
|
||||
this.initYiweilianConfig();
|
||||
params.put("clientId", yiweilianConfig.getClientId());
|
||||
log.info("getDeviceConfigs:request:{}",params);
|
||||
String url = yiweilianConfig.getRequestUrl()+YiweilianApiEnum.GET_DEVICE_CONFIGS.getValue();
|
||||
String responseStr = HttpTool.httpClientPost(url, params);
|
||||
log.info("getDeviceConfigs:response:{}",responseStr);
|
||||
return responseStr;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询设备实时数据(分页)
|
||||
*/
|
||||
public String getRealTime(Map<String, Object> params){
|
||||
this.initYiweilianConfig();
|
||||
params.put("clientId", yiweilianConfig.getClientId());
|
||||
log.info("getRealTime:request:{}",params);
|
||||
String url = yiweilianConfig.getRequestUrl()+YiweilianApiEnum.GET_REAL_TIME.getValue();
|
||||
String responseStr = HttpTool.httpClientPost(url, params);
|
||||
log.info("getRealTime:response:{}",responseStr);
|
||||
return responseStr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询告警记录(分页)
|
||||
*/
|
||||
public String getWarningData(Map<String, Object> params){
|
||||
this.initYiweilianConfig();
|
||||
params.put("clientId", yiweilianConfig.getClientId());
|
||||
log.info("getWarningData:request:{}",params);
|
||||
String url = yiweilianConfig.getRequestUrl()+YiweilianApiEnum.GET_WARNING_DATA.getValue();
|
||||
String responseStr = HttpTool.httpClientPost(url, params);
|
||||
log.info("getWarningData:response:{}",responseStr);
|
||||
return responseStr;
|
||||
}
|
||||
|
||||
}
|
|
@ -379,10 +379,10 @@ downloadkey: hP2K9Z!WLuj"M#8,
|
|||
wxpay:
|
||||
# APIv3密钥
|
||||
api-v3-key: asdfiuzwe3534565478WETDSAFRWEq1E
|
||||
# APPID
|
||||
appid: wx8fc3e4305d2fbf0b
|
||||
# appsecret
|
||||
appsecret: 3bf3dd4ec72f591432db6b28c2c044e5
|
||||
# APPID(小程序)
|
||||
appid: wx53bc8a44e780d26a
|
||||
# appsecret(小程序)
|
||||
appsecret: 7dfcbf80cb4ff379454a3d6b1f8bd61f
|
||||
# 商户ID
|
||||
mch-id: 1717618860
|
||||
# 商户API证书序列号
|
||||
|
|
|
@ -376,10 +376,10 @@ downloadkey: hP2K9Z!WLuj"M#8,
|
|||
wxpay:
|
||||
# APIv3密钥
|
||||
api-v3-key: asdfiuzwe3534565478WETDSAFRWEq1E
|
||||
# APPID
|
||||
appid: wx8fc3e4305d2fbf0b
|
||||
# appsecret
|
||||
appsecret: 3bf3dd4ec72f591432db6b28c2c044e5
|
||||
# APPID(小程序)
|
||||
appid: wx53bc8a44e780d26a
|
||||
# appsecret(小程序)
|
||||
appsecret: 7dfcbf80cb4ff379454a3d6b1f8bd61f
|
||||
# 商户ID
|
||||
mch-id: 1717618860
|
||||
# 商户API证书序列号
|
||||
|
|
Loading…
Reference in New Issue