Commit d09849fc authored by hanbing's avatar hanbing

方案管理-方案配置,定义与前端交互的数据结构

parent bd59dd46
package net.wanji.web.controller.scheme;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import net.wanji.web.common.entity.JsonViewObject;
import net.wanji.web.dto.SaveSchemeConfigDTO;
import net.wanji.web.service.scheme.impl.SchemeConfigServiceImpl;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.ws.rs.core.MediaType;
/**
* @author Kent HAN
* @date 2023/1/5 10:23
*/
@Api(value = "CrossConfigController", description = "方案管理-方案配置")
@RequestMapping("/schemeConfig")
@RestController
public class SchemeConfigController {
private final SchemeConfigServiceImpl schemeConfigService;
public SchemeConfigController(SchemeConfigServiceImpl schemeConfigService) {
this.schemeConfigService = schemeConfigService;
}
@ApiOperation(value = "保存方案配置", notes = "保存方案配置", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/saveSchemeConfig",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = JsonViewObject.class),
})
public JsonViewObject saveSchemeConfig(@RequestBody SaveSchemeConfigDTO saveSchemeConfigDTO) {
schemeConfigService.saveSchemeConfig(saveSchemeConfigDTO);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success();
}
}
package net.wanji.web.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author Kent HAN
* @date 2023/1/5 10:30
*/
@NoArgsConstructor
@Data
public class SaveSchemeConfigDTO {
@ApiModelProperty(value = "路口ID", required = true)
private String crossId;
private List<PhaseScheme> phaseSchemeList; // 相位方案列表
private List<TimeScheme> timeSchemeList; // 配时方案列表
@Data
public static class PhaseScheme {
@ApiModelProperty(value = "方案号", required = true)
private String schemeNo;
@ApiModelProperty(value = "方案名称", required = true)
private String name;
private List<Ring> ringList; // 环列表
@Data
public static class Ring {
@ApiModelProperty(value = "环号", required = true)
private Integer ringNo;
List<Phase> phaseList; // 相位列表
public static class Phase {
@ApiModelProperty(value = "相位序号", required = true)
private Integer sort;
@ApiModelProperty(value = "相位号", required = true)
private String phaseNo;
private List<Lane> laneList; // 车道列表
public static class Lane {
@ApiModelProperty(value = "车道方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北", required = true)
private Integer dir;
@ApiModelProperty(value = "车道转向:1左转;2直行;3右转;4掉头;5左直;6直右;7左直右;8左右;9左转掉头;10直行掉头;11右转掉头;12左直掉头;13直右掉头;14左直右掉头;15左右掉头", required = true)
private Integer turn;
}
}
}
}
@Data
public static class TimeScheme {
@ApiModelProperty(value = "方案号", required = true)
private String schemeNo;
@ApiModelProperty(value = "方案名称", required = true)
private String name;
@ApiModelProperty(value = "协调相位号", required = true)
private String coordPhaseNo;
@ApiModelProperty(value = "周期", required = true)
private Integer cycle;
@ApiModelProperty(value = "相位差", required = true)
private Integer offset;
private List<Ring> ringList; // 环列表
@Data
public static class Ring {
@ApiModelProperty(value = "环号", required = true)
private Integer ringNo;
List<Phase> phaseList; // 相位列表
@Data
public static class Phase {
@ApiModelProperty(value = "相位序号", required = true)
private Integer sort;
@ApiModelProperty(value = "相位号", required = true)
private String phaseNo;
private List<PhaseScheme.Ring.Phase.Lane> laneList; // 车道列表
public static class Lane {
@ApiModelProperty(value = "车道方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北", required = true)
private Integer dir;
@ApiModelProperty(value = "车道转向:1左转;2直行;3右转;4掉头;5左直;6直右;7左直右;8左右;9左转掉头;10直行掉头;11右转掉头;12左直掉头;13直右掉头;14左直右掉头;15左右掉头", required = true)
private Integer turn;
}
@ApiModelProperty(value = "最小绿灯时间", required = true)
private Integer minGreenTime;
@ApiModelProperty(value = "最大绿灯时间", required = true)
private Integer maxGreenTime;
@ApiModelProperty(value = "绿灯时间", required = true)
private Integer greenTime;
@ApiModelProperty(value = "绿闪时间", required = true)
private Integer greenFlashTime;
@ApiModelProperty(value = "黄灯时间", required = true)
private Integer yellowTime;
@ApiModelProperty(value = "红灯时间", required = true)
private Integer redTime;
@ApiModelProperty(value = "是否黄闪 0否 1是", required = true)
private Integer yellowFlash;
@ApiModelProperty(value = "是否红闪 0否 1是", required = true)
private Integer redFlash;
}
}
}
}
\ No newline at end of file
package net.wanji.web.service.scheme;
import net.wanji.web.dto.SaveSchemeConfigDTO;
/**
* @author Kent HAN
* @date 2023/1/5 10:27
*/
public interface SchemeConfigService {
void saveSchemeConfig(SaveSchemeConfigDTO saveSchemeConfigDTO);
}
package net.wanji.web.service.scheme.impl;
import net.wanji.web.dto.SaveSchemeConfigDTO;
import net.wanji.web.service.scheme.SchemeConfigService;
import org.springframework.stereotype.Service;
/**
* @author Kent HAN
* @date 2023/1/5 10:27
*/
@Service
public class SchemeConfigServiceImpl implements SchemeConfigService {
@Override
public void saveSchemeConfig(SaveSchemeConfigDTO saveSchemeConfigDTO) {
}
}
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