package com.iailab.module.ansteel.power.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iailab.module.ansteel.power.dao.PowerMaxdemandDetDao; import com.iailab.module.ansteel.power.entity.PowerMaxdemandDetEntity; import com.iailab.module.ansteel.power.entity.PowerNetDropdownEntity; import com.iailab.module.ansteel.power.service.PowerMaxdemandDetService; import com.iailab.module.ansteel.power.service.PowerNetDropdownService; import com.iailab.module.data.api.point.DataPointApi; import com.iailab.module.data.api.point.dto.ApiPointValueDTO; import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; /** * @author PanZhibao * @Description * @createTime 2025年05月07日 */ @Slf4j @Service public class PowerMaxdemandDetServiceImpl implements PowerMaxdemandDetService { @Resource private PowerMaxdemandDetDao powerMaxdemandDetDao; @Autowired private PowerNetDropdownService powerNetDropdownService; @Resource private DataPointApi dataPointApi; @Override public void add(PowerMaxdemandDetEntity entity) { entity.setId(UUID.randomUUID().toString()); powerMaxdemandDetDao.insert(entity); } @Override public List addList(String mainId, String groupName, Date occurTime) { List result = new ArrayList<>(); Map params1 = new HashMap<>(); params1.put("groupName", groupName); List dropdownList = powerNetDropdownService.list(params1); if (CollectionUtils.isEmpty(dropdownList)) { log.info("dropdownList is empty"); return result; } Calendar calendar1 = Calendar.getInstance(); calendar1.setTime(occurTime); calendar1.add(Calendar.MINUTE, 1); int sort0 = 0; for (PowerNetDropdownEntity dropdown : dropdownList) { if (StringUtils.isBlank(dropdown.getExt1())) { log.info(dropdown.getNodeCode() + ":dropdown.getExt1() is empty"); continue; } log.info(dropdown.getNodeCode() + ":dropdown.getExt1() = " + dropdown.getExt1()); ApiPointValueQueryDTO pointValueQuery1 = new ApiPointValueQueryDTO(); pointValueQuery1.setStart(occurTime); pointValueQuery1.setEnd(calendar1.getTime()); pointValueQuery1.setPointNo(dropdown.getExt1()); List valueList1 = dataPointApi.queryPointHistoryValue(pointValueQuery1); if (CollectionUtils.isEmpty(valueList1)) { log.info("valueList1 is empty"); continue; } PowerMaxdemandDetEntity detEntity0 = new PowerMaxdemandDetEntity(); detEntity0.setRelId(mainId); detEntity0.setCode(dropdown.getNodeCode()); detEntity0.setName(dropdown.getNodeName()); detEntity0.setOccurTime(occurTime); detEntity0.setMaxDemand(BigDecimal.valueOf(valueList1.get(0).getV())); detEntity0.setSort(sort0); this.add(detEntity0); sort0 ++; result.add(detEntity0); } return result; } @Override public List selectListByRelIds(List relIds) { return powerMaxdemandDetDao.selectList( new QueryWrapper().in("rel_id", relIds)); } @Override public List selectListByRelId(String relId, Date occurTime) { return powerMaxdemandDetDao.selectList( new QueryWrapper() .eq("rel_id", relId) .eq("occur_time", occurTime) .orderByAsc("sort")); } @Override public List selectListByRelId(String relId) { return powerMaxdemandDetDao.selectList( new QueryWrapper() .eq("rel_id", relId) .orderByAsc("sort")); } }