Commit 2dde54a3 authored by zhouleilei's avatar zhouleilei

计划数据-计划信息、时段信息 静态数据查询

parent eac82065
package net.wanji.utc.hisense.common;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Objects;
/**
* @author zhouleilei
* @date 2024/11/15 23:29
*/
@Getter
@AllArgsConstructor
public enum HisensePersonEntranceAndExitEnum {
// '车道转向:1左转;2直行;3右转;4掉头;5直左;6直右;7左直右;8左右;9左转掉头;10直行掉头;
// 11右转掉头;12左直掉头;13直右掉头;14左直右掉头;15左右掉头', 0 默认没有匹配
PERSON_1(11, 1, "入口行人"),
PERSON_2(12, 2, "出口行人"),
PERSON_3(13, 3, "出入口行人");
private Integer hisensePerson;
private Integer wjPerson;
private String desc;
public static Integer getWjperson(Integer hisensePerson) {
for (HisensePersonEntranceAndExitEnum value : HisensePersonEntranceAndExitEnum.values()) {
if (Objects.equals(hisensePerson, value.getHisensePerson())) {
return value.getWjPerson();
}
}
return 0;
}
}
package net.wanji.utc.hisense.pojo.dto;
import lombok.Data;
/**
* @ClassName RingPhasesDTO
* @Description 获取方案环图,环对应相位的DTO
* @Author zhouleilei
* @Date 2024/11/14 17:05
*/
@Data
public class RingPhaseDTO {
//相位号
private Integer phaseId;
//相位时间
private Integer phaseTime;
//相位红灯时间
private Integer redTime;
//相位黄灯时间
private Integer yellowTime;
//相位绿灯时间
private Integer greenTime;
//最小绿时间
private Integer minGTime;
//最大绿时间
private Integer maxGTime;
//相位状态
private Integer phaseStatus;
}
\ No newline at end of file
package net.wanji.utc.hisense.pojo.dto;
import lombok.Data;
import java.util.List;
/**
* @ClassName StagePhaseDTO
* @Description 阶段相位对应表
* @Author zhouleilei
* @Date 2024/11/15 15:33
*/
@Data
public class StagePhaseDTO {
//阶段号
private Integer stageId;
//阶段时长
private Integer stageTime;
//阶段对应的相位列表
List<RingPhaseDTO> ringPhaseList;
}
......@@ -2,6 +2,12 @@ package net.wanji.utc.hisense.util;
import cn.hutool.core.util.HexUtil;
import freemarker.template.utility.StringUtil;
import net.wanji.common.utils.tool.ScheduleUtil;
import net.wanji.utc.hisense.common.HisenseTurnEnum;
import net.wanji.utc.hisense.common.HiseseDirEnum;
import java.util.ArrayList;
import java.util.List;
/**
* @author duanruiming
......@@ -120,8 +126,60 @@ public class CommonUtils {
return dir;
}
/**
* @Description 将字符串分成八个一组,不够的最前面补0
* @Param [input]
* @return java.util.List<java.lang.String>
**/
public static List<String> groupStringFromRight(String input) {
List<String> list = new ArrayList<>();
if (input == null || input.isEmpty()) {
return null;
}
// 计算需要多少个完整的8字符组
int fullGroups = input.length() / 8;
// 计算最后一个组中的字符数
int lastGroupSize = input.length() % 8;
StringBuilder result = new StringBuilder(input);
String str = "";
if (lastGroupSize > 0) {
// 计算需要补多少个0
int padding = 8 - lastGroupSize;
for (int i = 0; i < padding; i++) {
str = str+"0";
}
}
input = str+result.toString();
int size =input.length()/8;
for (int i = 0; i < size; i++) {
String substring = input.substring(i * 8, (i + 1) * 8);
list.add(substring);
}
return list;
}
public static void main(String[] args) {
System.err.println(get4BinaryInteger(4));
int l = 6442253;
String binaryString = Integer.toBinaryString(l);
List<String> readUtf8Lines = groupStringFromRight(binaryString);
System.out.println(readUtf8Lines.size());
for (String readUtf8Line : readUtf8Lines) {
System.out.println(readUtf8Line);
String dir = readUtf8Line.substring(0, 3); // 高三位 方向
String turn = readUtf8Line.substring(3); // 低五位 转向
System.out.println(ScheduleUtil.binaryIntToDecimalism(dir)+"_"+ScheduleUtil.binaryIntToDecimalism(turn));
Integer wjLightsDir = HiseseDirEnum.getWjLightsDir(Integer.parseInt(dir, 2));
Integer wjLightsTurn = HisenseTurnEnum.getWjLightsTurn(Integer.parseInt(turn, 2));
System.out.println("wjLightsDir "+wjLightsDir);
System.out.println("wjLightsTurn "+wjLightsTurn);
System.out.println("======================================");
}
}
}
......@@ -74,7 +74,7 @@ public class StaticInfoController {
})
public JsonViewObject schemePhaseLights(@RequestBody @Validated SchemePhaseLightsDTO schemePhaseLightsDTO) throws Exception {
// 更新数据库
//staticInfoService.schemePhaseLights(schemePhaseLightsDTO);
staticInfoService.schemePhaseLights(schemePhaseLightsDTO);
// 构造返回值
SchemePhaseLightsVO schemePhaseLightsVO = staticInfoService.buildSchemePhaseLightsResponse(schemePhaseLightsDTO);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
......
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