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;
@ -40,7 +41,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
public class ApiRequestLogController extends JeecgController<ApiRequestLog, IApiRequestLogService> {
@Autowired
private IApiRequestLogService nuIotTqApiRequestLogService;
/**
* 分页列表查询
*
@ -57,62 +58,11 @@ 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);
}
/**
/**
* 添加
*
* @param nuIotTqApiRequestLog
@ -126,7 +76,7 @@ public class ApiRequestLogController extends JeecgController<ApiRequestLog, IApi
nuIotTqApiRequestLogService.save(nuIotTqApiRequestLog);
return Result.OK("添加成功!");
}
/**
* 编辑
*
@ -141,7 +91,7 @@ public class ApiRequestLogController extends JeecgController<ApiRequestLog, IApi
nuIotTqApiRequestLogService.updateById(nuIotTqApiRequestLog);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
@ -156,7 +106,7 @@ public class ApiRequestLogController extends JeecgController<ApiRequestLog, IApi
nuIotTqApiRequestLogService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
@ -171,7 +121,7 @@ public class ApiRequestLogController extends JeecgController<ApiRequestLog, IApi
this.nuIotTqApiRequestLogService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*

View File

@ -1,14 +1,18 @@
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
* @Date: 2025-06-10
* @Date: 2025-06-10
* @Version: V1.0
*/
public interface IApiRequestLogService extends IService<ApiRequestLog> {
IPage<ApiRequestLog> getApiRequestLogIPage(ApiRequestLog nuIotTqApiRequestLog, Integer pageNo, Integer pageSize, HttpServletRequest req);
}

View File

@ -1,19 +1,117 @@
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请求日志
* @Author: jeecg-boot
* @Date: 2025-06-10
* @Date: 2025-06-10
* @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;
@ -55,43 +60,45 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
private ElectricityMeterServiceImpl syncImpl;
@Override
public IPage<ElectricityMeter> findPage(Page<ElectricityMeter> page, ElectricityMeter electricityMeter){
return baseMapper.findPage(page,electricityMeter);
public IPage<ElectricityMeter> findPage(Page<ElectricityMeter> page, ElectricityMeter electricityMeter) {
return baseMapper.findPage(page, electricityMeter);
}
@Override
public List<ElectricityMeter> findAllList(){
public List<ElectricityMeter> findAllList() {
return baseMapper.findAllList();
}
@Override
public void updateValue(ElectricityMeter electricityMeter){
public void updateValue(ElectricityMeter electricityMeter) {
baseMapper.updateValue(electricityMeter);
}
@Override
public void updateRelayState(ElectricityMeter electricityMeter){
public void updateRelayState(ElectricityMeter electricityMeter) {
baseMapper.updateRelayState(electricityMeter);
}
/**
* 清零
*/
@Override
public Result<String> eleReset(ElectricityMeter electricityMeter){
public Result<String> eleReset(ElectricityMeter electricityMeter) {
ElectricityMeter entity = baseMapper.getElectricityMeter(electricityMeter);
if(entity == null){
if (entity == null) {
return Result.error("请先同步电表设备信息后再进行清零");
}
String readTimeStr = entity.getReadTime();
if(readTimeStr == null || readTimeStr.equals("")){
if (readTimeStr == null || readTimeStr.equals("")) {
return Result.error("为避免结算误差,清零操作时,需要近一小时的抄表数据。");
}
Date readTime = DateUtil.parse(readTimeStr,"yyyy-MM-dd HH:mm:ss");
Date readTime = DateUtil.parse(readTimeStr, "yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
c.add(Calendar.HOUR_OF_DAY,-1);
int comInt = DateUtil.compare(readTime,c.getTime());
if(comInt<0){
c.add(Calendar.HOUR_OF_DAY, -1);
int comInt = DateUtil.compare(readTime, c.getTime());
if (comInt < 0) {
return Result.error("为避免结算误差,清零操作时,需要近一小时的抄表数据。");
}
List<Map<String, Object>> req = new ArrayList<>();
@ -109,14 +116,14 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
String responseStr = tqApi.eleReset(req);
JSONObject jsonObject = new JSONObject(responseStr);
String httpStatus = jsonObject.getStr("status");
if(httpStatus.equals("SUCCESS")){
if (httpStatus.equals("SUCCESS")) {
String response_content = jsonObject.getStr("response_content");
JSONArray jsonArray = new JSONArray(response_content);
for(int i=0;i<jsonArray.size();i++){
JSONObject json = (JSONObject)jsonArray.get(i);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject json = (JSONObject) jsonArray.get(i);
String status = json.getStr("status");//状态
String oprId = json.getStr("opr_id");//操作ID
if(status.equals("SUCCESS")){
if (status.equals("SUCCESS")) {
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
tqApiLog.setCid(electricityMeter.getCid());
@ -126,7 +133,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
tqApiLog.setRequestTime(DateUtil.now());
tqApiLog.setRequestStatus("清零中");
logService.insert(tqApiLog);
}else{
} else {
String errorMsg = json.getStr("error_msg");
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
@ -141,7 +148,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
return Result.error(errorMsg);
}
}
}else{
} else {
String errorMsg = jsonObject.getStr("error_msg");
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setCid(electricityMeter.getCid());
@ -157,17 +164,34 @@ 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);
}
/**
* 拉合闸
*/
@Override
public Result<String> eleControl(ElectricityMeter electricityMeter){
public Result<String> eleControl(ElectricityMeter electricityMeter) {
Integer type = electricityMeter.getType();
ElectricityMeter entity = baseMapper.getElectricityMeter(electricityMeter);
if(entity == null){
if(type.equals(10)){
if (entity == null) {
if (type.equals(10)) {
return Result.error("请先同步电表设备信息后再进行拉闸");
}else{
} else {
return Result.error("请先同步电表设备信息后再进行合闸");
}
}
@ -184,27 +208,27 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
String responseStr = tqApi.eleControl(req);
JSONObject jsonObject = new JSONObject(responseStr);
String httpStatus = jsonObject.getStr("status");
if(httpStatus.equals("SUCCESS")){
if (httpStatus.equals("SUCCESS")) {
String response_content = jsonObject.getStr("response_content");
JSONArray jsonArray = new JSONArray(response_content);
for(int i=0;i<jsonArray.size();i++){
JSONObject json = (JSONObject)jsonArray.get(i);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject json = (JSONObject) jsonArray.get(i);
String status = json.getStr("status");//状态
String oprId = json.getStr("opr_id");//操作ID
if(status.equals("SUCCESS")){
if (status.equals("SUCCESS")) {
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
tqApiLog.setCid(electricityMeter.getCid());
tqApiLog.setAddress(electricityMeter.getAddress());
tqApiLog.setType(electricityMeter.getType());
tqApiLog.setRequestTime(DateUtil.now());
if(type.equals(10)){
if (type.equals(10)) {
tqApiLog.setRequestStatus("拉闸中");
}else{
} else {
tqApiLog.setRequestStatus("合闸中");
}
logService.insert(tqApiLog);
}else{
} else {
String errorMsg = json.getStr("error_msg");
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
@ -212,9 +236,9 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
tqApiLog.setAddress(electricityMeter.getAddress());
tqApiLog.setType(electricityMeter.getType());
tqApiLog.setRequestTime(DateUtil.now());
if(type.equals(10)){
if (type.equals(10)) {
tqApiLog.setRequestStatus("拉闸失败");
}else{
} else {
tqApiLog.setRequestStatus("合闸失败");
}
tqApiLog.setRequestRemark(errorMsg);
@ -222,36 +246,68 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
return Result.error(errorMsg);
}
}
}else{
} else {
String errorMsg = jsonObject.getStr("error_msg");
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setCid(electricityMeter.getCid());
tqApiLog.setAddress(electricityMeter.getAddress());
tqApiLog.setType(electricityMeter.getType());
tqApiLog.setRequestTime(DateUtil.now());
if(type.equals(10)){
if (type.equals(10)) {
tqApiLog.setRequestStatus("拉闸失败");
}else{
} else {
tqApiLog.setRequestStatus("合闸失败");
}
tqApiLog.setRequestRemark(errorMsg);
logService.insert(tqApiLog);
return Result.error(errorMsg);
}
if(type.equals(10)){
if (type.equals(10)) {
return Result.OK("拉闸中请1分钟后刷新页面");
}else{
} else {
return Result.OK("合闸中请1分钟后刷新页面");
}
}
/**
* 拉合闸
*/
@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;
}
/**
* 抄电表
*/
@Override
public Result<String> eleRead(ElectricityMeter electricityMeter){
public Result<String> eleRead(ElectricityMeter electricityMeter) {
ElectricityMeter entity = baseMapper.getElectricityMeter(electricityMeter);
if(entity == null){
if (entity == null) {
return Result.error("请先同步电表设备信息后再进行抄表");
}
List<Map<String, Object>> req = new ArrayList<>();
@ -267,14 +323,14 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
String responseStr = tqApi.eleRead(req);
JSONObject jsonObject = new JSONObject(responseStr);
String httpStatus = jsonObject.getStr("status");
if(httpStatus.equals("SUCCESS")){
if (httpStatus.equals("SUCCESS")) {
String response_content = jsonObject.getStr("response_content");
JSONArray jsonArray = new JSONArray(response_content);
for(int i=0;i<jsonArray.size();i++){
JSONObject json = (JSONObject)jsonArray.get(i);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject json = (JSONObject) jsonArray.get(i);
String status = json.getStr("status");//状态
String oprId = json.getStr("opr_id");//操作ID
if(status.equals("SUCCESS")){
if (status.equals("SUCCESS")) {
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
tqApiLog.setCid(electricityMeter.getCid());
@ -284,7 +340,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
tqApiLog.setRequestTime(DateUtil.now());
tqApiLog.setRequestStatus("抄表中");
logService.insert(tqApiLog);
}else{
} else {
String errorMsg = json.getStr("error_msg");
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
@ -299,7 +355,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
return Result.error(errorMsg);
}
}
}else{
} else {
String errorMsg = jsonObject.getStr("error_msg");
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setCid(electricityMeter.getCid());
@ -315,20 +371,27 @@ 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);
}
/**
* 清零回调通知
*/
@Override
public String eleResetNotify(String response_content, String timestamp, String sign){
public String eleResetNotify(String response_content, String timestamp, String sign) {
// 验签
if(!SignTool.checkSign(response_content, timestamp, sign, tqApi.getTqConfig().getRandomCode())) {
if (!SignTool.checkSign(response_content, timestamp, sign, tqApi.getTqConfig().getRandomCode())) {
log.info("eleResetNotify:sign check failed");
return "sign check failed";
}
try {
JSONArray jsonArray = new JSONArray(response_content);
for(int i=0;i<jsonArray.size();i++){
JSONObject jsonObject = (JSONObject)jsonArray.get(i);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
String status = jsonObject.getStr("status");//返回状态
String oprId = jsonObject.getStr("opr_id");//操作ID
String resolveTime = jsonObject.getStr("resolve_time");//反馈时间
@ -337,19 +400,19 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
tqApiLog.setOprId(oprId);
tqApiLog.setResolveValue("0");
tqApiLog.setResolveTime(resolveTime);
if(status.equals("SUCCESS")){
if (status.equals("SUCCESS")) {
tqApiLog.setResolveStatus("清零成功");
}else{
} else {
tqApiLog.setResolveStatus("清零失败");
}
tqApiLog.setResolveRemark(data);
TqApiLog logEntity = logService.getApiLog(tqApiLog);
if(logEntity!=null) {
if (logEntity != null) {
tqApiLog.setId(logEntity.getId());
logService.update(tqApiLog);
}
if(status.equals("SUCCESS")) {
if(logEntity!=null){
if (status.equals("SUCCESS")) {
if (logEntity != null) {
String cid = logEntity.getCid();
String address = logEntity.getAddress();
ElectricityMeter em = new ElectricityMeter();
@ -362,7 +425,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
}
}
}
}catch (Exception e){
} catch (Exception e) {
return "FAIL";
}
return "SUCCESS";
@ -370,11 +433,12 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
/**
* 清零同步到业务系统
*
* @param electricityMeter
*/
private void syncCleanMq(ElectricityMeter electricityMeter){
private void syncCleanMq(ElectricityMeter electricityMeter) {
ElectricityMeter entity = baseMapper.getElectricityMeter(electricityMeter);
if(entity!=null) {
if (entity != null) {
IotElectricityMeterMQDto iem = new IotElectricityMeterMQDto();
BeanUtils.copyProperties(entity, iem);
String json = JSON.toJSONString(entity);
@ -397,16 +461,16 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
* 开关闸回调通知
*/
@Override
public String eleControlNotify(String response_content, String timestamp, String sign){
public String eleControlNotify(String response_content, String timestamp, String sign) {
// 验签
if(!SignTool.checkSign(response_content, timestamp, sign, tqApi.getTqConfig().getRandomCode())) {
if (!SignTool.checkSign(response_content, timestamp, sign, tqApi.getTqConfig().getRandomCode())) {
log.info("eleResetNotify:sign check failed");
return "sign check failed";
}
try {
JSONArray jsonArray = new JSONArray(response_content);
for(int i=0;i<jsonArray.size();i++){
JSONObject jsonObject = (JSONObject)jsonArray.get(i);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
String status = jsonObject.getStr("status");//返回状态
String oprId = jsonObject.getStr("opr_id");//操作ID
String resolveTime = jsonObject.getStr("resolve_time");//反馈时间
@ -414,33 +478,33 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
tqApiLog.setOprId(oprId);
tqApiLog.setResolveTime(resolveTime);
TqApiLog logEntity = logService.getApiLog(tqApiLog);
if(logEntity!=null) {
if (logEntity != null) {
Integer type = logEntity.getType();
String typeStr = "";
if(type.equals(10)){
if (type.equals(10)) {
typeStr = "拉闸";
}else{
} else {
typeStr = "合闸";
}
if(status.equals("SUCCESS")){
tqApiLog.setResolveStatus(typeStr+"成功");
}else{
tqApiLog.setResolveStatus(typeStr+"失败");
if (status.equals("SUCCESS")) {
tqApiLog.setResolveStatus(typeStr + "成功");
} else {
tqApiLog.setResolveStatus(typeStr + "失败");
}
tqApiLog.setId(logEntity.getId());
logService.update(tqApiLog);
}
if(status.equals("SUCCESS")) {
if(logEntity!=null){
if (status.equals("SUCCESS")) {
if (logEntity != null) {
String cid = logEntity.getCid();
String address = logEntity.getAddress();
Integer type = logEntity.getType();
ElectricityMeter em = new ElectricityMeter();
em.setCid(cid);
em.setAddress(address);
if(type.equals(10)){
if (type.equals(10)) {
em.setRelayState("0");
}else{
} else {
em.setRelayState("1");
}
baseMapper.updateRelayState(em);
@ -448,7 +512,7 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
}
}
}
}catch (Exception e){
} catch (Exception e) {
return "FAIL";
}
return "SUCCESS";
@ -456,11 +520,12 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
/**
* 开关闸同步到业务系统
*
* @param electricityMeter
*/
private void syncControlMq(ElectricityMeter electricityMeter){
private void syncControlMq(ElectricityMeter electricityMeter) {
ElectricityMeter entity = baseMapper.getElectricityMeter(electricityMeter);
if(entity!=null) {
if (entity != null) {
IotElectricityMeterMQDto iem = new IotElectricityMeterMQDto();
BeanUtils.copyProperties(entity, iem);
String json = JSON.toJSONString(entity);
@ -483,23 +548,23 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
* 抄表回调通知
*/
@Override
public String eleReadNotify(String response_content, String timestamp, String sign){
public String eleReadNotify(String response_content, String timestamp, String sign) {
// 验签
if(!SignTool.checkSign(response_content, timestamp, sign, tqApi.getTqConfig().getRandomCode())) {
if (!SignTool.checkSign(response_content, timestamp, sign, tqApi.getTqConfig().getRandomCode())) {
log.info("eleResetNotify:sign check failed");
return "sign check failed";
}
try {
JSONArray jsonArray = new JSONArray(response_content);
for(int i=0;i<jsonArray.size();i++){
JSONObject jsonObject = (JSONObject)jsonArray.get(i);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
String status = jsonObject.getStr("status");//返回状态
String oprId = jsonObject.getStr("opr_id");//操作ID
String resolveTime = jsonObject.getStr("resolve_time");//反馈时间
if(status.equals("SUCCESS")) {
if (status.equals("SUCCESS")) {
JSONArray datas = jsonObject.getJSONArray("data");//返回数据
for(int j=0;j<datas.size();j++){
JSONObject data = (JSONObject)datas.get(j);
for (int j = 0; j < datas.size(); j++) {
JSONObject data = (JSONObject) datas.get(j);
Integer type = data.getInt("type");//类型
String resolveValue = data.getJSONArray("value").get(0).toString();//
String dsp = data.getStr("dsp");//描述
@ -508,14 +573,14 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
tqApiLog.setType(type);
tqApiLog.setResolveValue(resolveValue);
tqApiLog.setResolveTime(resolveTime);
if(status.equals("SUCCESS")){
if (status.equals("SUCCESS")) {
tqApiLog.setResolveStatus("抄表成功");
}else{
} else {
tqApiLog.setResolveStatus("抄表失败");
}
tqApiLog.setResolveRemark(dsp);
TqApiLog logEntity = logService.getApiLog(tqApiLog);
if(logEntity!=null){
if (logEntity != null) {
String cid = logEntity.getCid();
String address = logEntity.getAddress();
ElectricityMeter em = new ElectricityMeter();
@ -529,19 +594,19 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
syncValueMq(em);
}
}
}else{
} else {
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
tqApiLog.setResolveTime(resolveTime);
tqApiLog.setResolveStatus("抄表失败");
TqApiLog logEntity = logService.getApiLog(tqApiLog);
if(logEntity!=null){
if (logEntity != null) {
tqApiLog.setId(logEntity.getId());
logService.update(tqApiLog);
}
}
}
}catch (Exception e){
} catch (Exception e) {
return "FAIL";
}
return "SUCCESS";
@ -549,11 +614,12 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
/**
* 抄表同步到业务系统
*
* @param electricityMeter
*/
private void syncValueMq(ElectricityMeter electricityMeter){
private void syncValueMq(ElectricityMeter electricityMeter) {
ElectricityMeter entity = baseMapper.getElectricityMeter(electricityMeter);
if(entity!=null) {
if (entity != null) {
IotElectricityMeterMQDto iem = new IotElectricityMeterMQDto();
BeanUtils.copyProperties(entity, iem);
String json = JSON.toJSONString(entity);
@ -591,13 +657,13 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
}
@DS("devops")
public void devopsBaoxiu(ElectricityMeter electricityMeter){
public void devopsBaoxiu(ElectricityMeter electricityMeter) {
baseMapper.updateById(electricityMeter);
}
//业务系统删除命令
@DS("#dataSourceCode")
public boolean syncElectricityDel(String dataSourceCode,ElectricityMeter electricityMeter) {
public boolean syncElectricityDel(String dataSourceCode, ElectricityMeter electricityMeter) {
try {
baseMapper.deleteById(electricityMeter.getId());
} catch (Exception e) {
@ -608,14 +674,14 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
//业务系统保存或者修改命令
@DS("#dataSourceCode")
public boolean syncElectricitySaveOrUpdate(String dataSourceCode,ElectricityMeter electricityMeter) {
public boolean syncElectricitySaveOrUpdate(String dataSourceCode, ElectricityMeter electricityMeter) {
try {
QueryWrapper<ElectricityMeter> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("cid",electricityMeter.getCid());
queryWrapper.eq("cid", electricityMeter.getCid());
ElectricityMeter oldParam = baseMapper.selectOne(queryWrapper);//查询数据库中该表号数据原始数据
if(oldParam == null){
if (oldParam == null) {
baseMapper.insert(electricityMeter);
}else{
} else {
baseMapper.updateById(electricityMeter);
}
} catch (Exception e) {
@ -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;
@ -54,22 +58,22 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
private WaterMeterServiceImpl syncImpl;
@Override
public IPage<WaterMeter> findPage(Page<WaterMeter> page, WaterMeter waterMeter){
return baseMapper.findPage(page,waterMeter);
public IPage<WaterMeter> findPage(Page<WaterMeter> page, WaterMeter waterMeter) {
return baseMapper.findPage(page, waterMeter);
}
@Override
public List<WaterMeter> findAllList(){
public List<WaterMeter> findAllList() {
return baseMapper.findAllList();
}
@Override
public void updateValue(WaterMeter updateValue){
public void updateValue(WaterMeter updateValue) {
baseMapper.updateValue(updateValue);
}
@Override
public void updateRelayState(WaterMeter updateValue){
public void updateRelayState(WaterMeter updateValue) {
baseMapper.updateRelayState(updateValue);
}
@ -77,20 +81,20 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
* 清零
*/
@Override
public Result<String> waterReset(WaterMeter waterMeter){
public Result<String> waterReset(WaterMeter waterMeter) {
WaterMeter entity = baseMapper.getWaterMeter(waterMeter);
if(entity == null){
if (entity == null) {
return Result.error("请先同步水表设备信息后再进行清零");
}
String readTimeStr = entity.getReadTime();
if(readTimeStr == null || readTimeStr.equals("")){
if (readTimeStr == null || readTimeStr.equals("")) {
return Result.error("为避免结算误差,清零操作时,需要近一小时的抄表数据。");
}
Date readTime = DateUtil.parse(readTimeStr,"yyyy-MM-dd HH:mm:ss");
Date readTime = DateUtil.parse(readTimeStr, "yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
c.add(Calendar.HOUR_OF_DAY,-1);
int comInt = DateUtil.compare(readTime,c.getTime());
if(comInt<0){
c.add(Calendar.HOUR_OF_DAY, -1);
int comInt = DateUtil.compare(readTime, c.getTime());
if (comInt < 0) {
return Result.error("为避免结算误差,清零操作时,需要近一小时的抄表数据。");
}
List<Map<String, Object>> req = new ArrayList<>();
@ -108,14 +112,14 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
String responseStr = tqApi.waterReset(req);
JSONObject jsonObject = new JSONObject(responseStr);
String httpStatus = jsonObject.getStr("status");
if(httpStatus.equals("SUCCESS")){
if (httpStatus.equals("SUCCESS")) {
String response_content = jsonObject.getStr("response_content");
JSONArray jsonArray = new JSONArray(response_content);
for(int i=0;i<jsonArray.size();i++){
JSONObject json = (JSONObject)jsonArray.get(i);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject json = (JSONObject) jsonArray.get(i);
String status = json.getStr("status");//状态
String oprId = json.getStr("opr_id");//操作ID
if(status.equals("SUCCESS")){
if (status.equals("SUCCESS")) {
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
tqApiLog.setCid(waterMeter.getCid());
@ -125,7 +129,7 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
tqApiLog.setRequestTime(DateUtil.now());
tqApiLog.setRequestStatus("清零中");
logService.insert(tqApiLog);
}else{
} else {
String errorMsg = json.getStr("error_msg");
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
@ -140,7 +144,7 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
return Result.error(errorMsg);
}
}
}else{
} else {
String errorMsg = jsonObject.getStr("error_msg");
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setCid(waterMeter.getCid());
@ -160,13 +164,13 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
* 开关阀
*/
@Override
public Result<String> waterControl(WaterMeter waterMeter){
public Result<String> waterControl(WaterMeter waterMeter) {
Integer type = waterMeter.getType();
WaterMeter entity = baseMapper.getWaterMeter(waterMeter);
if(entity == null){
if(type.equals(43)){
if (entity == null) {
if (type.equals(43)) {
return Result.error("请先同步水表设备信息后再进行开阀");
}else{
} else {
return Result.error("请先同步水表设备信息后再进行关阀");
}
}
@ -183,14 +187,14 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
String responseStr = tqApi.waterControl(req);
JSONObject jsonObject = new JSONObject(responseStr);
String httpStatus = jsonObject.getStr("status");
if(httpStatus.equals("SUCCESS")){
if (httpStatus.equals("SUCCESS")) {
String response_content = jsonObject.getStr("response_content");
JSONArray jsonArray = new JSONArray(response_content);
for(int i=0;i<jsonArray.size();i++){
JSONObject json = (JSONObject)jsonArray.get(i);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject json = (JSONObject) jsonArray.get(i);
String status = json.getStr("status");//状态
String oprId = json.getStr("opr_id");//操作ID
if(status.equals("SUCCESS")){
if (status.equals("SUCCESS")) {
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
tqApiLog.setCid(waterMeter.getCid());
@ -198,13 +202,13 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
tqApiLog.setType(waterMeter.getType());
tqApiLog.setRequestTime(DateUtil.now());
tqApiLog.setRequestStatus(status);
if(type.equals(43)){
if (type.equals(43)) {
tqApiLog.setRequestStatus("开阀中");
}else{
} else {
tqApiLog.setRequestStatus("关阀中");
}
logService.insert(tqApiLog);
}else{
} else {
String errorMsg = json.getStr("error_msg");
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
@ -212,9 +216,9 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
tqApiLog.setAddress(waterMeter.getAddress());
tqApiLog.setType(waterMeter.getType());
tqApiLog.setRequestTime(DateUtil.now());
if(type.equals(43)){
if (type.equals(43)) {
tqApiLog.setRequestStatus("开阀失败");
}else{
} else {
tqApiLog.setRequestStatus("关阀失败");
}
tqApiLog.setRequestRemark(errorMsg);
@ -222,25 +226,25 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
return Result.error(errorMsg);
}
}
}else{
} else {
String errorMsg = jsonObject.getStr("error_msg");
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setCid(waterMeter.getCid());
tqApiLog.setAddress(waterMeter.getAddress());
tqApiLog.setType(waterMeter.getType());
tqApiLog.setRequestTime(DateUtil.now());
if(type.equals(43)){
if (type.equals(43)) {
tqApiLog.setRequestStatus("开阀失败");
}else{
} else {
tqApiLog.setRequestStatus("关阀失败");
}
tqApiLog.setRequestRemark(errorMsg);
logService.insert(tqApiLog);
return Result.error(errorMsg);
}
if(type.equals(43)){
if (type.equals(43)) {
return Result.OK("开阀中请5分钟后刷新页面");
}else{
} else {
return Result.OK("关阀中请5分钟后刷新页面");
}
}
@ -249,9 +253,9 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
* 抄水表
*/
@Override
public Result<String> waterRead(WaterMeter waterMeter){
public Result<String> waterRead(WaterMeter waterMeter) {
WaterMeter entity = baseMapper.getWaterMeter(waterMeter);
if(entity == null){
if (entity == null) {
return Result.error("请先同步水表设备信息后再进行抄表");
}
List<Map<String, Object>> req = new ArrayList<>();
@ -267,14 +271,14 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
String responseStr = tqApi.waterRead(req);
JSONObject jsonObject = new JSONObject(responseStr);
String httpStatus = jsonObject.getStr("status");
if(httpStatus.equals("SUCCESS")){
if (httpStatus.equals("SUCCESS")) {
String response_content = jsonObject.getStr("response_content");
JSONArray jsonArray = new JSONArray(response_content);
for(int i=0;i<jsonArray.size();i++){
JSONObject json = (JSONObject)jsonArray.get(i);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject json = (JSONObject) jsonArray.get(i);
String status = json.getStr("status");//状态
String oprId = json.getStr("opr_id");//操作ID
if(status.equals("SUCCESS")){
if (status.equals("SUCCESS")) {
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
tqApiLog.setCid(waterMeter.getCid());
@ -284,7 +288,7 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
tqApiLog.setRequestTime(DateUtil.now());
tqApiLog.setRequestStatus("抄表中");
logService.insert(tqApiLog);
}else{
} else {
String errorMsg = json.getStr("error_msg");
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
@ -299,7 +303,7 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
return Result.error(errorMsg);
}
}
}else{
} else {
String errorMsg = jsonObject.getStr("error_msg");
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setCid(waterMeter.getCid());
@ -319,16 +323,16 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
* 清零回调通知
*/
@Override
public String waterResetNotify(String response_content, String timestamp, String sign){
public String waterResetNotify(String response_content, String timestamp, String sign) {
// 验签
if(!SignTool.checkSign(response_content, timestamp, sign, tqApi.getTqConfig().getRandomCode())) {
if (!SignTool.checkSign(response_content, timestamp, sign, tqApi.getTqConfig().getRandomCode())) {
log.info("eleResetNotify:sign check failed");
return "sign check failed";
}
try {
JSONArray jsonArray = new JSONArray(response_content);
for(int i=0;i<jsonArray.size();i++){
JSONObject jsonObject = (JSONObject)jsonArray.get(i);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
String status = jsonObject.getStr("status");//返回状态
String oprId = jsonObject.getStr("opr_id");//操作ID
String resolveTime = jsonObject.getStr("resolve_time");//反馈时间
@ -337,19 +341,19 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
tqApiLog.setOprId(oprId);
tqApiLog.setResolveValue("0");
tqApiLog.setResolveTime(resolveTime);
if(status.equals("SUCCESS")){
if (status.equals("SUCCESS")) {
tqApiLog.setResolveStatus("清零成功");
}else{
} else {
tqApiLog.setResolveStatus("清零失败");
}
tqApiLog.setResolveRemark(data);
TqApiLog logEntity = logService.getApiLog(tqApiLog);
if(logEntity!=null) {
if (logEntity != null) {
tqApiLog.setId(logEntity.getId());
logService.update(tqApiLog);
}
if(status.equals("SUCCESS")) {
if(logEntity!=null){
if (status.equals("SUCCESS")) {
if (logEntity != null) {
String cid = logEntity.getCid();
String address = logEntity.getAddress();
WaterMeter wm = new WaterMeter();
@ -362,7 +366,7 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
}
}
}
}catch (Exception e){
} catch (Exception e) {
return "FAIL";
}
return "SUCCESS";
@ -370,11 +374,12 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
/**
* 清零同步到业务系统
*
* @param waterMeter
*/
private void syncCleanMq(WaterMeter waterMeter){
private void syncCleanMq(WaterMeter waterMeter) {
WaterMeter entity = baseMapper.getWaterMeter(waterMeter);
if(entity!=null) {
if (entity != null) {
IotWaterMeterMQDto iwm = new IotWaterMeterMQDto();
BeanUtils.copyProperties(entity, iwm);
String json = JSON.toJSONString(entity);
@ -397,16 +402,16 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
* 开关阀回调通知
*/
@Override
public String waterControlNotify(String response_content, String timestamp, String sign){
public String waterControlNotify(String response_content, String timestamp, String sign) {
// 验签
if(!SignTool.checkSign(response_content, timestamp, sign, tqApi.getTqConfig().getRandomCode())) {
if (!SignTool.checkSign(response_content, timestamp, sign, tqApi.getTqConfig().getRandomCode())) {
log.info("eleResetNotify:sign check failed");
return "sign check failed";
}
try {
JSONArray jsonArray = new JSONArray(response_content);
for(int i=0;i<jsonArray.size();i++){
JSONObject jsonObject = (JSONObject)jsonArray.get(i);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
String status = jsonObject.getStr("status");//返回状态
String oprId = jsonObject.getStr("opr_id");//操作ID
String resolveTime = jsonObject.getStr("resolve_time");//反馈时间
@ -414,33 +419,33 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
tqApiLog.setOprId(oprId);
tqApiLog.setResolveTime(resolveTime);
TqApiLog logEntity = logService.getApiLog(tqApiLog);
if(logEntity!=null) {
if (logEntity != null) {
Integer type = logEntity.getType();
String typeStr = "";
if(type.equals(43)){
if (type.equals(43)) {
typeStr = "开阀";
}else {
} else {
typeStr = "关阀";
}
if(status.equals("SUCCESS")){
tqApiLog.setResolveStatus(typeStr+"成功");
}else{
tqApiLog.setResolveStatus(typeStr+"失败");
if (status.equals("SUCCESS")) {
tqApiLog.setResolveStatus(typeStr + "成功");
} else {
tqApiLog.setResolveStatus(typeStr + "失败");
}
tqApiLog.setId(logEntity.getId());
logService.update(tqApiLog);
}
if(status.equals("SUCCESS")) {
if(logEntity!=null){
if (status.equals("SUCCESS")) {
if (logEntity != null) {
String cid = logEntity.getCid();
String address = logEntity.getAddress();
Integer type = logEntity.getType();
WaterMeter wm = new WaterMeter();
wm.setCid(cid);
wm.setAddress(address);
if(type.equals(43)){
if (type.equals(43)) {
wm.setRelayState("1");
}else{
} else {
wm.setRelayState("0");
}
baseMapper.updateRelayState(wm);
@ -448,7 +453,7 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
}
}
}
}catch (Exception e){
} catch (Exception e) {
return "FAIL";
}
return "SUCCESS";
@ -456,11 +461,12 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
/**
* 开关阀同步到业务系统
*
* @param waterMeter
*/
private void syncControlMq(WaterMeter waterMeter){
private void syncControlMq(WaterMeter waterMeter) {
WaterMeter entity = baseMapper.getWaterMeter(waterMeter);
if(entity!=null) {
if (entity != null) {
IotWaterMeterMQDto iwm = new IotWaterMeterMQDto();
BeanUtils.copyProperties(entity, iwm);
String json = JSON.toJSONString(entity);
@ -483,23 +489,23 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
* 抄表回调通知
*/
@Override
public String waterReadNotify(String response_content, String timestamp, String sign){
public String waterReadNotify(String response_content, String timestamp, String sign) {
// 验签
if(!SignTool.checkSign(response_content, timestamp, sign, tqApi.getTqConfig().getRandomCode())) {
if (!SignTool.checkSign(response_content, timestamp, sign, tqApi.getTqConfig().getRandomCode())) {
log.info("eleResetNotify:sign check failed");
return "sign check failed";
}
try {
JSONArray jsonArray = new JSONArray(response_content);
for(int i=0;i<jsonArray.size();i++){
JSONObject jsonObject = (JSONObject)jsonArray.get(i);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
String status = jsonObject.getStr("status");//返回状态
String oprId = jsonObject.getStr("opr_id");//操作ID
String resolveTime = jsonObject.getStr("resolve_time");//反馈时间
if(status.equals("SUCCESS")) {
if (status.equals("SUCCESS")) {
JSONArray datas = jsonObject.getJSONArray("data");//返回数据
for(int j=0;j<datas.size();j++){
JSONObject data = (JSONObject)datas.get(j);
for (int j = 0; j < datas.size(); j++) {
JSONObject data = (JSONObject) datas.get(j);
Integer type = data.getInt("type");//类型
String resolveValue = data.getJSONArray("value").get(0).toString();//
String[] waterVelues = resolveValue.split("\\|");
@ -507,28 +513,28 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
tqApiLog.setType(type);
if(waterVelues.length>0){
if (waterVelues.length > 0) {
tqApiLog.setResolveValue(waterVelues[0]);
}else{
} else {
tqApiLog.setResolveValue(resolveValue);
}
tqApiLog.setResolveTime(resolveTime);
if(status.equals("SUCCESS")){
if (status.equals("SUCCESS")) {
tqApiLog.setResolveStatus("抄表成功");
}else{
} else {
tqApiLog.setResolveStatus("抄表失败");
}
tqApiLog.setResolveRemark(dsp);
TqApiLog logEntity = logService.getApiLog(tqApiLog);
if(logEntity!=null){
if (logEntity != null) {
String cid = logEntity.getCid();
String address = logEntity.getAddress();
WaterMeter wm = new WaterMeter();
wm.setCid(cid);
wm.setAddress(address);
if(waterVelues.length>0){
if (waterVelues.length > 0) {
wm.setWaterValue(waterVelues[0]);
}else{
} else {
wm.setWaterValue(resolveValue);
}
wm.setReadTime(resolveTime);
@ -538,19 +544,19 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
syncValueMq(wm);
}
}
}else{
} else {
TqApiLog tqApiLog = new TqApiLog();
tqApiLog.setOprId(oprId);
tqApiLog.setResolveTime(resolveTime);
tqApiLog.setResolveStatus("抄表失败");
TqApiLog logEntity = logService.getApiLog(tqApiLog);
if(logEntity!=null){
if (logEntity != null) {
tqApiLog.setId(logEntity.getId());
logService.update(tqApiLog);
}
}
}
}catch (Exception e){
} catch (Exception e) {
return "FAIL";
}
return "SUCCESS";
@ -558,11 +564,12 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
/**
* 抄表同步到业务系统
*
* @param waterMeter
*/
private void syncValueMq(WaterMeter waterMeter){
private void syncValueMq(WaterMeter waterMeter) {
WaterMeter entity = baseMapper.getWaterMeter(waterMeter);
if(entity!=null) {
if (entity != null) {
IotWaterMeterMQDto iwm = new IotWaterMeterMQDto();
BeanUtils.copyProperties(entity, iwm);
String json = JSON.toJSONString(entity);
@ -589,15 +596,14 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
}
@DS("devops")
public void devopsBaoxiu(WaterMeter waterMeter){
public void devopsBaoxiu(WaterMeter waterMeter) {
baseMapper.updateById(waterMeter);
}
//业务系统删除命令
@DS("#dataSourceCode")
public boolean syncElectricityDel(String dataSourceCode,WaterMeter waterMeter) {
public boolean syncElectricityDel(String dataSourceCode, WaterMeter waterMeter) {
try {
baseMapper.deleteById(waterMeter.getId());
} catch (Exception e) {
@ -608,14 +614,14 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
//业务系统保存或者修改命令
@DS("#dataSourceCode")
public boolean syncElectricitySaveOrUpdate(String dataSourceCode,WaterMeter waterMeter) {
public boolean syncElectricitySaveOrUpdate(String dataSourceCode, WaterMeter waterMeter) {
try {
QueryWrapper<WaterMeter> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("cid",waterMeter.getCid());
queryWrapper.eq("cid", waterMeter.getCid());
WaterMeter oldParam = baseMapper.selectOne(queryWrapper);//查询数据库中该表号数据原始数据
if(oldParam == null){
if (oldParam == null) {
baseMapper.insert(waterMeter);
}else{
} else {
baseMapper.updateById(waterMeter);
}
} catch (Exception e) {
@ -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);
}
}