package com.ruoyi.web.controller.fuzhou; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.fuzhou.domain.*; import com.ruoyi.fuzhou.domain.vo.ReceiveValueListVo; import com.ruoyi.fuzhou.enums.DataTypeEnum; import com.ruoyi.fuzhou.service.*; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** *

* 数据接收信息 前端控制器 *

* * @author zhangyy * @since 2025-03-10 */ @Tag(name = "设备数据管理") @RestController @RequestMapping("/dp/receiveInfo") public class ReceiveInfoController { @Resource private EquipmentService equipmentService; @Resource private ReceiveOilValueService receiveOilValueService; @Resource private ReceiveWaterValueService receiveWaterValueService; @Resource private ReceiveWaterInfoService receiveWaterInfoService; @Resource private ReceiveOilInfoService receiveOilInfoService; @Resource private ReceiveElectricityInfoService receiveElectricityInfoService; @Resource private ReceiveWeatherInfoService receiveWeatherInfoService; @Resource private ReceiveWeatherValueService receiveWeatherValueService; @Resource private ReceiveSlmInfoService receiveSlmInfoService; @Resource private ReceiveSlmValueService receiveSlmValueService; @Resource private ReceiveElectricityValueService receiveElectricityValueService; @Resource private ReceiveCarRuleService receiveCarRuleService; @Resource private ReceiveCarValueService receiveCarValueService; @Operation(summary = "设备列表列表") @GetMapping("/list") public R> list(@RequestParam(value = "deviceType", required = false) Integer deviceType) { return R.ok(equipmentService.list(new LambdaQueryWrapper() {{ or().eq(DpEquipment::getEquipmentTypeId, deviceType); }})); } @Operation(summary = "获取设备数据") @PostMapping("/dataList") public R dataList(@Validated @RequestBody ReceiveValueListVo vo) { DpEquipment receiveInfo = equipmentService.getById(vo.getId()); if (receiveInfo == null) { throw new ServiceException("设备不存在!"); } if (DataTypeEnum.LIJIUOIL.getCode().equals(receiveInfo.getEquipmentTypeId()) || DataTypeEnum.OIL.getCode().equals(receiveInfo.getEquipmentTypeId()) || DataTypeEnum.LIJIUJUN.getCode().equals(receiveInfo.getEquipmentTypeId()) || DataTypeEnum.NIGDETUIYOU.getCode().equals(receiveInfo.getEquipmentTypeId())) { return R.ok(receiveOilValueService.list(new LambdaQueryWrapper() {{ or().eq(ReceiveOilValue::getDeviceName, String.valueOf(receiveInfo.getId())) .ge(vo.getStartTime() != null, ReceiveOilValue::getCreateTime, vo.getStartTime()) .lt(vo.getEndTime() != null, ReceiveOilValue::getCreateTime, vo.getEndTime()) .orderByDesc(ReceiveOilValue::getCreateTime); }})); } else if (DataTypeEnum.WATER_FLOW.getCode().equals(receiveInfo.getEquipmentTypeId()) || DataTypeEnum.WATER_YA.getCode().equals(receiveInfo.getEquipmentTypeId()) || DataTypeEnum.WATER_DEPT.getCode().equals(receiveInfo.getEquipmentTypeId())) { return R.ok(receiveWaterValueService.list(new LambdaQueryWrapper() {{ or().eq(ReceiveWaterValue::getDeviceName, String.valueOf(receiveInfo.getId())) .ge(vo.getStartTime() != null, ReceiveWaterValue::getCreateTime, vo.getStartTime()) .lt(vo.getEndTime() != null, ReceiveWaterValue::getCreateTime, vo.getEndTime()) .orderByDesc(ReceiveWaterValue::getCreateTime); }})); } else if (DataTypeEnum.ELECTRICITY.getCode().equals(receiveInfo.getEquipmentTypeId())) { return R.ok(receiveElectricityValueService.list(new LambdaQueryWrapper() {{ or().eq(ReceiveElectricityValue::getDeviceName, String.valueOf(receiveInfo.getId())) .ge(vo.getStartTime() != null, ReceiveElectricityValue::getCreateTime, vo.getStartTime()) .lt(vo.getEndTime() != null, ReceiveElectricityValue::getCreateTime, vo.getEndTime()) .orderByDesc(ReceiveElectricityValue::getCreateTime); }})); } else if (DataTypeEnum.GONGKUANG.getCode().equals(receiveInfo.getEquipmentTypeId())) { return R.ok(receiveCarValueService.list(new LambdaQueryWrapper() {{ or().eq(ReceiveCarValue::getVin, receiveInfo.getEquCode()) .ge(vo.getStartTime() != null, ReceiveCarValue::getCreateTime, vo.getStartTime()) .lt(vo.getEndTime() != null, ReceiveCarValue::getCreateTime, vo.getEndTime()) .orderByDesc(ReceiveCarValue::getCreateTime); }})); }else if (DataTypeEnum.WEATHER.getCode().equals(receiveInfo.getEquipmentTypeId())) { return R.ok(receiveWeatherValueService.list(new LambdaQueryWrapper() {{ or().eq(ReceiveWeatherValue::getDeviceName, receiveInfo.getId()) .ge(vo.getStartTime() != null, ReceiveWeatherValue::getCreateTime, vo.getStartTime()) .lt(vo.getEndTime() != null, ReceiveWeatherValue::getCreateTime, vo.getEndTime()) .orderByDesc(ReceiveWeatherValue::getCreateTime); }})); }else if (DataTypeEnum.SLM.getCode().equals(receiveInfo.getEquipmentTypeId())) { return R.ok(receiveSlmValueService.list(new LambdaQueryWrapper() {{ or().eq(ReceiveSlmValue::getDeviceName, receiveInfo.getId()) .ge(vo.getStartTime() != null, ReceiveSlmValue::getCreateTime, vo.getStartTime()) .lt(vo.getEndTime() != null, ReceiveSlmValue::getCreateTime, vo.getEndTime()) .orderByDesc(ReceiveSlmValue::getCreateTime); }})); } return R.ok(new ArrayList()); } @Operation(summary = "获取设备数据表头") @GetMapping("/tableList") public R tableList(@RequestParam("id") Long id) { DpEquipment receiveInfo = equipmentService.getById(id); if (receiveInfo == null) { throw new ServiceException("设备不存在!"); } if (DataTypeEnum.LIJIUOIL.getCode().equals(receiveInfo.getEquipmentTypeId()) || DataTypeEnum.OIL.getCode().equals(receiveInfo.getEquipmentTypeId()) || DataTypeEnum.LIJIUJUN.getCode().equals(receiveInfo.getEquipmentTypeId()) || DataTypeEnum.NIGDETUIYOU.getCode().equals(receiveInfo.getEquipmentTypeId())) { return R.ok(receiveOilInfoService.list(new LambdaQueryWrapper() {{ or().select(ReceiveOilInfo::getParam, ReceiveOilInfo::getParamCode, ReceiveOilInfo::getUnit).eq(ReceiveOilInfo::getDeviceName, String.valueOf(receiveInfo.getId())); }})); } else if (DataTypeEnum.WATER_FLOW.getCode().equals(receiveInfo.getEquipmentTypeId()) || DataTypeEnum.WATER_YA.getCode().equals(receiveInfo.getEquipmentTypeId()) || DataTypeEnum.WATER_DEPT.getCode().equals(receiveInfo.getEquipmentTypeId())) { return R.ok(receiveWaterInfoService.list(new LambdaQueryWrapper() {{ or().select(ReceiveWaterInfo::getParam, ReceiveWaterInfo::getParamCode, ReceiveWaterInfo::getUnit).eq(ReceiveWaterInfo::getDeviceName, String.valueOf(receiveInfo.getId())); }})); } else if (DataTypeEnum.ELECTRICITY.getCode().equals(receiveInfo.getEquipmentTypeId())) { return R.ok(receiveElectricityInfoService.list(new LambdaQueryWrapper() {{ or().select(ReceiveElectricityInfo::getParam, ReceiveElectricityInfo::getParamCode, ReceiveElectricityInfo::getUnit).eq(ReceiveElectricityInfo::getDeviceName, String.valueOf(receiveInfo.getId())); }})); } else if (DataTypeEnum.GONGKUANG.getCode().equals(receiveInfo.getEquipmentTypeId())) { List receiveElectricityInfos = new ArrayList<>(); List list = receiveCarRuleService.list(); ReceiveElectricityInfo electricityInfo; for (ReceiveCarRule rule : list ) { electricityInfo = new ReceiveElectricityInfo(); electricityInfo.setUnit(rule.getUnit()); electricityInfo.setParamCode(rule.getCarCode()); electricityInfo.setParam(rule.getDataName()); receiveElectricityInfos.add(electricityInfo); } return R.ok(receiveElectricityInfos); } else if (DataTypeEnum.WEATHER.getCode().equals(receiveInfo.getEquipmentTypeId())) { return R.ok(receiveWeatherInfoService.list(new LambdaQueryWrapper() {{ or().select(ReceiveWeatherInfo::getParam, ReceiveWeatherInfo::getParamCode, ReceiveWeatherInfo::getUnit).eq(ReceiveWeatherInfo::getDeviceName, String.valueOf(receiveInfo.getId())); }})); } else if (DataTypeEnum.SLM.getCode().equals(receiveInfo.getEquipmentTypeId())) { return R.ok(receiveSlmInfoService.list(new LambdaQueryWrapper() {{ or().select(ReceiveSlmInfo::getParam, ReceiveSlmInfo::getParamCode, ReceiveSlmInfo::getUnit).eq(ReceiveSlmInfo::getDeviceName, String.valueOf(receiveInfo.getId())); }})); } return R.ok(new ArrayList()); } }