package com.zy.ai.utils;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.zy.ai.entity.DeviceConfigsData;
|
import com.zy.ai.entity.DeviceRealTimeData;
|
import com.zy.ai.entity.WcsDiagnosisRequest;
|
import com.zy.ai.log.AiLogAppender;
|
import com.zy.asrs.entity.BasCrnp;
|
import com.zy.asrs.entity.BasDevp;
|
import com.zy.asrs.entity.WrkMast;
|
import com.zy.asrs.service.BasCrnpService;
|
import com.zy.asrs.service.BasDevpService;
|
import com.zy.asrs.service.WrkMastService;
|
import com.zy.core.cache.SlaveConnection;
|
import com.zy.core.enums.SlaveType;
|
import com.zy.core.model.StationObjModel;
|
import com.zy.core.model.protocol.CrnProtocol;
|
import com.zy.core.model.protocol.StationProtocol;
|
import com.zy.core.thread.CrnThread;
|
import com.zy.core.thread.StationThread;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
@Component
|
public class AiUtils {
|
|
@Autowired
|
private WrkMastService wrkMastService;
|
@Autowired
|
private BasCrnpService basCrnpService;
|
@Autowired
|
private BasDevpService basDevpService;
|
|
public WcsDiagnosisRequest makeAiRequest(int logLimit, String alarmMessage) {
|
WcsDiagnosisRequest request = new WcsDiagnosisRequest();
|
|
request.setAlarmMessage(alarmMessage);
|
|
List<String> logs = AiLogAppender.getRecentLogs(logLimit);
|
request.setLogs(logs);
|
|
List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<>());
|
request.setTasks(wrkMasts);
|
|
List<DeviceRealTimeData> deviceRealTimeDataList = new ArrayList<>();
|
List<DeviceConfigsData> deviceConfigsDataList = new ArrayList<>();
|
|
List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
|
for (BasCrnp basCrnp : basCrnps) {
|
CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
|
if (crnThread == null) {
|
continue;
|
}
|
|
CrnProtocol protocol = crnThread.getStatus();
|
|
for (StationObjModel stationObjModel : basCrnp.getInStationList$()) {
|
StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, stationObjModel.getDeviceNo());
|
if (stationThread == null) {
|
continue;
|
}
|
|
Map<Integer, StationProtocol> map = stationThread.getStatusMap();
|
StationProtocol stationProtocol = map.get(stationObjModel.getStationId());
|
if (stationProtocol == null) {
|
continue;
|
}
|
|
DeviceRealTimeData stationData = new DeviceRealTimeData();
|
stationData.setDeviceNo(stationObjModel.getDeviceNo());
|
stationData.setDeviceType(String.valueOf(SlaveType.Devp));
|
stationData.setDeviceData(stationProtocol);
|
deviceRealTimeDataList.add(stationData);
|
}
|
|
DeviceRealTimeData deviceRealTimeData = new DeviceRealTimeData();
|
deviceRealTimeData.setDeviceNo(basCrnp.getCrnNo());
|
deviceRealTimeData.setDeviceType(String.valueOf(SlaveType.Crn));
|
deviceRealTimeData.setDeviceData(protocol);
|
deviceRealTimeDataList.add(deviceRealTimeData);
|
|
DeviceConfigsData deviceConfigsData = new DeviceConfigsData();
|
deviceConfigsData.setDeviceNo(basCrnp.getCrnNo());
|
deviceConfigsData.setDeviceType(String.valueOf(SlaveType.Crn));
|
deviceConfigsData.setDeviceData(basCrnp);
|
deviceConfigsDataList.add(deviceConfigsData);
|
}
|
|
List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<>());
|
for (BasDevp basDevp : basDevps) {
|
StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, basDevp.getDevpNo());
|
if (stationThread == null) {
|
continue;
|
}
|
Map<Integer, StationProtocol> map = stationThread.getStatusMap();
|
|
for (StationObjModel stationObjModel : basDevp.getInStationList$()) {
|
StationProtocol stationProtocol = map.get(stationObjModel.getStationId());
|
if (stationProtocol == null) {
|
continue;
|
}
|
|
DeviceRealTimeData stationData = new DeviceRealTimeData();
|
stationData.setDeviceNo(stationObjModel.getDeviceNo());
|
stationData.setDeviceType(String.valueOf(SlaveType.Devp));
|
stationData.setDeviceData(stationProtocol);
|
deviceRealTimeDataList.add(stationData);
|
}
|
|
for (StationObjModel stationObjModel : basDevp.getOutStationList$()) {
|
StationProtocol stationProtocol = map.get(stationObjModel.getStationId());
|
if (stationProtocol == null) {
|
continue;
|
}
|
|
DeviceRealTimeData stationData = new DeviceRealTimeData();
|
stationData.setDeviceNo(stationObjModel.getDeviceNo());
|
stationData.setDeviceType(String.valueOf(SlaveType.Devp));
|
stationData.setDeviceData(stationProtocol);
|
deviceRealTimeDataList.add(stationData);
|
}
|
|
DeviceConfigsData deviceConfigsData = new DeviceConfigsData();
|
deviceConfigsData.setDeviceNo(basDevp.getDevpNo());
|
deviceConfigsData.setDeviceType(String.valueOf(SlaveType.Devp));
|
deviceConfigsData.setDeviceData(basDevp);
|
deviceConfigsDataList.add(deviceConfigsData);
|
}
|
|
request.setDeviceRealtimeData(deviceRealTimeDataList);
|
request.setDeviceConfigs(deviceConfigsDataList);
|
return request;
|
}
|
|
}
|