package com.ruoyi.device.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.device.dto.DataConfigDto;
import com.ruoyi.device.dto.DeviceConfigDtoPage;
import com.ruoyi.device.mapper.DataConfigMapper;
import com.ruoyi.device.mapper.DeviceMapper;
import com.ruoyi.device.pojo.DataConfig;
import com.ruoyi.device.pojo.Device;
import com.ruoyi.device.service.DataConfigService;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author 江苏鵷雏网络科技有限公司
* @since 2024-07-13 12:23:00
*/
@Service
@AllArgsConstructor
public class DataConfigServiceImpl extends ServiceImpl implements DataConfigService {
private DeviceMapper deviceMapper;
private DataConfigMapper dataConfigMapper;
@Override
public void deleteDataConfig() {
List integers = dataConfigMapper.deleteDataConfig();
if (!integers.isEmpty()) {
dataConfigMapper.deleteBatchIds(integers);
}
}
@Override
public void saveDataAcquisitionConfiguration(Integer deviceId, DataConfigDto dataConfigList) {
if (dataConfigList.getIsDevice()) {
Device device = new Device();
BeanUtils.copyProperties(dataConfigList, device);
List channelList = dataConfigList.getChannel();
if (channelList != null &&!channelList.isEmpty()) {
String channelString = String.join(",", channelList);
device.setChannel(channelString);
}
device.setId(deviceId);
deviceMapper.updateById(device);
} else {
this.saveOrUpdateBatch(dataConfigList.getDataConfigList());
}
}
@Override
public Result> queryDataAcquisitionConfiguration(DataConfig dataConfig) {
if (dataConfig.getIsDevice()) {
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery()
.eq(DataConfig::getDeviceId, dataConfig.getDeviceId())
.eq(DataConfig::getInspectionItem, dataConfig.getInspectionItem())
.eq(DataConfig::getInspectionItemSubclass, dataConfig.getInspectionItemSubclass());
if (StringUtils.isNotBlank(dataConfig.getInspectionItemClass())) {
wrapper.eq(DataConfig::getInspectionItemClass, dataConfig.getInspectionItemClass());
}
if (dataConfig.getStructureItemParameterId() != null) {
wrapper.eq(DataConfig::getStructureItemParameterId, dataConfig.getStructureItemParameterId());
}
List list = baseMapper.selectList(wrapper);
return Result.success(list);
} else {
List deviceConfigDtoPages = dataConfigMapper.selectDataConfigList(dataConfig.getDeviceId());
return Result.success(deviceConfigDtoPages);
}
}
}