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());
}
}