加酸仪(java版本)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
2.2 KiB

package com.iflytop.handacid.app.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.iflytop.handacid.app.common.enums.SystemConfigKey;
import com.iflytop.handacid.app.core.state.ChannelState;
import com.iflytop.handacid.app.core.state.DeviceState;
import com.iflytop.handacid.app.model.bo.SyncOperationsChannel;
import com.iflytop.handacid.app.model.dto.SyncOperationsDTO;
import com.iflytop.handacid.common.model.entity.Channel;
import com.iflytop.handacid.common.model.entity.SystemConfig;
import com.iflytop.handacid.common.service.ChannelService;
import com.iflytop.handacid.common.service.SystemConfigService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 设备
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class DeviceService {
private final DeviceState deviceState;
private final SystemConfigService systemConfigService;
private final ChannelService channelService;
public void syncOperations(SyncOperationsDTO syncOperationsDTO) {
if(syncOperationsDTO.getMode() != null){
deviceState.setMode(syncOperationsDTO.getMode());
systemConfigService.updateValueByKey(SystemConfigKey.SOLUTION_ADD_MODE, syncOperationsDTO.getMode().toString());
}
if(syncOperationsDTO.getChannels() != null){
for (SyncOperationsChannel syncOperationsChannel : syncOperationsDTO.getChannels()) {
ChannelState channelState = deviceState.getChannelStateMap().get(syncOperationsChannel.getChannelCode());
if(syncOperationsChannel.getSelected() != null){
channelState.setSelected(syncOperationsChannel.getSelected());
}
if(syncOperationsChannel.getTargetVolume() != null){
channelState.setTargetVolume(syncOperationsChannel.getTargetVolume());
Channel channel = channelService.getOne(new LambdaQueryWrapper<>(Channel.class).eq(Channel::getCode, syncOperationsChannel.getChannelCode()));
channel.setTargetVolume(syncOperationsChannel.getTargetVolume());
channelService.updateById(channel);
}
}
}
}
}