diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.java new file mode 100644 index 00000000..bf6ba060 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.java @@ -0,0 +1,40 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * 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.EpTowerRecAlarm; + +/** + * 酸雾塔报警记录对照表 Mapper 接口 + * + * @author BladeX + * @since 2026-04-20 + */ +public interface EpTowerRecAlarmMapper extends BaseMapper { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.xml new file mode 100644 index 00000000..e9d6b5b5 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.java new file mode 100644 index 00000000..4a0be341 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.java @@ -0,0 +1,40 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * 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.RpParameterSet; + +/** + * 参数设置表 Mapper 接口 + * + * @author BladeX + * @since 2026-04-20 + */ +public interface RpParameterSetMapper extends BaseMapper { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.xml new file mode 100644 index 00000000..c050aa5d --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.xml @@ -0,0 +1,4 @@ + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsDosingRecEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsDosingRecEntity.java index fc87ce31..03f622b8 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsDosingRecEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsDosingRecEntity.java @@ -38,6 +38,8 @@ import org.springblade.core.tool.utils.DateUtil; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serial; +import java.util.HashMap; +import java.util.Map; /** * 废气/废水加药记录表 实体类 @@ -103,4 +105,37 @@ public class BsDosingRecEntity extends BaseEntity { //@Schema(description = "酸雾塔") private Long btId; + + + + /** + * 废气加药 + */ + public static Short DORTYPE_GAS_DOS = 1; + /** + * 废水加药 + */ + public static Short DORTYPE_WATER_DOS = 2; + + public static Map dorTypeMap = new HashMap<>(2); + /** + * 手动新增-默认已处理 + */ + public static Short HANDLE_RESULT_ADD = 1; + /** + * 自动生成-待处理 + */ + public static Short HANDLE_RESULT_WAIT = 2; + /** + * 自动生成-pda处理 + */ + public static Short HANDLE_RESULT_PDA = 3; + + public static Map handleResultMap = new HashMap<>(3); + + static { + handleResultMap.put(HANDLE_RESULT_ADD, "手动新增"); + handleResultMap.put(HANDLE_RESULT_WAIT, "待处理"); + handleResultMap.put(HANDLE_RESULT_PDA, "PDA已处理"); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsTowerReportEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsTowerReportEntity.java index 754c61d6..b45fe700 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsTowerReportEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsTowerReportEntity.java @@ -60,13 +60,16 @@ public class BsTowerReportEntity extends BaseEntity { /** * 处理状态 */ - @Schema(description = "处理状态") - private String dealStatus; + @Schema(description = "处理状态(是否报警 、、 0否1是)") + private Boolean dealStatus = false; /** * 编码 */ @Schema(description = "编码") private String btCode; + //点位 + @Schema(description = "点位") + private String key; /** * 日期 */ @@ -74,6 +77,17 @@ public class BsTowerReportEntity extends BaseEntity { @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) @Schema(description = "日期") private Date btDate; + + @Schema(name = "开始时间") + @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME) + @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) + private Date startTime; + + @Schema(name = "结束时间") + @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME) + @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) + private Date endTime; + /** * 错误点 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsWasteGasRunRecEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsWasteGasRunRecEntity.java index 4fa5ba40..e9991a57 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsWasteGasRunRecEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsWasteGasRunRecEntity.java @@ -73,10 +73,8 @@ public class BsWasteGasRunRecEntity extends BaseEntity { /** * 运行时间 */ - @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME) - @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) @Schema(description = "运行时间") - private Date runTime; + private Double runTime; /** * 系统参数 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/EpTowerRecAlarm.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/EpTowerRecAlarm.java new file mode 100644 index 00000000..e906104f --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/EpTowerRecAlarm.java @@ -0,0 +1,76 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * 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 io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 酸雾塔报警记录对照表 实体类 + * + * @author BladeX + * @since 2026-04-20 + */ +@Data +@TableName("EP_TOWER_REC_ALARM") +@Schema(description = "EpTowerRecAlarm对象") +public class EpTowerRecAlarm extends BaseEntity implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 编号 + */ + @Schema(description = "编号") + private String code; + + /** + * 点位 + */ + @Schema(description = "点位") + private String key; + + /** + * 错误点 + */ + @Schema(description = "错误点") + private String errorPoint; + + /** + * 消息文本 + */ + @Schema(description = "消息文本") + private String messText; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/RpParameterSet.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/RpParameterSet.java new file mode 100644 index 00000000..7aae4e0f --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/RpParameterSet.java @@ -0,0 +1,194 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.energy.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 参数设置表 实体类 + * + * @author BladeX + * @since 2026-04-20 + */ +@Data +@TableName("RP_PARAMETER_SET") +@Schema(description = "RpParameterSet对象") +public class RpParameterSet implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 日期 + */ + @Schema(description = "日期") + private String rpsDate; + + /** + * 时间 + */ + @Schema(description = "时间") + private String rpsTime; + + /** + * NF产水导电率A + */ + @Schema(description = "NF产水导电率A") + private String nfA; + + /** + * NF产水导电率B + */ + @Schema(description = "NF产水导电率B") + private String nfB; + + /** + * NF进水导电率 + */ + @Schema(description = "NF进水导电率") + private String nf; + + /** + * RO1_1_产水导电率A + */ + @Schema(description = "RO1_1_产水导电率A") + private String ro11A; + + /** + * RO1_1_产水导电率B + */ + @Schema(description = "RO1_1_产水导电率B") + private String ro11B; + + /** + * RO1_1_产水导电率C + */ + @Schema(description = "RO1_1_产水导电率C") + private String ro11C; + + /** + * RO1_1_进水导电率 + */ + @Schema(description = "RO1_1_进水导电率") + private String ro11; + + /** + * RO1_1_浓水PH值 + */ + @Schema(description = "RO1_1_浓水PH值") + private String ro11Ph; + + /** + * RO2_1_产水导电 + */ + @Schema(description = "RO2_1_产水导电") + private String ro21; + + /** + * RO2_1_进水导电率 + */ + @Schema(description = "RO2_1_进水导电率") + private String ro21Rate; + + /** + * RO2_2_产水导电率 + */ + @Schema(description = "RO2_2_产水导电率") + private String ro22Rate; + + /** + * RO2_2_进水导电 + */ + @Schema(description = "RO2_2_进水导电") + private String ro22; + + /** + * 电镀镍PH值 + */ + @Schema(description = "电镀镍PH值") + private String electPh; + + /** + * 废液反应池ORP_A + */ + @Schema(description = "废液反应池ORP_A") + private String orpA; + + /** + * 废液反应池ORP_B + */ + @Schema(description = "废液反应池ORP_B") + private String orpB; + + /** + * 废液反应池PH_A + */ + @Schema(description = "废液反应池PH_A") + private String phA; + + /** + * 废液反应池PH_B + */ + @Schema(description = "废液反应池PH_B") + private String phB; + + /** + * 废液反应池温度_A + */ + @Schema(description = "废液反应池温度_A") + private String tempA; + + /** + * 废液反应池温度_B + */ + @Schema(description = "废液反应池温度_B") + private String tempB; + + /** + * 生化溶解氧 + */ + @Schema(description = "生化溶解氧") + private String oxygen; + + /** + * 阴阳床产水PH + */ + @Schema(description = "阴阳床产水PH") + private String ph; + + /** + * 预处理ORP + */ + @Schema(description = "预处理ORP") + private String orp; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsDosingRecService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsDosingRecService.java index b9e7150f..491fe160 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsDosingRecService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsDosingRecService.java @@ -25,6 +25,7 @@ */ package org.springblade.desk.energy.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; @@ -59,4 +60,6 @@ public interface IBsDosingRecService extends BaseService { */ List exportBsDosingRec(Wrapper queryWrapper); + void towerSosRec(List objList); + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerReportService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerReportService.java index ecb7c2ce..62246059 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerReportService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerReportService.java @@ -25,6 +25,7 @@ */ package org.springblade.desk.energy.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; @@ -59,4 +60,8 @@ public interface IBsTowerReportService extends BaseService */ List exportBsTowerReport(Wrapper queryWrapper); + void setEpTowerRec(List objList); + + + BsTowerReportEntity getTowerReportByTerm(String pid, Short type, Long id); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerService.java index 51a1e492..e1645b82 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerService.java @@ -25,6 +25,7 @@ */ package org.springblade.desk.energy.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; @@ -59,4 +60,6 @@ public interface IBsTowerService extends BaseService { */ List exportBsTower(Wrapper queryWrapper); + void generateData(List objList); + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsWasteGasRunRecService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsWasteGasRunRecService.java index 610e40e2..3beb57c6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsWasteGasRunRecService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsWasteGasRunRecService.java @@ -25,6 +25,7 @@ */ package org.springblade.desk.energy.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; @@ -59,4 +60,7 @@ public interface IBsWasteGasRunRecService extends BaseService exportBsWasteGasRunRec(Wrapper queryWrapper); + void creatRunData(List objList); + + BsWasteGasRunRecEntity queryMaxDataByCode(String btCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IEpTowerRecAlarmService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IEpTowerRecAlarmService.java new file mode 100644 index 00000000..9ffc56fe --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IEpTowerRecAlarmService.java @@ -0,0 +1,40 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.energy.service; + + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.energy.pojo.entity.EpTowerRecAlarm; + +/** + * 酸雾塔报警记录对照表 服务类 + * + * @author BladeX + * @since 2026-04-20 + */ +public interface IEpTowerRecAlarmService extends BaseService { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IRpParameterSetService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IRpParameterSetService.java new file mode 100644 index 00000000..1a52a089 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IRpParameterSetService.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.energy.service; + + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.energy.pojo.entity.RpParameterSet; + +import java.util.List; + +/** + * 参数设置表 服务类 + * + * @author BladeX + * @since 2026-04-20 + */ +public interface IRpParameterSetService extends IService { + + void setParameterSet(List objList); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsDosingRecServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsDosingRecServiceImpl.java index 30dc426c..c6b3b692 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsDosingRecServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsDosingRecServiceImpl.java @@ -25,18 +25,25 @@ */ package org.springblade.desk.energy.service.impl; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import jakarta.annotation.Resource; import org.apache.commons.lang3.StringUtils; import org.springblade.desk.energy.excel.BsDosingRecExcel; import org.springblade.desk.energy.mapper.BsDosingRecMapper; import org.springblade.desk.energy.pojo.entity.BsDosingRecEntity; +import org.springblade.desk.energy.pojo.entity.BsTowerEntity; import org.springblade.desk.energy.pojo.vo.BsDosingRecVO; import org.springblade.desk.energy.service.IBsDosingRecService; +import org.springblade.desk.energy.service.IBsTowerService; 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.util.List; +import static org.springblade.desk.energy.pojo.entity.BsDosingRecEntity.HANDLE_RESULT_WAIT; + /** * 废气/废水加药记录表 服务实现类 * @@ -45,7 +52,8 @@ import java.util.List; */ @Service public class BsDosingRecServiceImpl extends BaseServiceImpl implements IBsDosingRecService { - +@Resource + IBsTowerService iBsTowerService; @Override public IPage selectBsDosingRecPage(IPage page, BsDosingRecVO bsDosingRec) { if(StringUtils.isNotEmpty(bsDosingRec.getQueryDosingTime())){ @@ -65,4 +73,33 @@ public class BsDosingRecServiceImpl extends BaseServiceImpl objList) { + List bsTowers = iBsTowerService.list(); + for (BsTowerEntity bsTower : bsTowers) { + BsDosingRecEntity epDos = getOne(Wrappers.lambdaQuery(BsDosingRecEntity.class) + .eq(BsDosingRecEntity::getBtId,bsTower.getId()) + .eq(BsDosingRecEntity::getHandleResult,HANDLE_RESULT_WAIT)); + if (epDos != null) { + removeById(epDos.getId()); + } + for (JSONObject jsonObject : objList) { + if ("false".equals(jsonObject.getString("defaultValue")) || "true".equals(jsonObject.getString("defaultValue"))) { + continue; + } + if (bsTower.getPhPoint() != null && bsTower.getPhPoint().equals(jsonObject.getString("identifierName")) && bsTower.getThreshold().doubleValue() > Double.parseDouble(jsonObject.getString("defaultValue"))) { + BsDosingRecEntity epDosingRec = new BsDosingRecEntity(); + epDosingRec.setDevice(bsTower.getBtName()); + epDosingRec.setDrug(bsTower.getDrugName()); + epDosingRec.setDorType("2"); + epDosingRec.setHandleResult(Long.valueOf(HANDLE_RESULT_WAIT)); + epDosingRec.setBtId(bsTower.getId()); + save(epDosingRec); + } + + } + + } + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerReportServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerReportServiceImpl.java index d365f2c9..4aef1f54 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerReportServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerReportServiceImpl.java @@ -26,17 +26,29 @@ package org.springblade.desk.energy.service.impl; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import jakarta.annotation.Resource; import org.apache.commons.lang3.StringUtils; import org.springblade.desk.energy.excel.BsTowerReportExcel; import org.springblade.desk.energy.mapper.BsTowerReportMapper; +import org.springblade.desk.energy.pojo.entity.BsTowerEntity; import org.springblade.desk.energy.pojo.entity.BsTowerReportEntity; +import org.springblade.desk.energy.pojo.entity.EpTowerRecAlarm; +import org.springblade.desk.energy.pojo.entity.RpParameterSet; import org.springblade.desk.energy.pojo.vo.BsTowerReportVO; import org.springblade.desk.energy.service.IBsTowerReportService; +import org.springblade.desk.energy.service.IBsTowerService; +import org.springblade.desk.energy.service.IEpTowerRecAlarmService; 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.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.Objects; /** * 酸雾塔报警记录表 服务实现类 @@ -46,7 +58,10 @@ import java.util.List; */ @Service public class BsTowerReportServiceImpl extends BaseServiceImpl implements IBsTowerReportService { - + @Resource + IBsTowerService iBsTowerService; + @Resource + IEpTowerRecAlarmService iEpTowerRecAlarmService; @Override public IPage selectBsTowerReportPage(IPage page, BsTowerReportVO bsTowerReport) { if(StringUtils.isNotEmpty(bsTowerReport.getQueryBtDate())){ @@ -66,4 +81,72 @@ public class BsTowerReportServiceImpl extends BaseServiceImpl objList) { + JSONObject jsonListObj = new JSONObject(); + // 拿到所有的值装到一个对象中 + for (JSONObject jsonObject : objList) { + jsonListObj.put(jsonObject.getString("identifierName"), jsonObject.getString("defaultValue")); + } + // 拿出所有的报警记录对照表 + List allEpTowerRecAlarm = iEpTowerRecAlarmService.list(); + + // 创建空的报警记录 + List allAlarmList = new ArrayList<>(); + BsTowerReportEntity epTowerRec; + // + for (String s : jsonListObj.keySet()) { + for (EpTowerRecAlarm epTowerRecAlarm : allEpTowerRecAlarm) { + // 如果当前点位为在报警记录对照表中找到,并且当前点位的值为true + if (s.equals(epTowerRecAlarm.getKey()) && jsonListObj.getString(s) == "true") { + // 添加到报警记录中 + allAlarmList.add(epTowerRecAlarm); + // 查看数据库中是否存在 点位为 s 并且正在报警的数据 + Long num = count(Wrappers.lambdaQuery(BsTowerReportEntity.class) + .eq(BsTowerReportEntity::getKey, s) + .eq(BsTowerReportEntity::getDealStatus, "1")); + // 如果不存在则创建一条新的数据 + if(num != 1) { + epTowerRec = new BsTowerReportEntity(); + epTowerRec.setDealStatus(true); + epTowerRec.setBtCode(epTowerRecAlarm.getCode()); + epTowerRec.setKey(epTowerRecAlarm.getKey()); + epTowerRec.setErrorPoint(epTowerRecAlarm.getErrorPoint()); + epTowerRec.setMessText(epTowerRecAlarm.getMessText()); + epTowerRec.setBtDate(new Date()); + epTowerRec.setStartTime(new Date()); + save(epTowerRec); + } + } + } + }; + // 剩余都是不报警的数据 + allEpTowerRecAlarm.removeAll(allAlarmList); + // 拿出正在报警的数据 + List alarmList = list(Wrappers.lambdaQuery(BsTowerReportEntity.class) + .eq(BsTowerReportEntity::getDealStatus, "1")); + if(alarmList.size()>0) { + for (BsTowerReportEntity towerRec : alarmList) { + for (EpTowerRecAlarm epTowerRecAlarm : allEpTowerRecAlarm) { + // 如果当前报警点位在不报警的数据中,则该点位现在不报警,并且给结束时间 + if (towerRec.getKey().equals(epTowerRecAlarm.getKey())) { + towerRec.setEndTime(new Date()); + towerRec.setDealStatus(false); + save(towerRec); + } + } + } + } + } + + // TODO: 2026/4/21 缺少报表用表 + @Override + public BsTowerReportEntity getTowerReportByTerm(String pid, Short type, Long id) { + //return getOne(Wrappers.lambdaQuery(BsTowerReportEntity.class) + // .eq(BsTowerReportEntity::getKey, pid ) + // .eq(BsTowerReportEntity::get, , )) + return null; + } + + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerServiceImpl.java index f0cf1f97..1ac8c9d3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerServiceImpl.java @@ -25,15 +25,21 @@ */ package org.springblade.desk.energy.service.impl; +import com.alibaba.fastjson.JSONObject; +import jakarta.annotation.Resource; 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.vo.BsTowerVO; +import org.springblade.desk.energy.service.IBsTowerReportService; import org.springblade.desk.energy.service.IBsTowerService; 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.util.Date; import java.util.List; /** @@ -44,7 +50,8 @@ import java.util.List; */ @Service public class BsTowerServiceImpl extends BaseServiceImpl implements IBsTowerService { - + //@Resource + //IBsTowerReportService epTowerReportService; @Override public IPage selectBsTowerPage(IPage page, BsTowerVO bsTower) { return page.setRecords(baseMapper.selectBsTowerPage(page, bsTower)); @@ -59,5 +66,86 @@ public class BsTowerServiceImpl extends BaseServiceImpl objList) { + List bsTowers = list(); + for (BsTowerEntity bsTower : bsTowers) { + for (JSONObject jsonObject : objList) { + String identifierName = jsonObject.getString("identifierName"); + String defaultValue = jsonObject.getString("defaultValue"); + // 如果当前点位与所配置PH点位一样并且点位对应的值为true + if (identifierName.equals(bsTower.getPhPoint()) && "true".equals(defaultValue)) { + queryAlsoSave(identifierName, PH, bsTower); + } else if (identifierName.equals(bsTower.getPhPoint()) && "false".equals(defaultValue)) { + queryAlsoUpdate(identifierName, PH, bsTower); + } + + // 如果当前点位跟所配置风机点位一样并且点位对应的值为true + if (identifierName.equals(bsTower.getFanPoint()) && "true".equals(defaultValue)) { + this.queryAlsoSave(identifierName, FAN, bsTower); + } else if (identifierName.equals(bsTower.getFanPoint()) && "false".equals(defaultValue)) { + this.queryAlsoUpdate(identifierName, FAN, bsTower); + } + // 如果当前点位跟所配置循环泵点位一样并且点位对应的值为true + if (identifierName.equals(bsTower.getPumpPoint()) && "true".equals(defaultValue)) { + this.queryAlsoSave(identifierName, PUMP, bsTower); + } else if (identifierName.equals(bsTower.getPumpPoint()) && "false".equals(defaultValue)) { + this.queryAlsoUpdate(identifierName, PUMP, bsTower); + } + + // 酸雾塔运行时间记录 + //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); + // } + //} + } + + } + } + + private void queryAlsoUpdate(String identifierName, Short ph, BsTowerEntity bsTower) { + + } + + 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); + //} + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsWasteGasRunRecServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsWasteGasRunRecServiceImpl.java index afc9ba3b..70b8d751 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsWasteGasRunRecServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsWasteGasRunRecServiceImpl.java @@ -25,18 +25,28 @@ */ package org.springblade.desk.energy.service.impl; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import jakarta.annotation.Resource; import org.apache.commons.lang3.StringUtils; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.desk.energy.excel.BsWasteGasRunRecExcel; import org.springblade.desk.energy.mapper.BsWasteGasRunRecMapper; +import org.springblade.desk.energy.pojo.entity.BsTowerEntity; import org.springblade.desk.energy.pojo.entity.BsWasteGasRunRecEntity; import org.springblade.desk.energy.pojo.vo.BsWasteGasRunRecVO; +import org.springblade.desk.energy.service.IBsTowerService; import org.springblade.desk.energy.service.IBsWasteGasRunRecService; import org.springframework.stereotype.Service; -import java.util.List; +import java.text.NumberFormat; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +import static org.springblade.desk.energy.util.TimeSpan.dateDiff; /** * 废气运行记录表 服务实现类 @@ -46,6 +56,8 @@ import java.util.List; */ @Service public class BsWasteGasRunRecServiceImpl extends BaseServiceImpl implements IBsWasteGasRunRecService { + @Resource + IBsTowerService iBsTowerService; @Override public IPage selectBsWasteGasRunRecPage(IPage page, BsWasteGasRunRecVO bsWasteGasRunRec) { @@ -70,4 +82,86 @@ public class BsWasteGasRunRecServiceImpl extends BaseServiceImpl objList) { + List bsTowers = iBsTowerService.list(); + Map bsTowersMap = bsTowers + .stream() + .filter(bsTower -> StringUtils.isNotBlank(bsTower.getFanRunPoint())) + .collect(Collectors.toMap(BsTowerEntity::getFanRunPoint, + Function.identity(), + (oldValue, newValue) -> newValue)); + + if (bsTowersMap.size() == 0) { + return; + } + + Random rand = new Random(); + BsWasteGasRunRecEntity epWasteGasRunRec; + for (JSONObject jsonObject : objList) { + String name = jsonObject.getString("identifierName"); + BsTowerEntity bsTower = bsTowersMap.get(name); + + // 如果数据存在,并且维护得编码不是六位 + if (bsTower != null && bsTower.getId() != null && bsTower.getBtCode().length() != 6) { + Boolean value = jsonObject.getBoolean("defaultValue"); + // 查询最新得一条数据 + epWasteGasRunRec = queryMaxDataByCode(bsTower.getBtCode()); + // 如果存在 + if (epWasteGasRunRec != null && epWasteGasRunRec.getId() != null) { + // 如果当前点位值为true, + if (value) { + // 如果有结束时间,说明已经开关过一次,并且此次是再次开启,如果没有不做任何处理 + if (epWasteGasRunRec.getEndTime() != null) { + // 获取运行时间 + epWasteGasRunRec = new BsWasteGasRunRecEntity(); + epWasteGasRunRec.setDeviceNum(bsTower.getBtCode()); + epWasteGasRunRec.setStartTime(new Date()); + epWasteGasRunRec.setSysData(String.valueOf(Double.valueOf(rand.nextInt(300) + 800) / 100)); + save(epWasteGasRunRec); + } + } else { + // 如果没有结束时间,说明开过之后一直运行到现在,要给上结束时间 + if (epWasteGasRunRec.getEndTime() == null) { + // 获取运行时间 + String s = formatDouble(dateDiff(epWasteGasRunRec.getStartTime(), new Date()).getTotalHours(), 2, 0, false); + epWasteGasRunRec.setRunTime(Double.valueOf(s)); + epWasteGasRunRec.setEndTime(new Date()); + updateById(epWasteGasRunRec); + } + } + } else { + // 没有运行记录,创建一条 + epWasteGasRunRec = new BsWasteGasRunRecEntity(); + epWasteGasRunRec.setDeviceNum(bsTower.getBtCode()); + epWasteGasRunRec.setStartTime(new Date()); + epWasteGasRunRec.setSysData(String.valueOf((rand.nextInt(300) + 800) / 100)); + save(epWasteGasRunRec); + } + } + } + + } + public static String formatDouble(double n, int maxDigits, int minDigits, boolean useGrouping) { + if (maxDigits > 10) { + maxDigits = 10; + } + + if (minDigits < 0) { + minDigits = 0; + } + + NumberFormat nf = NumberFormat.getInstance(); + nf.setMaximumFractionDigits(maxDigits); + nf.setMinimumFractionDigits(minDigits); + nf.setGroupingUsed(useGrouping); + return nf.format(n); + } + + @Override + public BsWasteGasRunRecEntity queryMaxDataByCode(String btCode) { + return getOne(Wrappers.lambdaQuery(BsWasteGasRunRecEntity.class) + .eq(BsWasteGasRunRecEntity::getDeviceNum, btCode),false); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/EpTowerRecAlarmServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/EpTowerRecAlarmServiceImpl.java new file mode 100644 index 00000000..7001a917 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/EpTowerRecAlarmServiceImpl.java @@ -0,0 +1,44 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.energy.service.impl; + + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.energy.mapper.EpTowerRecAlarmMapper; +import org.springblade.desk.energy.pojo.entity.EpTowerRecAlarm; +import org.springblade.desk.energy.service.IEpTowerRecAlarmService; +import org.springframework.stereotype.Service; + +/** + * 酸雾塔报警记录对照表 服务实现类 + * + * @author BladeX + * @since 2026-04-20 + */ +@Service +public class EpTowerRecAlarmServiceImpl extends BaseServiceImpl implements IEpTowerRecAlarmService { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/RpParameterSetServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/RpParameterSetServiceImpl.java new file mode 100644 index 00000000..f921fc77 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/RpParameterSetServiceImpl.java @@ -0,0 +1,93 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.energy.service.impl; + + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.energy.mapper.RpParameterSetMapper; +import org.springblade.desk.energy.pojo.entity.RpParameterSet; +import org.springblade.desk.energy.service.IRpParameterSetService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 参数设置表 服务实现类 + * + * @author BladeX + * @since 2026-04-20 + */ +@Service +public class RpParameterSetServiceImpl extends ServiceImpl implements IRpParameterSetService { + + @Override + public void setParameterSet(List objList) { + if (objList == null || objList.isEmpty()) { + return; + } + JSONObject obj = new JSONObject(objList.size()); + for (JSONObject jsonObject : objList) { + if (jsonObject == null) { + continue; + } + if (StringUtils.isNotEmpty(jsonObject.getString("identifierName"))) { + obj.put(jsonObject.getString("identifierName"), jsonObject.getString("defaultValue")); + } + } + + RpParameterSet rpParameterSet = new RpParameterSet(); + // 拿出所需的值存储 + rpParameterSet.setRpsDate(obj.getString("$日期")); + rpParameterSet.setRpsTime(obj.getString("$时间")); + rpParameterSet.setNfA(obj.getString("NF产水电导率A")); + rpParameterSet.setNfB(obj.getString("NF产水电导率B")); + rpParameterSet.setNf(obj.getString("NF进水电导率")); + rpParameterSet.setRo11A(obj.getString("RO1_1_产水电导率A")); + rpParameterSet.setRo11B(obj.getString("RO1_1_产水电导率B")); + rpParameterSet.setRo11C(obj.getString("RO1_1_产水电导率C")); + rpParameterSet.setRo11(obj.getString("RO1_1_进水电导率")); + rpParameterSet.setRo11Ph(obj.getString("RO1_浓水PH值")); + rpParameterSet.setRo21(obj.getString("RO2_1_产水电导率")); + rpParameterSet.setRo21Rate(obj.getString("RO2_1_进水电导率")); + rpParameterSet.setRo22Rate(obj.getString("RO2_2_产水电导率")); + rpParameterSet.setRo22(obj.getString("RO2_2_进水电导率")); + rpParameterSet.setElectPh(obj.getString("电镀镍PH值")); + rpParameterSet.setOrpA(obj.getString("废液反应池ORP_A")); + rpParameterSet.setOrpB(obj.getString("废液反应池ORP_B")); + rpParameterSet.setPhA(obj.getString("废液反应池PH_A")); + rpParameterSet.setPhB(obj.getString("废液反应池PH_B")); + rpParameterSet.setTempA(obj.getString("废液反应池温度_A")); + rpParameterSet.setTempB(obj.getString("废液反应池温度_B")); + rpParameterSet.setOxygen(obj.getString("生化溶解氧")); + rpParameterSet.setPh(obj.getString("阴阳床产水PH")); + rpParameterSet.setOrp(obj.getString("预处理ORP")); + + save(rpParameterSet); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/HttpRequestService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/HttpRequestService.java index 2a238b7f..0d64fc33 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/HttpRequestService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/HttpRequestService.java @@ -4,11 +4,16 @@ import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springblade.desk.energy.pojo.entity.BsTowerEntity; +import org.springblade.desk.energy.pojo.entity.RpParameterSet; +import org.springblade.desk.energy.service.*; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; import java.util.List; @Service @@ -17,9 +22,17 @@ public class HttpRequestService { private static final Logger log = LoggerFactory.getLogger(HttpRequestService.class); - // private final RestTemplate httpClientTemplate; + private final RestTemplate httpClientTemplate; + private final IBsTowerReportService epTowerRecService; + private final IBsWasteGasRunRecService epWasteGasRunRecService; + private final IRpParameterSetService rpParameterSetServer; + private final IBsDosingRecService epDosingRecService; + private final IBsTowerService bsTowerService; + @Value("${request.iotNew.url}") + private String iotNewUrl; + /** @@ -39,7 +52,7 @@ public class HttpRequestService { JSONObject result = null; HttpEntity entity = new HttpEntity<>(object, headers); - ResponseEntity responseEntity= null;//httpClientTemplate.postForEntity(iotNewUrl + "/deviceForZhgd/getDataByIotCode", entity, JSONObject.class); + ResponseEntity responseEntity= httpClientTemplate.postForEntity(iotNewUrl + "/deviceForZhgd/getDataByIotCode", entity, JSONObject.class); result = responseEntity.getBody(); if (result != null && result.getInteger("code").equals(200)) { JSONObject object1 = result.getJSONObject("data"); @@ -49,18 +62,18 @@ public class HttpRequestService { if (flag) { if (str.equals("rpAcidMistTower")) { // 酸雾塔报警记录 - // epTowerRecService.setEpTowerRec(objList); + epTowerRecService.setEpTowerRec(objList); // 废气运行记录 - // epWasteGasRunRecService.creatRunData(objList); + epWasteGasRunRecService.creatRunData(objList); } else if (str.equals("rpParameterSet")) { // 参数设置 - // rpParameterSetServer.setParameterSet(objList); + rpParameterSetServer.setParameterSet(objList); } else if (str.equals("towerSosRec")) { // 生产酸雾塔报警任务 - // epDosingRecService.towerSosRec(objList); + epDosingRecService.towerSosRec(objList); // 生成报警数据用于报表展示 - // bsTowerService.generateData(objList); + bsTowerService.generateData(objList); } } else { return objList; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/TimeSpan.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/TimeSpan.java new file mode 100644 index 00000000..6bccc681 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/TimeSpan.java @@ -0,0 +1,146 @@ +package org.springblade.desk.energy.util;/** + * @date : 2026/4/21 10:02 + */ + +import java.io.Serializable; +import java.util.Date; + +/** + * 文件名称 + * @module 归属项目 + * @author *** + * @date 2025/11/26 10:27 + */ +public class TimeSpan implements Serializable { + private static final long serialVersionUID = 807778275482047920L; + private static final long MILLISECONDS_OF_DAY = 86400000L; + private static final long MILLISECONDS_OF_HOUR = 3600000L; + private static final long MILLISECONDS_OF_MINUTE = 60000L; + private static final long MILLISECONDS_OF_SECOND = 1000L; + private long totalMilliseconds; + private int days; + private int hours; + private int minutes; + private int seconds; + private int milliseconds; + + public static TimeSpan days(int day) { + return new TimeSpan((long)day * 86400000L); + } + + public static TimeSpan hours(int hour) { + return new TimeSpan((long)hour * 3600000L); + } + + public static TimeSpan minutes(int minute) { + return new TimeSpan((long)minute * 60000L); + } + + public TimeSpan(Date sd, Date ed) { + this(ed.getTime() - sd.getTime()); + } + + public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds) { + this((long)days * 86400000L + (long)hours * 3600000L + (long)minutes * 60000L + (long)seconds * 1000L + (long)milliseconds); + } + + public TimeSpan(long mscs) { + this.totalMilliseconds = 0L; + this.days = 0; + this.hours = 0; + this.minutes = 0; + this.seconds = 0; + this.milliseconds = 0; + this.totalMilliseconds = mscs; + boolean isNav = this.totalMilliseconds < 0L; + long millBanlance = Math.abs(this.totalMilliseconds); + this.days = (int)(millBanlance / 86400000L); + millBanlance -= 86400000L * (long)this.days; + if (isNav) { + this.days = 0 - this.days; + } + + if (millBanlance > 0L) { + this.hours = (int)(millBanlance / 3600000L); + millBanlance -= 3600000L * (long)this.hours; + if (isNav) { + this.hours = 0 - this.hours; + } + + if (millBanlance > 0L) { + this.minutes = (int)(millBanlance / 60000L); + millBanlance -= 60000L * (long)this.minutes; + if (isNav) { + this.minutes = 0 - this.minutes; + } + + if (millBanlance > 0L) { + this.seconds = (int)(millBanlance / 1000L); + millBanlance -= 1000L * (long)this.seconds; + if (isNav) { + this.seconds = 0 - this.seconds; + } + + if (millBanlance > 0L) { + this.milliseconds = (int)millBanlance; + if (isNav) { + this.milliseconds = 0 - this.milliseconds; + } + + } + } + } + } + } + + public int getDays() { + return this.days; + } + + public int getHours() { + return this.hours; + } + + public int getMinutes() { + return this.minutes; + } + + public int getSeconds() { + return this.seconds; + } + + public int getMilliseconds() { + return this.milliseconds; + } + + public long getTotalMilliseconds() { + return this.totalMilliseconds; + } + + public double getTotalSeconds() { + return 1.0D * (double)this.totalMilliseconds / 1000.0D; + } + + public double getTotalMinutes() { + return 1.0D * (double)this.totalMilliseconds / 60000.0D; + } + + public double getTotalHours() { + return 1.0D * (double)this.totalMilliseconds / 3600000.0D; + } + + public double getTotalDays() { + return 1.0D * (double)this.totalMilliseconds / 8.64E7D; + } + + + 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); + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderCraftService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderCraftService.java index 994e8a26..1fbf812d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderCraftService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderCraftService.java @@ -49,5 +49,5 @@ public interface IYieldOrderCraftService extends BaseService { * @param rxlSpace 需要特殊分派,true:需要, false:不需要,null:不需要 * @throws BusinessException */ - void automaticDispatch(List yieldOrderCraftList, YieldOrder yieldOrder, Boolean factor, Boolean rxlSpace) throws BusinessException; + void automaticDispatch(List yieldOrderCraftList, YieldOrder yieldOrder, Boolean factor, Boolean rxlSpace) throws Exception; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java index 577e17be..49caacd8 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java @@ -74,7 +74,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl listByYoId(Long yoId) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(YieldOrderCraft.class) .eq(YieldOrderCraft::getYoId, yoId) - .eq(YieldOrderCraft::getIsDeleted, CommonConstant.DELETE_FALSE); + .eq(YieldOrderCraft::getIsDeleted, CommonConstant.DELETE_FALSE).orderByAsc(YieldOrderCraft::getProcessNo); List craftList = baseMapper.selectList(queryWrapper); craftList.stream().forEach(item ->{ BsProcessSetEntity processSet = processSetService.getById(item.getPpsId()); @@ -93,9 +93,10 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl yieldOrderCraftList, YieldOrder yieldOrder, Boolean factor, Boolean rxlSpace) throws BusinessException { + public void automaticDispatch(List yieldOrderCraftList, YieldOrder yieldOrder, Boolean factor, Boolean rxlSpace) throws Exception { // 组装key为工艺能力的作业计划map - Map> craftAbilityMap = yieldOrderCraftList.stream().collect(Collectors.groupingBy(YieldOrderCraft::getCaId)); + Map> craftAbilityMap = yieldOrderCraftList.stream() + .collect(Collectors.groupingBy(YieldOrderCraft::getCaId,LinkedHashMap::new,Collectors.toList())); //作业计划map工艺能力key集合 Set craftKeys = craftAbilityMap.keySet(); //获取到认定的主工艺能力(默认第一个工艺能力为主工艺能力) @@ -382,7 +383,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl bindWorkCenter(Long workCenterId, Map workCenterMap, Long craftAbilityId, Map> craftAbilityMap, Set craftKeys, - YieldOrder yieldOrder, Boolean factor) throws BusinessException { + YieldOrder yieldOrder, Boolean factor) throws Exception { List orderCrafts = new ArrayList<>(); // 开始循环生产订单中组合的工艺能力key集合, 主工艺能力之前的全部分配到此作业中心 for (Long craftId : craftKeys) { @@ -568,7 +569,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl bindOem(Oem oemCustomer, Long craftAbilityId, Map> craftAbilityMap, Set keys, YieldOrder yieldOrder, Boolean factor) { + List> craftAbilityMap, Set keys, YieldOrder yieldOrder, Boolean factor) throws Exception { List rtnList = new ArrayList<>(); diff --git a/blade-service/blade-desk/src/main/resources/Excel/QA/安全巡检配置导入模板.xls b/blade-service/blade-desk/src/main/resources/Excel/QA/安全巡检配置导入模板.xls index cdbb3958..3a0a044d 100644 Binary files a/blade-service/blade-desk/src/main/resources/Excel/QA/安全巡检配置导入模板.xls and b/blade-service/blade-desk/src/main/resources/Excel/QA/安全巡检配置导入模板.xls differ diff --git a/blade-service/blade-desk/src/main/resources/Excel/QA/酸雾塔导入模板.xls b/blade-service/blade-desk/src/main/resources/Excel/QA/酸雾塔导入模板.xls index b89b452f..1b00270a 100644 Binary files a/blade-service/blade-desk/src/main/resources/Excel/QA/酸雾塔导入模板.xls and b/blade-service/blade-desk/src/main/resources/Excel/QA/酸雾塔导入模板.xls differ