package com.ruoyi.web.controller.fuzhou;
|
|
import com.alibaba.fastjson2.JSONArray;
|
import com.alibaba.fastjson2.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.fuzhou.domain.*;
|
import com.ruoyi.fuzhou.domain.vo.ReceiveValueListVo;
|
import com.ruoyi.fuzhou.enums.DataTypeEnum;
|
import com.ruoyi.fuzhou.service.*;
|
import com.ruoyi.system.domain.SysOperLog;
|
import com.ruoyi.system.domain.vo.SysOperLogVO;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import jakarta.annotation.Resource;
|
import org.apache.poi.ss.formula.functions.T;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
import com.ruoyi.system.service.ISysOperLogService;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
@Tag(name = "大屏--设备数据处理结果")
|
@RestController
|
@RequestMapping("/dp/receiveInfoFinal")
|
public class ReceiveInfoFinalController {
|
@Autowired
|
private EquipmentService equipmentService;
|
|
@Autowired
|
private ReceiveWaterInfoService receiveWaterInfoService;
|
|
@Autowired
|
private ReceiveOilInfoService receiveOilInfoService;
|
|
@Autowired
|
private ReceiveElectricityInfoService receiveElectricityInfoService;
|
|
@Autowired
|
private ReceiveCarRuleService receiveCarRuleService;
|
|
@Autowired
|
private ReceiveOilValueFinalService receiveOilValueFinalService;
|
@Autowired
|
private ReceiveCarValueFinalService receiveCarValueFinalService;
|
@Autowired
|
private ReceiveElectricityValueFinalService receiveElectricityValueFinalService;
|
@Autowired
|
private ReceiveWaterValueFinalService receiveWaterValueFinalService;
|
@Autowired
|
private ISysOperLogService sysOperLogService;
|
|
@Autowired
|
private ReceiveOilValueService oilValueService;
|
@Autowired
|
private ReceiveCarValueService carValueService;
|
@Autowired
|
private ReceiveElectricityValueService electricityValueService;
|
@Autowired
|
private ReceiveWaterValueService waterValueService;
|
|
@Autowired
|
private ReceiveWeatherValueFinalService receiveWeatherValueFinalService;
|
@Autowired
|
private ReceiveWeatherInfoService receiveWeatherInfoService;
|
|
|
@Autowired
|
private ReceiveSlmValueFinalService receiveSlmValueFinalService;
|
@Autowired
|
private ReceiveSlmInfoService receiveSlmInfoService;
|
|
|
|
|
@Operation(summary = "设备数据列表")
|
@GetMapping("/list")
|
public R<List<DpEquipment>> list(@RequestParam(value = "deviceType", required = false) Integer deviceType) {
|
return R.ok(equipmentService.list(new LambdaQueryWrapper<DpEquipment>() {{
|
or().eq(DpEquipment::getEquipmentTypeId, deviceType);
|
}}));
|
}
|
|
@Operation(summary = "获取设备数据")
|
@PostMapping("/dataList")
|
public R<List> 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(receiveOilValueFinalService.queryData(vo));
|
}
|
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(receiveWaterValueFinalService.queryData(vo));
|
} else if (DataTypeEnum.ELECTRICITY.getCode().equals(receiveInfo.getEquipmentTypeId())) {
|
return R.ok(receiveElectricityValueFinalService.queryData(vo));
|
} else if (DataTypeEnum.GONGKUANG.getCode().equals(receiveInfo.getEquipmentTypeId())) {
|
return R.ok(receiveCarValueFinalService.queryData(vo));
|
}else if (DataTypeEnum.WEATHER.getCode().equals(receiveInfo.getEquipmentTypeId())) {
|
return R.ok(receiveWeatherValueFinalService.queryData(vo));
|
}else if (DataTypeEnum.SLM.getCode().equals(receiveInfo.getEquipmentTypeId())) {
|
return R.ok(receiveSlmValueFinalService.queryData(vo));
|
}
|
return R.ok(new ArrayList());
|
}
|
|
@Operation(summary = "查询时间段内每天的统计数据")
|
@GetMapping("/selectDailyData")
|
public AjaxResult selectDailyData(@RequestParam(value = "startTime") String startTime,
|
@RequestParam(value = "endTime") String endTime,
|
@RequestParam(value = "title") String title) {
|
JSONArray jsonArray = new JSONArray();
|
SysOperLogVO insertLog = new SysOperLogVO();
|
insertLog.setTitle(title);
|
insertLog.setStartTime(startTime);
|
insertLog.setEndTime(endTime);
|
Map<String,List<SysOperLog>> map = sysOperLogService.queryByDate(insertLog);
|
for (Map.Entry<String,List<SysOperLog>> entry : map.entrySet()){
|
int insertCount = 0;
|
int updateCount = 0;
|
int deleteCount = 0;
|
String date = entry.getKey();
|
List<SysOperLog> logList = entry.getValue();
|
JSONObject jsonObject = new JSONObject();
|
if(logList.size()>0){
|
for (SysOperLog operLog : logList){
|
if(operLog.getBusinessType()==1){
|
insertCount++;
|
}else if(operLog.getBusinessType()==2){
|
updateCount++;
|
}else if(operLog.getBusinessType()==3){
|
deleteCount++;
|
}
|
}
|
}
|
jsonObject.put("dateTime",date);
|
jsonObject.put("insertCount",insertCount);
|
jsonObject.put("updateCount",updateCount);
|
jsonObject.put("deleteCount",deleteCount);
|
jsonArray.add(jsonObject);
|
}
|
return AjaxResult.success(jsonArray);
|
}
|
|
@Operation(summary = "数量统计")
|
@GetMapping("/queryCount")
|
public AjaxResult queryCount(@RequestParam(value = "title") String title){
|
JSONObject jsonObject = new JSONObject();
|
if(title.equals("油表数据")){
|
jsonObject.put("processedData",receiveOilValueFinalService.queryCount());
|
jsonObject.put("rawCount",oilValueService.count());
|
}else if(title.equals("水表数据")){
|
jsonObject.put("processedData",receiveWaterValueFinalService.queryCount());
|
jsonObject.put("rawCount",waterValueService.count());
|
}else if(title.equals("电表数据")){
|
jsonObject.put("processedData",receiveElectricityValueFinalService.queryCount());
|
jsonObject.put("rawCount",electricityValueService.count());
|
}else if(title.equals("工况数据")){
|
jsonObject.put("processedData",receiveCarValueFinalService.queryCount());
|
jsonObject.put("rawCount",carValueService.count());
|
}
|
return AjaxResult.success(jsonObject);
|
}
|
|
@Operation(summary = "根据title查询统计数据(分页)")
|
@PostMapping("/selectData")
|
public AjaxResult selectData(@Validated @RequestBody SysOperLogVO sysOperLogVO) {
|
List<SysOperLog> logList = sysOperLogService.queryDataByTitle(sysOperLogVO);
|
TableDataInfo dataInfo = paginate(logList,sysOperLogVO.getPageNum(),sysOperLogVO.getPageSize());
|
return AjaxResult.success(dataInfo);
|
}
|
|
|
@Operation(summary = "判断对应请求路径")
|
@GetMapping("/getUrl")
|
public R<String> getUrl(@RequestParam("equId") String equId) {
|
DpEquipment receiveInfo = equipmentService.getById(equId);
|
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("oilValueFinal");
|
}
|
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("receiveWaterValueFinal");
|
} else if (DataTypeEnum.ELECTRICITY.getCode().equals(receiveInfo.getEquipmentTypeId())) {
|
return R.ok("receiveElectricityValueFinal");
|
} else if (DataTypeEnum.GONGKUANG.getCode().equals(receiveInfo.getEquipmentTypeId())) {
|
return R.ok("receiveCarValueFinal");
|
} else if (DataTypeEnum.WEATHER.getCode().equals(receiveInfo.getEquipmentTypeId())) {
|
return R.ok("receiveWeatherValueFinal");
|
} else if (DataTypeEnum.SLM.getCode().equals(receiveInfo.getEquipmentTypeId())) {
|
return R.ok("receiveSlmValueFinal");
|
}
|
return R.ok(null);
|
}
|
|
@Operation(summary = "获取设备数据表头")
|
@GetMapping("/tableList")
|
public R<List> 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<ReceiveOilInfo>() {{
|
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<ReceiveWaterInfo>() {{
|
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<ReceiveElectricityInfo>() {{
|
or().select(ReceiveElectricityInfo::getParam, ReceiveElectricityInfo::getParamCode, ReceiveElectricityInfo::getUnit).eq(ReceiveElectricityInfo::getDeviceName, String.valueOf(receiveInfo.getId()));
|
}}));
|
} else if (DataTypeEnum.GONGKUANG.getCode().equals(receiveInfo.getEquipmentTypeId())) {
|
List<ReceiveElectricityInfo> receiveElectricityInfos = new ArrayList<>();
|
List<ReceiveCarRule> 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<ReceiveWeatherInfo>() {{
|
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<ReceiveSlmInfo>() {{
|
or().select(ReceiveSlmInfo::getParam, ReceiveSlmInfo::getParamCode, ReceiveSlmInfo::getUnit).eq(ReceiveSlmInfo::getDeviceName, String.valueOf(receiveInfo.getId()));
|
}}));
|
}
|
return R.ok(new ArrayList());
|
}
|
|
//获取设备数据与表头(分页)
|
@PostMapping("/getPageListByIdRuoyi")
|
@Operation(summary = "获取设备数据与表头(分页)")
|
public AjaxResult getPageListByIdRuoyi(@Validated @RequestBody ReceiveValueListVo vo) {
|
List dataList = dataList(vo).getData();
|
List tableList = tableList(vo.getId()).getData();
|
|
TableDataInfo dataInfo = paginate(dataList, vo.getPageNum(), vo.getPageSize());
|
JSONObject object = new JSONObject();
|
object.put("dataList", dataInfo);
|
object.put("tableList", tableList);
|
return AjaxResult.success(object);
|
}
|
|
//对列表进行分页
|
private TableDataInfo paginate(List list, int pageNum, int pageSize) {
|
if (list == null || list.isEmpty()) {
|
return new TableDataInfo(new ArrayList<>(), 0);
|
}
|
int total = list.size();
|
int formIndex = (pageNum - 1) * pageSize;
|
int toIndex = Math.min(formIndex + pageSize, total);
|
if (formIndex >= total) {
|
return new TableDataInfo(new ArrayList<>(), total);
|
}
|
List subList = list.subList(formIndex, toIndex);
|
return new TableDataInfo(subList, total);
|
}
|
}
|