酸雾塔报警记录系列定时任务rpAcidMistTower()

liweidong
张乾翔 2 days ago
parent bf530e253d
commit cebcfb50f4
  1. 40
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerReportFormsMapper.java
  2. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerReportFormsMapper.xml
  3. 40
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRunTimeMapper.java
  4. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRunTimeMapper.xml
  5. 104
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/EpTowerReportFormsEntity.java
  6. 87
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/EpTowerRunTimeEntity.java
  7. 41
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IEpTowerReportFormsService.java
  8. 40
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IEpTowerRunTimeService.java
  9. 98
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerServiceImpl.java
  10. 61
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/EpTowerReportFormsServiceImpl.java
  11. 56
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/EpTowerRunTimeServiceImpl.java
  12. 237
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/DateTime.java
  13. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/HttpRequestService.java

@ -0,0 +1,40 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.energy.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.desk.energy.pojo.entity.EpTowerReportFormsEntity;
/**
* 酸雾塔报表统计表 Mapper 接口
*
* @author BladeX
* @since 2026-04-24
*/
public interface EpTowerReportFormsMapper extends BaseMapper<EpTowerReportFormsEntity> {
}

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.energy.mapper.EpTowerReportFormsMapper">
</mapper>

@ -0,0 +1,40 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.energy.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.desk.energy.pojo.entity.EpTowerRunTimeEntity;
/**
* 酸雾塔运行时间表 Mapper 接口
*
* @author BladeX
* @since 2026-04-24
*/
public interface EpTowerRunTimeMapper extends BaseMapper<EpTowerRunTimeEntity> {
}

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.energy.mapper.EpTowerRunTimeMapper">
</mapper>

@ -0,0 +1,104 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.energy.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.math.BigDecimal;
import java.util.Date;
/**
* 酸雾塔报表统计表 实体类
*
* @author BladeX
* @since 2026-04-24
*/
@Data
@TableName("EP_TOWER_REPORT_FORMS")
@Schema(description = "EpTowerReportForms对象")
public class EpTowerReportFormsEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 酸雾塔
*/
@TableId
@Schema(description = "酸雾塔")
private Long btId;
/**
* 点位
*/
@Schema(description = "点位")
private String key;
/**
* 类型;1PH2风机3循环泵
*/
@Schema(description = "类型;1、PH,2、风机,3、循环泵")
private Integer etrType;
/**
* 开始时间
*/
@DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
@JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
@Schema(description = "开始时间")
private Date startTime;
/**
* 结束时间
*/
@DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
@JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
@Schema(description = "结束时间")
private Date endTime;
/**
* 时间
*/
@Schema(description = "时间")
private BigDecimal etrTime;
/**
* PH
*/
public static Short PH = 1;
/**
* 风机
*/
public static Short FAN = 2;
/**
* 循环泵
*/
public static Short PUMP = 3;
}

@ -0,0 +1,87 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.energy.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 酸雾塔运行时间表 实体类
*
* @author BladeX
* @since 2026-04-24
*/
@Data
@TableName("EP_TOWER_RUN_TIME")
@Schema(description = "EpTowerRunTime对象")
public class EpTowerRunTimeEntity implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 流水号
*/
@TableId
@Schema(description = "流水号")
private Long etrtId;
/**
* 酸雾塔
*/
@Schema(description = "酸雾塔")
private Long btId;
/**
* 开始时间
*/
@DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
@JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
@Schema(description = "开始时间")
private Date startTime;
/**
* 结束时间
*/
@DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
@JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
@Schema(description = "结束时间")
private Date endTime;
/**
* 时间
*/
@Schema(description = "时间")
private BigDecimal etrtTime;
}

@ -0,0 +1,41 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.energy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.desk.energy.pojo.entity.EpTowerReportFormsEntity;
import java.util.List;
/**
* 酸雾塔报表统计表 服务类
*
* @author BladeX
* @since 2026-04-24
*/
public interface IEpTowerReportFormsService extends IService<EpTowerReportFormsEntity> {
EpTowerReportFormsEntity getTowerReportByTerm(String pid, Short type, Long id);
}

@ -0,0 +1,40 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.energy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.desk.energy.pojo.entity.EpTowerRunTimeEntity;
/**
* 酸雾塔运行时间表 服务类
*
* @author BladeX
* @since 2026-04-24
*/
public interface IEpTowerRunTimeService extends IService<EpTowerRunTimeEntity> {
EpTowerRunTimeEntity getEpTowerRunTimeByBtId(Long id);
}

@ -25,6 +25,7 @@
*/
package org.springblade.desk.energy.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource;
@ -32,14 +33,23 @@ import org.springblade.desk.energy.excel.BsTowerExcel;
import org.springblade.desk.energy.mapper.BsTowerMapper;
import org.springblade.desk.energy.pojo.entity.BsTowerEntity;
import org.springblade.desk.energy.pojo.entity.BsTowerReportEntity;
import org.springblade.desk.energy.pojo.entity.EpTowerReportFormsEntity;
import org.springblade.desk.energy.pojo.entity.EpTowerRunTimeEntity;
import org.springblade.desk.energy.pojo.vo.BsTowerVO;
import org.springblade.desk.energy.service.IBsTowerReportService;
import org.springblade.desk.energy.service.IBsTowerService;
import org.springblade.desk.energy.service.IEpTowerReportFormsService;
import org.springblade.desk.energy.service.IEpTowerRunTimeService;
import org.springblade.desk.energy.util.DateTime;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@ -53,6 +63,10 @@ import java.util.List;
public class BsTowerServiceImpl extends BaseServiceImpl<BsTowerMapper, BsTowerEntity> implements IBsTowerService {
//@Resource
//IBsTowerReportService epTowerReportService;
@Resource
IEpTowerReportFormsService epTowerReportService;
@Resource
IEpTowerRunTimeService epTowerRunTimeDao;
@Override
public IPage<BsTowerVO> selectBsTowerPage(IPage<BsTowerVO> page, BsTowerVO bsTower) {
return page.setRecords(baseMapper.selectBsTowerPage(page, bsTower));
@ -108,45 +122,52 @@ public class BsTowerServiceImpl extends BaseServiceImpl<BsTowerMapper, BsTowerEn
}
// 酸雾塔运行时间记录
//if (identifierName.equals(bsTower.getFanRunPoint()) && "true".equals(defaultValue)) {
// // 根据酸雾塔查询酸雾塔运行数据并存储开始运行时间
// EpTowerRunTime epTowerRunTime = epTowerRunTimeDao.getEpTowerRunTimeByBtId(bsTower.getBtId());
// if (epTowerRunTime == null) {
// EpTowerRunTime newEpTowerRunTime = new EpTowerRunTime();
// newEpTowerRunTime.setBsTower(bsTower);
// newEpTowerRunTime.setStartTime(new Date());
// epTowerRunTimeDao.save(newEpTowerRunTime);
// }
//} else if (identifierName.equals(bsTower.getFanRunPoint()) && "false".equals(defaultValue)) {
// // 存储关闭时间
// EpTowerRunTime epTowerRunTime = epTowerRunTimeDao.getEpTowerRunTimeByBtId(bsTower.getBtId());
// if (epTowerRunTime != null) {
// epTowerRunTime.setEtrtTime(this.getTimeFun(epTowerRunTime.getStartTime()));
// epTowerRunTime.setEndTime(new Date());
// epTowerRunTimeDao.update(epTowerRunTime);
// }
//}
if (identifierName.equals(bsTower.getFanRunPoint()) && "true".equals(defaultValue)) {
// 根据酸雾塔查询酸雾塔运行数据并存储开始运行时间
EpTowerRunTimeEntity epTowerRunTime = epTowerRunTimeDao.getEpTowerRunTimeByBtId(bsTower.getId());
if (epTowerRunTime == null) {
EpTowerRunTimeEntity newEpTowerRunTime = new EpTowerRunTimeEntity();
newEpTowerRunTime.setBtId(bsTower.getId());
newEpTowerRunTime.setStartTime(new Date());
epTowerRunTimeDao.save(newEpTowerRunTime);
}
} else if (identifierName.equals(bsTower.getFanRunPoint()) && "false".equals(defaultValue)) {
// 存储关闭时间
EpTowerRunTimeEntity epTowerRunTime = epTowerRunTimeDao.getEpTowerRunTimeByBtId(bsTower.getId());
if (epTowerRunTime != null) {
epTowerRunTime.setEtrtTime(BigDecimal.valueOf(getTimeFun(epTowerRunTime.getStartTime())));
epTowerRunTime.setEndTime(new Date());
epTowerRunTimeDao.updateById(epTowerRunTime);
}
}
}
}
}
private void queryAlsoUpdate(String identifierName, Short ph, BsTowerEntity bsTower) {
private void queryAlsoUpdate(String pid, Short ph, BsTowerEntity bsTower) {
// 然后根据点位、类型、名称 并且没有结束时间的 去查数据
EpTowerReportFormsEntity epTowerReport = epTowerReportService.getTowerReportByTerm(pid, ph, bsTower.getId());
// 如果查到给上结束时间
if (BeanUtil.isNotEmpty(epTowerReport)) {
epTowerReport.setEndTime(new Date());
epTowerReport.setEtrTime(BigDecimal.valueOf(getTimeFun(epTowerReport.getStartTime())));
epTowerReportService.updateById(epTowerReport);
}
}
private void queryAlsoSave(String pid, Short type, BsTowerEntity bsTower) {
// 然后根据点位、类型、名称 并且没有结束时间的 去查数据
//BsTowerReportEntity epTowerReport = epTowerReportService.getTowerReportByTerm(pid, type, bsTower.getId());
// 如果查到不做任何操作 如果没有查到新增一条数据
//if (epTowerReport == null) {
// EpTowerReport newEpTowerReport = new EpTowerReport();
// newEpTowerReport.setBsTower(bsTower);
// newEpTowerReport.setEtrType(type);
// newEpTowerReport.setStartTime(new Date());
// newEpTowerReport.setKey(pid);
// epTowerReportDao.save(newEpTowerReport);
//}
// //然后根据点位、类型、名称 并且没有结束时间的 去查数据
EpTowerReportFormsEntity epTowerReport = epTowerReportService.getTowerReportByTerm(pid, type, bsTower.getId());
// //如果查到不做任何操作 如果没有查到新增一条数据
if (BeanUtil.isEmpty(epTowerReport)) {
EpTowerReportFormsEntity newEpTowerReport = new EpTowerReportFormsEntity();
newEpTowerReport.setBtId(bsTower.getId());
newEpTowerReport.setEtrType(Integer.valueOf(type));
newEpTowerReport.setStartTime(new Date());
newEpTowerReport.setKey(pid);
epTowerReportService.save(newEpTowerReport);
}
}
@ -155,5 +176,20 @@ public class BsTowerServiceImpl extends BaseServiceImpl<BsTowerMapper, BsTowerEn
return list(Wrappers.lambdaQuery(BsTowerEntity.class)
.eq(BsTowerEntity::getBtCode, code));
}
private Double getTimeFun(Date startTime) {
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = null;//当前时间
try {
now = sf.parse(DateTime.date2String(startTime, true, true, "-"));
} catch (ParseException e) {
e.printStackTrace();
return 0.0;
}
Date date = new Date();//当前时间
long diff = now.getTime() - date.getTime();
long min = diff / 60 / 1000;
return Double.valueOf(Math.abs(min));
}
}

@ -0,0 +1,61 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.energy.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.io.filefilter.FalseFileFilter;
import org.springblade.desk.energy.mapper.EpTowerReportFormsMapper;
import org.springblade.desk.energy.pojo.entity.EpTowerReportFormsEntity;
import org.springblade.desk.energy.service.IEpTowerReportFormsService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 酸雾塔报表统计表 服务实现类
*
* @author BladeX
* @since 2026-04-24
*/
@Service
public class EpTowerReportFormsServiceImpl extends ServiceImpl<EpTowerReportFormsMapper, EpTowerReportFormsEntity> implements IEpTowerReportFormsService {
@Override
public EpTowerReportFormsEntity getTowerReportByTerm(String pid, Short type, Long id) {
//String sql = " select a.* from ep_tower_report a where a.key=:key and a.etr_type=:type and a.bt_id = :btId and a.end_time is null";
//Query<EpTowerReport> query = this.getSession().createSQLQuery(sql).addEntity(EpTowerReport.class);
//query.setParameter("key", key);
//query.setParameter("type", type);
//query.setParameter("btId", btId);
//return query.uniqueResult();
return getOne(Wrappers.lambdaQuery(EpTowerReportFormsEntity.class)
.eq(EpTowerReportFormsEntity::getKey, pid)
.eq(EpTowerReportFormsEntity::getEtrType, type)
.eq(EpTowerReportFormsEntity::getBtId, id),false);
}
}

@ -0,0 +1,56 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.energy.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.desk.energy.mapper.EpTowerRunTimeMapper;
import org.springblade.desk.energy.pojo.entity.EpTowerRunTimeEntity;
import org.springblade.desk.energy.service.IEpTowerRunTimeService;
import org.springframework.stereotype.Service;
/**
* 酸雾塔运行时间表 服务实现类
*
* @author BladeX
* @since 2026-04-24
*/
@Service
public class EpTowerRunTimeServiceImpl extends ServiceImpl<EpTowerRunTimeMapper, EpTowerRunTimeEntity> implements IEpTowerRunTimeService {
@Override
public EpTowerRunTimeEntity getEpTowerRunTimeByBtId(Long id) {
// String sql = " select a.* from ep_tower_run_time a where a.bt_id = :btId and a.end_time is null";
// Query<EpTowerRunTime> query = this.getSession().createSQLQuery(sql).addEntity(EpTowerRunTime.class);
// query.setParameter("btId", btId);
// return query.uniqueResult();
return getOne(Wrappers.lambdaQuery(EpTowerRunTimeEntity.class)
.eq(EpTowerRunTimeEntity::getBtId, id)
.isNull(EpTowerRunTimeEntity::getEndTime));
}
}

@ -0,0 +1,237 @@
package org.springblade.desk.energy.util;/**
* @date : 2026/4/24 13:18
*/
/**
* 文件名称
* @module 归属项目
* @author ***
* @date 2025/11/26 10:27
*/
import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
public final class DateTime implements Serializable {
private static final long serialVersionUID = -1435674106176979553L;
private Date _date;
private Calendar cal;
private static DateTimeFormatter defaultDateTimeFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public DateTime(Date d) {
this._date = null;
this.cal = Calendar.getInstance();
this._date = d;
this.cal.setTime(this._date);
}
public DateTime(String dstr) {
this(parse(dstr));
}
public Date getDate() {
return this._date;
}
public TimeSpan subtract(DateTime dt) {
return dateDiff(this._date, dt.getDate());
}
public DateTime subtract(TimeSpan ts) {
TimeSpan nts = new TimeSpan(-ts.getTotalMilliseconds());
return new DateTime(dateAdd(this._date, nts));
}
public static DateTime now() {
return new DateTime(new Date());
}
public static Date parse(String d) {
if (d != null && d.trim().length() != 0) {
if (d.length() < 19) {
d = d + "0000-00-00 00:00:00".substring(d.length());
}
return Date.from(LocalDateTime.parse(d, defaultDateTimeFormat).atZone(ZoneId.systemDefault()).toInstant());
} else {
return null;
}
}
public static final Date getDateWithoutTime(Date d) {
if (d == null) {
return null;
} else {
Calendar c = Calendar.getInstance();
c.setTime(d);
c.set(11, 0);
c.set(12, 0);
c.set(13, 0);
c.set(14, 0);
return c.getTime();
}
}
public static final Date getDateWithMaxTime(Date d) {
Calendar c = Calendar.getInstance();
c.setTime(d);
c.set(11, 23);
c.set(12, 59);
c.set(13, 59);
c.set(14, 999);
return c.getTime();
}
public static final Date getDateWithMaxTime(Date d, int millisecond) {
Calendar c = Calendar.getInstance();
c.setTime(d);
c.set(11, 23);
c.set(12, 59);
c.set(13, 59);
c.set(14, millisecond);
return c.getTime();
}
public static final Date getFirstDayOfMonth(Date d) {
Calendar c = Calendar.getInstance();
c.setTime(d);
c.set(5, 1);
c.set(11, 0);
c.set(12, 0);
c.set(13, 0);
c.set(14, 0);
return c.getTime();
}
public static final Date getFirstDayOfMonth() {
Date d = new Date();
return getFirstDayOfMonth(d);
}
public static final Date getLastDayOfMonth(Date d) {
Calendar c = Calendar.getInstance();
c.setTime(d);
c.add(2, 1);
c.set(5, 1);
c.add(5, -1);
c.set(11, 0);
c.set(12, 0);
c.set(13, 0);
c.set(14, 0);
return c.getTime();
}
public static final Date getLastDayOfMonth() {
Date d = new Date();
return getLastDayOfMonth(d);
}
public static String getToday() {
return date2String(new Date());
}
public static final String getTimeNow() {
return date2String(new Date(), true, true);
}
public static String date2String(Date d) {
return date2String(d, false, false, (String)null);
}
public static final String date2String(Date d, boolean withTime, boolean withSecond) {
return date2String(d, withTime, withSecond, (String)null);
}
public static final String date2String(Date d, boolean withTime, boolean withSecond, String dateSplitChar) {
if (dateSplitChar == null) {
dateSplitChar = "-";
}
if (!withTime) {
withSecond = false;
}
Calendar c = Calendar.getInstance();
c.setTime(d);
int YY = c.get(1);
int MM = c.get(2) + 1;
int DD = c.get(5);
int hh = c.get(11);
int mm = c.get(12);
int ss = c.get(13);
StringBuffer sb = new StringBuffer();
sb.append(YY).append(dateSplitChar);
sb.append(MM < 10 ? "0" : "").append(MM).append(dateSplitChar);
sb.append(DD < 10 ? "0" : "").append(DD);
if (withTime) {
sb.append(" ").append(hh < 10 ? "0" : "").append(hh);
sb.append(":").append(mm < 10 ? "0" : "").append(mm);
if (withSecond) {
sb.append(":").append(ss < 10 ? "0" : "").append(ss);
}
}
return sb.toString();
}
public static final TimeSpan dateDiff(Date date1, Date date2) {
long diff = 0L;
if (date1 != null && date2 != null) {
diff = date2.getTime() - date1.getTime();
}
return new TimeSpan(diff);
}
public static final Date dateAdd(Date d, TimeSpan ts) {
Calendar c = Calendar.getInstance();
c.setTime(d);
c.add(5, ts.getDays());
c.add(10, ts.getHours());
c.add(12, ts.getMinutes());
c.add(13, ts.getSeconds());
c.add(14, ts.getMilliseconds());
return c.getTime();
}
public static final long date2Long(Date d) {
return (long)date2Integer(d) * 1000000L + (long)time2Integer(d);
}
public static final int date2Integer(Date d) {
Calendar cal = Calendar.getInstance();
cal.setTime(d);
return cal.get(1) * 10000 + (cal.get(2) + 1) * 100 + cal.get(5);
}
public static final int time2Integer(Date d) {
Calendar cal = Calendar.getInstance();
cal.setTime(d);
return cal.get(11) * 10000 + cal.get(12) * 100 + cal.get(13);
}
public static final Date integer2Date(int yyyyMMdd) {
String str = String.valueOf(yyyyMMdd);
Calendar cal = Calendar.getInstance();
cal.set(1, Integer.parseInt(str.substring(0, 4)));
cal.set(2, Integer.parseInt(str.substring(4, 6)) - 1);
cal.set(5, Integer.parseInt(str.substring(6)));
return cal.getTime();
}
public Integer getYear() {
return this.cal.get(1);
}
public Integer getMonth() {
return this.cal.get(2) + 1;
}
public Integer getDay() {
return this.cal.get(5);
}
}

@ -66,12 +66,13 @@ public class HttpRequestService {
JSONObject object = new JSONObject();
object.put("deviceNum", deviceId);
JSONObject result = null;
HttpEntity<JSONObject> entity = new HttpEntity<>(object, headers);
ResponseEntity<JSONObject> responseEntity= httpClientTemplate.postForEntity(iotNewUrl + "/deviceForZhgd/getDataByIotCode", entity, JSONObject.class);
result = responseEntity.getBody();
ResponseEntity<JSONObject> responseEntity = httpClientTemplate.postForEntity(
iotNewUrl + "/deviceForZhgd/getDataByIotCode",
entity,
JSONObject.class);
JSONObject result = responseEntity.getBody();
if (result != null && result.getInteger("code").equals(200)) {
JSONObject object1 = result.getJSONObject("data");
List<JSONObject> objList = object1.getJSONArray("modelAttrs").toJavaList(JSONObject.class);

Loading…
Cancel
Save