3、提供pad端接口:智能水表-开阀/关阀功能接口

4、提供pad端接口:智能水表-清零功能接口
5、提供pad端接口:智能水表-日志功能接口(抄表日志、清零日志、开阀日志、关阀日志)
6、提供pad端接口:智能水表-设备报修功能接口
7、提供pad端接口:智能电表-设备信息查询接口
8、提供pad端接口:智能电表-抄表功能接口
9、提供pad端接口:智能电表-开阀/关阀功能接口
10、提供pad端接口:智能电表-清零功能接口
11、提供pad端接口:智能电表-日志功能接口(抄表日志、清零日志、电表拉闸日志、电表合闸日志)
12、提供pad端接口:智能电表-设备报修功能接口
This commit is contained in:
1378012178@qq.com 2025-10-23 17:23:18 +08:00
parent 45830f8f16
commit 91b6b1d00f
14 changed files with 824 additions and 261 deletions

View File

@ -0,0 +1,42 @@
package com.nu.modules.pad.iot.apiRequestLog.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nu.entity.ApiRequestLogEntity;
import com.nu.modules.apirequestlog.api.IIotApiRequestLog;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.api.vo.Result;
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;
@RestController
@RequestMapping("/api/iot/requestLog")
public class IotApiRequestLogApi {
@Autowired
private IIotApiRequestLog iIotApiRequestLog;
/**
* 分页列表查询
*
* @param nuIotTqApiRequestLogEntity
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "api请求日志-分页列表查询")
@ApiOperation(value = "api请求日志-分页列表查询", notes = "api请求日志-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<ApiRequestLogEntity>> queryPageList(ApiRequestLogEntity nuIotTqApiRequestLogEntity,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
return Result.ok(iIotApiRequestLog.getApiRequestLogIPage(nuIotTqApiRequestLogEntity, pageNo, pageSize, req));
}
}

View File

@ -0,0 +1,77 @@
package com.nu.modules.pad.iot.electricityMeter.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nu.entity.ElectricityMeterEntity;
import com.nu.modules.electricitymeter.api.IElectricityMeterApi;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("/api/iot/electricityMeter")
public class ElectricityMeterApi {
@Autowired
private IElectricityMeterApi electricityMeterApi;
/**
* 抄表
*
* @param electricityMeterEntity
* @return
*/
@GetMapping(value = "/eleRead")
public Result<String> eleRead(ElectricityMeterEntity electricityMeterEntity) {
return electricityMeterApi.eleRead(electricityMeterEntity);
}
/**
* 拉闸合闸
*
* @param electricityMeterEntity
* @return
*/
@GetMapping(value = "/eleControl")
public Result<String> eleControl(ElectricityMeterEntity electricityMeterEntity) {
return electricityMeterApi.eleControl(electricityMeterEntity);
}
/**
* 分页列表查询
*
* @param electricityMeterEntity
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@GetMapping(value = "/list")
public Result<IPage<ElectricityMeterEntity>> queryPageList(ElectricityMeterEntity electricityMeterEntity,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
return Result.OK(electricityMeterApi.list(electricityMeterEntity, pageNo, pageSize, req));
}
/**
* 获取设备信息
* @param electricityMeterEntity
* @return
*/
@GetMapping(value = "/eleReset")
public Result<String> eleReset(ElectricityMeterEntity electricityMeterEntity) {
return electricityMeterApi.eleReset(electricityMeterEntity);
}
@AutoLog(value = "设备报修")
@ApiOperation(value="设备报修", notes="设备报修")
@RequestMapping(value = "/baoxiu", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> baoxiu(@RequestBody ElectricityMeterEntity electricityMeterEntity) {
electricityMeterApi.baoxiu(electricityMeterEntity);
return Result.OK("操作成功!");
}
}

View File

@ -0,0 +1,77 @@
package com.nu.modules.pad.iot.water.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nu.entity.WaterMeterEntity;
import com.nu.modules.water.api.IWaterApi;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("/api/iot/water")
public class WaterApi {
@Autowired
private IWaterApi waterApi;
/**
* 分页列表查询
*
* @param waterMeterEntity
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@GetMapping(value = "/list")
public Result<IPage<WaterMeterEntity>> queryPageList(WaterMeterEntity waterMeterEntity,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
return Result.ok(waterApi.list(waterMeterEntity, pageNo, pageSize, req));
}
/**
* 清零
* @param waterMeterEntity
* @return
*/
@GetMapping(value = "/waterReset")
public Result<String> waterReset(WaterMeterEntity waterMeterEntity) {
return waterApi.waterReset(waterMeterEntity);
}
/**
* 开闸关闸
* @param waterMeterEntity
* @return
*/
@GetMapping(value = "/waterControl")
public Result<String> waterControl(WaterMeterEntity waterMeterEntity) {
return waterApi.waterControl(waterMeterEntity);
}
/**
* 抄表
* @param waterMeterEntity
* @return
*/
@GetMapping(value = "/waterRead")
public Result<String> waterRead(WaterMeterEntity waterMeterEntity) {
return waterApi.waterRead(waterMeterEntity);
}
@AutoLog(value = "设备报修")
@ApiOperation(value="设备报修", notes="设备报修")
@RequestMapping(value = "/baoxiu", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> baoxiu(@RequestBody WaterMeterEntity waterMeterEntity) {
waterApi.baoxiu(waterMeterEntity);
return Result.OK("操作成功!");
}
}

View File

@ -0,0 +1,72 @@
package com.nu.entity;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class ApiRequestLogEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
private Integer id;
/**
* 操作ID
*/
private String oprId;
/**
* 采集器号
*/
private String cid;
/**
* 表号
*/
private String address;
/**
* 类型
*/
private String type;
/**
* 请求时的值
*/
private String requestValue;
/**
* 请求时间
*/
private String requestTime;
/**
* 请求状态
*/
private String requestStatus;
/**
* 请求描述
*/
private String requestRemark;
/**
* 反馈值
*/
private String resolveValue;
/**
* 反馈时间
*/
private String resolveTime;
/**
* 反馈状态
*/
private String resolveStatus;
/**
* 反馈描述
*/
private String resolveRemark;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
}

View File

@ -0,0 +1,34 @@
package com.nu.entity;
import lombok.Data;
import java.io.Serializable;
@Data
public class ElectricityMeterEntity implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String cid;
private String address;
private Integer type;//9清零 3抄表 10电表拉闸 11电表合闸
private String eleValue; //电表-电量值
private String relayState; //电表-阀门状态 1 表示合闸/开阀 0 表示拉闸/关阀其他表示未知状态或异常
private String online; //采集器-在线状态 true 在线 false 离线
private String csq; //采集器-信号值 1-31 20以上算信号稳定
private String disconnectTime; //采集器-上次掉线时间 online = false
private String connectTime; //采集器-上次上线时间 online = true
private String readTime; //电表-上次查表时间
private String remark;
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;//原机构名称
private String maintainStatus;//维修状态
}

View File

@ -0,0 +1,40 @@
package com.nu.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.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
@Data
public class WaterMeterEntity implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String cid;
private String address;
private Integer type;//49清零 42抄表 43水表开闸 53水表关闸
private String waterValue; //电表-电量值
private String relayState; //水表-阀门状态 1 开阀 0 表示关阀其他表示未知状态或异常
private String batteryState; //水表电池状态 0 正常 1 电池低电压,其他 电池低电压
private String online; //采集器-在线状态 true 在线 false 离线
private String csq; //采集器-信号值 1-31 20以上算信号稳定
private String disconnectTime; //采集器-上次掉线时间 online = false
private String connectTime; //采集器-上次上线时间 online = true
private String readTime; //电表-上次查表时间
private String remark;
private String nuId;//护理单元ID
private String nuName;//护理单元
private String departId;//机构ID
private String departName;//机构名称
private String departServerUrl;//机构服务地址
private String maintainStatus;//维修状态
}

View File

@ -0,0 +1,10 @@
package com.nu.modules.apirequestlog.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nu.entity.ApiRequestLogEntity;
import javax.servlet.http.HttpServletRequest;
public interface IIotApiRequestLog {
IPage<ApiRequestLogEntity> getApiRequestLogIPage(ApiRequestLogEntity nuIotTqApiRequestLogEntity, Integer pageNo, Integer pageSize, HttpServletRequest req);
}

View File

@ -0,0 +1,20 @@
package com.nu.modules.electricitymeter.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nu.entity.ElectricityMeterEntity;
import org.jeecg.common.api.vo.Result;
import javax.servlet.http.HttpServletRequest;
public interface IElectricityMeterApi {
Result<String> eleRead(ElectricityMeterEntity electricityMeter);
Result<String> eleControl(ElectricityMeterEntity electricityMeter);
IPage<ElectricityMeterEntity> list(ElectricityMeterEntity electricityMeterEntity, Integer pageNo, Integer pageSize, HttpServletRequest req);
Result<String> eleReset(ElectricityMeterEntity electricityMeterEntity);
void baoxiu(ElectricityMeterEntity electricityMeterEntity);
}

View File

@ -0,0 +1,16 @@
package com.nu.modules.water.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nu.entity.WaterMeterEntity;
import org.jeecg.common.api.vo.Result;
import javax.servlet.http.HttpServletRequest;
public interface IWaterApi {
IPage<WaterMeterEntity> list(WaterMeterEntity waterMeterEntity, Integer pageNo, Integer pageSize, HttpServletRequest req);
Result<String> waterReset(WaterMeterEntity waterMeterEntity);
Result<String> waterControl(WaterMeterEntity waterMeterEntity);
Result<String> waterRead(WaterMeterEntity waterMeterEntity);
void baoxiu(WaterMeterEntity waterMeterEntity);
}

View File

@ -19,6 +19,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
@ -57,58 +58,7 @@ public class ApiRequestLogController extends JeecgController<ApiRequestLog, IApi
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
// 自定义查询规则
Map<String, QueryRuleEnum> customeRuleMap = new HashMap<>();
// 自定义多选的查询规则为LIKE_WITH_OR
customeRuleMap.put("type", QueryRuleEnum.LIKE_WITH_OR);
customeRuleMap.put("requestStatus", QueryRuleEnum.LIKE_WITH_OR);
customeRuleMap.put("resolveStatus", QueryRuleEnum.LIKE_WITH_OR);
QueryWrapper<ApiRequestLog> queryWrapper = QueryGenerator.initQueryWrapper(nuIotTqApiRequestLog, req.getParameterMap(),customeRuleMap);
Page<ApiRequestLog> page = new Page<ApiRequestLog>(pageNo, pageSize);
IPage<ApiRequestLog> pageList = nuIotTqApiRequestLogService.page(page, queryWrapper);
// 获取当前时间
Calendar calendar = Calendar.getInstance();
// 减去5分钟
calendar.add(Calendar.MINUTE, -5);
// 转换为Date对象
Date fiveMinutesAgo = calendar.getTime();
for(ApiRequestLog par:pageList.getRecords()){
String dateStr = par.getRequestTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = sdf.parse(dateStr);
System.out.println("Date: " + date); // 输出Date: Tue Aug 15 14:30:00 CST 2023
} catch (ParseException e) {
e.printStackTrace();
}
//如果返回状态为空并且超过了5分钟则返回抄表失败
if(StringUtils.isBlank(par.getResolveStatus()) && fiveMinutesAgo.getTime() > date.getTime()){
//9清零 3抄表 10电表拉闸 11电表合闸 49水表清零 42水表抄表 43水表开闸 53水表关闸
if(StringUtils.equals("9",par.getType())){
par.setResolveStatus("清零失败");
}else if (StringUtils.equals("3",par.getType())){
par.setResolveStatus("抄表失败");
}else if(StringUtils.equals("10",par.getType())){
par.setResolveStatus("拉闸失败");
}else if (StringUtils.equals("11",par.getType())){
par.setResolveStatus("合闸失败");
}else if(StringUtils.equals("49",par.getType())){
par.setResolveStatus("清零失败");
}else if (StringUtils.equals("42",par.getType())){
par.setResolveStatus("抄表失败");
}else if (StringUtils.equals("43",par.getType())){
par.setResolveStatus("开阀失败");
}else if (StringUtils.equals("53",par.getType())){
par.setResolveStatus("关阀失败");
}
//判断返回状态为空并且没有超过了5分钟则返回抄表中
}else if(StringUtils.isBlank(par.getResolveStatus())){
par.setResolveStatus(par.getRequestStatus());
}
//返回状态有值则保持原样输出返回状态值
}
IPage<ApiRequestLog> pageList = nuIotTqApiRequestLogService.getApiRequestLogIPage(nuIotTqApiRequestLog, pageNo, pageSize, req);
return Result.OK(pageList);
}

View File

@ -1,8 +1,11 @@
package com.nu.modules.tq.apiRequestLog.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nu.modules.tq.apiRequestLog.entity.ApiRequestLog;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
/**
* @Description: api请求日志
* @Author: jeecg-boot
@ -11,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IApiRequestLogService extends IService<ApiRequestLog> {
IPage<ApiRequestLog> getApiRequestLogIPage(ApiRequestLog nuIotTqApiRequestLog, Integer pageNo, Integer pageSize, HttpServletRequest req);
}

View File

@ -1,11 +1,27 @@
package com.nu.modules.tq.apiRequestLog.service.impl;
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.entity.ApiRequestLogEntity;
import com.nu.modules.apirequestlog.api.IIotApiRequestLog;
import com.nu.modules.tq.apiRequestLog.entity.ApiRequestLog;
import com.nu.modules.tq.apiRequestLog.mapper.ApiRequestLogMapper;
import com.nu.modules.tq.apiRequestLog.service.IApiRequestLogService;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.query.QueryRuleEnum;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Description: api请求日志
@ -14,6 +30,88 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
* @Version: V1.0
*/
@Service
public class ApiRequestLogServiceImpl extends ServiceImpl<ApiRequestLogMapper, ApiRequestLog> implements IApiRequestLogService {
public class ApiRequestLogServiceImpl extends ServiceImpl<ApiRequestLogMapper, ApiRequestLog> implements IApiRequestLogService, IIotApiRequestLog {
@Lazy
@Autowired
private IApiRequestLogService nuIotTqApiRequestLogService;
@Override
public IPage<ApiRequestLog> getApiRequestLogIPage(ApiRequestLog nuIotTqApiRequestLog, Integer pageNo, Integer pageSize, HttpServletRequest req) {
// 自定义查询规则
Map<String, QueryRuleEnum> customeRuleMap = new HashMap<>();
// 自定义多选的查询规则为LIKE_WITH_OR
customeRuleMap.put("type", QueryRuleEnum.LIKE_WITH_OR);
customeRuleMap.put("requestStatus", QueryRuleEnum.LIKE_WITH_OR);
customeRuleMap.put("resolveStatus", QueryRuleEnum.LIKE_WITH_OR);
QueryWrapper<ApiRequestLog> queryWrapper = QueryGenerator.initQueryWrapper(nuIotTqApiRequestLog, req.getParameterMap(),customeRuleMap);
Page<ApiRequestLog> page = new Page<ApiRequestLog>(pageNo, pageSize);
IPage<ApiRequestLog> pageList = nuIotTqApiRequestLogService.page(page, queryWrapper);
// 获取当前时间
Calendar calendar = Calendar.getInstance();
// 减去5分钟
calendar.add(Calendar.MINUTE, -5);
// 转换为Date对象
Date fiveMinutesAgo = calendar.getTime();
for(ApiRequestLog par:pageList.getRecords()){
String dateStr = par.getRequestTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = sdf.parse(dateStr);
System.out.println("Date: " + date); // 输出Date: Tue Aug 15 14:30:00 CST 2023
} catch (ParseException e) {
e.printStackTrace();
}
//如果返回状态为空并且超过了5分钟则返回抄表失败
if(StringUtils.isBlank(par.getResolveStatus()) && fiveMinutesAgo.getTime() > date.getTime()){
//9清零 3抄表 10电表拉闸 11电表合闸 49水表清零 42水表抄表 43水表开闸 53水表关闸
if(StringUtils.equals("9",par.getType())){
par.setResolveStatus("清零失败");
}else if (StringUtils.equals("3",par.getType())){
par.setResolveStatus("抄表失败");
}else if(StringUtils.equals("10",par.getType())){
par.setResolveStatus("拉闸失败");
}else if (StringUtils.equals("11",par.getType())){
par.setResolveStatus("合闸失败");
}else if(StringUtils.equals("49",par.getType())){
par.setResolveStatus("清零失败");
}else if (StringUtils.equals("42",par.getType())){
par.setResolveStatus("抄表失败");
}else if (StringUtils.equals("43",par.getType())){
par.setResolveStatus("开阀失败");
}else if (StringUtils.equals("53",par.getType())){
par.setResolveStatus("关阀失败");
}
//判断返回状态为空并且没有超过了5分钟则返回抄表中
}else if(StringUtils.isBlank(par.getResolveStatus())){
par.setResolveStatus(par.getRequestStatus());
}
//返回状态有值则保持原样输出返回状态值
}
return pageList;
}
@Override
public IPage<ApiRequestLogEntity> getApiRequestLogIPage(ApiRequestLogEntity nuIotTqApiRequestLogEntity, Integer pageNo, Integer pageSize, HttpServletRequest req) {
ApiRequestLog apiRequestLog = new ApiRequestLog();
BeanUtils.copyProperties(nuIotTqApiRequestLogEntity,apiRequestLog);
IPage<ApiRequestLog> apiRequestLogIPage = nuIotTqApiRequestLogService.getApiRequestLogIPage(apiRequestLog, pageNo, pageSize, req);
List<ApiRequestLogEntity> entityList = apiRequestLogIPage.getRecords().stream()
.map(log -> {
ApiRequestLogEntity entity = new ApiRequestLogEntity();
BeanUtils.copyProperties(log, entity);
return entity;
})
.collect(Collectors.toList());
// 4. 构造新的 IPage<ApiRequestLogEntity>
IPage<ApiRequestLogEntity> resultPage = new Page<>(apiRequestLogIPage.getCurrent(), apiRequestLogIPage.getSize(), apiRequestLogIPage.getTotal());
resultPage.setRecords(entityList);
return resultPage;
}
}

View File

@ -10,6 +10,8 @@ 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.dto.IotElectricityMeterMQDto;
import com.nu.entity.ElectricityMeterEntity;
import com.nu.modules.electricitymeter.api.IElectricityMeterApi;
import com.nu.modules.syncLog.entity.SyncBizLog;
import com.nu.modules.syncLog.service.ISyncBizLogService;
import com.nu.modules.tq.common.entity.TqApiLog;
@ -26,17 +28,20 @@ import com.nu.modules.tq.electricity.service.IElectricityMeterService;
import me.zhyd.oauth.utils.UuidUtils;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMapper, ElectricityMeter> implements IElectricityMeterService {
public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMapper, ElectricityMeter> implements IElectricityMeterService, IElectricityMeterApi {
@Autowired
private TqApi tqApi;
@ -74,6 +79,8 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
baseMapper.updateRelayState(electricityMeter);
}
/**
* 清零
*/
@ -157,6 +164,23 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
return Result.OK("清零中请1分钟后刷新页面");
}
/**
* 清零
*/
@Override
public Result<String> eleReset(ElectricityMeterEntity electricityMeterEntity) {
ElectricityMeter electricityMeter = new ElectricityMeter();
BeanUtils.copyProperties(electricityMeterEntity,electricityMeter);
return syncImpl.eleReset(electricityMeter);
}
@Override
public void baoxiu(ElectricityMeterEntity electricityMeterEntity) {
ElectricityMeter electricityMeter = new ElectricityMeter();
BeanUtils.copyProperties(electricityMeterEntity,electricityMeter);
syncImpl.baoxiu(electricityMeter);
}
/**
* 拉合闸
*/
@ -245,6 +269,38 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
}
}
/**
* 拉合闸
*/
@Override
public Result<String> eleControl(ElectricityMeterEntity electricityMeterEntity) {
ElectricityMeter electricityMeter = new ElectricityMeter();
BeanUtils.copyProperties(electricityMeterEntity,electricityMeter);
return syncImpl.eleControl(electricityMeter);
}
@Override
public IPage<ElectricityMeterEntity> list(ElectricityMeterEntity electricityMeterEntity, Integer pageNo, Integer pageSize, HttpServletRequest req) {
ElectricityMeter electricityMeter = new ElectricityMeter();
BeanUtils.copyProperties(electricityMeterEntity,electricityMeter);
Page<ElectricityMeter> page = new Page<ElectricityMeter>(pageNo, pageSize);
QueryWrapper<ElectricityMeter> queryWrapper = QueryGenerator.initQueryWrapper(electricityMeter, req.getParameterMap());
IPage<ElectricityMeter> pageList = syncImpl.findPage(page, electricityMeter);
List<ElectricityMeterEntity> entityList = pageList.getRecords().stream()
.map(meter -> {
ElectricityMeterEntity entity = new ElectricityMeterEntity();
BeanUtils.copyProperties(meter, entity);
return entity;
})
.collect(Collectors.toList());
// 6. 构建新的 IPage<ElectricityMeterEntity>
IPage<ElectricityMeterEntity> resultPage = new Page<>(pageList.getCurrent(), pageList.getSize(), pageList.getTotal());
resultPage.setRecords(entityList);
return resultPage;
}
/**
* 抄电表
*/
@ -315,6 +371,13 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
return Result.OK("抄表中请1分钟后刷新页面");
}
@Override
public Result<String> eleRead(ElectricityMeterEntity electricityMeterEntity) {
ElectricityMeter electricityMeter = new ElectricityMeter();
BeanUtils.copyProperties(electricityMeterEntity,electricityMeter);
return syncImpl.eleRead(electricityMeter);
}
/**
* 清零回调通知
*/
@ -370,6 +433,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
/**
* 清零同步到业务系统
*
* @param electricityMeter
*/
private void syncCleanMq(ElectricityMeter electricityMeter) {
@ -456,6 +520,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
/**
* 开关闸同步到业务系统
*
* @param electricityMeter
*/
private void syncControlMq(ElectricityMeter electricityMeter) {
@ -549,6 +614,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
/**
* 抄表同步到业务系统
*
* @param electricityMeter
*/
private void syncValueMq(ElectricityMeter electricityMeter) {
@ -623,5 +689,6 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
}
return true;
}
}

View File

@ -10,9 +10,9 @@ 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.dto.IotWaterMeterMQDto;
import com.nu.entity.WaterMeterEntity;
import com.nu.modules.syncLog.entity.SyncBizLog;
import com.nu.modules.syncLog.service.ISyncBizLogService;
import com.nu.modules.tplink.camera.entity.CameraInfo;
import com.nu.modules.tq.common.entity.TqApiLog;
import com.nu.modules.tq.common.service.ITqApiLogService;
import com.nu.modules.tq.utils.HttpTool;
@ -21,21 +21,25 @@ import com.nu.modules.tq.utils.TqApi;
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 com.nu.modules.water.api.IWaterApi;
import com.nu.utils.RabbitMQUtil;
import lombok.extern.slf4j.Slf4j;
import me.zhyd.oauth.utils.UuidUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMeter> implements IWaterMeterService {
public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMeter> implements IWaterMeterService, IWaterApi {
@Autowired
private TqApi tqApi;
@ -370,6 +374,7 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
/**
* 清零同步到业务系统
*
* @param waterMeter
*/
private void syncCleanMq(WaterMeter waterMeter) {
@ -456,6 +461,7 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
/**
* 开关阀同步到业务系统
*
* @param waterMeter
*/
private void syncControlMq(WaterMeter waterMeter) {
@ -558,6 +564,7 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
/**
* 抄表同步到业务系统
*
* @param waterMeter
*/
private void syncValueMq(WaterMeter waterMeter) {
@ -594,7 +601,6 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
}
//业务系统删除命令
@DS("#dataSourceCode")
public boolean syncElectricityDel(String dataSourceCode, WaterMeter waterMeter) {
@ -623,4 +629,54 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
}
return true;
}
@Override
public IPage<WaterMeterEntity> list(WaterMeterEntity waterMeterEntity, Integer pageNo, Integer pageSize, HttpServletRequest req) {
WaterMeter waterMeter = new WaterMeter();
BeanUtils.copyProperties(waterMeterEntity, waterMeter);
Page<WaterMeter> page = new Page<WaterMeter>(pageNo, pageSize);
QueryWrapper<WaterMeter> queryWrapper = QueryGenerator.initQueryWrapper(waterMeter, req.getParameterMap());
IPage<WaterMeter> pageList = syncImpl.findPage(page, waterMeter);
List<WaterMeterEntity> entityList = pageList.getRecords().stream()
.map(meter -> {
WaterMeterEntity entity = new WaterMeterEntity();
BeanUtils.copyProperties(meter, entity);
return entity;
})
.collect(Collectors.toList());
// 6. 构建新的分页对象
IPage<WaterMeterEntity> resultPage = new Page<>(pageList.getCurrent(), pageList.getSize(), pageList.getTotal());
resultPage.setRecords(entityList);
return resultPage;
}
@Override
public Result<String> waterReset(WaterMeterEntity waterMeterEntity) {
WaterMeter waterMeter = new WaterMeter();
BeanUtils.copyProperties(waterMeterEntity, waterMeter);
return syncImpl.waterReset(waterMeter);
}
@Override
public Result<String> waterControl(WaterMeterEntity waterMeterEntity) {
WaterMeter waterMeter = new WaterMeter();
BeanUtils.copyProperties(waterMeterEntity, waterMeter);
return syncImpl.waterControl(waterMeter);
}
@Override
public Result<String> waterRead(WaterMeterEntity waterMeterEntity) {
WaterMeter waterMeter = new WaterMeter();
BeanUtils.copyProperties(waterMeterEntity, waterMeter);
return syncImpl.waterRead(waterMeter);
}
@Override
public void baoxiu(WaterMeterEntity waterMeterEntity) {
WaterMeter waterMeter = new WaterMeter();
BeanUtils.copyProperties(waterMeterEntity, waterMeter);
syncImpl.waterRead(waterMeter);
}
}