From b6a06dd246d133c46d84dd59e47d6dc85182cdb5 Mon Sep 17 00:00:00 2001 From: yu Date: Mon, 16 Dec 2024 16:18:14 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=A3=8E=E9=80=9F=E5=8A=9F=E7=8E=87?= =?UTF-8?q?=E7=B3=BB=E6=95=B0,=E8=BF=87=E6=BB=A4=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WindSpeedCorrectController.java | 2 + .../impl/WindSpeedCorrectServiceImpl.java | 37 ++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/das/src/main/java/com/das/modules/page/controller/WindSpeedCorrectController.java b/das/src/main/java/com/das/modules/page/controller/WindSpeedCorrectController.java index b05a57eb..b044bd2c 100644 --- a/das/src/main/java/com/das/modules/page/controller/WindSpeedCorrectController.java +++ b/das/src/main/java/com/das/modules/page/controller/WindSpeedCorrectController.java @@ -31,6 +31,8 @@ public class WindSpeedCorrectController { windSpeedCorrectService.importWindSpeedCorrect( file); return R.success("导入成功"); } + + /** 获取风机风速功率修正系数列表 */ @PostMapping("/getList") public R> getList(@RequestBody SysPowerCurveFactorDto dto) { diff --git a/das/src/main/java/com/das/modules/page/service/impl/WindSpeedCorrectServiceImpl.java b/das/src/main/java/com/das/modules/page/service/impl/WindSpeedCorrectServiceImpl.java index b1d40044..f416ad1a 100644 --- a/das/src/main/java/com/das/modules/page/service/impl/WindSpeedCorrectServiceImpl.java +++ b/das/src/main/java/com/das/modules/page/service/impl/WindSpeedCorrectServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.io.IoUtil; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.das.common.config.SessionUtil; import com.das.common.exceptions.ServiceException; @@ -12,7 +13,6 @@ import com.das.common.utils.BeanCopyUtils; import com.das.common.utils.PageDataInfo; import com.das.common.utils.PageQuery; import com.das.modules.auth.domain.vo.SysUserVo; -import com.das.modules.cache.domain.WindSpeedCoefValue; import com.das.modules.cache.service.CacheService; import com.das.modules.equipment.entity.SysEquipment; import com.das.modules.equipment.mapper.SysEquipmentMapper; @@ -26,6 +26,7 @@ import com.das.modules.page.service.WindSpeedCorrectService; import jakarta.servlet.ServletOutputStream; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.VerticalAlignment; @@ -33,6 +34,7 @@ import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellRangeAddress; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @@ -57,6 +59,7 @@ public class WindSpeedCorrectServiceImpl implements WindSpeedCorrectService { @Autowired private CacheService cacheService; + @Transactional(rollbackFor = Exception.class) @Override public void importWindSpeedCorrect(MultipartFile file) throws IOException { // 通过文件获取输入流 @@ -93,6 +96,38 @@ public class WindSpeedCorrectServiceImpl implements WindSpeedCorrectService { sysPowerCurveFactor.setRevision(1); listData.add(sysPowerCurveFactor); } + //过滤重复数据 + List existingData = sysPowerCurveFactorMapper.selectList(new QueryWrapper() + .lambda() + .in(SysPowerCurveFactor::getTurbineId, listData.stream().map(SysPowerCurveFactor::getTurbineId).collect(Collectors.toList())) + .in(SysPowerCurveFactor::getSpeedMin, listData.stream().map(SysPowerCurveFactor::getSpeedMin).collect(Collectors.toList())) + .in(SysPowerCurveFactor::getSpeedMax, listData.stream().map(SysPowerCurveFactor::getSpeedMax).collect(Collectors.toList())) + .in(SysPowerCurveFactor::getFactorK, listData.stream().map(SysPowerCurveFactor::getFactorK).collect(Collectors.toList())) + .in(SysPowerCurveFactor::getFactorB, listData.stream().map(SysPowerCurveFactor::getFactorB).collect(Collectors.toList()))); + //过滤SpeedMax为null的数据 + List collect = listData.stream().filter(item -> item.getSpeedMax() == null).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(collect)){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.isNull("speed_max"); + List sysPowerCurveFactors = sysPowerCurveFactorMapper.selectList(queryWrapper); + for (SysPowerCurveFactor sysPowerCurveFactor : collect) { + for (SysPowerCurveFactor powerCurveFactor : sysPowerCurveFactors) { + if (sysPowerCurveFactor.getTurbineId().equals(powerCurveFactor.getTurbineId()) + && sysPowerCurveFactor.getSpeedMin().equals(powerCurveFactor.getSpeedMin()) + && sysPowerCurveFactor.getFactorK()== powerCurveFactor.getFactorK() + && sysPowerCurveFactor.getFactorB()==powerCurveFactor.getFactorB()) { + existingData.add(powerCurveFactor); + } + } + } + } + // 删除重复的数据 + if (!existingData.isEmpty()) { + List idsToDelete = existingData.stream() + .map(SysPowerCurveFactor::getId) + .collect(Collectors.toList()); + sysPowerCurveFactorMapper.deleteBatchIds(idsToDelete); + } //批量插入数据库 sysPowerCurveFactorMapper.insertBatch(listData); //更新缓存数据 From dde8081959bbe9d87c5cb98fa0b126e8c14e2109 Mon Sep 17 00:00:00 2001 From: fengrong Date: Mon, 16 Dec 2024 16:24:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=A6=96=E9=A1=B5=EF=BC=9A=E5=8F=B3?= =?UTF-8?q?=E9=94=AE=E8=8F=9C=E5=8D=95=E6=B7=BB=E5=8A=A0=20=E6=A0=87?= =?UTF-8?q?=E6=9D=86=E9=A3=8E=E6=9C=BA=E8=AE=BE=E7=BD=AE=E6=88=96=E8=80=85?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/backend/home/windMatrix.vue | 36 +++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/ui/dasadmin/src/views/backend/home/windMatrix.vue b/ui/dasadmin/src/views/backend/home/windMatrix.vue index de99fcce..2964a3a7 100644 --- a/ui/dasadmin/src/views/backend/home/windMatrix.vue +++ b/ui/dasadmin/src/views/backend/home/windMatrix.vue @@ -98,13 +98,13 @@ 标杆设置 标杆取消 @@ -120,6 +120,7 @@ import { adminBaseRoutePath } from '/@/router/static/adminBase' import ContextMenu from '/@/views/backend/auth/model/contextMenu.vue' import { sendCommandReq, sendManualCommandReq } from '/@/api/backend/control/request' import {ElMessage, ElMessageBox} from "element-plus"; +import {equipUpdate} from '/@/api/backend/index.ts' const router = useRouter() const props = defineProps({ @@ -190,7 +191,9 @@ const realTimeData = ref({ locked: 0, deviceId: '', name:'', - standard:'' + code:'', + standard:'', + iotModelId:'' }) const windContextMenu = (event: any,curnodeData) => { contextMenuPos.value.x = event.pageX @@ -199,7 +202,9 @@ const windContextMenu = (event: any,curnodeData) => { realTimeData.value.locked=curnodeData.attributeMap.locked realTimeData.value.deviceId=curnodeData.irn realTimeData.value.name=curnodeData.name + realTimeData.value.code=curnodeData.deviceCode realTimeData.value.standard=curnodeData.standard + realTimeData.value.iotModelId=curnodeData.modelId OperateVisible.value = true } const sendCommand = (type: 'setTurbineFastStart' | 'setTurbineStop' | 'setTurbineResetStatusCode') => { @@ -254,6 +259,31 @@ const sendManualCommand = (type: 1 | 0) => { }) } + + +const editstandard = (type: 1 | 0) => { + const standardName = type === 0 ? '取消风机标杆' : '设置风机标杆' + ElMessageBox.confirm('确认' + standardName + '吗?', '', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning', + }).then(() => { + equipUpdate({ + id: realTimeData.value.deviceId, + code: realTimeData.value.code, + name:realTimeData.value.name, + iotModelId: realTimeData.value.iotModelId, + standard: type + }).then((res) => { + if (res.code == 200) { + ElMessage.success('设置成功') + } else { + ElMessage.error('设置失败') + } + }) + }) +} +