Commit f84ec3be authored by duanruiming's avatar duanruiming

[update] 数字孪生平台添加灯态返回接口

parent 771c0a9a
......@@ -15,13 +15,17 @@ import net.wanji.common.enums.BaseEnum;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.databus.po.SignalStatusLogPO;
import net.wanji.databus.vo.LightsStatusVO;
import net.wanji.databus.vo.LightsStatusVO2;
import net.wanji.utc.service.runninginfo.SignalStatusService;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.ws.rs.core.MediaType;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 运行状态、告警、灯态信息接口
......@@ -62,6 +66,49 @@ public class SignalStatusController {
return JsonViewObject.newInstance().success(lightsStatusVOList);
}
@AspectLog(description = "灯态数据V2", operationType = BaseEnum.OperationTypeEnum.QUERY)
@PostMapping(value = "/lightStatusV2", produces = MediaType.APPLICATION_JSON)
@ApiOperation(value = "灯态数据V2", notes = "灯态数据V2", response = LightsStatusVO.class,
produces = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = LightsStatusVO.class)
})
public JsonViewObject lightStatusV2() throws Exception {
List<LightsStatusVO> lightsStatusVOList = signalStatusService.lightStatus();
List<LightsStatusVO2> listResult = new ArrayList<>(lightsStatusVOList.size());
for (LightsStatusVO lightsStatusVO : lightsStatusVOList) {
LightsStatusVO2 lightsStatusVO2 = new LightsStatusVO2();
BeanUtils.copyProperties(lightsStatusVO, lightsStatusVO2);
Map<String, Object> dirLampGroupMap = lightsStatusVO.getDirLampGroupMap();
List<LightsStatusVO2.DirInfo> dirList = new ArrayList<>();
Map<String, Object> phaseMap = lightsStatusVO.getPhaseMap();
for (Map.Entry<String, Object> groupEntry : dirLampGroupMap.entrySet()) {
LightsStatusVO2.DirInfo dirInfo = new LightsStatusVO2.DirInfo();
String dir = groupEntry.getKey();
Map<String, Integer> turnDountMap = (Map<String, Integer>) phaseMap.get(dir);
Map<String, String> turnColorMap = (Map<String, String>)groupEntry.getValue();
List<LightsStatusVO2.TurnInfo> turnList = new ArrayList<>();
for (Map.Entry<String, String> turnEntry : turnColorMap.entrySet()) {
String turn = turnEntry.getKey();
String color = turnEntry.getValue();
LightsStatusVO2.TurnInfo turnInfo = new LightsStatusVO2.TurnInfo();
turnInfo.setTurn(turn);
turnInfo.setColor(color);
Integer countDown = turnDountMap.get(turn);
turnInfo.setCountDown(countDown);
turnList.add(turnInfo);
}
dirInfo.setDir(dir);
dirInfo.setTurnList(turnList);
dirList.add(dirInfo);
}
lightsStatusVO2.setDirLampGroupMapList(dirList);
listResult.add(lightsStatusVO2);
}
return JsonViewObject.newInstance().success(listResult);
}
@AspectLog(description = "灯态数据历史数据", operationType = BaseEnum.OperationTypeEnum.QUERY)
@PostMapping(value = "/lightStatusHist", produces = MediaType.APPLICATION_JSON)
@ApiOperation(value = "灯态数据历史数据", notes = "灯态数据历史数据", response = LightsStatusVO.class,
......
package net.wanji.databus.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* @author duanruiming
* @date 2023/11/27 9:37
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class LightsStatusVO2 extends BaseCrossInfo {
@ApiModelProperty(value = "运行模式 `2=手动锁定当前相位`,`3=手动全红`,`4=手动黄闪`,`5=手动关灯`," +
"`6=全红闪控制`,`7=全黄控制`,`8=正常按计划运行`,`9=手动步进控制`,`10=自动步进控制`,`11=恢复时间表`,`255=临时控制方案`")
private String runMode;
@ApiModelProperty(value = "控制模式")
private String controlMode;
@ApiModelProperty(value = "方案开始时间", notes = "目前没有用到")
private String schemeStartTime;
@ApiModelProperty(value = "相位周期剩余时长")
private Integer cycleCountDown;
@ApiModelProperty(value = "相位周期剩余时长")
private Integer cyclePhaseCountDown;
@ApiModelProperty(value = "相位周期时长")
private Integer cycleLen;
@ApiModelProperty(value = "当前相位号")
private String phaseId;
@ApiModelProperty(value = "当前方案号")
private String schemeId;
@ApiModelProperty(value = "灯组状态")
private List<DirInfo> dirLampGroupMapList;
@ApiModelProperty(value = "数据上报时间戳")
private String timeStamp;
@Data
@ApiModel(value = "DirInfo", description = "灯组方向转向信息")
public static class DirInfo {
@ApiModelProperty(value = "方向")
private String dir;
@ApiModelProperty(value = "转向信息")
List<TurnInfo> turnList;
}
@Data
@ApiModel(value = "TurnInfo", description = "灯组转向灯态红灯倒计时")
public static class TurnInfo {
@ApiModelProperty(value = "转向")
private String turn;
@ApiModelProperty(value = "灯色")
private String color;
@ApiModelProperty(value = "红灯倒计时")
private Integer countDown;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment