diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/iot/apiRequestLog/api/IotApiRequestLogApi.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/iot/apiRequestLog/api/IotApiRequestLogApi.java new file mode 100644 index 0000000..acdb19d --- /dev/null +++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/iot/apiRequestLog/api/IotApiRequestLogApi.java @@ -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> 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)); + } +} diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/iot/electricityMeter/api/ElectricityMeterApi.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/iot/electricityMeter/api/ElectricityMeterApi.java new file mode 100644 index 0000000..91e86eb --- /dev/null +++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/iot/electricityMeter/api/ElectricityMeterApi.java @@ -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 eleRead(ElectricityMeterEntity electricityMeterEntity) { + return electricityMeterApi.eleRead(electricityMeterEntity); + } + + /** + * 拉闸、合闸 + * + * @param electricityMeterEntity + * @return + */ + @GetMapping(value = "/eleControl") + public Result eleControl(ElectricityMeterEntity electricityMeterEntity) { + return electricityMeterApi.eleControl(electricityMeterEntity); + } + + /** + * 分页列表查询 + * + * @param electricityMeterEntity + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @GetMapping(value = "/list") + public Result> 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 eleReset(ElectricityMeterEntity electricityMeterEntity) { + return electricityMeterApi.eleReset(electricityMeterEntity); + } + + @AutoLog(value = "设备报修") + @ApiOperation(value="设备报修", notes="设备报修") + @RequestMapping(value = "/baoxiu", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result baoxiu(@RequestBody ElectricityMeterEntity electricityMeterEntity) { + electricityMeterApi.baoxiu(electricityMeterEntity); + return Result.OK("操作成功!"); + } +} diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/iot/water/api/WaterApi.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/iot/water/api/WaterApi.java new file mode 100644 index 0000000..b07340b --- /dev/null +++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/iot/water/api/WaterApi.java @@ -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> 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 waterReset(WaterMeterEntity waterMeterEntity) { + return waterApi.waterReset(waterMeterEntity); + } + + /** + * 开闸、关闸 + * @param waterMeterEntity + * @return + */ + @GetMapping(value = "/waterControl") + public Result waterControl(WaterMeterEntity waterMeterEntity) { + return waterApi.waterControl(waterMeterEntity); + } + + /** + * 抄表 + * @param waterMeterEntity + * @return + */ + @GetMapping(value = "/waterRead") + public Result waterRead(WaterMeterEntity waterMeterEntity) { + return waterApi.waterRead(waterMeterEntity); + } + + + @AutoLog(value = "设备报修") + @ApiOperation(value="设备报修", notes="设备报修") + @RequestMapping(value = "/baoxiu", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result baoxiu(@RequestBody WaterMeterEntity waterMeterEntity) { + waterApi.baoxiu(waterMeterEntity); + return Result.OK("操作成功!"); + } +} diff --git a/nursing-unit-common/src/main/java/com/nu/entity/ApiRequestLogEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/ApiRequestLogEntity.java new file mode 100644 index 0000000..0b6968a --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/entity/ApiRequestLogEntity.java @@ -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; +} diff --git a/nursing-unit-common/src/main/java/com/nu/entity/ElectricityMeterEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/ElectricityMeterEntity.java new file mode 100644 index 0000000..4fae519 --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/entity/ElectricityMeterEntity.java @@ -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;//维修状态 + +} diff --git a/nursing-unit-common/src/main/java/com/nu/entity/WaterMeterEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/WaterMeterEntity.java new file mode 100644 index 0000000..2894568 --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/entity/WaterMeterEntity.java @@ -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;//维修状态 +} diff --git a/nursing-unit-iot/nu-iot-api/nu-iot-local-api/src/main/java/com/nu/modules/apirequestlog/api/IIotApiRequestLog.java b/nursing-unit-iot/nu-iot-api/nu-iot-local-api/src/main/java/com/nu/modules/apirequestlog/api/IIotApiRequestLog.java new file mode 100644 index 0000000..7342d7c --- /dev/null +++ b/nursing-unit-iot/nu-iot-api/nu-iot-local-api/src/main/java/com/nu/modules/apirequestlog/api/IIotApiRequestLog.java @@ -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 getApiRequestLogIPage(ApiRequestLogEntity nuIotTqApiRequestLogEntity, Integer pageNo, Integer pageSize, HttpServletRequest req); +} diff --git a/nursing-unit-iot/nu-iot-api/nu-iot-local-api/src/main/java/com/nu/modules/electricitymeter/api/IElectricityMeterApi.java b/nursing-unit-iot/nu-iot-api/nu-iot-local-api/src/main/java/com/nu/modules/electricitymeter/api/IElectricityMeterApi.java new file mode 100644 index 0000000..2440dd3 --- /dev/null +++ b/nursing-unit-iot/nu-iot-api/nu-iot-local-api/src/main/java/com/nu/modules/electricitymeter/api/IElectricityMeterApi.java @@ -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 eleRead(ElectricityMeterEntity electricityMeter); + + Result eleControl(ElectricityMeterEntity electricityMeter); + + IPage list(ElectricityMeterEntity electricityMeterEntity, Integer pageNo, Integer pageSize, HttpServletRequest req); + + Result eleReset(ElectricityMeterEntity electricityMeterEntity); + + void baoxiu(ElectricityMeterEntity electricityMeterEntity); +} diff --git a/nursing-unit-iot/nu-iot-api/nu-iot-local-api/src/main/java/com/nu/modules/water/api/IWaterApi.java b/nursing-unit-iot/nu-iot-api/nu-iot-local-api/src/main/java/com/nu/modules/water/api/IWaterApi.java new file mode 100644 index 0000000..550a022 --- /dev/null +++ b/nursing-unit-iot/nu-iot-api/nu-iot-local-api/src/main/java/com/nu/modules/water/api/IWaterApi.java @@ -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 list(WaterMeterEntity waterMeterEntity, Integer pageNo, Integer pageSize, HttpServletRequest req); + + Result waterReset(WaterMeterEntity waterMeterEntity); + Result waterControl(WaterMeterEntity waterMeterEntity); + Result waterRead(WaterMeterEntity waterMeterEntity); + void baoxiu(WaterMeterEntity waterMeterEntity); +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/apiRequestLog/controller/ApiRequestLogController.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/apiRequestLog/controller/ApiRequestLogController.java index 1c9d04c..0f62489 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/apiRequestLog/controller/ApiRequestLogController.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/apiRequestLog/controller/ApiRequestLogController.java @@ -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 { @Autowired private IApiRequestLogService nuIotTqApiRequestLogService; - + /** * 分页列表查询 * @@ -57,62 +58,11 @@ public class ApiRequestLogController extends JeecgController 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 queryWrapper = QueryGenerator.initQueryWrapper(nuIotTqApiRequestLog, req.getParameterMap(),customeRuleMap); - Page page = new Page(pageNo, pageSize); - IPage 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 pageList = nuIotTqApiRequestLogService.getApiRequestLogIPage(nuIotTqApiRequestLog, pageNo, pageSize, req); return Result.OK(pageList); } - - /** + + /** * 添加 * * @param nuIotTqApiRequestLog @@ -126,7 +76,7 @@ public class ApiRequestLogController extends JeecgController { + IPage getApiRequestLogIPage(ApiRequestLog nuIotTqApiRequestLog, Integer pageNo, Integer pageSize, HttpServletRequest req); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/apiRequestLog/service/impl/ApiRequestLogServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/apiRequestLog/service/impl/ApiRequestLogServiceImpl.java index ae13657..7578453 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/apiRequestLog/service/impl/ApiRequestLogServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/apiRequestLog/service/impl/ApiRequestLogServiceImpl.java @@ -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 implements IApiRequestLogService { +public class ApiRequestLogServiceImpl extends ServiceImpl implements IApiRequestLogService, IIotApiRequestLog { + @Lazy + @Autowired + private IApiRequestLogService nuIotTqApiRequestLogService; + + @Override + public IPage getApiRequestLogIPage(ApiRequestLog nuIotTqApiRequestLog, Integer pageNo, Integer pageSize, HttpServletRequest req) { + // 自定义查询规则 + Map 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 queryWrapper = QueryGenerator.initQueryWrapper(nuIotTqApiRequestLog, req.getParameterMap(),customeRuleMap); + Page page = new Page(pageNo, pageSize); + IPage 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 getApiRequestLogIPage(ApiRequestLogEntity nuIotTqApiRequestLogEntity, Integer pageNo, Integer pageSize, HttpServletRequest req) { + ApiRequestLog apiRequestLog = new ApiRequestLog(); + BeanUtils.copyProperties(nuIotTqApiRequestLogEntity,apiRequestLog); + IPage apiRequestLogIPage = nuIotTqApiRequestLogService.getApiRequestLogIPage(apiRequestLog, pageNo, pageSize, req); + + List entityList = apiRequestLogIPage.getRecords().stream() + .map(log -> { + ApiRequestLogEntity entity = new ApiRequestLogEntity(); + BeanUtils.copyProperties(log, entity); + return entity; + }) + .collect(Collectors.toList()); + + // 4. 构造新的 IPage + IPage resultPage = new Page<>(apiRequestLogIPage.getCurrent(), apiRequestLogIPage.getSize(), apiRequestLogIPage.getTotal()); + resultPage.setRecords(entityList); + + return resultPage; + } } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/impl/ElectricityMeterServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/impl/ElectricityMeterServiceImpl.java index 62575d6..7e31efb 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/impl/ElectricityMeterServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/impl/ElectricityMeterServiceImpl.java @@ -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 implements IElectricityMeterService { +public class ElectricityMeterServiceImpl extends ServiceImpl implements IElectricityMeterService, IElectricityMeterApi { @Autowired private TqApi tqApi; @@ -55,43 +60,45 @@ public class ElectricityMeterServiceImpl extends ServiceImpl findPage(Page page, ElectricityMeter electricityMeter){ - return baseMapper.findPage(page,electricityMeter); + public IPage findPage(Page page, ElectricityMeter electricityMeter) { + return baseMapper.findPage(page, electricityMeter); } @Override - public List findAllList(){ + public List 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 eleReset(ElectricityMeter electricityMeter){ + public Result 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> req = new ArrayList<>(); @@ -109,14 +116,14 @@ public class ElectricityMeterServiceImpl extends ServiceImpl 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 eleControl(ElectricityMeter electricityMeter){ + public Result 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 eleControl(ElectricityMeterEntity electricityMeterEntity) { + ElectricityMeter electricityMeter = new ElectricityMeter(); + BeanUtils.copyProperties(electricityMeterEntity,electricityMeter); + return syncImpl.eleControl(electricityMeter); + } + + @Override + public IPage list(ElectricityMeterEntity electricityMeterEntity, Integer pageNo, Integer pageSize, HttpServletRequest req) { + ElectricityMeter electricityMeter = new ElectricityMeter(); + BeanUtils.copyProperties(electricityMeterEntity,electricityMeter); + Page page = new Page(pageNo, pageSize); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(electricityMeter, req.getParameterMap()); + IPage pageList = syncImpl.findPage(page, electricityMeter); + + List entityList = pageList.getRecords().stream() + .map(meter -> { + ElectricityMeterEntity entity = new ElectricityMeterEntity(); + BeanUtils.copyProperties(meter, entity); + return entity; + }) + .collect(Collectors.toList()); + + // 6. 构建新的 IPage + IPage resultPage = new Page<>(pageList.getCurrent(), pageList.getSize(), pageList.getTotal()); + resultPage.setRecords(entityList); + return resultPage; + } + /** * 抄电表 */ @Override - public Result eleRead(ElectricityMeter electricityMeter){ + public Result eleRead(ElectricityMeter electricityMeter) { ElectricityMeter entity = baseMapper.getElectricityMeter(electricityMeter); - if(entity == null){ + if (entity == null) { return Result.error("请先同步电表设备信息后再进行抄表"); } List> req = new ArrayList<>(); @@ -267,14 +323,14 @@ public class ElectricityMeterServiceImpl extends ServiceImpl 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 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 implements IWaterMeterService { +public class WaterMeterServiceImpl extends ServiceImpl implements IWaterMeterService, IWaterApi { @Autowired private TqApi tqApi; @@ -54,22 +58,22 @@ public class WaterMeterServiceImpl extends ServiceImpl findPage(Page page, WaterMeter waterMeter){ - return baseMapper.findPage(page,waterMeter); + public IPage findPage(Page page, WaterMeter waterMeter) { + return baseMapper.findPage(page, waterMeter); } @Override - public List findAllList(){ + public List 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 waterReset(WaterMeter waterMeter){ + public Result 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> req = new ArrayList<>(); @@ -108,14 +112,14 @@ public class WaterMeterServiceImpl extends ServiceImpl waterControl(WaterMeter waterMeter){ + public Result 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 waterRead(WaterMeter waterMeter){ + public Result waterRead(WaterMeter waterMeter) { WaterMeter entity = baseMapper.getWaterMeter(waterMeter); - if(entity == null){ + if (entity == null) { return Result.error("请先同步水表设备信息后再进行抄表"); } List> req = new ArrayList<>(); @@ -267,14 +271,14 @@ public class WaterMeterServiceImpl extends ServiceImpl0){ + 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 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 list(WaterMeterEntity waterMeterEntity, Integer pageNo, Integer pageSize, HttpServletRequest req) { + WaterMeter waterMeter = new WaterMeter(); + BeanUtils.copyProperties(waterMeterEntity, waterMeter); + Page page = new Page(pageNo, pageSize); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(waterMeter, req.getParameterMap()); + IPage pageList = syncImpl.findPage(page, waterMeter); + + List entityList = pageList.getRecords().stream() + .map(meter -> { + WaterMeterEntity entity = new WaterMeterEntity(); + BeanUtils.copyProperties(meter, entity); + return entity; + }) + .collect(Collectors.toList()); + + // 6. 构建新的分页对象 + IPage resultPage = new Page<>(pageList.getCurrent(), pageList.getSize(), pageList.getTotal()); + resultPage.setRecords(entityList); + return resultPage; + } + + @Override + public Result waterReset(WaterMeterEntity waterMeterEntity) { + WaterMeter waterMeter = new WaterMeter(); + BeanUtils.copyProperties(waterMeterEntity, waterMeter); + return syncImpl.waterReset(waterMeter); + } + + @Override + public Result waterControl(WaterMeterEntity waterMeterEntity) { + WaterMeter waterMeter = new WaterMeter(); + BeanUtils.copyProperties(waterMeterEntity, waterMeter); + return syncImpl.waterControl(waterMeter); + } + + @Override + public Result 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); + } }