package com.qianwen.smartman.modules.mdc.service.impl;
|
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
import org.apache.commons.collections.MapUtils;
|
import com.qianwen.smartman.common.cache.cps.WorkstationCache;
|
import com.qianwen.smartman.common.utils.MessageUtils;
|
import com.qianwen.core.log.exception.ServiceException;
|
import com.qianwen.core.tool.utils.Func;
|
import com.qianwen.smartman.modules.cps.dto.WorkstationRealTimeStatusDTO;
|
import com.qianwen.smartman.modules.cps.entity.WorkstationOfMachine;
|
import com.qianwen.smartman.modules.cps.mapper.WorkstationMapper;
|
import com.qianwen.smartman.modules.cps.message.dto.TelemetryDataResponseDTO;
|
import com.qianwen.smartman.modules.cps.service.IDmpVariablesService;
|
import com.qianwen.smartman.modules.cps.service.IWorkstationOfMachineService;
|
import com.qianwen.smartman.modules.cps.vo.DmpStatusVariableVO;
|
import com.qianwen.smartman.modules.cps.vo.DmpVariablesVO;
|
import com.qianwen.smartman.modules.cps.vo.WorkstationRealTimeStatusVO;
|
import com.qianwen.smartman.modules.mdc.service.IRealTimeDataService;
|
import com.qianwen.smartman.modules.mdc.vo.WorkstationVO;
|
import org.springframework.stereotype.Service;
|
|
@Service
|
public class RealTimeDataServiceImpl implements IRealTimeDataService {
|
private final WorkstationMapper workstationMapper;
|
private final IWorkstationOfMachineService workstationOfMachineService;
|
private final IDmpVariablesService dmpVariablesService;
|
|
public RealTimeDataServiceImpl(final WorkstationMapper workstationMapper, final IWorkstationOfMachineService workstationOfMachineService, final IDmpVariablesService dmpVariablesService) {
|
this.workstationMapper = workstationMapper;
|
this.workstationOfMachineService = workstationOfMachineService;
|
this.dmpVariablesService = dmpVariablesService;
|
}
|
|
@Override
|
public List<DmpStatusVariableVO> getWorkstationRealTimeStatus(WorkstationVO workstationVO) {
|
List<Long> workstationIdList = workstationVO.getWorkstationIdList();
|
if (Func.isEmpty(workstationIdList)) {
|
List<String> workstationGroupIdList = workstationVO.getWorkstationGroupIdList().stream().map(x -> {
|
return String.valueOf(x);
|
}).collect(Collectors.toList());
|
WorkstationRealTimeStatusDTO workstationRealTimeStatusDTO = new WorkstationRealTimeStatusDTO();
|
workstationRealTimeStatusDTO.setWorkStationGroupIdList(workstationGroupIdList);
|
workstationIdList = this.workstationMapper.getWorkstationListByWorkStationGroupIdList(null, workstationRealTimeStatusDTO).stream().map(WorkstationRealTimeStatusVO::getId).collect(Collectors.toList());
|
}
|
List<DmpStatusVariableVO> dmpStatusVariableList = this.dmpVariablesService.getDmpVariablesByWorkstationIdList(workstationIdList);
|
dmpStatusVariableList.forEach(x2 -> {
|
Map<String, Object> map = WorkstationCache.getWorkstationRealTime(String.valueOf(x2.getWorkstationId()));
|
if (map.containsKey(x2.getVariableKey())) {
|
TelemetryDataResponseDTO t = (TelemetryDataResponseDTO) MapUtils.getObject(map, x2.getVariableKey());
|
x2.setVariableValue(t.getV());
|
}
|
});
|
return dmpStatusVariableList;
|
}
|
|
@Override
|
public List<DmpVariablesVO> getWorkstationDmpVariables(Long workstationId) {
|
WorkstationOfMachine workstationOfMachine = this.workstationOfMachineService.getWorkstationOfMachineByWorkstationId(workstationId);
|
if (Func.isEmpty(workstationOfMachine)) {
|
throw new ServiceException(MessageUtils.message("workstation.not.turn.on.acquisition.function", new Object[0]));
|
}
|
List<DmpVariablesVO> dmpVariables = this.dmpVariablesService.getDmpVariablesByWorkstationId(Long.valueOf(workstationId.longValue()));
|
return dmpVariables.stream().filter(DmpVariablesVO::getRealTimeData).collect(Collectors.toList());
|
}
|
}
|